Problem
The current local login returns an opaque bearer session, but the HTTP API exposes no logout endpoint, administrator revocation flow, password-change invalidation, or explicit cleanup policy for expired sessions. A stolen token remains usable until TTL expiry and successful logins can grow the session table indefinitely.
This is distinct from browser-cookie lifecycle tracked by #122: the existing bearer admin API also needs a complete session lifecycle.
Acceptance criteria
Problem
The current local login returns an opaque bearer session, but the HTTP API exposes no logout endpoint, administrator revocation flow, password-change invalidation, or explicit cleanup policy for expired sessions. A stolen token remains usable until TTL expiry and successful logins can grow the session table indefinitely.
This is distinct from browser-cookie lifecycle tracked by #122: the existing bearer admin API also needs a complete session lifecycle.
Acceptance criteria
Cache-Control: no-store.