
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@anpdgovbr/rbac-core
Advanced tools
Core de RBAC para projetos ANPD — Tipos fundamentais e utilitários para sistema de autorização por papéis.
npm install @anpdgovbr/rbac-core@beta
import { toPermissionsMap, pode } from "@anpdgovbr/rbac-core"
// Converte lista de permissões em mapa eficiente
const permissoes = toPermissionsMap([
{ acao: "Exibir", recurso: "Relatorios", permitido: true },
{ acao: "Editar", recurso: "Relatorios", permitido: false },
{ acao: "Criar", recurso: "Usuarios", permitido: true },
])
// Verificação O(1)
const podeExibirRelatorios = pode(permissoes, "Exibir", "Relatorios") // true
const podeEditarRelatorios = pode(permissoes, "Editar", "Relatorios") // false
import { hasAny } from "@anpdgovbr/rbac-core"
// Verifica se possui QUALQUER uma das permissões
const podeAcessarRelatorios = hasAny(permissoes, [
["Exibir", "Relatorios"],
["Criar", "Relatorios"],
["Editar", "Relatorios"],
]) // true (possui "Exibir")
import { toFlatKeyMap } from "@anpdgovbr/rbac-core"
// Para sistemas que usam chaves concatenadas
const flatMap = toFlatKeyMap([{ acao: "Exibir", recurso: "Relatorios", permitido: true }])
// { "Exibir_Relatorios": true }
/** Ação genérica (string para desacoplamento) */
type Action = string
/** Recurso genérico (string para desacoplamento) */
type Resource = string
/** Mapa otimizado de permissões */
type PermissionsMap = Partial<Record<Action, Partial<Record<Resource, boolean>>>>
/** DTO de entrada para conversão */
type PermissionDto = {
acao: Action
recurso: Resource
permitido: boolean
}
toPermissionsMap(list)Converte array de permissões em mapa indexado para consulta O(1).
Parâmetros:
list: Array<PermissionDto> | null | undefined — Lista de permissõesRetorna: PermissionsMap — Mapa otimizado
const mapa = toPermissionsMap([{ acao: "Ler", recurso: "Docs", permitido: true }])
// { "Ler": { "Docs": true } }
pode(perms, acao, recurso)Verifica se uma ação específica é permitida em um recurso.
Parâmetros:
perms: PermissionsMap — Mapa de permissõesacao: Action — Ação a verificarrecurso: Resource — Recurso a verificarRetorna: boolean — true se permitido
const permitido = pode(mapa, "Ler", "Docs") // true
hasAny(perms, pairs)Verifica se QUALQUER dos pares ação/recurso é permitido.
Parâmetros:
perms: PermissionsMap — Mapa de permissõespairs: Array<readonly [Action, Resource]> — Pares a verificarRetorna: boolean — true se pelo menos um for permitido
const temAlguma = hasAny(mapa, [
["Ler", "Docs"],
["Escrever", "Docs"],
]) // true se tiver qualquer uma
npm test
npm run build
npm run typecheck
MIT © 2024 ANPD (Agência Nacional de Proteção de Dados)
FAQs
Core de RBAC (tipos e utilitários) para projetos ANPD.
The npm package @anpdgovbr/rbac-core receives a total of 2 weekly downloads. As such, @anpdgovbr/rbac-core popularity was classified as not popular.
We found that @anpdgovbr/rbac-core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.