n8n
Version:
n8n Workflow Automation Tool
37 lines (36 loc) • 1.41 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import type { User } from '@n8n/db';
export interface ProtectedResource {
id: string;
displayName?: string;
getResourceUrl(): string;
getResourceUrls?(): string[];
getAudiences(): string[];
scopes: string[];
getScopeTools?(): Record<string, string[]>;
isDefault?: boolean;
getAllowedRedirectUris?(): Promise<string[]>;
authorize(user: User): Promise<boolean>;
}
export interface ProtectedResourceResolver {
readonly id: string;
readonly scopes: string[];
resolveByUrl(resourceUrl: string): Promise<ProtectedResource | undefined>;
resolveByPath(pathname: string): Promise<ProtectedResource | undefined>;
}
export declare class ProtectedResourceRegistry {
private readonly logger;
private readonly resources;
private readonly resolvers;
constructor(logger: Logger);
register(resource: ProtectedResource): void;
registerResolver(resolver: ProtectedResourceResolver): void;
getById(id: string): ProtectedResource | undefined;
getByResourceUrl(resourceUrl: string): Promise<ProtectedResource | undefined>;
getByResourcePath(pathname: string): Promise<ProtectedResource | undefined>;
private logResolverFailure;
getAll(): ProtectedResource[];
getDefaultResource(): ProtectedResource | undefined;
getAllAudiences(): string[];
getAllScopes(): string[];
}