Um contrato operacional para local e remoto
Docker CLI controla o processo local, fr controla a identidade pessoal e HTTP controla os recursos suportados. O host muda; o formato dos contratos permanece o mesmo.
Separe as três interfaces
Não trate docker, fr e curl como comandos equivalentes. Cada um atua em uma camada diferente e possui uma credencial própria.
dockerInicia, para, atualiza, inspeciona, faz backup e restaura a instância localfrAutentica por dispositivo e administra todos os recursos da Management APIHTTPExpõe Management API, ingestão CI, catálogo, cobertura, gates e diagnósticoDashboardInterface humana sobre os mesmos recursos; suas rotas internas não são contrato de integraçãoA versão 0.2 opera projetos, portfólios, features, cenários, evidências, riscos e documentos pela Management API. Tarefas continuam reconciliadas pelo catálogo v2 para preservar completude e vínculos.
Escolha o host explicitamente
Use FEATURE_ROLLOUT_URL em scripts e agentes para evitar que uma operação destinada ao Docker seja enviada à produção. O endpoint de saúde é o primeiro preflight de qualquer automação.
LOCALhttp://127.0.0.1:3000 · sem login web · dados no volume DockerREMOTOhttps://feature-rollout.dev · sessão web ou Bearer conforme a rotaHEALTH200 com status=ok, database=connected e o modo efetivo# escolha exatamente um destino
export FEATURE_ROLLOUT_URL=http://127.0.0.1:3000
# export FEATURE_ROLLOUT_URL=https://feature-rollout.dev
curl --fail-with-body --header 'Accept: application/json' "$FEATURE_ROLLOUT_URL/api/health"Autentique a CLI em cada host
As credenciais são salvas separadamente por origem. fr login abre a página de aprovação do próprio host; fr whoami --json é a saída estável para agentes e scripts.
# Docker local: aprovação no navegador local, sem conta externa
fr login --host http://127.0.0.1:3000
fr whoami --host http://127.0.0.1:3000 --json
fr logout --host http://127.0.0.1:3000
# Plataforma remota
fr login --host https://feature-rollout.dev
fr whoami --host https://feature-rollout.dev --json
# escolha um host padrão para a sessão do terminal
export FEATURE_ROLLOUT_URL=https://feature-rollout.dev
fr whoamiO token fr_pat_* autentica identidade e Management API. Chaves fr_ci_* e credenciais OIDC continuam exclusivas para ingestão, catálogo e gates automatizados.
Use a credencial exigida por cada família
Uma resposta 401 normalmente indica credencial ausente ou inválida; 403 indica identidade válida sem papel, escopo ou confiança suficiente.
GET /api/health e /api/versionSem credencial/api/v1/cli/*Bearer fr_pat_* emitido pelo login por dispositivo/api/v2/management/*Bearer fr_pat_* com management:read/write e papel suficiente no workspace/api/v1/test-results e coberturaBearer fr_ci_* com test-runs:write/api/v2/test-runsBearer fr_ci_* com test-runs:write/api/v2/catalogBearer confiável com catalog:write; atualmente emitido pelo GitHub OIDC/api/v2/gates/evaluateBearer confiável com rollout:write; atualmente emitido pelo GitHub OIDCFluxo obrigatório para agentes
Um agente deve resolver o host, validar saúde, descobrir IDs, ler o estado, mostrar o diff, gravar e reler. Essa sequência vale tanto para chamadas HTTP quanto para automação de navegador.
01 PREFLIGHTGET /api/health e confirme local ou remoto02 IDENTIDADEfr whoami para pessoa; valide escopos do token de CI pela origem03 LEITURAObtenha IDs e estado atual; nunca derive UUID a partir do nome04 PLANOMostre recurso, campos e efeito de substituição antes da escrita05 ESCRITAUse timeout, --fail-with-body e Idempotency-Key/X-Run-ID quando disponível06 VERIFICAÇÃOLeia novamente, confira IDs/contagens e registre a respostaUse http://127.0.0.1:3000 como o Feature Rollout local.
Antes de qualquer mutação, consulte /api/health e leia o recurso atual.
Use somente o dashboard ou endpoints HTTP documentados; não altere o PostgreSQL diretamente.
Mostre o plano ou diff antes de gravar.
Não exclua projetos, documentos, containers ou volumes sem confirmação humana explícita.
Depois de cada gravação, leia o recurso novamente e informe os IDs alterados.Use somente contratos públicos
A Management API em /api/v2/management/* é o contrato público e versionado para projetos, portfólios, features, cenários, evidências, riscos e documentações. Rotas internas do dashboard continuam protegidas por sessão e podem evoluir sem compatibilidade para automações; não copie cookies do navegador.
Como as rotas de gestão não exigem login no Docker, mantenha 127.0.0.1. Publicar a porta em 0.0.0.0 entrega permissão owner a qualquer cliente da rede.