@zenifra/cli 0.2.3 → 0.2.5

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
@@ -50,14 +51,24 @@ zenifra orgs
50
51
  zenifra org set
51
52
  zenifra plans
52
53
  zenifra plans --type http
54
+ zenifra plans --type valkey
53
55
  zenifra plans --type storage --json
54
56
  zenifra create project
55
57
  zenifra create project --name <name> --plan free --payment-mode hourly --config @examples/http-project.json
56
58
  zenifra create project --name <name> --plan basic --payment-mode hourly --config @examples/http-github-project.json
59
+ zenifra create project --name <name> --plan premium --payment-mode hourly --config @examples/http-autoscaling-project.json
57
60
  zenifra create project --name <name> --plan db-basic --payment-mode monthly --config @examples/postgresql-project.json
58
61
  zenifra create project --name <name> --plan db-basic --payment-mode monthly --config @examples/mariadb-project.json
62
+ zenifra create project --name <name> --plan db-free --payment-mode hourly --config @examples/valkey-key-value-project.json
63
+ zenifra create project --name <name> --plan cache-free --payment-mode hourly --config @examples/valkey-cache-project.json
64
+ zenifra create project --name <name> --plan queue-free --payment-mode hourly --config @examples/valkey-queue-project.json
59
65
  zenifra projects --type http --page 1 --limit 15
66
+ zenifra projects --type valkey --page 1 --limit 15
60
67
  zenifra project info --project <project-id>
68
+ zenifra valkey status --project <project-id>
69
+ zenifra valkey connection --project <project-id>
70
+ zenifra valkey credentials rotate --project <project-id> --wait
71
+ zenifra valkey credentials status --project <project-id> --operation <operation-id>
61
72
  zenifra project url --project <project-id>
62
73
  zenifra project logs --project <project-id> --instance <instance-id>
63
74
  zenifra project metrics --project <project-id> --instance <instance-id>
@@ -67,6 +78,11 @@ zenifra project envs --project <project-id>
67
78
  zenifra project env add --project <project-id> --name NODE_ENV --value production
68
79
  zenifra project env update --project <project-id> --name NODE_ENV --value staging
69
80
  zenifra project env remove --project <project-id> --name NODE_ENV
81
+ zenifra project autoscaling --project <project-id>
82
+ zenifra project autoscaling set --project <project-id> --min 2 --max 8 --cpu 70 --memory 80
83
+ zenifra project autoscaling disable --project <project-id>
84
+ zenifra project autoscaling events --project <project-id> --direction scale_up --page 1 --limit 10
85
+ zenifra project billing usage --project <project-id> --from 2026-06-01T00:00:00Z --limit 20
70
86
  zenifra project instances --project <project-id>
71
87
  zenifra project instances set --project <project-id> --count 3
72
88
  zenifra builds --project <project-id>
@@ -103,6 +119,7 @@ Se voce rodar apenas `zenifra deploy`, a CLI mostra a ajuda especifica do comand
103
119
  - API padrao: `https://api.zenifra.com/v1`
104
120
  - Override de API: `ZENIFRA_API_URL=https://api-stg.zenifra.com/v1`
105
121
  - API key global: `ZENIFRA_API_KEY=znf_sua_chave`
122
+ - Timeout de cada request HTTP: `ZENIFRA_HTTP_TIMEOUT_MS=30000`
106
123
  - Store local de perfis: `~/.config/zenifra-cli/profiles.json`
107
124
  - Override do diretorio local: `ZENIFRA_CONFIG_DIR=/path/custom`
108
125
 
@@ -117,7 +134,7 @@ zenifra plans --type database
117
134
  zenifra plans --type storage --json
