UNPKG

@backstage-community/plugin-rbac-node

Version:

Node.js library for the rbac plugin

54 lines (50 loc) 1.75 kB
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api'; import { RoleConditionalPolicyDecision, PermissionInfo } from '@backstage-community/plugin-rbac-common'; /** * Used to provide a list of pluginIDs on which a permission well-known endpoint is to be searched. * @public */ interface PluginIdProvider { getPluginIds: () => string[]; } /** * @public */ interface RBACProvider { getProviderName(): string; connect(connection: RBACProviderConnection): Promise<void>; refresh(): Promise<void>; } /** * @public */ interface RBACProviderConnection { applyRoles(roles: string[][]): Promise<void>; applyPermissions(permissions: string[][]): Promise<void>; applyConditionalPermissions(conditionalPermissions: RoleConditionalPolicyDecision<PermissionInfo>[]): Promise<void>; } /** * An extension point the exposes the ability to configure additional PluginIDProviders. * * @public */ declare const pluginIdProviderExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<PluginIdProviderExtensionPoint>; /** * The interface for {@link pluginIdProviderExtensionPoint}. * * @public */ type PluginIdProviderExtensionPoint = { addPluginIdProvider(pluginIdProvider: PluginIdProvider): void; }; /** * @public */ declare const rbacProviderExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<RBACProviderExtensionPoint>; /** * @public */ type RBACProviderExtensionPoint = { addRBACProvider(...providers: Array<RBACProvider | Array<RBACProvider>>): void; }; export { type PluginIdProvider, type PluginIdProviderExtensionPoint, type RBACProvider, type RBACProviderConnection, type RBACProviderExtensionPoint, pluginIdProviderExtensionPoint, rbacProviderExtensionPoint };