-
Release v1.1.0 Stable
released this
2026-08-12 15:49:37 -06:00 | 10 commits to main since this releasev1.1.0
code.nochebuena.dev/einherjar/contractsOverview
contractsv1.1.0 adds the request-scopedsecurity.SecurityBagand anchors the coordinated
framework release at v1.1.0. Additive and non-breaking — existingIdentityflows are
unchanged; consumers that need to carry extra request-scoped attributes alongside the
authenticated Identity adoptSecurityBag.Architecture Decisions Resolved
Decision Resolution Request-scoped security context ✅ SecurityBag— carries Identity + typed attributes; immutable value type; replaces bare Identity propagation.Full API
security(added)// SecurityBag — immutable request-scoped security context type SecurityBag struct { /* unexported fields */ } func NewSecurityBag(id Identity) SecurityBag func (b SecurityBag) Identity() Identity func (b SecurityBag) WithIdentity(id Identity) SecurityBag func (b SecurityBag) Get(key string) (any, bool) func (b SecurityBag) With(key string, value any) SecurityBag func SetBagInContext(ctx context.Context, bag SecurityBag) context.Context func BagFromContext(ctx context.Context) (SecurityBag, bool)Installation
go get code.nochebuena.dev/einherjar/contracts@v1.1.0Downloads