Context
Replace the hardcoded dev token with the real (deliberately simple) OSS auth: static
per-workspace tokens via the AuthProvider port. A valid token operates the workspace;
granular permissions are enterprise territory.
Deliverables
- Token entity: name, created_at, hashed secret (store a hash, show the secret once at
creation), revoked flag.
AuthProvider default adapter backed by the metadata store; validation on every request
via FastAPI dependency; 401 with a stable error body when missing/invalid/revoked.
/health stays unauthenticated.
Acceptance criteria
Context
Replace the hardcoded dev token with the real (deliberately simple) OSS auth: static
per-workspace tokens via the
AuthProviderport. A valid token operates the workspace;granular permissions are enterprise territory.
Deliverables
creation), revoked flag.
AuthProviderdefault adapter backed by the metadata store; validation on every requestvia FastAPI dependency; 401 with a stable error body when missing/invalid/revoked.
/healthstays unauthenticated.Acceptance criteria
/healthrejects unauthenticated requests (walked via theOpenAPI route table in a test)