SubjectMap
SubjectMap<
TResources,TCustomResources,TUserSlug,TOrgSlug,TCustomActions> = { [R in TResources[number] as ExtractSlug<R>]: { action: CrudAction | (HasDrafts<R> extends true ? DraftAction : never) | CustomActionsFor<ExtractSlug<R>, TCustomActions>[“query”] | CustomActionsFor<ExtractSlug<R>, TCustomActions>[“mutation”]; data: DeclaredDoc<InferDocType<R>>; indexes: ExtractIndexNames<R>; indexFields: ExtractIndexFields<R>; queryAction: QueryAction | CustomActionsFor<ExtractSlug<R>, TCustomActions>[“query”] } } &{ [K in keyof TCustomResources]: { action: TCustomResources[K]["actions"][number]; data: TCustomResources[K]["data"] extends DataTypeCarrier<infer D> ? D : never; indexes: never; indexFields: {}; queryAction: never } }&{ [K in AdminCustomSubjectSlug]: { action: typeof ADMIN_CUSTOM_SUBJECTS[K]["actions"][number]; data: never; indexes: never; indexFields: {}; queryAction: never } }&Omit<AuthSubjects<TUserSlug,TOrgSlug,TCustomActions>,ExtractSlug<TResources[number]> | keyofTCustomResources|AdminCustomSubjectSlug>
Defined in: packages/core/src/access/types.ts:582
The complete subject registry: resources (keyed by slug, CRUD + conditional draft actions), custom resources, and the core built-in subjects from ADMIN_CUSTOM_SUBJECTS.
Type Parameters
Section titled “Type Parameters”TResources
Section titled “TResources”TResources extends readonly AccessResource[] = AccessResource[]
Structural resource tuple ({ slug, versions? }).
TCustomResources
Section titled “TCustomResources”TCustomResources extends Record<string, CustomResourceInput> = Record<string, CustomResourceInput>
Custom resource declarations.
TUserSlug
Section titled “TUserSlug”TUserSlug extends CollectionSlug = CollectionSlug
User collection slug
TOrgSlug
Section titled “TOrgSlug”TOrgSlug extends CollectionSlug | undefined = undefined
Organization collection slug
TCustomActions
Section titled “TCustomActions”TCustomActions extends Partial<Record<TResources[number]["slug"] | TUserSlug | Extract<TOrgSlug, string>, CustomActionsInput>> = { }
extends Record<string, CustomActionsInput> = {}, // NEW