@backstage/plugin-permission-common
Advanced tools
Comparing version 0.0.0-nightly-20220328023349 to 0.0.0-nightly-20220329023345
# @backstage/plugin-permission-common | ||
## 0.0.0-nightly-20220328023349 | ||
## 0.0.0-nightly-20220329023345 | ||
### Minor Changes | ||
- 8012ac46a0: Add `resourceType` property to `PermissionCondition` type to allow matching them with `ResourcePermission` instances. | ||
- c98d271466: Refactor api types into more specific, decoupled names. | ||
@@ -20,2 +21,3 @@ | ||
- 8012ac46a0: Add `isPermission` helper method. | ||
- 95284162d6: - Add more specific `Permission` types. | ||
@@ -22,0 +24,0 @@ - Add `createPermission` helper to infer the appropriate type for some permission input. |
@@ -40,2 +40,5 @@ 'use strict'; | ||
function isPermission(permission, comparedPermission) { | ||
return permission.name === comparedPermission.name; | ||
} | ||
function isResourcePermission(permission, resourceType) { | ||
@@ -82,2 +85,3 @@ if (!("resourceType" in permission)) { | ||
rule: zod.z.string(), | ||
resourceType: zod.z.string(), | ||
params: zod.z.array(zod.z.unknown()) | ||
@@ -149,2 +153,3 @@ }).strict().or(zod.z.object({ anyOf: zod.z.array(permissionCriteriaSchema).nonempty() }).strict()).or(zod.z.object({ allOf: zod.z.array(permissionCriteriaSchema).nonempty() }).strict()).or(zod.z.object({ not: permissionCriteriaSchema }).strict())); | ||
exports.isDeletePermission = isDeletePermission; | ||
exports.isPermission = isPermission; | ||
exports.isReadPermission = isReadPermission; | ||
@@ -151,0 +156,0 @@ exports.isResourcePermission = isResourcePermission; |
@@ -157,3 +157,4 @@ import { Config } from '@backstage/config'; | ||
*/ | ||
declare type PermissionCondition<TParams extends unknown[] = unknown[]> = { | ||
declare type PermissionCondition<TResourceType extends string = string, TParams extends unknown[] = unknown[]> = { | ||
resourceType: TResourceType; | ||
rule: string; | ||
@@ -234,2 +235,7 @@ params: TParams; | ||
/** | ||
* Check if the two parameters are equivalent permissions. | ||
* @public | ||
*/ | ||
declare function isPermission<T extends Permission>(permission: Permission, comparedPermission: T): permission is T; | ||
/** | ||
* Check if a given permission is a {@link ResourcePermission}. When | ||
@@ -315,2 +321,2 @@ * `resourceType` is supplied as the second parameter, also checks if | ||
export { AllOfCriteria, AnyOfCriteria, AuthorizeRequestOptions, AuthorizeResult, BasicPermission, ConditionalPolicyDecision, DefinitivePolicyDecision, DiscoveryApi, EvaluatePermissionRequest, EvaluatePermissionRequestBatch, EvaluatePermissionResponse, EvaluatePermissionResponseBatch, IdentifiedPermissionMessage, NotCriteria, Permission, PermissionAttributes, PermissionAuthorizer, PermissionBase, PermissionClient, PermissionCondition, PermissionCriteria, PermissionMessageBatch, PolicyDecision, ResourcePermission, createPermission, isCreatePermission, isDeletePermission, isReadPermission, isResourcePermission, isUpdatePermission }; | ||
export { AllOfCriteria, AnyOfCriteria, AuthorizeRequestOptions, AuthorizeResult, BasicPermission, ConditionalPolicyDecision, DefinitivePolicyDecision, DiscoveryApi, EvaluatePermissionRequest, EvaluatePermissionRequestBatch, EvaluatePermissionResponse, EvaluatePermissionResponseBatch, IdentifiedPermissionMessage, NotCriteria, Permission, PermissionAttributes, PermissionAuthorizer, PermissionBase, PermissionClient, PermissionCondition, PermissionCriteria, PermissionMessageBatch, PolicyDecision, ResourcePermission, createPermission, isCreatePermission, isDeletePermission, isPermission, isReadPermission, isResourcePermission, isUpdatePermission }; |
@@ -13,2 +13,5 @@ import { ResponseError } from '@backstage/errors'; | ||
function isPermission(permission, comparedPermission) { | ||
return permission.name === comparedPermission.name; | ||
} | ||
function isResourcePermission(permission, resourceType) { | ||
@@ -55,2 +58,3 @@ if (!("resourceType" in permission)) { | ||
rule: z.string(), | ||
resourceType: z.string(), | ||
params: z.array(z.unknown()) | ||
@@ -117,3 +121,3 @@ }).strict().or(z.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() }).strict()).or(z.object({ allOf: z.array(permissionCriteriaSchema).nonempty() }).strict()).or(z.object({ not: permissionCriteriaSchema }).strict())); | ||
export { AuthorizeResult, PermissionClient, createPermission, isCreatePermission, isDeletePermission, isReadPermission, isResourcePermission, isUpdatePermission }; | ||
export { AuthorizeResult, PermissionClient, createPermission, isCreatePermission, isDeletePermission, isPermission, isReadPermission, isResourcePermission, isUpdatePermission }; | ||
//# sourceMappingURL=index.esm.js.map |
{ | ||
"name": "@backstage/plugin-permission-common", | ||
"description": "Isomorphic types and client for Backstage permissions and authorization", | ||
"version": "0.0.0-nightly-20220328023349", | ||
"version": "0.0.0-nightly-20220329023345", | ||
"main": "dist/index.cjs.js", | ||
@@ -51,3 +51,3 @@ "types": "dist/index.d.ts", | ||
"devDependencies": { | ||
"@backstage/cli": "^0.0.0-nightly-20220328023349", | ||
"@backstage/cli": "^0.0.0-nightly-20220329023345", | ||
"@types/jest": "^26.0.7", | ||
@@ -54,0 +54,0 @@ "msw": "^0.35.0" |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
65018
600