diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index 2f283c0d8d..e952425bbf 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -157,12 +157,16 @@ export type PermissionBase = { } & TFields; // @public -export class PermissionClient implements PermissionAuthorizer { +export class PermissionClient implements PermissionEvaluator { constructor(options: { discovery: DiscoveryApi; config: Config }); authorize( - queries: EvaluatePermissionRequest[], - options?: AuthorizeRequestOptions, - ): Promise; + requests: AuthorizePermissionRequest[], + options?: EvaluatorRequestOptions, + ): Promise; + query( + queries: QueryPermissionRequest[], + options?: EvaluatorRequestOptions, + ): Promise; } // @public diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index c1996fc462..1bc9af5ad8 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -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. * diff --git a/plugins/permission-common/src/types/index.ts b/plugins/permission-common/src/types/index.ts index dd644ff345..f244a70b1a 100644 --- a/plugins/permission-common/src/types/index.ts +++ b/plugins/permission-common/src/types/index.ts @@ -36,7 +36,6 @@ export type { AllOfCriteria, AnyOfCriteria, NotCriteria, - PolicyQuery, } from './api'; export type { DiscoveryApi } from './discovery'; export type { diff --git a/plugins/permission-node/api-report.md b/plugins/permission-node/api-report.md index 57379dd68b..3cf6b70d08 100644 --- a/plugins/permission-node/api-report.md +++ b/plugins/permission-node/api-report.md @@ -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; + requests: AuthorizePermissionRequest[], + options?: EvaluatorRequestOptions, + ): Promise; // (undocumented) static fromConfig( config: Config, @@ -192,5 +193,10 @@ export class ServerPermissionClient implements PermissionAuthorizer { tokenManager: TokenManager; }, ): ServerPermissionClient; + // (undocumented) + query( + queries: QueryPermissionRequest[], + options?: EvaluatorRequestOptions, + ): Promise; } ``` diff --git a/plugins/permission-node/src/policy/index.ts b/plugins/permission-node/src/policy/index.ts index 0b7e03cc7c..f151cfb4fb 100644 --- a/plugins/permission-node/src/policy/index.ts +++ b/plugins/permission-node/src/policy/index.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export type { PermissionPolicy } from './types'; +export type { PermissionPolicy, PolicyQuery } from './types'; diff --git a/plugins/permission-node/src/policy/types.ts b/plugins/permission-node/src/policy/types.ts index 992ad3a1cf..0f469cfbfe 100644 --- a/plugins/permission-node/src/policy/types.ts +++ b/plugins/permission-node/src/policy/types.ts @@ -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. *