API Keys da Organização
API keys globais permitem automatizar operações da Zenifra sem usar a sessão pessoal de um usuário. Cada chave pertence a uma organização, registra quem criou, respeita RBAC e pode ser limitada por IP de origem.
Use esse recurso para CI/CD, scripts internos, jobs de operação e integrações server-side.
Criar uma API key
No console da organização:
- acesse Chaves de API no menu lateral;
- clique em Criar chave de API;
- informe um nome descritivo;
- escolha as permissões necessárias, partindo de um modelo de política, de políticas reutilizáveis ou de ajustes manuais;
- opcionalmente, defina IPs permitidos e expiração;
- copie a chave exibida após a criação.

Vídeo: preenchendo uma chave de API da organização e uma chave de IA.
A chave completa aparece apenas uma vez. Depois disso, o console mostra somente metadados, como status, quem criou, último acesso, último IP e expiração, além de um preview parcial da chave.
Você só pode conceder a uma API Key permissões que você já possui na organização. Criar chaves exige api_key.create em organization:*; o owner já tem esse acesso.
Usar em requisições HTTP
Envie a API key em um header de autenticação:
curl https://api.zenifra.com/v1/project \
-H "Authorization: Bearer znf_sua_chave"Também é aceito:
curl https://api.zenifra.com/v1/project \
-H "x-api-key: znf_sua_chave"Prefira Authorization: Bearer para manter compatibilidade com a CLI e ferramentas HTTP comuns.
Usar com a CLI
Em automações, use variável de ambiente:
export ZENIFRA_API_KEY=znf_sua_chave
zenifra projects --type http --page 1 --limit 15
zenifra deploy --project <project-id> --branch mainPara salvar localmente:
zenifra auth api-key --key znf_sua_chaveComo a API key já é vinculada a uma organização, comandos de automação não precisam de org set. Comandos pessoais, como listar organizações, continuam exigindo login de usuário.
Permissões e escopo
A API key usa o mesmo modelo de permissões da organização. Conceda apenas o necessário para a automação.
Exemplos:
- deploy de um projeto específico;
- leitura de logs e métricas;
- criação de projeto via pipeline;
- consulta de builds;
- rotação controlada de recursos operacionais.
Se uma chave vazar, o impacto fica limitado às permissões concedidas e aos IPs permitidos.
Catálogo completo de scopes
O campo permissions.resources aceita os scopes abaixo. Use * somente quando a automação realmente precisar de todos os recursos daquele tipo; para menor privilégio, informe o ID da organização, projeto, banco, serviço ou chave correspondente.
Projetos e Previews
| Scope | Uso |
|---|---|
project.create | Criar aplicações HTTP e Jobs agendados, inclusive a partir de templates. Use em organization:*. |
project.read | Consultar um projeto específico. |
project.logs.read | Consultar logs, builds e logs de execuções de Jobs. |
project.metrics.read | Consultar métricas, capacidade e uso operacional. |
project.billing.read | Consultar uso e custos de um projeto ou de seus Previews. |
project.env.read | Consultar variáveis de ambiente sem expor a chave. |
project.env.update | Atualizar variáveis de ambiente. |
project.name.update | Alterar o nome do projeto. |
project.description.update | Alterar a descrição do projeto. |
project.domain.update | Alterar exposição, domínio e domínios personalizados. |
project.network.update | Alterar regras de acesso de rede. |
project.instances.update | Alterar instâncias, auto-scaling, health check e alertas. |
project.image.update | Alterar a imagem publicada. |
project.source.update | Consultar ou alterar a integração de código. |
project.schedule.update | Alterar o agendamento de um Job agendado. |
project.job-run.cancel | Cancelar uma execução em andamento de um Job agendado. |
project.deploy.trigger | Acionar uma publicação. |
project.stop | Parar um projeto. |
project.resume | Retomar um projeto. |
project.plan.update | Alterar plano ou renovação automática. |
project.storage.update | Alterar o tamanho do armazenamento. |
project.delete | Remover um projeto. |
project.preview.read | Consultar planos e a lista de Previews. Consultar as configurações de Preview exige sessão de usuário. |
project.preview.configure | Habilitar ou alterar as configurações de Preview; requer usuário autorizado. |
project.preview.deploy | Criar ou atualizar um Preview e acompanhar sua operação. |
project.preview.delete | Remover um Preview. |
Templates
| Scope | Uso |
|---|---|
template.create | Criar um template privado. Use em organization:*. |
template.read | Consultar um template autorizado. |
template.update | Editar um template autorizado. |
template.publish | Publicar ou tornar privado um template. |
template.delete | Remover um template. |
Bancos de dados
| Scope | Uso |
|---|---|
database.create | Criar PostgreSQL, MariaDB ou ClickHouse (Analytics). Use em organization:*. |
database.status.read | Consultar o estado de um banco. |
database.connection.read | Consultar dados de conexão autorizados. |
database.password.rotate | Solicitar rotação de senha. |
database.version.update | Atualizar a versão do banco. |
Serviços gerenciados
| Scope | Uso |
|---|---|
managed_service.create | Criar serviços Valkey com perfil Key-Value, Cache ou Queue. Use em organization:*. |
managed_service.read | Não exposto atualmente a API Keys da organização. |
managed_service.status.read | Consultar o estado de um serviço. |
managed_service.connection.read | Consultar dados de conexão sem credencial. |
managed_service.credentials.rotate | Solicitar rotação de credencial. |
managed_service.version.update | Não exposto atualmente a API Keys da organização. |
managed_service.metrics.read | Não exposto atualmente a API Keys da organização. |
managed_service.lifecycle.update | Não exposto atualmente a API Keys da organização. |
managed_service.delete | Não exposto atualmente a API Keys da organização. |
IA
| Scope | Uso |
|---|---|
ai_key.create | Criar uma chave de IA. Use em organization:*. |
ai_key.read | Consultar uma chave de IA autorizada. |
ai_key.update | Alterar o orçamento de uma chave de IA. |
ai_key.delete | Remover uma chave de IA. |
ai_usage.read | Consultar uso e custos de IA; pode ser limitado ao ID de uma chave de IA. |
API Keys da organização
| Scope | Uso |
|---|---|
api_key.create | Criar uma API Key da organização. Use em organization:*. |
api_key.read | Consultar API Keys autorizadas. |
api_key.delete | Revogar uma API Key autorizada. |
Billing
| Scope | Uso |
|---|---|
billing.read | Consultar a configuração de pagamento da organização. |
billing.payment.configure | Configurar método de pagamento ou iniciar sua vinculação. |
billing.transactions.read | Consultar transações da organização. |
billing.checkout.create | Criar checkout em uma integração autorizada. |
Administração da organização
| Scope | Uso |
|---|---|
member.invite | Convidar um membro. Somente com sessão de usuário; não funciona com API Key. |
member.permissions.update | Alterar permissões e políticas de membros. Somente com sessão de usuário; não funciona com API Key. |
Administração de membros, convites e políticas, além de ações pessoais como listar organizações, aceitar convites e alterar dados da conta, exigem uma sessão de usuário.
Chave mínima para operar um Preview
Depois que um usuário autorizado habilitar Preview no projeto principal, uma automação que só precisa criar/atualizar, consultar e remover o Preview deve receber apenas estes grants no projeto principal:
{
"resources": {
"project": {
"<project-id>": [
"project.read",
"project.preview.read",
"project.preview.deploy",
"project.preview.delete"
]
}
}
}project.preview.configure não é necessário para o ciclo operacional e não deve ser concedido à automação quando a configuração inicial for feita por usuário. Para consultar custos dos Previews, adicione project.billing.read separadamente.
Requisito mínimo por operação
Cada scope abaixo é limitado ao mesmo project-id do projeto principal:
| Operação | Scope mínimo | Resource ID |
|---|---|---|
| Consultar o projeto principal | project.read | project:<project-id> |
| Consultar planos e lista de Previews | project.preview.read | project:<project-id> |
| Criar ou atualizar um Preview e consultar sua operação | project.preview.deploy | project:<project-id> |
| Consultar o detalhe do Preview | project.preview.deploy | project:<project-id> |
| Remover um Preview | project.preview.delete | project:<project-id> |
| Consultar custos dos Previews | project.billing.read | project:<project-id>; opcional |
Assim, a automação que executa o ciclo completo precisa exatamente dos quatro scopes do exemplo anterior. Não adicione project.preview.configure: a configuração inicial continua sendo uma operação de usuário autorizado.
IP allowlist
Ao criar a chave, informe IPs fixos que podem chamar a API. Quando a lista está preenchida, requisições vindas de outro IP são recusadas.
Use IP allowlist quando a automação roda em:
- runners próprios;
- servidores internos;
- NAT corporativo;
- jobs com egress IP conhecido.
O campo aceita IPv4 e IPv6 literal. CIDR não é aceito.
Revogação e rotação
Revogue uma chave quando:
- ela não é mais usada;
- o responsável saiu da equipe (ao remover um membro da organização, as API Keys criadas por ele são revogadas automaticamente);
- o IP de origem mudou;
- há suspeita de vazamento;
- as permissões ficaram amplas demais.
Para rotação segura, crie uma nova chave, atualize a automação, valide o uso e revogue a antiga.
Próximos passos
Última atualização em
Permissões Granulares em Organizações
Configure permissões por membro, recurso e ação, diretamente ou com políticas reutilizáveis, para proteger projetos, bancos, billing, origens Git, chaves de IA e API keys globais.
Segurança, privacidade e confiabilidade
Práticas de segurança da Zenifra para organizações, permissões, segredos, API keys, bancos, logs, LGPD e operação.