Autenticação

A API do DeployAlly usa API Keys para autenticação.

Tipos de Autenticação

Tipo Uso Header
API Key Servidores e automação Authorization: Bearer da_xxx
JWT Dashboard (usuários) Authorization: Bearer eyJ...

API Keys

Formato

As API Keys seguem o padrão:

da_{random_32_chars}

Exemplo: da_k8s9f7d6a5s4d3f2g1h0j9k8l7m6n5o4

Obtendo uma API Key

  1. Acesse o Dashboard em https://app.deployally.com
  2. Vá em Configurações > API Keys
  3. Clique em Criar Nova Key
  4. Defina um nome descritivo e permissões
  5. Copie a key (ela não será exibida novamente)

Usando a API Key

Inclua no header de todas as requisições:

Authorization: Bearer da_xxx

Exemplo com curl:

curl -X GET "https://sys.deployally.com/api/v1/templates" \
  -H "Authorization: Bearer da_k8s9f7d6a5s4d3f2g1h0j9k8l7m6n5o4"

Permissões

API Keys podem ter permissões limitadas:

Permissão Descrição
templates:read Listar e ver templates
definitions:read Listar e ver definitions
definitions:write Criar e modificar definitions
instances:read Listar e ver instances
instances:manage Restart, stop, start
deployments:create Criar deployments
servers:manage Gerenciar servidores

Exemplo de Key com Permissões Limitadas

{
  "name": "CI/CD Pipeline",
  "permissions": [
    "templates:read",
    "definitions:read",
    "definitions:write",
    "deployments:create"
  ]
}

Segurança

Armazenamento

NUNCA armazene API Keys em:

  • Código fonte
  • Repositórios Git
  • Logs
  • Mensagens de chat

USE:

  • Variáveis de ambiente
  • Gerenciadores de secrets (Vault, AWS Secrets Manager)
  • Arquivos com permissão 600
# Variável de ambiente
export DEPLOYALLY_API_KEY="da_xxx"

# Arquivo de configuração (chmod 600)
echo "api_key = \"da_xxx\"" > ~/.config/deployally/config.toml
chmod 600 ~/.config/deployally/config.toml

Rotação

Recomendamos rotacionar API Keys:

  1. Crie uma nova key
  2. Atualize suas aplicações
  3. Revogue a key antiga
# Via API
curl -X POST "https://sys.deployally.com/api/v1/api-keys" \
  -H "Authorization: Bearer da_xxx" \
  -d '{"name": "nova-key"}'

# Revogar antiga
curl -X DELETE "https://sys.deployally.com/api/v1/api-keys/{id}" \
  -H "Authorization: Bearer da_xxx"

IP Allowlist

Para maior segurança, limite IPs que podem usar a key:

{
  "name": "Servidor Produção",
  "allowed_ips": [
    "203.0.113.10",
    "203.0.113.11"
  ]
}

Ambiente de Teste

Para desenvolvimento e testes, use o ambiente de desenvolvimento:

Ambiente URL Prefixo da Key
Produção sys.deployally.com da_
Desenvolvimento dev.sys.deployally.com da_test_

Criando Key de Teste

  1. Acesse https://dev.app.deployally.com
  2. Crie uma API Key normalmente
  3. A key terá prefixo da_test_
# Key de teste
curl -X GET "https://dev.sys.deployally.com/api/v1/templates" \
  -H "Authorization: Bearer da_test_xxx"

Importante: Dados no ambiente de teste são resetados periodicamente.

Erros de Autenticação

401 Unauthorized

API Key ausente ou inválida:

{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "API Key inválida ou não fornecida"
  }
}

Soluções:

  • Verifique se o header está correto
  • Confirme que a key não foi revogada
  • Use Bearer (não Basic)

403 Forbidden

Key válida mas sem permissão:

{
  "success": false,
  "error": {
    "code": "FORBIDDEN",
    "message": "API Key não tem permissão para este recurso"
  }
}

Soluções:

  • Verifique as permissões da key
  • Crie uma nova key com permissões adequadas

JWT (Dashboard)

O Dashboard usa JWT para autenticação de usuários:

Login

curl -X POST "https://sys.deployally.com/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "usuario@exemplo.com",
    "password": "senha"
  }'

Resposta:

{
  "success": true,
  "data": {
    "token": "eyJ...",
    "expires_at": "2026-02-14T12:00:00Z"
  }
}

Usando JWT

curl -X GET "https://sys.deployally.com/api/v1/user/profile" \
  -H "Authorization: Bearer eyJ..."

Nota: JWTs expiram em 24 horas. Use refresh tokens para renovar.

Próximos Passos

By Borlot.com.br on 13/02/2026