@backstage-community/plugin-rbac-node
Version:
Node.js library for the rbac plugin
52 lines (48 loc) • 1.52 kB
TypeScript
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
/**
* 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>;
}
/**
* 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 };