@baruk/portal-core
v0.2.1
Published
Institutional Portal Core — shared identity engine (session, password/scrypt, store, service) for the Baruk ecosystem. Framework-agnostic, dependency-injected.
Readme
@baruk/portal-core
Institutional Portal Core — motor de identidade compartilhado do ecossistema Baruk (sessão HMAC, senha scrypt, store, serviço de auth). Framework-agnostic e injetável: recebe store, portalId e secret por parâmetro; não lê process.env, não conhece marca.
Extraído em ECO-02 (ADR-ECO-0014 · A2) do clone byte-a-byte que vivia em baruk-connect e sc-organizacao-contabil. Ficha completa: ENGINE.md.
Uso
import { authenticate } from "@baruk/portal-core/service";
import { createNeonStore } from "@baruk/portal-core/neon-store";
import { createAuthToken } from "@baruk/portal-core/session";
const store = createNeonStore(process.env.MY_DATABASE_URL!); // a INSTÂNCIA injeta a URL
const res = await authenticate(store, "meu-portal", email, senha, ipKey);
// o produto emite o cookie de marca a partir do resultadoO wiring de marca (cookie/paths/env/e-mail/UI/nav) fica no produto. server-only é aplicado pelo consumidor.
Scripts
npm run typecheck—tsc --noEmitnpm test—vitest run(paridade scrypt/HMAC + fluxo de auth via memory-store)npm run test:contract— contrato público do packagenpm run validate:package— build isolado e inspeção de tarball
Distribuição
O package está publicado no npm Registry público (https://registry.npmjs.org, escopo @baruk, acesso public).
Consuma por faixa SemVer — não é necessário file: nem tarball:
npm install @baruk/portal-core@^0.2.0A dependência @baruk/identity também é declarada e resolvida por faixa SemVer pública (^0.2.0).
A publicação é feita pelo pipeline oficial (.github/workflows/publish.yml) via npm Trusted Publishing (OIDC), sem token permanente. Provenance/attestation não é emitido: o npm não gera provenance para pacotes cujo source repository é privado no GitHub, e este repositório permanece privado por decisão de governança (auditoria Codex GPT-5.6, R4.5).
Nota histórica: o consumo por tarball foi validado fora do repositório de origem enquanto a publicação estava pendente. Esse arranjo foi encerrado e não descreve a operação atual.
