forked from EduCraft/curriculum-project-hub
docs: define SaaS capacity controls
This commit is contained in:
@@ -9,7 +9,8 @@ ADR-0020:Hub 长期按 SaaS 形态演进,`Organization` 是客户侧 tenant root
|
||||
不复用 project 的 `read/edit/manage` 角色格,而是另一个控制面。
|
||||
|
||||
本模块只钉死会造成实现分歧的不变量:tenant root 存在、project/team 单归属、team grant
|
||||
不得跨 org。用户身份、外部目录 provider 细节、平台控制面角色集合仍为 `OPEN`。
|
||||
不得跨 org,以及 model provider connection 的凭据归属模式。用户身份、外部目录
|
||||
provider 细节、平台控制面角色集合仍为 `OPEN`。
|
||||
-/
|
||||
|
||||
namespace Spec.System
|
||||
@@ -48,4 +49,20 @@ def TeamProjectGrantScope.WellScoped
|
||||
(teamOrg : I.TeamId → Option I.OrganizationId) : Prop :=
|
||||
∃ o, projectOrg grant.project = some o ∧ teamOrg grant.team = some o
|
||||
|
||||
/-- Organization 的 model provider 凭据归属模式(`PINNED`, ADR-0021):BYOK 由 org
|
||||
管理员提供和管理;platform-managed 由平台管理员为该 org 单独提供和管理。两种模式
|
||||
都不允许无关 org 共用 process-global provider key。模式切换过程仍为 `OPEN`。 -/
|
||||
inductive ProviderCredentialMode where
|
||||
| byok
|
||||
| platformManaged
|
||||
|
||||
/-- Organization 的 model provider connection(`PINNED`, ADR-0021):connection 必须
|
||||
归属一个且仅一个 organization,并明确采用哪一种凭据模式。key/base URL 的加密表示、
|
||||
轮换与 resolver 机制由后续 secret-control-plane 决策规定。 -/
|
||||
structure OrganizationProviderConnection where
|
||||
/-- connection 所属 organization(`PINNED`, ADR-0021)。 -/
|
||||
organization : I.OrganizationId
|
||||
/-- connection 的凭据归属模式(`PINNED`, ADR-0021)。 -/
|
||||
mode : ProviderCredentialMode
|
||||
|
||||
end Spec.System
|
||||
|
||||
Reference in New Issue
Block a user