Files
2026-06-04 16:39:30 +00:00

3.8 KiB

export_error_log

Script TypeScript que consulta erros de regra de negócio (BusinessRuleError) na API do Planview Adaptive Work (Clarizen) e imprime o resultado no terminal.

A comunicação com a API usa a biblioteca @arco/clarizen-lib, instalada automaticamente via Git ao rodar npm install.

Pré-requisitos

  • Node.js 18 ou superior
  • Acesso ao Gitea da Rivus Lab (para baixar clarizen-lib na instalação)
  • Chave de API do Adaptive Work (ou credenciais equivalentes já usadas no time)

Clonar e instalar

git clone https://gitea.rivuslab.com/leonardotoniolo/export_error_log.git
cd export_error_log
npm install

Se o repositório clarizen-lib for privado, configure autenticação no Git antes do npm install:

  • SSH: chave cadastrada no Gitea e dependência no formato
    git+ssh://git@gitea.rivuslab.com/leonardotoniolo/clarizen-lib.git#main (se necessário, ajuste no package.json)
  • HTTPS: token de acesso no Gitea (Personal Access Token) configurado no Git ou no .npmrc

Na primeira instalação, o npm clona clarizen-lib e executa o build (preparetsc), gerando a pasta dist/ dentro de node_modules/@arco/clarizen-lib.

Configurar variáveis de ambiente

Copie o exemplo e preencha a API key:

cp .env.example .env

Edite .env na raiz do projeto (não dentro de src/):

CLARIZEN_BASE_URL=https://api.clarizen.com
CLARIZEN_API_KEY=sua_chave_aqui

Alternativa aceita pelo código: API_KEY_AW em vez de CLARIZEN_API_KEY.

O carregador de ambiente também tenta usar ../clarizen-lib/.env se existir (útil em desenvolvimento local com monorepo).

Rodar o projeto

npm start

Isso executa tsx src/index.ts, que:

  1. Valida se há API key configurada
  2. Consulta até 5000 registros de BusinessRuleError com os campos definidos em src/index.ts
  3. Exibe a quantidade e cada entidade no console

Outros comandos

Comando Descrição
npm start Executa a consulta ao Clarizen
npm run check:clarizen Testa se @arco/clarizen-lib foi instalada e compilada corretamente (deve imprimir OK Clarizen)

Estrutura relevante

read_update_xlsx/
├── .env.example      # modelo de variáveis
├── .env              # suas credenciais (não commitar)
├── package.json      # dependência clarizen-lib via Git
├── src/
│   ├── index.ts      # consulta BusinessRuleError
│   └── load-env.ts   # carrega .env da raiz do projeto
└── README.md

Dependência clarizen-lib

No package.json a lib está referenciada assim:

"@arco/clarizen-lib": "git+https://gitea.rivuslab.com/leonardotoniolo/clarizen-lib.git#main"

O package-lock.json fixa o commit exato usado na instalação. Documentação completa da biblioteca: clarizen-lib.

Desenvolvimento local com a lib ao lado

Se você tiver clarizen-lib clonada na pasta irmã (../clarizen-lib), pode trocar temporariamente no package.json:

"@arco/clarizen-lib": "file:../clarizen-lib"

Rode npm install e npm run build dentro de clarizen-lib. Não commite essa alteração se o repositório for usado só via Git.

Problemas comuns

Sintoma O que fazer
Erro ao clonar clarizen-lib no npm install Verificar login SSH/HTTPS no Gitea
Cannot find module .../dist/index.js Rodar de novo npm install (o prepare da lib deve compilar o dist) ou npm run check:clarizen
Defina CLARIZEN_API_KEY... Criar .env na raiz com CLARIZEN_API_KEY ou API_KEY_AW
Instalação dentro de monorepo npm Usar npm install --workspaces=false nesta pasta para não sobrescrever o lock com file:../clarizen-lib