Migrating to Nauthilus v4
Nauthilus v4.0.0-alpha.1 is published as the first v4 prerelease. It establishes deliberate compatibility boundaries
for the Go module and native plugin ABI, Policy configuration and APIs, public Go protobuf imports, and browser session
state. It is an alpha release and still requires non-production validation before rollout.
Migration Checklist
- Replace only the exact module prefix
github.com/croessner/nauthilus/v3withgithub.com/croessner/nauthilus/v4. - Use Go 1.27 with
GOEXPERIMENT=runtimesecret. Rebuild every native.soagainst the exact host commit, toolchain, module graph, build tags, CGO mode, OS, and architecture. - Manually migrate the removed v3
auth.policysubtree to top-levelpolicy. There is no converter, dual root, or compatibility window. - Replace unqualified
standard_auth, rule/checkstage, and checkconfig_refwith exact qualified identities and checkpoint ownership. - Configure Generic Policy callers separately from management and backchannel callers. Preserve exact audience, scope, target, schema, fact, diagnostics, rate, concurrency, and optional mTLS admission.
- Replace the complete browser-serving pool uniformly. Do not mix v3.1 and v4 session readers or try to migrate in-flight browser state. Old records remain inert and can expire.
- Validate the direct MFA self-service entry and each TOTP, WebAuthn, recovery-code, enrollment, and step-up flow.
- Regenerate Go clients that consume v4
go_packagemetadata. Independently generated protobuf clients remain wire compatible where their package, service, method, field, and HTTP identifiers are unchanged. - If evaluating the DKIM2/Rspamd preview, keep enforcement disabled until its documented adapter blocker is fixed and
a real
dkim2dend-to-end run passes. - Validate the entire candidate in a non-production environment before any production rollout.
Detailed Contracts
- Policy configuration hard cut and manual migration
- Policy configuration overview
- Generic Policy REST and gRPC API
- Canonical browser session migration
- MFA self-service portal
- OIDC Dynamic Client Registration
- Native Go plugin guide
- Public protobuf APIs
- DKIM2/Rspamd Policy preview and blocker
- Generated protected HTTP API reference
Third-party module paths that independently contain a /v3 suffix are unrelated and must not be rewritten. The retired
browser /api/v1/mfa/* routes must not be confused with the separate cookie-free /api/v1/mfa-backchannel/* family.