Roadmap
This roadmap is the current planning authority for SecurityDept. It describes the current 0.3.x release line, active release constraints, and topics deferred beyond 0.3.x.
It does not explain the full auth-context model or SDK package map. Use 020-AUTH_CONTEXT_AND_MODES.md for auth context / mode design, 007-CLIENT_SDK_GUIDE.md for the TypeScript SDK adopter guide, and 110-TS_SDK_MIGRATIONS.md for public-surface migration guidance.
Current Release Target
The current release baseline is the 0.3.x line.
The detailed release execution record now lives in CHANGELOG.md and 008-RELEASE_AUTOMATION.md. Keep this roadmap focused on active release constraints, plus future deferrals.
0.3.x Active Track
The 0.3.x line is about making the existing stack explainable, testable, and releasable while allowing targeted breaking changes where they improve host ergonomics and long-term maintainability:
- Keep the TypeScript SDK freeze executable through
public-surface-inventory.json, release-gate tests, evidence files, docs anchors, and110migration entries. - Keep
apps/webuias the primary in-repo reference app for browser, React, dashboard, route policy, shared error, diagnosis, and browser harness evidence. - Keep
outpostsas a downstream adopter calibration case for Angular hosting, backend-driven config projection, strict bearer injection, callback preservation, and provider-neutral route metadata. - Complete release packaging readiness for Rust crates, npm packages, Docker images, and docs site without adding auth features.
- Preserve the current auth-context parity baseline: basic-auth and session remain intentionally thinner than token-set, but their entry paths must stay discoverable and tested.
TypeScript SDK Product Boundary
TypeScript remains the only active SDK productization language for 0.3.x.
The active baseline includes:
- stable foundation helpers in
@securitydept/client - stable root basic-auth and session clients
- provisional browser/server/framework adapters
- provisional browser-owned token-set modes, registry, orchestration, and React Query integration
- real reference proof from
apps/webui - real downstream proof from
outposts
The active baseline excludes:
- built-in chooser UI
- product-flow copy
- app-specific route tables
- reference-app business API wrappers
- non-TS SDK productization
Rust Product Boundary
The reusable Rust package line is the set of workspace library crates under packages/*. apps/server and apps/cli are release artifacts for build/image readiness, not crates.io library publish targets.
The historical [patch.crates-io] openidconnect packaging blocker is closed: the workspace is back on openidconnect = "4". Future release execution still requires a real cargo package check for every publishable crate, without treating --allow-dirty or --no-verify as acceptable evidence.
Docker Product Boundary
The Docker image is a runtime artifact for the reference server plus web UI output. Current release expectations require:
- toolchain versions aligned with
mise.toml/rust-toolchain.tomlor explicitly documented - runtime image assembly through
Dockerfile.runtimefrom prebuilt server, CLI, and web UI artifacts - web UI output copy path matching the real Vite build output
- tag behavior where pre-release tags such as
vX.Y.Z-beta.Ndo not publishlatest - release-acceptable labels, cache, provenance, and platform decisions
Docs Product Boundary
docs/en and docs/zh remain source docs. docsite/ is the VitePress source root; it should expose docsite/docs as a symlink to docs/ and keep only the root README / LICENSE entry pages linked rather than copied.
The project docs should be read as:
000overview and doc index001architecture and crate boundaries002capability matrix005error system design006real-IP strategy007client SDK adopter guide and public-surface snapshot020auth context / mode design021downstream reference case100roadmap and release blockers110TS SDK migration guide
Local test infrastructure docs live with the capability they validate: real-IP Docker/Kubernetes provider test behavior is documented in 006, while release workflow behavior stays in 008.
Deferred Beyond 0.3.x
These topics remain real, but they are outside the active release line:
- mixed-custody token ownership
- stateful BFF / server-side token-set ownership
- built-in chooser UI or router-level product-flow semantics
- heavier OTel / DI themes
- full Rust-side structured-observability/exporter stack
- Kotlin / Swift SDK productization before the TS contract settles