Rename all the things

Signed-off-by: Joon Park <joonp@spotify.com>
This commit is contained in:
Joon Park
2021-12-17 14:19:34 +00:00
parent d1801d7166
commit 0e8ec6d974
13 changed files with 131 additions and 89 deletions
+11 -6
View File
@@ -68,16 +68,21 @@ export type PermissionAttributes = {
};
// @public
export class PermissionClient {
constructor(options: { discoveryApi: DiscoveryApi; configApi: Config });
export interface PermissionAuthorizer {
// (undocumented)
authorize(
requests: AuthorizeRequest[],
options?: AuthorizeRequestOptions,
): Promise<AuthorizeResponse[]>;
}
// @public
export class PermissionClient implements PermissionAuthorizer {
constructor(options: { discovery: DiscoveryApi; config: Config });
authorize(
requests: AuthorizeRequest[],
options?: AuthorizeRequestOptions,
): Promise<AuthorizeResponse[]>;
// (undocumented)
protected readonly enabled: boolean;
// (undocumented)
protected shouldBypass(_options?: AuthorizeRequestOptions): Promise<boolean>;
}
// @public
@@ -26,14 +26,14 @@ const server = setupServer();
const token = 'fake-token';
const mockBaseUrl = 'http://backstage:9191/i-am-a-mock-base';
const discoveryApi: DiscoveryApi = {
const discovery: DiscoveryApi = {
async getBaseUrl() {
return mockBaseUrl;
},
};
const client: PermissionClient = new PermissionClient({
discoveryApi,
configApi: new ConfigReader({ permission: { enabled: true } }),
discovery,
config: new ConfigReader({ permission: { enabled: true } }),
});
const mockPermission: Permission = {
@@ -158,8 +158,8 @@ describe('PermissionClient', () => {
},
);
const disabled = new PermissionClient({
discoveryApi,
configApi: new ConfigReader({ permission: { enabled: false } }),
discovery,
config: new ConfigReader({ permission: { enabled: false } }),
});
const response = await disabled.authorize([mockAuthorizeRequest]);
expect(response[0]).toEqual(
@@ -180,8 +180,8 @@ describe('PermissionClient', () => {
},
);
const disabled = new PermissionClient({
discoveryApi,
configApi: new ConfigReader({}),
discovery,
config: new ConfigReader({}),
});
const response = await disabled.authorize([mockAuthorizeRequest]);
expect(response[0]).toEqual(
@@ -29,7 +29,7 @@ import {
} from './types/api';
import { DiscoveryApi } from './types/discovery';
import {
PermissionClientInterface,
PermissionAuthorizer,
AuthorizeRequestOptions,
} from './types/permission';
@@ -67,14 +67,14 @@ const responseSchema = z.array(
* An isomorphic client for requesting authorization for Backstage permissions.
* @public
*/
export class PermissionClient implements PermissionClientInterface {
export class PermissionClient implements PermissionAuthorizer {
private readonly enabled: boolean;
private readonly discoveryApi: DiscoveryApi;
private readonly discovery: DiscoveryApi;
constructor(options: { discoveryApi: DiscoveryApi; configApi: Config }) {
this.discoveryApi = options.discoveryApi;
constructor(options: { discovery: DiscoveryApi; config: Config }) {
this.discovery = options.discovery;
this.enabled =
options.configApi.getOptionalBoolean('permission.enabled') ?? false;
options.config.getOptionalBoolean('permission.enabled') ?? false;
}
/**
@@ -113,7 +113,7 @@ export class PermissionClient implements PermissionClientInterface {
}),
);
const permissionApi = await this.discoveryApi.getBaseUrl('permission');
const permissionApi = await this.discovery.getBaseUrl('permission');
const response = await fetch(`${permissionApi}/authorize`, {
method: 'POST',
body: JSON.stringify(identifiedRequests),
+1 -1
View File
@@ -26,6 +26,6 @@ export type { DiscoveryApi } from './discovery';
export type {
PermissionAttributes,
Permission,
PermissionClientInterface,
PermissionAuthorizer,
AuthorizeRequestOptions,
} from './permission';
@@ -42,7 +42,11 @@ export type Permission = {
resourceType?: string;
};
export interface PermissionClientInterface {
/**
* A client interacting with the permission backend can implement this authorizer interface.
* @public
*/
export interface PermissionAuthorizer {
authorize(
requests: AuthorizeRequest[],
options?: AuthorizeRequestOptions,
@@ -50,7 +54,7 @@ export interface PermissionClientInterface {
}
/**
* Options for authorization requests; currently only an optional auth token.
* Options for authorization requests.
* @public
*/
export type AuthorizeRequestOptions = {