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

    PermissionChecker.can 入参(一次授权裁决所需的上下文 + 声明)。

    interface PermissionCheckInput {
        action: "create" | "read" | "update" | "delete" | "cancel";
        organizationId?: string;
        resource?: Record<string, unknown>;
        role?: string;
        subject:
            | "Organization"
            | "Member"
            | "Invitation"
            | "Workspace"
            | "Role"
            | "RoleGrant";
        userId?: string;
    }
    Index
    action: "create" | "read" | "update" | "delete" | "cancel"

    授权动作(CASL can 第一元组参)。

    organizationId?: string

    ALS 活动租户(规则分区键);undefined = 无租户上下文(适配侧必拒)。

    resource?: Record<string, unknown>

    实例级判定的资源快照(S4·check 级)。省略 = 类型级裁决(守卫路径·conditions 行保守 deny); 传入 = 适配侧携 __caslSubjectType__=subject 交 CASL mongo 匹配带条件的 grant 行。由应用层「先取资源再判」供给, 不经全局守卫(守卫在资源加载前运行)。

    role?: string

    ALS 预注入的活动租户成员角色 key(系统三 key 或自定义 key);undefined = 无/封禁/非法值。

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

    被授权资源主体。

    userId?: string

    绑定 grant conditions 中 {{userId}} 模板的当前操作者 id(实例级判定所需;缺省则模板不可解析 → 保守 deny)。