conductor/SLICE3.md

72 lines
2.4 KiB
Markdown

# Slice 3: Authentication and Secrets
## Status
Not started
## Objective
Execute every MVP authentication type securely without exposing credentials to the browser or canonical project exports.
## Dependencies
- Existing REST proxy and authentication-type model
- Slice 2 authentication UI contract
- Deployment decision for secret provisioning
## In Scope
- Basic, Bearer, API-key header, API-key query, and anonymous authentication
- Server-side secret references, storage, resolution, redaction, and lifecycle
## Out of Scope
- OAuth 2.0, IBM Cloud IAM, mTLS, and arbitrary authentication scripts
## Tasks
- [ ] Define the MVP secret-reference model and threat assumptions.
- [ ] Select and document the server-side secret storage mechanism.
- [ ] Ensure project JSON contains references and metadata only.
- [ ] Implement safe secret create, update, lookup, and delete APIs.
- [ ] Implement Basic authentication injection.
- [ ] Implement Bearer token injection.
- [ ] Implement API-key header injection.
- [ ] Implement API-key query-parameter injection.
- [ ] Reject missing or incompatible references with structured errors.
- [ ] Redact credentials from logs, errors, history, and frontend responses.
- [ ] Exclude secrets from export and project CRUD responses.
- [ ] Add authentication, failure, and redaction tests.
- [ ] Update state, deployment, and security documentation.
## Acceptance Criteria
- [ ] All five modeled authentication modes execute as documented.
- [ ] Browser-visible traffic and exported JSON never contain stored credentials.
- [ ] Logs and errors redact sensitive values.
- [ ] Missing or invalid secret references fail safely and clearly.
- [ ] Secrets survive the intended MVP deployment lifecycle.
## Validation
- [ ] Backend TypeScript check passes.
- [ ] Authentication and redaction tests pass.
- [ ] Controlled mock-endpoint checks pass.
- [ ] Docker Compose secret provisioning and restart checks pass.
## Risks and Open Questions
- Plaintext secrets in SQLite require an explicit and acceptable MVP policy.
- Query API keys require special URL redaction.
- Secret ownership is limited in a single-user MVP.
## Progress Log
No work recorded yet.
## Handoff
- Last completed: Slice plan created.
- Next action: Write the threat model and select the MVP secret store.
- Known blockers: Secret storage and deployment policy need an explicit decision.