Ambientes

Ambientes permitem isolar conjuntos de segredos dentro de um projeto. Ambientes comuns incluem production, staging e development. Cada ambiente possui sua própria chave de criptografia derivada da chave mestra do projeto.

text
https://api.criptenv.dev/v1/projects/{project_id}/environments

POST Criar Ambiente

Cria um novo ambiente dentro de um projeto. Requer papel de admin ou developer.

text
POST /v1/projects/{project_id}/environments
ParâmetroTipoDescrição
project_idobrigatóriostringID do projeto (path parameter)
nameobrigatóriostringNome do ambiente (slug, 2-32 caracteres)
descriptionstringDescrição opcional do ambiente
colorstringCor em hexadecimal para identificação visual (ex: #10b981)Padrão: auto
Exemplo — Criar ambiente
curl -X POST "https://api.criptenv.dev/v1/projects/proj_k8j2m4n6/environments" \
  -H "Authorization: Bearer cek_a1b2c3d4e5f6" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "staging",
    "description": "Ambiente de staging para testes",
    "color": "#f59e0b"
  }'
201Created
json
{
  "data": {
    "id": "env_d4e5f6",
    "project_id": "proj_k8j2m4n6",
    "name": "staging",
    "description": "Ambiente de staging para testes",
    "color": "#f59e0b",
    "secret_count": 0,
    "created_at": "2025-01-15T10:30:00Z",
    "updated_at": "2025-01-15T10:30:00Z"
  }
}
409Conflict
json
{
  "error": {
    "code": "conflict",
    "message": "Já existe um ambiente com o nome 'staging' neste projeto."
  }
}

GET Listar Ambientes

Retorna todos os ambientes de um projeto. Inclui contagem de segredos e metadados de cada ambiente.

text
GET /v1/projects/{project_id}/environments
ParâmetroTipoDescrição
project_idobrigatóriostringID do projeto (path parameter)
pageintegerNúmero da páginaPadrão: 1
per_pageintegerItens por páginaPadrão: 20
Exemplo — Listar ambientes
curl -X GET "https://api.criptenv.dev/v1/projects/proj_k8j2m4n6/environments" \
  -H "Authorization: Bearer cek_a1b2c3d4e5f6"
200OK
json
{
  "data": [
    {
      "id": "env_a1b2c3",
      "name": "production",
      "description": "Ambiente de produção",
      "color": "#ef4444",
      "secret_count": 12,
      "created_at": "2025-01-10T08:00:00Z"
    },
    {
      "id": "env_d4e5f6",
      "name": "staging",
      "description": "Ambiente de staging para testes",
      "color": "#f59e0b",
      "secret_count": 10,
      "created_at": "2025-01-15T10:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 2,
    "total_pages": 1
  }
}

GET Obter Ambiente por ID

Retorna os detalhes completos de um ambiente específico, incluindo a lista de nomes de segredos (sem valores).

text
GET /v1/projects/{project_id}/environments/{environment_id}
ParâmetroTipoDescrição
project_idobrigatóriostringID do projeto (path parameter)
environment_idobrigatóriostringID do ambiente (path parameter)
Exemplo — Obter ambiente
curl -X GET "https://api.criptenv.dev/v1/projects/proj_k8j2m4n6/environments/env_a1b2c3" \
  -H "Authorization: Bearer cek_a1b2c3d4e5f6"
200OK
json
{
  "data": {
    "id": "env_a1b2c3",
    "project_id": "proj_k8j2m4n6",
    "name": "production",
    "description": "Ambiente de produção",
    "color": "#ef4444",
    "secret_count": 12,
    "secrets_preview": [
      "DATABASE_URL",
      "REDIS_URL",
      "JWT_SECRET",
      "STRIPE_API_KEY"
    ],
    "created_at": "2025-01-10T08:00:00Z",
    "updated_at": "2025-01-18T16:45:00Z"
  }
}
404Not Found
json
{
  "error": {
    "code": "not_found",
    "message": "Ambiente não encontrado."
  }
}

PATCH Atualizar Ambiente

Atualiza os metadados de um ambiente. Requer papel de admin ou developer.

text
PATCH /v1/projects/{project_id}/environments/{environment_id}
ParâmetroTipoDescrição
project_idobrigatóriostringID do projeto (path parameter)
environment_idobrigatóriostringID do ambiente (path parameter)
namestringNovo nome do ambiente
descriptionstringNova descrição do ambiente
colorstringNova cor em hexadecimal
Exemplo — Atualizar ambiente
curl -X PATCH "https://api.criptenv.dev/v1/projects/proj_k8j2m4n6/environments/env_d4e5f6" \
  -H "Authorization: Bearer cek_a1b2c3d4e5f6" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "staging-v2",
    "description": "Staging atualizado para v2"
  }'
200OK
json
{
  "data": {
    "id": "env_d4e5f6",
    "project_id": "proj_k8j2m4n6",
    "name": "staging-v2",
    "description": "Staging atualizado para v2",
    "color": "#f59e0b",
    "secret_count": 10,
    "created_at": "2025-01-15T10:30:00Z",
    "updated_at": "2025-01-20T14:22:00Z"
  }
}

DELETE Deletar Ambiente

Remove permanentemente um ambiente e todos os seus segredos. Esta ação é irreversível. Requer papel de admin.

text
DELETE /v1/projects/{project_id}/environments/{environment_id}

Info

Ao deletar um ambiente, todos os segredos associados são permanentemente removidos. Se você precisa apenas remover o acesso, considere atualizar as permissões dos membros em vez de deletar o ambiente.
Exemplo — Deletar ambiente
curl -X DELETE "https://api.criptenv.dev/v1/projects/proj_k8j2m4n6/environments/env_d4e5f6" \
  -H "Authorization: Bearer cek_a1b2c3d4e5f6"
204No Content

Resposta vazia — o ambiente e todos os seus segredos foram removidos.