refactor(storage): extract storage into an independent Go module - #159
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
6 tasks
ginaxu1
approved these changes
Aug 22, 2026
sthanikan2000
force-pushed
the
refactor/storage-independent-module
branch
from
August 23, 2026 13:01
70281aa to
95adeab
Compare
storage is the last remaining candidate matching the pattern already used for authn, authz, shared, remote, secret, database, payment, pagination, trace, and uiprojector: give it its own go.mod so it can be versioned and released independently of the root module. No source changes — storage keeps its current authn dependency for now, so this is purely a module-boundary change. Existing importers of github.com/OpenNSW/core/storage need to add an explicit `require github.com/OpenNSW/core/storage vX.Y.Z` to their own go.mod, but no code changes are needed on their end. Adds a storage-module CI job (mirroring authn-module) and lists /storage in dependabot.yml. Root's go.mod/go.sum drop authn and its transitive golang-jwt/jwt/v5 dependency, since storage was the only in-repo consumer and it now carries that requirement itself. Deliberately sequenced before the authn-decoupling change (#158): this lets storage ship as a non-breaking v0.1.0 first, so downstream repos can pick up the independent module before separately opting into the breaking Principal/Extractor interface change later. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
sthanikan2000
force-pushed
the
refactor/storage-independent-module
branch
from
August 23, 2026 13:07
95adeab to
5162fcd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
storageits owngo.mod(github.com/OpenNSW/core/storage), matching the pattern already used forauthn,authz,shared,remote,secret,database,payment,pagination,trace, anduiprojector.storagekeeps its currentauthndependency for now — this is purely a module-boundary change, sequenced deliberately before refactor(storage)!: decouple storage from authn via a Principal/Extractor interface #158 (theauthn-decoupling breaking change).storage-moduleCI job mirroringauthn-module, and lists/storageindependabot.yml.go.mod/go.sumdropauthnand its transitivegolang-jwt/jwt/v5dependency, sincestoragewas the only in-repo consumer and now carries that requirement itself.Why this order
Landing this first lets
storageship as a non-breakingv0.1.0: existing downstream importers only need to add an explicitrequire github.com/OpenNSW/core/storage vX.Y.Zto their owngo.mod— no code changes. Theauthn→Principal/Extractorinterface change (#158, already open) is a real breaking API change (new required constructor param, new error return), so it's deferred to a follow-up release (e.g.v0.2.0) that downstream repos can pick up on their own schedule, after they've already absorbed the module split.Once this merges and
storage/v0.1.0is tagged, #158 will be rebased on top of it.Test plan
cd storage && go build ./... && go vet ./... && go test ./... -v— all pass, module builds standalonego build ./...andgo mod tidy— clean, root module unaffected.github/workflows/ci.ymlYAML validated; newstorage-modulejob mirrorsauthn-moduleexactly🤖 Generated with Claude Code