@zenifra/cli 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -40,6 +40,7 @@ zenifra auth login --profile staging --code 123456
40
40
  zenifra auth api-key --key znf_sua_chave
41
41
  zenifra auth api-key --profile prod --key znf_sua_chave
42
42
  zenifra auth logout
43
+ zenifra auth logout --revoke
43
44
  zenifra profile list
44
45
  zenifra profile show
45
46
  zenifra profile add --name staging --description Homologacao --api-base https://api-stg.zenifra.com/v1 --mode api-key --key znf_sua_chave
@@ -54,6 +55,7 @@ zenifra plans --type storage --json
54
55
  zenifra create project
55
56
  zenifra create project --name <name> --plan free --payment-mode hourly --config @examples/http-project.json
56
57
  zenifra create project --name <name> --plan basic --payment-mode hourly --config @examples/http-github-project.json
58
+ zenifra create project --name <name> --plan premium --payment-mode hourly --config @examples/http-autoscaling-project.json
57
59
  zenifra create project --name <name> --plan db-basic --payment-mode monthly --config @examples/postgresql-project.json
58
60
  zenifra create project --name <name> --plan db-basic --payment-mode monthly --config @examples/mariadb-project.json
59
61
  zenifra projects --type http --page 1 --limit 15
@@ -67,19 +69,48 @@ zenifra project envs --project <project-id>
67
69
  zenifra project env add --project <project-id> --name NODE_ENV --value production
68
70
  zenifra project env update --project <project-id> --name NODE_ENV --value staging
69
71
  zenifra project env remove --project <project-id> --name NODE_ENV
72
+ zenifra project autoscaling --project <project-id>
73
+ zenifra project autoscaling set --project <project-id> --min 2 --max 8 --cpu 70 --memory 80
74
+ zenifra project autoscaling disable --project <project-id>
75
+ zenifra project autoscaling events --project <project-id> --direction scale_up --page 1 --limit 10
76
+ zenifra project billing usage --project <project-id> --from 2026-06-01T00:00:00Z --limit 20
70
77
  zenifra project instances --project <project-id>
71
78
  zenifra project instances set --project <project-id> --count 3
72
79
  zenifra builds --project <project-id>
80
+ zenifra builds logs --project <project-id> --build <build-id>
81
+ zenifra builds logs --project <project-id> --build <build-id> --follow
73
82
  zenifra deployments --project <project-id>
74
83
  zenifra deploy --project <project-id> --branch main
75
84
  zenifra deploy watch --project <project-id> --build <build-id>
76
85
  ```
77
86
 
87
+ ## Builds GitHub
88
+
89
+ Use `zenifra builds` para listar o historico de builds e `zenifra builds logs` para ler os logs do pipeline GitHub de um build especifico.
90
+
91
+ ```bash
92
+ zenifra builds --project <project-id>
93
+ zenifra builds logs --project <project-id> --build <build-id>
94
+ zenifra builds logs --project <project-id> --build <build-id> --follow
95
+ zenifra deploy --project <project-id> --branch main
96
+ zenifra deploy watch --project <project-id> --build <build-id>
97
+ ```
98
+
99
+ Fluxos:
100
+
101
+ - `zenifra project logs`: logs da aplicacao em execucao
102
+ - `zenifra builds logs`: logs do build GitHub
103
+ - `zenifra deploy`: dispara o build/deploy GitHub e retorna o `build_id`
104
+ - `zenifra deploy watch`: usa esse `build_id` para acompanhar o build em tempo real e imprimir os logs incrementais ate o fim
105
+
106
+ Se voce rodar apenas `zenifra deploy`, a CLI mostra a ajuda especifica do comando com uso, flags, exemplos e exemplo de retorno.
107
+
78
108
  ## Configuracao
79
109
 
80
110
  - API padrao: `https://api.zenifra.com/v1`
81
111
  - Override de API: `ZENIFRA_API_URL=https://api-stg.zenifra.com/v1`
82
112
  - API key global: `ZENIFRA_API_KEY=znf_sua_chave`
113
+ - Timeout de cada request HTTP: `ZENIFRA_HTTP_TIMEOUT_MS=30000`
83
114
  - Store local de perfis: `~/.config/zenifra-cli/profiles.json`
84
115
  - Override do diretorio local: `ZENIFRA_CONFIG_DIR=/path/custom`
85
116
 
@@ -126,10 +157,12 @@ Regras de precedencia:
126
157
  - `ZENIFRA_API_URL` sobrescreve a API base do perfil ativo apenas para a execucao atual
127
158
  - `auth login` e `auth api-key` operam no perfil ativo por padrao
128
159
  - `auth login --profile <name>` e `auth api-key --profile <name>` atualizam ou criam outro perfil e o tornam ativo
160
+ - `auth logout` remove somente a autenticacao local; `auth logout --revoke` tambem invalida as sessoes de login do usuario no servidor
161
+ - `auth logout --revoke` exige um perfil autenticado por login e nao revoga API keys
129
162
 
130
163
  Migracao:
131
164
 
