verify / verify (push) Successful in 3m2s
Sanitized allowlisted snapshot of private source 0acd276fb3423405daf7fff26dedc92b8281e2bd. Adds organization, team, invitation, resource hierarchy, scoped access, and audited break-glass foundations while preserving Preview 1. AI-Assistance: OpenAI Codex assisted implementation, testing, security review, and release preparation. Signed-off-by: Cole Speelman <crspeelman@gmail.com>
39 lines
2.0 KiB
Markdown
39 lines
2.0 KiB
Markdown
<!-- SPDX-License-Identifier: MPL-2.0 -->
|
|
|
|
# Threat model
|
|
|
|
The toolkit treats the public network, forwarding headers, request targets,
|
|
cookies, credentials, and stored request records as untrusted. Application code,
|
|
the configured trusted-proxy set, server filesystem permissions, and explicitly
|
|
selected storage adapters are trusted.
|
|
|
|
Controls include explicit proxy trust, bounded parsing, cryptographic request
|
|
and session identifiers, digest-only session storage, Argon2id passwords,
|
|
constant-time comparisons, same-origin and CSRF primitives, fail-closed storage
|
|
errors, separate safe/sensitive analytics projections, organization-scoped
|
|
bindings, single-use invitation digests, and short-lived audited break-glass
|
|
grants.
|
|
|
|
Unsafe methods without an exact Origin or trustworthy same-origin Fetch
|
|
Metadata fail the origin check. Authentication middleware fails closed when its
|
|
service or `__Host-` cookie policy is invalid. Imported request records have
|
|
bounded byte and duration fields before analytics sums them.
|
|
|
|
The toolkit does not sandbox application handlers, secure an incorrectly
|
|
configured reverse proxy, authorize application routes automatically, encrypt a
|
|
compromised host, or decide how long an operator may lawfully retain personal
|
|
request evidence.
|
|
|
|
Applications must pass the authenticated user and requested resource hierarchy
|
|
to `access.Authorize`; possessing a platform-level `auth` role does not bypass
|
|
that decision. Team membership is resolved by the repository rather than
|
|
accepted from request input. Break-glass access lasts at most one hour and is
|
|
not a substitute for ordinary role policy.
|
|
|
|
Local storage adapters assume the parent directory and host account are trusted.
|
|
They reject a symlink at the configured final path and apply private file modes,
|
|
but they do not defend against a concurrent privileged actor replacing path
|
|
ancestors during an open. The synchronous JSONL adapter deliberately favors
|
|
durable, bounded evidence over maximum request throughput; the application owns
|
|
rotation, retention, disk monitoring, and health escalation.
|