To install, run:
npm install competency-acl
This package is for intended use within the competency ecosystem, including but not limited to: Api, pdp, and gateway
export function validateAclArray(acl: string[]): string[]
validateAclArray()
validates an array of actions, ensuring they meet the regex requirements, and are existing actions.
The function also removes any duplicates in the array. For each action in the array validateAcl()
is called.
Returns an expanded version of the acl array given. With all the wildcards expanded to help with verification
export function validateAcl(acl: string): string[]
validateAcl()
validates a single acl string. Ensuring that the string matches the regex and the action exists
ValidationError
is thrown is the service field of the given acl is not valid & when the given acl is not valid
Returns an expanded version of the acl string, if the action was a wildcard, the function returns an array of all actions within the scope of that wildcard
export function condenseAcl(acl: string[]): string[]
condenseAcl()
is given an array of actions and condenses the array returning a new array with possible actions being removed and being replaced with a wilcard.
Ex:
let expanded = [
"competency:competencies:getDraft",
"competency:competencies:getSubmitted",
"competency:competencies:getDeclined",
"competency:competencies:getPublished",
"competency:competencies:getDeprecated"
];
assert(condenseAcl(expanded), ["competency:competencies:get*"]);
In the current version of the competency api, there are no microservices. Which means that the service part of the action will all say competency
Action | Description |
---|---|
competency:competencies:* | Wilcard for Competencies module |
competency:competencies:get* | Get Wildcard, Giving a user all get actions |
competency:competencies:getDraft | Get a competency draft |
competency:competencies:getSubmitted | Get a submitted competency |
competency:competencies:getDeclined | Get a declined competency |
competency:competencies:getPublised | Get a published competency |
competency:competencies:getDeprecated | Get a deprecated competency |
competency:competencies:deleteDraft | Delete a competency draft |
competency:competencies:create | Create a competency |
competency:competencies:version | Version a competency |
Action | Description |
---|---|
competency:name:* | Wilcard for the name field of a competency |
competency:name:updateDraft | Update the name field of a draft competency |
competency:name:updateSubmitted | Update the name field of a submitted competency |
Action | Description |
---|---|
competency:actor:* | Wilcard for the Actor Module |
competency:actor:updateDraft | Update the actor field of a draft competency |
competency:actor:updateSubmitted | Update the actor field of a submitted competency |
Action | Description |
---|---|
competency:condition:* | Wilcard for the Condition Module |
competency:condition:updateDraft | Update the condition field of a draft competency |
competency:condition:updateSubmitted | Update the condition field of a submitted competency |
Action | Description |
---|---|
competency:documentation:* | Wilcard for the Documentation Module |
competency:documentation:updateDraft | Update the documentation field of a draft competency |
competency:documentation:updateSubmitted | Update the documentation field of a submitted competency |
competency:documentation:uploadDraft | Upload documents to a draft competency |
competency:documentation:uploadSubmitted | Upload documents to a submitted competency |
Action | Description |
---|---|
competency:behavior:* | Wilcard for the Behavior Module |
competency:behavior:updateDraft | Update the behavior field of a draft competency |
competency:behavior:updateSubmitted | Update the behavior field of a submitted competency |
Action | Description |
---|---|
competency:degree:* | Wilcard for the Degree Module |
competency:degree:updateDraft | Update the degree field of a draft competency |
competency:degree:updateSubmitted | Update the degree field of a submitted competency |
Action | Description |
---|---|
competency:employability:* | Wilcard for the Employability Module |
competency:employability:updateDraft | Update the employability field of a draft competency |
competency:employability:updateSubmitted | Update the employability field of a submitted competency |
Action | Description |
---|---|
competency:user:* | Wildcard for the User module |
competency:user:getUsers | Get registered users |
competency:user:getProfile | Get a users profile |
competency:user:updateAccount | Update a users account |
competency:user:updateAcl | Update a users acl |
competency:user:create | Create a user |
Action | Description |
---|---|
competency:apiKey:* | Wildcard for the ApiKey module |
competency:apiKey:create | Create an api key |
competency:apiKey:delete | Delete an api key |
competency:apiKey:updateAcl | Update the acl of an api key |
Action | Description |
---|---|
competency:search:* | Wildcard for the Search module |
competency:search:published | Search for published competencies |
competency:search:declined | Search for declined competencies |
competency:search:submitted | Search for submitted competencies |
competency:search:draft | Search for draft competencies |
competency:search:deprecated | Search for deprecated competencies |
Action | Description |
---|---|
competency:lifecycle:* | Wildcard for the Lifecycle module |
competency:lifecycle:deprecate | Deprecate a competency |
competency:lifecycle:submit | Submit a competency |
competency:lifecycle:cancelSubmission | Cancel the submission of a competency |
competency:lifecycle:decline | Decline the submission of a competency |
competency:lifecycle:approve | Approve the submission of a competency |
competency:lifecycle:reviseDeclined | Revise a declined competency |