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>
34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
<!-- SPDX-License-Identifier: MPL-2.0 -->
|
|
|
|
# Architecture
|
|
|
|
The package dependency direction is intentionally one-way:
|
|
|
|
```text
|
|
analytics ──> requestlog ──> requestmeta
|
|
abuse ─────────────────────> requestmeta
|
|
authhttp ──> websec ───────> requestmeta
|
|
authhttp ──> auth <───────── authsqlite
|
|
organizations <───────────── authsqlite
|
|
access <──────────────────── authsqlite
|
|
```
|
|
|
|
An ordinary `net/http` application composes whichever branches it needs.
|
|
|
|
Packages never own application routes, templates, authorization policy, cache
|
|
policy, or deployment. Middleware communicates through typed request context.
|
|
Storage and reporting surfaces are interfaces so an application can retain its
|
|
existing database and user interface while replacing one implementation at a
|
|
time.
|
|
|
|
Authentication establishes one user identity and session. Organizations own
|
|
projects, environments, and services; teams group organization members; scoped
|
|
access resolves roles against that hierarchy. Existing `auth` roles remain a
|
|
platform-level compatibility surface and do not implicitly grant access to an
|
|
organization's data. Emergency access is a separate, expiring, audited grant.
|
|
|
|
The package model is developed from explicit threat and data contracts, not by
|
|
moving an existing application's internals into a shared directory. See
|
|
[ADOPTION.md](ADOPTION.md), [GETTING_STARTED.md](GETTING_STARTED.md), and the
|
|
[module-boundary policy](MODULES.md).
|