Avnology ID
SDKsTypeScript SDKType Reference

Permission Types

TypeScript type definitions for permissions, permission checks, and relationship tuples.

Permission Types

CheckPermissionParams

interface CheckPermissionParams {
  subject: string;     // "user:usr_abc123" or "group:grp_abc123"
  relation: string;    // "viewer", "editor", "admin", "owner", "member"
  object: string;      // "project:proj_abc123", "organization:org_abc123"
}

GrantPermissionParams

interface GrantPermissionParams {
  subject: string;
  relation: string;
  object: string;
}

ListObjectsParams

interface ListObjectsParams {
  subject: string;
  relation: string;
  objectType: string;    // "project", "organization", "document"
  pageSize?: number;
  pageToken?: string;
}

ObjectList

interface ObjectList {
  objects: string[];           // ["project:proj_abc123", "project:proj_xyz789"]
  nextPageToken: string | null;
}

SubjectList

interface SubjectList {
  subjects: string[];          // ["user:usr_jane", "group:grp_engineering"]
  nextPageToken: string | null;
}

PermissionTree

Returned by expand(). Represents the full relationship graph for a permission.

interface PermissionTree {
  type: "union" | "intersection" | "exclusion" | "leaf" | "computed" | "tuple_to_userset";
  subject?: string;
  relation?: string;
  children?: PermissionTree[];
}

Built-in relations

RelationDescriptionTypical use
ownerFull control, can deleteOrganization owners
adminManage settings and membersOrganization admins
memberStandard accessOrganization members
viewerRead-only accessLimited access users
billingBilling and subscription managementFinance team
editorCreate and modify contentProject editors

See also

On this page