公共 API 参考(@saas/contracts + @core/saas-kit + apps/api 对外接口)
    Preparing search index...

    系统角色静态 seed 死数据(module-rbac-dynamic-roles §2.1/§2.3·丙裁「全 DB 化删代码表」)。

    定位:本文件是数据、不是规则——旧 TENANT_RULES 矩阵(2026-10-17 CASL 片)逐格 原样迁为死数据,供两处消费:① lazy-ensure:租户首次解析授权时无角色行则按本数据落 organization_role/organization_role_grant 三系统角色(幂等·is_system=true 不可改不可删); ② 迁移/seed 脚本回填。DB grant 行才是授权事实 SSOT,本数据落库后即不再被裁决链 直接消费(S2 checker 换 DB 源后本文件仅剩 ensure 职责)。

    语义注记(平移自旧矩阵注释):Member/Invitation 的 read = 现状对拍扩项(BA 1.7.7 内置端点仅验 isMember·全成员可读),非新增放权;member 对 Organization 零权限。 Role/RoleGrant 格 = 本片新增管理职权(module-rbac-dynamic-roles §2.5/DoD:自建角色 职权仅 owner/admin·member 不可见),非旧矩阵内容;旧矩阵四 subject 格逐格不动(对拍锁测)。 conditions 恒缺省 = 整 subject 级(实例级 conditions 仅来自 DB 自定义 grant 行·S4)。

    interface SystemRoleGrantSeed {
        actions: readonly ("create" | "read" | "update" | "delete" | "cancel")[];
        subject:
            | "Organization"
            | "Member"
            | "Invitation"
            | "Workspace"
            | "Role"
            | "RoleGrant";
    }
    Index
    actions: readonly ("create" | "read" | "update" | "delete" | "cancel")[]

    动作集合。

    subject:
        | "Organization"
        | "Member"
        | "Invitation"
        | "Workspace"
        | "Role"
        | "RoleGrant"

    被授权资源主体。