Update api-reports

Signed-off-by: Joe Porpeglia <josephp@spotify.com>
This commit is contained in:
Joe Porpeglia
2022-03-22 13:53:15 -04:00
committed by Joe Porpeglia
parent 0b98a49509
commit 979d4b976f
5 changed files with 83 additions and 68 deletions
+52 -31
View File
@@ -15,37 +15,11 @@ export type AnyOfCriteria<TQuery> = {
anyOf: NonEmptyArray<PermissionCriteria<TQuery>>;
};
// @public
export type AuthorizeDecision =
| {
result: AuthorizeResult.ALLOW | AuthorizeResult.DENY;
}
| {
result: AuthorizeResult.CONDITIONAL;
conditions: PermissionCriteria<PermissionCondition>;
};
// @public
export type AuthorizeQuery = {
permission: Permission;
resourceRef?: string;
};
// @public
export type AuthorizeRequest = {
items: Identified<AuthorizeQuery>[];
};
// @public
export type AuthorizeRequestOptions = {
token?: string;
};
// @public
export type AuthorizeResponse = {
items: Identified<AuthorizeDecision>[];
};
// @public
export enum AuthorizeResult {
ALLOW = 'ALLOW',
@@ -56,6 +30,14 @@ export enum AuthorizeResult {
// @public
export type BasicPermission = PermissionBase<'basic', {}>;
// @public
export type ConditionalPolicyDecision = {
result: AuthorizeResult.CONDITIONAL;
pluginId: string;
resourceType: string;
conditions: PermissionCriteria<PermissionCondition>;
};
// @public
export function createPermission<TResourceType extends string>(input: {
name: string;
@@ -69,13 +51,42 @@ export function createPermission(input: {
attributes: PermissionAttributes;
}): BasicPermission;
// @public
export type DefinitivePolicyDecision = {
result: AuthorizeResult.ALLOW | AuthorizeResult.DENY;
};
// @public
export type DiscoveryApi = {
getBaseUrl(pluginId: string): Promise<string>;
};
// @public
export type Identified<T> = T & {
export type EvaluatePermissionRequest = {
permission: Permission;
resourceRef?: string;
};
// @public
export type EvaluatePermissionRequestBatch =
PermissionMessageBatch<EvaluatePermissionRequest>;
// @public
export type EvaluatePermissionResponse =
| {
result: AuthorizeResult.ALLOW | AuthorizeResult.DENY;
}
| {
result: AuthorizeResult.CONDITIONAL;
conditions: PermissionCriteria<PermissionCondition>;
};
// @public
export type EvaluatePermissionResponseBatch =
PermissionMessageBatch<EvaluatePermissionResponse>;
// @public
export type IdentifiedPermissionMessage<T> = T & {
id: string;
};
@@ -114,9 +125,9 @@ export type PermissionAttributes = {
export interface PermissionAuthorizer {
// (undocumented)
authorize(
queries: AuthorizeQuery[],
requests: EvaluatePermissionRequest[],
options?: AuthorizeRequestOptions,
): Promise<AuthorizeDecision[]>;
): Promise<EvaluatePermissionResponse[]>;
}
// @public
@@ -131,9 +142,9 @@ export type PermissionBase<TType extends string, TFields extends object> = {
export class PermissionClient implements PermissionAuthorizer {
constructor(options: { discovery: DiscoveryApi; config: Config });
authorize(
queries: AuthorizeQuery[],
queries: EvaluatePermissionRequest[],
options?: AuthorizeRequestOptions,
): Promise<AuthorizeDecision[]>;
): Promise<EvaluatePermissionResponse[]>;
}
// @public
@@ -149,6 +160,16 @@ export type PermissionCriteria<TQuery> =
| NotCriteria<TQuery>
| TQuery;
// @public
export type PermissionMessageBatch<T> = {
items: IdentifiedPermissionMessage<T>[];
};
// @public
export type PolicyDecision =
| DefinitivePolicyDecision
| ConditionalPolicyDecision;
// @public
export type ResourcePermission<TResourceType extends string = string> =
PermissionBase<