Skip to Content
TestingVariáveis de ambiente de app

Variáveis de ambiente de app

OpenFactory pode armazenar valores de ambiente no escopo de app e conta, criptografá-los at rest e renderizá-los em VM candidata de app durante deploy. É store de segredos file-backed inicial, não vault gerenciado.

Escopo e precedência

  • Valores de conta são defaults reutilizáveis para todo app owned pela conta.
  • Valores de app sobrescrevem valores de conta com mesmo nome.
  • Valores managed são escritos por token producer configurado e registram producer que possui chave.
  • Valor alterado incrementa env_version; deploy bem-sucedido registra versão aplicada. Diferença significa redeploy necessário.

Nomes devem ser identificadores de ambiente maiúsculos, limitados a 128 caracteres, e não podem usar prefixo reservado OPENFACTORY_. Valores de usuário limitam-se a 8 KiB e app limita-se a 100 chaves.

Fluxo MCP

Operações de list sempre mascaram valores. Revele um valor só quando necessário:

set_app_env( app_id="550e8400-e29b-41d4-a716-446655440000", set={"API_BASE_URL": "https://api.example.internal"} ) list_app_env(app_id="550e8400-e29b-41d4-a716-446655440000") reveal_app_env( app_id="550e8400-e29b-41d4-a716-446655440000", name="API_BASE_URL" )

Mesmo padrão disponível como set_account_env, list_account_env e reveal_account_env. Set/delete no nível de app retornam env_version e redeploy_hint; definir valor não muta VM em execução.

Superfície REST

MethodPathPurpose
GET/api/apps/{app_id}/envMasked app-key list and version state
PUT/api/apps/{app_id}/envTransactional set/delete for app keys
POST/api/apps/{app_id}/env/revealAudited plaintext reveal of one app key
GET/api/account/envMasked account-key list
PUT/api/account/envTransactional set/delete for account keys
POST/api/account/env/revealAudited plaintext reveal of one account key
PUT/api/apps/{app_id}/env/managedConfigured producer publishes managed keys
DELETE/api/apps/{app_id}/env/managed/{name}Producer removes a managed key it owns

Superfícies de usuário aplicam contexto de owner resolvido. Endpoints managed usam credencial bearer <kid>.<secret> do arquivo producer-token configurado pelo operador; sem esse arquivo API producer retorna unavailable.

Comportamento no deploy

Durante deploy, backend descriptografa valores de conta, sobrepõe valores de app, adiciona campos runtime da plataforma e escreve /etc/openfactory/app.env na VM com mode 0600. Processo é iniciado com esse arquivo como ambiente. Se descriptografia, entrega de arquivo ou startup falhar, candidato não é promovido.

Limite de segurança

  • Valores armazenados usam criptografia Fernet. Operador deve fornecer e proteger OPENFACTORY_ENV_MASTER_KEY; perder ou substituir torna valores existentes indescritografáveis.
  • Respostas de list são mascaradas. Reveals e mutações explícitas appendam evento de auditoria JSONL.
  • Storage e trilha de auditoria atuais são arquivos locais. Não fornecem chaves hardware-backed, aprovação multi-party, logging tamper-evident, rotação automática nem garantia de disaster-recovery.
  • Logs de aplicativo e deploy ainda não fornecem limite completo de redação de segredo. Processo que imprime ambiente, URL com credencial ou segredo em erro pode expor em logs e evidência de teste.

Por isso não use este store preview para credenciais de produção até deployment ter controles de acesso independentes, testes de backup e restore, validação de redação de logs, regras de retenção e procedimento documentado de rotação de chaves. Nunca coloque segredos em receitas, código-fonte, comandos, URLs, descrições de teste ou expectativas de asserção.

Veja App deployment para fluxo de promoção de candidato.