Move PolicyQuery to permission-node

Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
This commit is contained in:
Vincenzo Scamporlino
2022-03-24 14:20:32 +01:00
parent b1bbb9c760
commit 2903c1fd5d
6 changed files with 38 additions and 29 deletions
+8 -4
View File
@@ -157,12 +157,16 @@ export type PermissionBase<TType extends string, TFields extends object> = {
} & TFields;
// @public
export class PermissionClient implements PermissionAuthorizer {
export class PermissionClient implements PermissionEvaluator {
constructor(options: { discovery: DiscoveryApi; config: Config });
authorize(
queries: EvaluatePermissionRequest[],
options?: AuthorizeRequestOptions,
): Promise<EvaluatePermissionResponse[]>;
requests: AuthorizePermissionRequest[],
options?: EvaluatorRequestOptions,
): Promise<AuthorizePermissionResponse[]>;
query(
queries: QueryPermissionRequest[],
options?: EvaluatorRequestOptions,
): Promise<QueryPermissionResponse[]>;
}
// @public
@@ -91,20 +91,6 @@ export type PolicyDecision =
| DefinitivePolicyDecision
| ConditionalPolicyDecision;
/**
* A query to be evaluated by the {@link PermissionPolicy}.
*
* @remarks
*
* Unlike other parts of the permission API, the policy does not accept a resource ref. This keeps
* the policy decoupled from the resource loading and condition applying logic.
*
* @public
*/
export type PolicyQuery = {
permission: Permission;
};
/**
* A condition returned with a CONDITIONAL authorization response.
*
@@ -36,7 +36,6 @@ export type {
AllOfCriteria,
AnyOfCriteria,
NotCriteria,
PolicyQuery,
} from './api';
export type { DiscoveryApi } from './discovery';
export type {
+14 -8
View File
@@ -5,22 +5,23 @@
```ts
import { AllOfCriteria } from '@backstage/plugin-permission-common';
import { AnyOfCriteria } from '@backstage/plugin-permission-common';
import { AuthorizeRequestOptions } from '@backstage/plugin-permission-common';
import { AuthorizePermissionRequest } from '@backstage/plugin-permission-common';
import { AuthorizePermissionResponse } from '@backstage/plugin-permission-common';
import { BackstageIdentityResponse } from '@backstage/plugin-auth-node';
import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common';
import { Config } from '@backstage/config';
import { DefinitivePolicyDecision } from '@backstage/plugin-permission-common';
import { EvaluatePermissionRequest } from '@backstage/plugin-permission-common';
import { EvaluatePermissionResponse } from '@backstage/plugin-permission-common';
import { EvaluatorRequestOptions } from '@backstage/plugin-permission-common';
import express from 'express';
import { IdentifiedPermissionMessage } from '@backstage/plugin-permission-common';
import { NotCriteria } from '@backstage/plugin-permission-common';
import { Permission } from '@backstage/plugin-permission-common';
import { PermissionAuthorizer } from '@backstage/plugin-permission-common';
import { PermissionCondition } from '@backstage/plugin-permission-common';
import { PermissionCriteria } from '@backstage/plugin-permission-common';
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import { PolicyDecision } from '@backstage/plugin-permission-common';
import { QueryPermissionRequest } from '@backstage/plugin-permission-common';
import { ResourcePermission } from '@backstage/plugin-permission-common';
import { TokenManager } from '@backstage/backend-common';
@@ -178,12 +179,12 @@ export type PolicyQuery = {
};
// @public
export class ServerPermissionClient implements PermissionAuthorizer {
export class ServerPermissionClient implements PermissionEvaluator {
// (undocumented)
authorize(
requests: EvaluatePermissionRequest[],
options?: AuthorizeRequestOptions,
): Promise<EvaluatePermissionResponse[]>;
requests: AuthorizePermissionRequest[],
options?: EvaluatorRequestOptions,
): Promise<AuthorizePermissionResponse[]>;
// (undocumented)
static fromConfig(
config: Config,
@@ -192,5 +193,10 @@ export class ServerPermissionClient implements PermissionAuthorizer {
tokenManager: TokenManager;
},
): ServerPermissionClient;
// (undocumented)
query(
queries: QueryPermissionRequest[],
options?: EvaluatorRequestOptions,
): Promise<PolicyDecision[]>;
}
```
+1 -1
View File
@@ -14,4 +14,4 @@
* limitations under the License.
*/
export type { PermissionPolicy } from './types';
export type { PermissionPolicy, PolicyQuery } from './types';
+15 -1
View File
@@ -15,11 +15,25 @@
*/
import {
Permission,
PolicyDecision,
PolicyQuery,
} from '@backstage/plugin-permission-common';
import { BackstageIdentityResponse } from '@backstage/plugin-auth-node';
/**
* A query to be evaluated by the {@link PermissionPolicy}.
*
* @remarks
*
* Unlike other parts of the permission API, the policy does not accept a resource ref. This keeps
* the policy decoupled from the resource loading and condition applying logic.
*
* @public
*/
export type PolicyQuery = {
permission: Permission;
};
/**
* A policy to evaluate authorization requests for any permissioned action performed in Backstage.
*