Authentication on every call
Each operation re-checks the live principal and session state. Revoked, expired or replayed credentials are denied on the very next call.
Security
SHAMPOO enforces its own boundaries on every call. The host, network and secrets around it are the operator's responsibility, and this page says exactly where the line is.
Enforced by the platform
Each operation re-checks the live principal and session state. Revoked, expired or replayed credentials are denied on the very next call.
New access is issued by an authorised conductor as a single-use ticket binding user, role and projects. The ticket burns on use; bootstrap secrets are file-protected and rotated by re-issue, never by editing.
A profile is an independently authorised memory boundary. A session is bound to the profile it opened in and cannot cross into another.
Inside a profile, principals hold an explicit project grant list. Ungranted content reads as absent (empty lists, zero counts), never as a refusal that confirms something exists.
Credential, scope and privilege problems produce generic denials. The service never confirms the existence of foreign projects, principals or objects.
Durable objects move between lifecycle states with an audit record of who, when and why. There is no physical delete path to abuse or to lose history through.
Humans, agents, services and automation never share a principal. Assignment of work is a coordination hint; it grants no authority.
Enforced by you
The platform cannot provision your certificates, guard your secrets or choose your network position. These remain yours.
Visibility
SHAMPOO is not built to hide autonomous activity. Ambiguous context can lock for a human answer, inbound material can require review before becoming agreed state, and agreements record named participants. The operator sees what happened and why.