118
135
  ```
119
136
 
120
- `zenifra plans` funciona sem autenticacao e mostra os catalogos publicos de HTTP, banco e armazenamento.
137
+ `zenifra plans` funciona sem autenticacao e mostra os catalogos publicos de HTTP, banco, armazenamento e Valkey. Use `--type valkey` para consultar Key Value, Cache e Queue.
121
138
 
122
139
  Valores de variaveis de ambiente sao mascarados por padrao, inclusive em `--json`.
123
140
  Use `--show-values` apenas quando precisar inspecionar os valores completos.
@@ -149,10 +166,12 @@ Regras de precedencia:
149
166
  - `ZENIFRA_API_URL` sobrescreve a API base do perfil ativo apenas para a execucao atual
150
167
  - `auth login` e `auth api-key` operam no perfil ativo por padrao
151
168
  - `auth login --profile <name>` e `auth api-key --profile <name>` atualizam ou criam outro perfil e o tornam ativo
169
+ - `auth logout` remove somente a autenticacao local; `auth logout --revoke` tambem invalida as sessoes de login do usuario no servidor
170
+ - `auth logout --revoke` exige um perfil autenticado por login e nao revoga API keys
152
171
 
153
172
  Migracao:
154
173
 
155
- - se existir `session.json` legado e ainda nao existir `profiles.json`, a CLI migra automaticamente a sessao antiga para um perfil `default`
174
+ - 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
156
175
 
157
176
  ## Automacao com API key
158
177
 
@@ -180,8 +199,12 @@ Use os arquivos em `examples/` como base para `zenifra create project`:
180
199
 
181
200
  - `examples/http-project.json`: projeto HTTP com imagem OCI publica
182
201
  - `examples/http-github-project.json`: projeto HTTP com build via GitHub
202
+ - `examples/http-autoscaling-project.json`: projeto HTTP pago criado com auto-scaling
183
203
  - `examples/postgresql-project.json`: projeto PostgreSQL
184
204
  - `examples/mariadb-project.json`: projeto MariaDB
205
+ - `examples/valkey-key-value-project.json`: projeto Valkey Key Value com armazenamento persistente
206
+ - `examples/valkey-cache-project.json`: projeto Valkey Cache sem armazenamento persistente
207
+ - `examples/valkey-queue-project.json`: projeto Valkey Queue com armazenamento persistente
185
208
 
186
209
  Se voce rodar apenas `zenifra create project`, a CLI abre um wizard interativo estilo `npm init` e pergunta todos os campos guiados. Cada pergunta mostra:
187
210
 
@@ -194,22 +217,47 @@ O wizard atual cobre:
194
217
  - projetos `http` com origem `github` ou `oci`
195
218
  - projetos `postgresql`
196
219
  - projetos `mariadb`
220
+ - projetos `valkey` nos perfis `key_value`, `cache` e `queue`
197
221
 
198
222
  `zenifra create project` nao assume valores default para `--plan` e `--payment-mode`.
223
+ 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.
199
224
  Antes de escolher um plano com o usuario, compare os catalogos com `zenifra plans` para evitar suposicoes sobre custo.
200
225
 
201
226
  Valores aceitos:
202
227
 
203
228
  - `payment_mode`: `hourly`, `monthly`, `yearly`
204
- - `type_project` no `config`: `http`, `postgresql`, `mariadb`
205
- - `plan`: `free`, `static`, `basic`, `premium`, `premium_plus`, `business`, `deep_learning_basic`, `deep_learning_premium`, `db-free`, `db-starter`, `db-basic`, `db-premium`, `db-enterprise`
229
+ - `type_project` no `config`: `http`, `postgresql`, `mariadb`, `valkey`
230
+ - `exposure` no `config` HTTP: `public`, `private`
231
+ - `plan`: consulte `zenifra plans` para os planos atuais; Valkey usa `db-*` para Key Value, `cache-*` para Cache e `queue-*` para Queue
232
+ - `config.profile` em projetos Valkey: `key_value`, `cache` ou `queue`
233
+ - `config.version` em projetos Valkey: a versão retornada por `zenifra plans --type valkey`
234
+ - `config.storage` em projetos Valkey: obrigatório e persistente para Key Value/Queue; omitido para Cache
206
235
  - `config.github.runtime` (quando houver GitHub em projeto HTTP): `nodejs` ou `python`
236
+ - `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
207
237
 
208
238
  Observacoes do wizard:
209
239
 
210
240
  - conflitos entre documentacao e API sao validados pelo contrato real aceito pela API
241
+ - o wizard oferece auto-scaling apenas quando o plano selecionado informa essa disponibilidade
242
+ - na criacao com auto-scaling, `config.instances` e o minimo inicial e `config.autoscaling.max_instances` e o maximo
211
243
  - em projetos de banco, o wizard nao pergunta `username`, `password` nem `database name`
212
244
  - em projetos de banco, a CLI preenche apenas campos tecnicos minimos exigidos pela validacao atual da API
245
+ - em projetos Valkey, a capacidade é definida pelo plano e a CLI não pergunta instâncias, imagem, variáveis de ambiente ou exposição HTTP
246
+ - a conexão mascarada pode ser consultada a qualquer momento; a credencial completa aparece apenas na criação ou em uma rotação concluída
247
+ - `valkey credentials rotate` retorna uma operação assíncrona; use `--wait` ou `valkey credentials status` para acompanhar
248
+
249
+ ## Regressao manual de auto-scaling em staging
250
+
251
+ 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.
252
+
253
+ ```bash
254
+ export ZENIFRA_API_URL_STG=https://api-stg.zenifra.com/v1
255
+ export ZENIFRA_API_KEY_STG=znf_sua_chave_de_staging
256
+ export ZENIFRA_STAGING_ALLOW_MUTATIONS=1
257
+ npm run test:staging:autoscaling
258
+ ```
259
+
260
+ 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.
213
261
 
214
262
  ## Publicacao no npm
215
263