Planos, recursos e limites
O Coda Cloud tem quatro planos padrão: Starter, Pro, Business e Enterprise. Cada plano define um conjunto de recursos e limites (entitlements):
- Recursos que ficam ligados ou desligados, como a customização do WAF.
- Limites para valores que você configura, como o tamanho máximo do corpo da requisição ou o rate limit de uma rota.
- Quotas que contam o que a organização já criou, como projetos, aplicações e domínios próprios.
A administração da plataforma pode ajustar os recursos e limites de um plano a qualquer momento, sem deploy. A mudança vale em segundos para todas as organizações do plano. As tabelas abaixo mostram os valores iniciais dos planos padrão. Os valores que valem para a sua organização ficam sempre na página Plano e uso do portal.
O que o plano inclui
Quotas
| Recurso | Chave | Starter | Pro | Business | Enterprise |
|---|---|---|---|---|---|
| Projetos | quota.projects | 3 | 10 | 50 | 200 |
| Ambientes por projeto | quota.environmentsPerProject | 4 | 6 | 10 | 20 |
| Aplicações | quota.applications | 5 | 25 | 100 | 500 |
| Instâncias (somando todas as aplicações) | quota.instances | 4 | 50 | 200 | 1.000 |
| vCPU | quota.vCpuMillis | 4 | 16 | 64 | 256 |
| Memória | quota.memoryMiB | 8 GiB | 32 GiB | 128 GiB | 512 GiB |
| Armazenamento | quota.storageGiB | 20 GiB | 100 GiB | 500 GiB | 2.000 GiB |
| Minutos de build por mês | quota.buildMinutesMonthly | 300 | 1.500 | 6.000 | 20.000 |
| Domínios próprios | quota.customDomains | 1 | 10 | 50 | 200 |
Os limites de aplicações, instâncias, vCPU e memória somam todas as aplicações ativas da organização. vCPU é contada em milicores (4 vCPU = 4.000 milicores).
Rate limit das rotas
Toda rota tem rate limit por IP de origem. Quando você não informa um valor, vale o padrão do plano (gateway.routeRateLimitDefault); o valor informado não pode passar do teto (gateway.routeRateLimitMax).
| Requisições por minuto | Starter | Pro | Business | Enterprise |
|---|---|---|---|---|
| Padrão | 60 | 300 | 1.200 | 6.000 |
| Teto | 120 | 600 | 3.000 | 20.000 |
WAF
| Chave | Starter | Pro | Business | Enterprise | |
|---|---|---|---|---|---|
| Customização da política do domínio | waf.customization | Não (só a política padrão) | Sim | Sim | Sim |
| Exceções do CRS ativas | waf.maxExceptions | 0 | 5 | 50 | 50 |
| Tamanho máximo do corpo da requisição | waf.maxBodySizeMb | 10 MB | 50 MB | 100 MB | 200 MB |
| Retenção dos eventos | waf.eventRetentionDays | 30 dias | 30 dias | 90 dias | 180 dias |
As exceções só valem com a customização ligada. Detalhes em WAF.
Tokens de API e contas de serviço
| Chave | Starter | Pro | Business | Enterprise | |
|---|---|---|---|---|---|
| Contas de serviço | apiTokens.maxServiceAccounts | 2 | 10 | 50 | 200 |
| Requisições por minuto, por token | apiTokens.requestsPerMinute | 600 | 600 | 600 | 600 |
| Mutações por minuto, por token | apiTokens.mutationsPerMinute | 60 | 60 | 60 | 60 |
Detalhes em Tokens de API e Contas de serviço.
Terminal e exec
| Chave | Starter | Pro | Business | Enterprise | |
|---|---|---|---|---|---|
| Terminal incluído | exec.enabled | Sim | Sim | Sim | Sim |
| Sessões simultâneas na organização | exec.maxConcurrentSessions | 1 | 10 | 30 | 100 |
| Retenção das gravações | exec.recordingRetentionDays | 7 dias | 30 dias | 90 dias | 365 dias |
Detalhes em Terminal e exec.
Assistentes de IA (MCP)
| Chave | Starter | Pro | Business | Enterprise | |
|---|---|---|---|---|---|
| Assistentes de IA incluídos | mcp.enabled | Sim | Sim | Sim | Sim |
| Chamadas MCP por minuto na organização | mcp.callsPerMinute | 60 | 300 | 1.200 | 3.000 |
Detalhes em Assistentes de IA (MCP).
Onde as aplicações rodam
| Starter | Pro | Business | Enterprise | |
|---|---|---|---|---|
| Pool de capacidade | Compartilhado | Compartilhado | Dedicado | Dedicado |
Em todos os planos pagos, cada instância roda em sandbox de máquina virtual (nível de isolamento microVM), com rede fechada por padrão. A página Plano e uso e cada aplicação mostram o selo "Isolamento: microVM".
Memória pedida e memória reservada
Cada instância em microVM reserva no nó, além da memória que você pede, o overhead de isolamento da máquina virtual. O overhead depende da faixa de tamanho da instância:
| Memória da instância até | Overhead de isolamento |
|---|---|
| 256 MiB | 32 MiB |
| 512 MiB | 88 MiB |
| 1 GiB | 128 MiB |
| 2 GiB | 256 MiB |
| 4 GiB | 384 MiB |
| 8 GiB ou mais | 512 MiB |
- Quota do plano: conta só a memória pedida. Duas aplicações de 512 MiB cabem numa quota de 1 GiB.
- Consumo (
memory_gb_seconds): é medido sobre a memória reservada (pedida + isolamento). A tela de consumo da aplicação mostra as duas partes, por exemplo "512 MiB pedidos e 88 MiB de isolamento". - Seletor de tamanho: mostra as duas, por exemplo "512 MiB pedidos · 600 MiB reservados (isolamento microVM)".
- Mínimo: 256 MiB por instância em microVM. Pedir menos responde 400 no campo
memoryMiB(isolation.below_tier_minimum). - Limite obrigatório: todo container tem limite de memória. Quem não declara recebe o limite padrão do plano (512 MiB nos planos pagos).
Quando a organização muda para um plano de outro nível de isolamento, a plataforma reimplanta as instâncias no novo nível, sem apagar dados. Enquanto o nível de destino não tem capacidade, as instâncias continuam no nível anterior e o portal mostra "Aguardando capacidade do nível".
A página Plano e uso
A página Plano e uso do portal mostra o plano atual da organização e:
- Barras de uso de cada quota frente ao limite, incluindo as quotas de módulo, como as exceções de WAF ativas.
- Incluído no plano: a lista dos recursos e limites do plano, como a customização do WAF, o corpo máximo da requisição e o teto de rate limit.
- Concedido até DD/MM: selo de um valor que a administração da plataforma concedeu só para a sua organização, diferente do plano, por um período. Sem data, a concessão não tem validade definida.
- Cortesia: <pacote> até DD/MM: selo dos recursos que vieram de um pacote de cortesia, como um piloto de 30 dias.
Quando uma concessão ou cortesia vence, a organização volta sozinha aos valores do plano.
O portal usa os mesmos valores para esconder ou desabilitar ações que o plano não inclui, com um aviso de upgrade. Quando a administração libera um recurso, a mesma tela passa a habilitá-lo, sem novo login.
Erros de plano e de quota
Todos os módulos respondem com os mesmos três erros quando algo não está no plano ou passou do limite. As respostas seguem o formato problem details (RFC 9457).
| Situação | Status | Identificação | Exemplo |
|---|---|---|---|
| O recurso não está no plano | 403 | code plan.feature_unavailable, com o recurso (feature) e o plano | Criar uma política de WAF no Starter |
| A quota acabou | 422 | type https://atlas.cloud/problems/quota-exceeded, code quota.exceeded, com quota, used, limit e requested | Criar o quarto projeto no Starter |
| O valor passa do teto do plano | 400 | Erro no campo com o código plan.limit_exceeded e o teto como parâmetro | Rate limit de 200 req/min numa rota do Starter |
No portal, as três situações aparecem como mensagens traduzidas que dizem qual recurso, quota ou campo foi barrado.
Rebaixamento: o que já existe continua
Quando o plano é rebaixado, um limite é reduzido ou uma concessão vence, os recursos que já existem continuam funcionando. A regra nova vale para o que você criar ou alterar depois. Por exemplo, se a organização tem três exceções de WAF e o limite cai para uma, as três continuam ativas, mas uma nova exceção é recusada até o uso ficar abaixo do limite.
Escolher o plano ao criar uma organização
O diálogo Nova organização mostra os cartões dos planos que a administração deixou disponíveis para escolha, com a comparação dos recursos de cada um:
- O plano padrão vem pré-selecionado. Se você não escolher, a organização nasce nele.
- Se o plano que você quer não está na lista, use Fale conosco: a equipe do Coda Cloud contrata planos fora da escolha.
A organização pode ser criada só com um plano ativo e disponível para escolha. A escolha fica registrada na auditoria da organização.
API
| Método e rota | Quem pode | O que faz |
|---|---|---|
GET /api/v1/orgs/{orgId}/entitlements | Qualquer membro (Viewer ou acima) | Recursos e limites públicos efetivos da organização, com o uso de cada quota, a origem (PLAN, OVERRIDE ou DEFAULT) e a validade das concessões. O motivo interno da concessão não aparece. |
GET /api/v1/plans/selectable | Usuário autenticado | Planos ativos disponíveis para escolha, com o nome e os recursos públicos, para comparação. |
POST /api/v1/orgs | Usuário autenticado | Cria a organização. O campo opcional planId escolhe o plano; sem ele, vale o plano padrão. Um plano inativo ou fora da escolha responde 400 no campo planId. |
{
"name": "Acme Labs",
"slug": "acme-labs",
"planId": "<id de um plano de GET /api/v1/plans/selectable>"
}
Consumo e faturas
A plataforma registra o consumo faturável (CPU, memória, armazenamento, tráfego de saída e minutos de build) em um registro imutável. Owner e Admin acompanham o consumo por período, projeto e recurso e acessam as faturas, que trazem a assinatura do plano e o excedente. O pagamento é feito na página do provedor de pagamento; a plataforma não guarda dados de cartão. Somente o Owner altera os dados de cobrança.
SLO
Cada plano tem um SLO de disponibilidade mensal, RPO e RTO. A página SLO do portal mostra os valores do seu plano e a disponibilidade medida no período.
Trocar de plano
Hoje a troca de plano de uma organização existente é feita pela administração da plataforma. A mudança aparece na auditoria da organização.
Troca de plano pelo próprio cliente, no portal.
Catálogo público e preços
Os limites desta página são os mesmos que a página de planos do site lê do catálogo público da plataforma (GET /api/v1/public/plans, sem login). Os preços exibidos no site ainda são um rascunho comercial; a contratação é feita com a equipe do Coda Cloud.
Preços versionados no catálogo e contratação pelo próprio cliente.