forked from EduCraft/curriculum-project-hub
docs: define SaaS capacity controls
This commit is contained in:
@@ -29,8 +29,10 @@ The audit used these upstream requirements:
|
||||
run's project workspace.
|
||||
- ADR-0019: authorization is evaluated against principals resolved at request
|
||||
time so membership changes take effect immediately.
|
||||
- ADR-0021: customer Feishu and model-provider credentials are org-scoped
|
||||
secrets, encrypted at rest, and accessed through a resolver.
|
||||
- ADR-0021: Feishu and model-provider credentials are org-scoped secrets,
|
||||
encrypted at rest, and accessed through a resolver. Provider ownership may be
|
||||
Organization-managed BYOK or a distinct platform-managed connection for that
|
||||
Organization; neither mode permits a process-global shared key.
|
||||
|
||||
## Confirmed protections
|
||||
|
||||
@@ -130,10 +132,10 @@ encrypted credentials "deferred", although ADR-0021 says they **must** be
|
||||
org-scoped, encrypted at rest, and accessed through a resolver.
|
||||
|
||||
`EnvRuntimeSettings.provider` similarly discards its `scope` argument and uses
|
||||
one global OpenRouter token for every project. This both leaks tenant ownership
|
||||
of credentials and makes the accepted "customers supply their own provider
|
||||
keys" accounting model false. The schema has no encrypted credential store,
|
||||
key version, rotation state, or resolver seam.
|
||||
one global OpenRouter token for every project. This erases the accepted
|
||||
per-Organization provider mode and makes both BYOK and platform-managed cost
|
||||
attribution false. The schema has no encrypted credential store, key version,
|
||||
rotation state, or resolver seam.
|
||||
|
||||
This is also a product reachability blocker: one customer-owned Feishu app
|
||||
cannot receive bot/OAuth traffic for unrelated customer tenants under the
|
||||
@@ -248,7 +250,9 @@ Production readiness requires automated proof of all of the following:
|
||||
organization, project, run, and pending action consistently.
|
||||
4. ACTIVE Organization status is enforced in the shared authorization seam.
|
||||
5. Feishu and provider credentials resolve by Organization, are encrypted at
|
||||
rest with versioned keys, never enter logs/agent tools, and can rotate.
|
||||
rest with versioned keys, never enter logs/agent tools, and can rotate;
|
||||
provider resolution honors either Organization-managed BYOK or a distinct
|
||||
platform-managed connection for that Organization.
|
||||
6. Cross-org HTTP and Prisma service tests remain green, while new negative
|
||||
tests cover every finding above.
|
||||
7. Production Node and Rust dependency audits pass with no ignored
|
||||
|
||||
Reference in New Issue
Block a user