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-libna 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 nopackage.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 (prepare → tsc), 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:
- Valida se há API key configurada
- Consulta até 5000 registros de
BusinessRuleErrorcom os campos definidos emsrc/index.ts - 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 |