Skip to content

feat(utilitarios): busca opt-in dos utilitários centrais (api-utilitarios) - #21

Open
JoelFrancisco wants to merge 1 commit into
masterfrom
feature-utilitarios-fetch-concat
Open

feat(utilitarios): busca opt-in dos utilitários centrais (api-utilitarios)#21
JoelFrancisco wants to merge 1 commit into
masterfrom
feature-utilitarios-fetch-concat

Conversation

@JoelFrancisco

Copy link
Copy Markdown

O que muda

bth-utilitarios passa a, opcionalmente, buscar os utilitários centrais cadastrados na api-utilitarios (visíveis para a identidade do usuário) e concatená-los aos utilitários definidos pelo próprio sistema.

  • Opt-in pela flag buscar-utilitarios (default false). Desligada, o comportamento é idêntico ao legado: renderiza só a prop utilitarios, sem nenhum acesso a ___bth nem rede.
  • Host por ambiente (test/prod) resolvido a partir do variaveis.js da aplicação (___bth.envs.suite.utilitarios.v1.host), com override pelo prop utilitarios-host.
  • Dedup por rota na concatenação — os utilitários do sistema têm precedência.
  • Fail-open: se a chamada à api-utilitarios falhar, o componente renderiza apenas os do sistema (warn no console, sem quebrar a UI).

Como usar

var utilitarios = document.querySelector('bth-utilitarios');

utilitarios.utilitarios = [ /* utilitários hardcoded do sistema */ ];

// habilita a busca central; host vem do variaveis.js, salvo override
utilitarios.buscarUtilitarios = true;
utilitarios.authorization = authorizationConfig; // { getAuthorization(), handleUnauthorizedAccess() }
// utilitarios.utilitariosHost = 'https://utilitarios.test.betha.cloud'; // opcional (override)

Implementação

  • Novo UtilitariosService isolado (mesmo padrão dos componentes networked, ex.: pesquisa/notificacoes).
  • Props novas: buscarUtilitarios, authorization, utilitariosHost (utilitarios inalterada).
  • bump 1.8.0 → 1.9.0; readme.md e components.d.ts regenerados.

Testes

  • utilitarios.service.spec.ts (novo): fetch + mapeamento (dropa id, default possuiPermissao=true), rejeita em não-2xx.
  • utilitarios.spec.ts: flag off ⇒ sem fetch; concat + dedup por rota; host vindo do ___bth; fail-open em 500.
  • 14/14 verdes, build e lint OK (rodados com Node 20 via mise — Stencil 1.x).

Notas / follow-up

  • A publicação no npm é disparada por tag v* (não pelo merge); a versão já está bumpada em package.json. A tag fica para um passo separado.
  • Dependência de plataforma: a chave utilitarios ainda não está registrada no env-registry (___bth.envs.suite). Até registrar, os consumidores precisam passar utilitarios-host via prop.

…rios)

bth-utilitarios passa a, opcionalmente, buscar os utilitários centrais
visíveis ao usuário na api-utilitarios e concatená-los aos definidos pelo
sistema (dedup por rota, com os do sistema tendo precedência).

- flag `buscarUtilitarios` (default false) habilita o lookup; sem ela o
  comportamento é idêntico ao legado (renderiza só `utilitarios`)
- host resolvido por ambiente (test/prod) via variaveis.js
  (___bth.envs.suite.utilitarios.v1.host), com override pelo prop
  `utilitariosHost`
- fail-open: se a chamada falhar, renderiza apenas os do sistema
- novo UtilitariosService + specs (service e componente, 14/14 verdes)
- bump 1.8.0 -> 1.9.0; readme/components.d.ts regenerados
@JoelFrancisco JoelFrancisco self-assigned this Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant