Warn if permission backend is used without permissions enabled

Signed-off-by: Joe Porpeglia <josephp@spotify.com>
This commit is contained in:
Joe Porpeglia
2022-02-14 12:45:44 -05:00
committed by Joe Porpeglia
parent a929ef20d3
commit e2cf0662eb
5 changed files with 38 additions and 2 deletions
+3
View File
@@ -3,6 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { Config } from '@backstage/config';
import express from 'express';
import { IdentityClient } from '@backstage/plugin-auth-node';
import { Logger as Logger_2 } from 'winston';
@@ -14,6 +15,8 @@ export function createRouter(options: RouterOptions): Promise<express.Router>;
// @public
export interface RouterOptions {
// (undocumented)
config: Config;
// (undocumented)
discovery: PluginEndpointDiscovery;
// (undocumented)
@@ -26,6 +26,7 @@ import {
import { PermissionIntegrationClient } from './PermissionIntegrationClient';
import { createRouter } from './router';
import { ConfigReader } from '@backstage/config';
const mockApplyConditions: jest.MockedFunction<
InstanceType<typeof PermissionIntegrationClient>['applyConditions']
@@ -63,6 +64,7 @@ describe('createRouter', () => {
beforeAll(async () => {
const router = await createRouter({
config: new ConfigReader({ permission: { enabled: true } }),
logger: getVoidLogger(),
discovery: {
getBaseUrl: jest.fn(),
@@ -44,6 +44,7 @@ import {
import { PermissionIntegrationClient } from './PermissionIntegrationClient';
import { memoize } from 'lodash';
import DataLoader from 'dataloader';
import { Config } from '@backstage/config';
const querySchema: z.ZodSchema<Identified<AuthorizeQuery>> = z.object({
id: z.string(),
@@ -79,6 +80,7 @@ export interface RouterOptions {
discovery: PluginEndpointDiscovery;
policy: PermissionPolicy;
identity: IdentityClient;
config: Config;
}
const handleRequest = async (
@@ -139,7 +141,13 @@ const handleRequest = async (
export async function createRouter(
options: RouterOptions,
): Promise<express.Router> {
const { policy, discovery, identity } = options;
const { policy, discovery, identity, config, logger } = options;
if (!config.getOptionalBoolean('permission.enabled')) {
logger.warn(
'Permission backend started with permissions disabled. Enable permissions by setting permission.enabled=true.',
);
}
const permissionIntegrationClient = new PermissionIntegrationClient({
discovery,