Skip to content

REF-501-06: Environment Spec

ADR: ADR-501 — Service DeliveryEscopo: Environment types, platform types, lifecycle states, field reference, monitoramento, portal visibility


1. Relação 1:1 com Entitlement

Cada Environment possui exatamente UM Entitlement de classe ENV. A relação é 1:1 e obrigatória. Mesmo cliente com ambientes de produção e homologação recebe dois registros Environment separados, cada um com seu próprio código Entitlement (ex: ENV-2026040001 para prod, ENV-2026040002 para homolog).

2. Environment Types

TipoDescrição
productionAmbiente de produção do cliente
stagingAmbiente de homologação/staging
developmentAmbiente de desenvolvimento
sandboxAmbiente sandbox para testes e demonstrações

3. Platform Types

PlataformaDescrição
moodleMoodle LMS (linha MIDDAG Pro)
wordpressWordPress (sites, portais, e-commerce)
customPlataforma custom ou outra tecnologia

4. Lifecycle States

EstadoSignificadoTransições permitidas
provisioningAmbiente sendo criado/configurado-> active
activeAmbiente operacional-> maintenance, suspended, decommissioned
maintenanceEm manutenção programada-> active
suspendedSuspenso (pagamento atrasado, ação administrativa)-> active, decommissioned
decommissionedDesativado permanentementeEstado terminal

5. Environment Field Reference

CampoTipoDescrição
environment_idauto-incrementIdentificador interno
entitlement_idFK (unique)Entitlement classe ENV — obrigatório, 1:1
organization_idFKOrganization proprietária
environment_namestringNome descritivo (ex: "Moodle Produção - Cliente A")
environment_typeenumproduction, staging, development, sandbox
platformenummoodle, wordpress, custom
platform_versionstringVersão (ex: "Moodle 4.3.2", "WordPress 6.7")
statusenumEstados conforme tabela acima
url_primarystringURL principal (ex: "https://lms.cliente.com.br")
url_adminstring (nullable)URL de admin se diferente
url_stagingstring (nullable)URL de staging
server_providerstringProvedor (ex: "AWS", "DigitalOcean")
server_regionstringRegião (ex: "sa-east-1")
server_ipstring (nullable)IP do servidor (dado sensível — não expor ao cliente)
server_specsJSONDetalhes de CPU, RAM, storage
backup_schedulestringAgendamento (ex: "daily_03am", "weekly_sunday")
backup_retention_daysint (default 30)Dias de retenção de backups
last_backup_atdatetime (nullable)Atualizado por cron ou webhook
ssl_expires_atdate (nullable)Data de expiração do certificado SSL
dns_providerstring (nullable)Provedor DNS (ex: "Cloudflare", "Route53")
contract_idFK (nullable)Contract de SLA/hosting vinculado
notestext (nullable)Notas internas (não visíveis ao cliente)
metadataJSONExtensível para dados adicionais

6. Monitoramento Básico

Environment armazena dados de monitoramento que disparam alertas automáticos:

DadoMecanismo
last_backup_atAtualizado por cron ou webhook. Alerta se backup exceder janela.
ssl_expires_atAlertas automáticos 30, 15, e 7 dias antes da expiração do SSL.
platform_versionTracking para alertas de atualização de plataforma.

Monitoramento avançado (uptime, tempo de resposta) está fora de escopo — tratado por ferramentas externas (ex: UptimeRobot, StatusCake). Environment apenas armazena URL de referência de monitoramento se aplicável.

7. Portal Visibility

O cliente visualiza: nome, tipo, plataforma, versão, status, URLs (primary, staging), data do último backup, status SSL, ServiceRequests vinculadas, e botão "Solicitar Serviço" para criar SR standalone.

O cliente NÃO visualiza: IP do servidor, detalhes do provedor, notas internas, specs do servidor.