132
- - se existir `session.json` legado e ainda nao existir `profiles.json`, a CLI migra automaticamente a sessao antiga para um perfil `default`
165
+ - se existir `session.json` legado e ainda nao existir `profiles.json`, a CLI migra automaticamente a sessao antiga para um perfil `default` e remove o arquivo legado
133
166
 
134
167
  ## Automacao com API key
135
168
 
@@ -147,7 +180,7 @@ Tambem e possivel salvar a chave localmente no perfil ativo:
147
180
  zenifra auth api-key --key znf_sua_chave
148
181
  ```
149
182
 
150
- API keys globais ja sao vinculadas a uma organizacao, entao comandos como `projects`, `deploy`, `builds` e `deployments` nao precisam de `org set`. Comandos pessoais como `orgs` e `org set` continuam exigindo `zenifra auth login` em um perfil com token de usuario.
183
+ API keys globais ja sao vinculadas a uma organizacao, entao comandos como `projects`, `deploy`, `builds`, `builds logs` e `deployments` nao precisam de `org set`. Comandos pessoais como `orgs` e `org set` continuam exigindo `zenifra auth login` em um perfil com token de usuario.
151
184
 
152
185
  Para reduzir impacto de vazamento, configure IPs permitidos na criacao da API key sempre que a automacao tiver origem fixa.
153
186
 
@@ -157,6 +190,7 @@ Use os arquivos em `examples/` como base para `zenifra create project`:
157
190
 
158
191
  - `examples/http-project.json`: projeto HTTP com imagem OCI publica
159
192
  - `examples/http-github-project.json`: projeto HTTP com build via GitHub
193
+ - `examples/http-autoscaling-project.json`: projeto HTTP pago criado com auto-scaling
160
194
  - `examples/postgresql-project.json`: projeto PostgreSQL
161
195
  - `examples/mariadb-project.json`: projeto MariaDB
162
196
 
@@ -173,21 +207,39 @@ O wizard atual cobre:
173
207
  - projetos `mariadb`
174
208
 
175
209
  `zenifra create project` nao assume valores default para `--plan` e `--payment-mode`.
210
+ Configs HTTP nao interativas tambem devem informar `config.exposure`; use `public` para criar rota/dominio publico ou `private` para manter a aplicacao sem exposicao na internet.
176
211
  Antes de escolher um plano com o usuario, compare os catalogos com `zenifra plans` para evitar suposicoes sobre custo.
177
212
 
178
213
  Valores aceitos:
179
214
 
180
215
  - `payment_mode`: `hourly`, `monthly`, `yearly`
181
216
  - `type_project` no `config`: `http`, `postgresql`, `mariadb`
217
+ - `exposure` no `config` HTTP: `public`, `private`
182
218
  - `plan`: `free`, `static`, `basic`, `premium`, `premium_plus`, `business`, `deep_learning_basic`, `deep_learning_premium`, `db-free`, `db-starter`, `db-basic`, `db-premium`, `db-enterprise`
183
219
  - `config.github.runtime` (quando houver GitHub em projeto HTTP): `nodejs` ou `python`
220
+ - `config.autoscaling` (somente HTTP pago): `enabled: true`, `max_instances` maior ou igual a `config.instances` e alvos opcionais de CPU/memoria entre 1 e 100
184
221
 
185
222
  Observacoes do wizard:
186
223
 
187
224
  - conflitos entre documentacao e API sao validados pelo contrato real aceito pela API
225
+ - o wizard oferece auto-scaling apenas quando o plano selecionado informa essa disponibilidade
226
+ - na criacao com auto-scaling, `config.instances` e o minimo inicial e `config.autoscaling.max_instances` e o maximo
188
227
  - em projetos de banco, o wizard nao pergunta `username`, `password` nem `database name`
189
228
  - em projetos de banco, a CLI preenche apenas campos tecnicos minimos exigidos pela validacao atual da API
190
229
 
230
+ ## Regressao manual de auto-scaling em staging
231
+
232
+ O teste de staging cria projetos, gera trafego, consulta consumo e remove somente os projetos criados pela propria execucao. Ele rejeita a API de producao e exige habilitacao explicita das mutacoes.
233
+
234
+ ```bash
235
+ export ZENIFRA_API_URL_STG=https://api-stg.zenifra.com/v1
236
+ export ZENIFRA_API_KEY_STG=znf_sua_chave_de_staging
237
+ export ZENIFRA_STAGING_ALLOW_MUTATIONS=1
238
+ npm run test:staging:autoscaling
239
+ ```
240
+
241
+ Use `ZENIFRA_STAGING_SKIP_HOURLY_WAIT=1` para pular a espera pelo fechamento da janela horaria. Quando a espera esta habilitada, o teste verifica moeda, totais de computacao e armazenamento, instancia-horas e armazenamento persistente faturavel. A execucao pode consumir capacidade e gerar custos no ambiente de staging; o resumo redigido fica em `artifacts/`, que nao e versionado.
242
+
191
243
  ## Publicacao no npm
192
244
 
193
245
  Este pacote e publicado pelo GitHub Actions usando npm Trusted Publishing. O pacote precisa existir no npm antes de configurar Trusted Publishing.