feat(core)!: port to v2 line on fiber v3 stack#42
Conversation
Major line bump: module github.com/LerianStudio/lib-systemplane/v2. - gofiber/fiber/v2 -> v3 (Ctx is now an interface; UserContext -> Context, BodyParser -> Bind().Body, app.Test TestConfig) - lib-commons/v5 v5.8.0 -> /v6 v6.0.0 (import-path churn only) - lib-observability v1.1.0 -> /v2 v2.0.0 (import-path churn only) - All self-imports moved to /v2; docs and examples updated No feature behavior changed; ddl/ and LISTEN/NOTIFY untouched. BREAKING CHANGE: module path is now github.com/LerianStudio/lib-systemplane/v2. admin.WithAuthorizer and admin.WithActorExtractor now take fiber.Ctx (v3 interface) instead of *fiber.Ctx. X-Lerian-Ref: 0x1 Claude-Session: https://claude.ai/code/session_019CPR8BaUFL4TuPVos9DGds
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe project adopts the ChangesSystemplane v2 migration
✨ Finishing Touches✨ Simplify code
Comment |
🔍 PR Validation Summary✅ PR Mergeable — no blocking failures
|
🔒 Security Scan Results —
|
| Stage | Status | Blocking? |
|---|---|---|
| Filesystem Scan | ✅ Clean | — |
| Docker Image Scan | ➖ Skipped | — |
| Docker Hub Health Score | ➖ Skipped | — |
| Pre-release Version Check | ✅ Clean | — |
Trivy
Filesystem Scan
✅ No vulnerabilities or secrets found.
Pre-release Version Check
✅ No unstable version pins found.
📊 Unit Test Coverage Report:
|
| Metric | Value |
|---|---|
| Overall Coverage | 80.5% ✅ PASS |
| Threshold | 80% |
Coverage by Package
| Package | Coverage |
|---|---|
github.com/LerianStudio/lib-systemplane/v2/admin |
88.4% |
github.com/LerianStudio/lib-systemplane/v2/internal/client |
80.7% |
github.com/LerianStudio/lib-systemplane/v2/internal/debounce |
73.1% |
github.com/LerianStudio/lib-systemplane/v2/internal/manager |
87.9% |
github.com/LerianStudio/lib-systemplane/v2/internal/mongodb |
97.5% |
github.com/LerianStudio/lib-systemplane/v2/internal/postgres |
100.0% |
github.com/LerianStudio/lib-systemplane/v2 |
94.8% |
Generated by Go PR Analysis workflow
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CLAUDE.md`:
- Line 61: Update the multi-tenant PostgreSQL guidance in CLAUDE.md to remove
the runtime role’s LISTEN requirement, leaving only DML privileges. Keep the
existing statement that LISTEN/NOTIFY is disabled in multi-tenant mode.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 66820fe3-f45e-499b-9a14-4942ad0cf62d
⛔ Files ignored due to path filters (1)
go.sumis excluded by!**/*.sum
📒 Files selected for processing (73)
.env.referenceCLAUDE.mdREADME.mdadmin/admin.goadmin/admin_responses.goadmin/admin_test.goapi_client.goapi_constants.goapi_constructors.goapi_errors.goapi_testing.goapi_types.goddl_test.godocs/PROJECT_RULES.mdexamples/manager/main.gogo.modinternal/client/catalog_test.gointernal/client/client.gointernal/client/client_telemetry.gointernal/client/client_test.gointernal/client/client_testing.gointernal/client/errors.gointernal/client/get.gointernal/client/manager_binding.gointernal/client/manager_binding_test.gointernal/client/onchange.gointernal/client/options.gointernal/client/redact.gointernal/client/set.gointernal/client/testing_facade_test.gointernal/debounce/debounce.gointernal/manager/connector.gointernal/manager/connector_pgmgr_integration_test.gointernal/manager/connector_pgmgr_test.gointernal/manager/events.gointernal/manager/get.gointernal/manager/goleak_integration_test.gointernal/manager/handle_lifecycle.gointernal/manager/handle_lifecycle_test.gointernal/manager/internal_test.gointernal/manager/lifecycle.gointernal/manager/listen.gointernal/manager/listen_integration_test.gointernal/manager/logging.gointernal/manager/manager.gointernal/manager/manager_integration_test.gointernal/manager/manager_test.gointernal/manager/metrics.gointernal/manager/metrics_helper_test.gointernal/manager/metrics_test.gointernal/manager/warmload.gointernal/mongodb/mongodb.gointernal/mongodb/mongodb_changestream.gointernal/mongodb/mongodb_changestream_test.gointernal/mongodb/mongodb_config.gointernal/mongodb/mongodb_crud.gointernal/mongodb/mongodb_events.gointernal/mongodb/mongodb_goleak_integration_test.gointernal/mongodb/mongodb_integration_test.gointernal/mongodb/mongodb_polling_integration_test.gointernal/mongodb/mongodb_unit_test.gointernal/postgres/postgres.gointernal/postgres/postgres_config.gointernal/postgres/postgres_goleak_integration_test.gointernal/postgres/postgres_integration_test.gointernal/postgres/postgres_listen.gointernal/postgres/postgres_listen_test.gointernal/postgres/postgres_notify.gointernal/postgres/postgres_unit_test.gomanager.gomanager_methods.gomanager_methods_test.gosystemplanetest/contract.go
Multi-tenant mode disables LISTEN/NOTIFY; the runtime role needs DML only. Removes a contradictory privilege from the guidance (CodeRabbit review). X-Lerian-Ref: 0x1 Claude-Session: https://claude.ai/code/session_019CPR8BaUFL4TuPVos9DGds
What
Opens the
/v2major line:module github.com/LerianStudio/lib-systemplane/v2on the Fiber v3 stack.gofiber/fiber/v2→v3(v3.4.0):Ctxis now an interface —UserContext()→Context(),BodyParser→Bind().Body,app.Testtakesfiber.TestConfiglib-commons/v5v5.8.0 →/v6v6.0.0 (import-path churn only;RespondErrorcomposes with the newfiber.Ctx)lib-observabilityv1.1.0 →/v2v2.0.0 (import-path churn only)/v2Why
Consumers migrating to lib-commons v6 / Fiber v3 (matcher first) mount the admin surface via
admin.Mountover a Fiber app — impossible from the v1 line, which pins Fiber v2. This unblocks the v6-stack migration chain.Breaking changes
github.com/LerianStudio/lib-systemplane/v2admin.WithAuthorizer:func(*fiber.Ctx, string) error→func(fiber.Ctx, string) erroradmin.WithActorExtractor:func(*fiber.Ctx) string→func(fiber.Ctx) stringEverything else — routes, response DTOs, sentinel-error mapping, redaction, Client/Register/catalog/DDL/systemplanetest — byte-identical. No feature behavior changed;
ddl/and LISTEN/NOTIFY logic untouched.Verification
go build ./...+go vet ./...go test -tags=unit -race -count=1 ./...go test -tags=integration -count=1 ./...(testcontainers)golangci-lint run ./...(v2.12.2, repo config)https://claude.ai/code/session_019CPR8BaUFL4TuPVos9DGds