n8n
Version:
n8n Workflow Automation Tool
48 lines (47 loc) • 1.18 kB
TypeScript
export interface RoleResolverContext {
$claims: Record<string, unknown>;
$oidc?: {
idToken: Record<string, unknown>;
userInfo: Record<string, unknown>;
};
$saml?: {
attributes: Record<string, unknown>;
};
$provider: 'oidc' | 'saml' | 'ldap';
$project?: ProjectInfo;
}
export interface RoleMappingRule {
id: string;
expression: string;
role: string;
projectId?: string;
enabled: boolean;
description?: string;
}
export interface RoleMappingConfig {
instanceRoleRules: RoleMappingRule[];
projectRoleRules: RoleMappingRule[];
fallbackInstanceRole: string;
}
export interface ResolvedInstanceRole {
role: string;
matchedRuleId: string | null;
expression: string | null;
isFallback: boolean;
}
export interface ResolvedProjectRole {
projectId: string;
role: string;
matchedRuleId: string;
expression: string;
}
export interface ResolvedRoles {
instanceRole: ResolvedInstanceRole;
projectRoles: Map<string, ResolvedProjectRole>;
}
export interface ProjectInfo {
id: string;
name: string;
type: 'personal' | 'team';
description: string | null;
}