@cartoriocriciuma/rbac-types
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-alpha.1 • Public • Published

@cartoriocriciuma/rbac-types

Pacote contendo as definições de tipos para o sistema centralizado de RBAC (Role-Based Access Control).

Instalação

npm install @cartoriocriciuma/rbac-types

Conteúdo

Interfaces de Permissões

  • Permission: Define a estrutura básica de uma permissão no sistema.

    interface Permission {
      id: string;
      codigo: string;
      nome: string;
      descricao: string;
      modulo: string;
      grupo?: string;
    }
  • PermissionCheck: Interface para verificação de permissões.

    interface PermissionCheck {
      codigo: string;
      modulo?: string;
    }
  • PermissionCheckResult: Resultado da verificação de permissões.

    interface PermissionCheckResult {
      granted: boolean;
      permission?: Permission;
    }
  • GrupoPermissao: Definição de um grupo de permissões.

    interface GrupoPermissao {
      nome: string;
      descricao: string;
      permissoes: Permission[];
    }
  • PermissoesAgrupadas: Permissões organizadas por grupos.

    interface PermissoesAgrupadas {
      [grupo: string]: Permission[];
    }

Interfaces de Papéis (Roles)

  • Papel: Definição básica de um papel no sistema.

    interface Papel {
      id: string;
      nome: string;
      descricao: string;
      ativo: boolean;
    }
  • PapelPermissao: Associação entre papel e permissão.

    interface PapelPermissao {
      papelId: string;
      permissionId: string;
    }
  • PapelDetalhado: Papel com suas permissões.

    interface PapelDetalhado extends Papel {
      permissoes: Permission[];
    }
  • CreatePapelDto: DTO para criação de papéis.

    interface CreatePapelDto {
      nome: string;
      descricao: string;
      ativo: boolean;
      permissaoIds?: string[];
    }
  • UpdatePapelDto: DTO para atualização de papéis.

    interface UpdatePapelDto {
      nome?: string;
      descricao?: string;
      ativo?: boolean;
      permissaoIds?: string[];
    }

Interfaces de Manifestos

  • PermissaoManifesto: Definição de permissão em um manifesto.

    interface PermissaoManifesto {
      codigo: string;
      nome: string;
      descricao: string;
      grupo?: string;
    }
  • ManifestoRBAC: Estrutura completa de um manifesto de permissões.

    interface ManifestoRBAC {
      modulo: string;
      versao: string;
      permissoes: PermissaoManifesto[];
    }
  • ModuloResultado: Resultado do processamento de um módulo.

    interface ModuloResultado {
      modulo: string;
      adicionadas: number;
      atualizadas: number;
      removidas: number;
      ignoradas: number;
      erros: string[];
    }
  • ResultadoSincronizacao: Resultado completo da sincronização.

    interface ResultadoSincronizacao {
      sucesso: boolean;
      mensagem: string;
      timestamp: Date;
      modulos: ModuloResultado[];
    }

Uso

import { Permission, Papel, ManifestoRBAC } from '@cartoriocriciuma/rbac-types';

// Exemplo de definição de uma permissão
const minhaPermissao: Permission = {
  id: '1',
  codigo: 'USUARIO:VISUALIZAR',
  nome: 'Visualizar Usuários',
  descricao: 'Permite visualizar a lista de usuários do sistema',
  modulo: 'usuarios',
  grupo: 'Usuários'
};

// Exemplo de manifesto
const meuManifesto: ManifestoRBAC = {
  modulo: 'financeiro',
  versao: '1.0.0',
  permissoes: [
    {
      codigo: 'FINANCEIRO:RELATORIO:GERAR',
      nome: 'Gerar Relatório Financeiro',
      descricao: 'Permite gerar relatórios financeiros',
      grupo: 'Relatórios'
    },
    {
      codigo: 'FINANCEIRO:PAGAMENTO:APROVAR',
      nome: 'Aprovar Pagamento',
      descricao: 'Permite aprovar pagamentos',
      grupo: 'Pagamentos'
    }
  ]
};

Contribuindo

Veja as instruções de contribuição no arquivo CONTRIBUTING.md.

Licença

ISC

Readme

Keywords

Package Sidebar

Install

npm i @cartoriocriciuma/rbac-types

Weekly Downloads

9

Version

1.0.0-alpha.1

License

ISC

Unpacked Size

4.79 kB

Total Files

2

Last publish

Collaborators

  • guilhermecelso