@laqus/auth-permissions
v1.9.0
Published
Biblioteca de constantes de autorização da plataforma Laqus para aplicações NestJS/Node.js.
Keywords
Readme
@laqus/auth-permissions
Biblioteca de constantes de autorização da plataforma Laqus para aplicações NestJS/Node.js.
Instalação
npm install @laqus/auth-permissionsO que contém
PlatformActions
Classe estática com todas as actions (LRN + action) da plataforma, organizadas hierarquicamente por domínio, subdomínio e recurso.
import { PlatformActions } from '@laqus/auth-permissions';
// Uso em decorators de autorização
@Authorization.requireAction(PlatformActions.AccountManagement.Permission.Policies.List)
// Uso em guards ou verificações manuais
const action = PlatformActions.PlatformManagement.Quota.Consumos.ConsultarGlobal;
// { lrn: 'lrn:laqus:v1::platform_management/quota:consumos', action: 'consultar_global' }Cada action é um objeto { lrn: string, action: string } que implementa IResourceAction.
Lrn
Classe para parsing, validação, criação e matching de LRNs (Laqus Resource Names).
import { Lrn } from '@laqus/auth-permissions';
// Validar
Lrn.validate('lrn:laqus:v1::motor_calculo/operacao:accrual'); // true
// Parse
const lrn = Lrn.parse('lrn:laqus:v1:acme-tenant:financeiro:contas:12345');
console.log(lrn.domain); // 'financeiro'
console.log(lrn.resource); // 'contas'
console.log(lrn.resourceId); // '12345'
console.log(lrn.tenant); // 'acme-tenant'
// Criar
const resourceLrn = Lrn.forResourceType('securitizacao', 'termos');
console.log(resourceLrn.toString()); // 'lrn:laqus:v1::securitizacao:termos'
// Matching (com suporte a wildcards)
const pattern = Lrn.forAllResourcesOfType('financeiro', 'contas', 'acme-tenant');
const specific = Lrn.parse('lrn:laqus:v1:acme-tenant:financeiro:contas:999');
console.log(specific.matches(pattern)); // trueFormato da LRN
lrn:{company}:{version}:{tenant}:{domain_path}:{resource}[:{resource_id}]| Segmento | Descrição |
|----------|-----------|
| company | Sempre laqus |
| version | Sempre v1 |
| tenant | ID do tenant ou vazio (::) para recursos de plataforma |
| domain_path | Caminho do domínio com subdomínios separados por / |
| resource | Nome do recurso em snake_case |
| resource_id | (Opcional) ID da instância ou * para todas |
Sincronização
Esta lib deve manter paridade com:
- laqus.auth-middleware-api (fonte primária de definição de actions)
- Laqus.Platform.Auth (equivalente .NET)
Toda nova action adicionada ao setup-sync da auth-middleware-api deve ser replicada aqui.
Desenvolvimento
# Build da lib
npm run build:lib
# Publicar release
npm run publish:lib
# Publicar release candidate
npm run publish:rc