@backstage-community/plugin-rbac-backend
Version:
65 lines (60 loc) • 1.96 kB
TypeScript
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
import { LoggerService, DiscoveryService, AuthService, UserInfoService, HttpAuthService, AuditorService, LifecycleService, PermissionsRegistryService, PermissionsService } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express, { Router } from 'express';
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
import { PluginIdProvider, RBACProvider } from '@backstage-community/plugin-rbac-node';
export { PluginIdProvider } from '@backstage-community/plugin-rbac-node';
import { PolicyExtensionPoint } from '@backstage/plugin-permission-node/alpha';
/**
* @public
*/
interface RouterOptions {
logger: LoggerService;
config: Config;
}
/**
* @public
*/
declare function createRouter(options: RouterOptions): Promise<express.Router>;
/**
* @public
*/
type EnvOptions = {
config: Config;
logger: LoggerService;
discovery: DiscoveryService;
permissions: PermissionEvaluator;
auth: AuthService;
userInfo: UserInfoService;
httpAuth: HttpAuthService;
auditor: AuditorService;
lifecycle: LifecycleService;
permissionsRegistry: PermissionsRegistryService;
policy: PolicyExtensionPoint;
};
/**
* @public
*/
type RBACRouterOptions = {
config: Config;
logger: LoggerService;
auth: AuthService;
httpAuth: HttpAuthService;
permissions: PermissionsService;
permissionsRegistry: PermissionsRegistryService;
auditor: AuditorService;
};
/**
* @public
*/
declare class PolicyBuilder {
static build(env: EnvOptions, pluginIdProvider?: PluginIdProvider, rbacProviders?: Array<RBACProvider>): Promise<Router>;
}
/**
* @public
* RBAC plugin
*
*/
declare const rbacPlugin: _backstage_backend_plugin_api.BackendFeature;
export { type EnvOptions, PolicyBuilder, type RBACRouterOptions, type RouterOptions, createRouter, rbacPlugin as default };