fix(config): depreca Environment::Sandbox e corrige o contrato de ambientes — release v3.4.0 - #32
Merged
Merged
Conversation
…ientes — release v3.4.0 Environment::Sandbox prometia roteamento/isolamento que nunca existiu: não há host sandbox na plataforma (o Node valida só production|development; a spec client-core já dizia que o servidor distingue por credencial) e Config::baseUrlForApi() nunca consultou o environment — todo tráfego sempre foi para produção. Um integrador que selecionava Sandbox com chave de produção emitia documento fiscal real achando-se isolado. - Environment/Config: docblocks passam a dizer a verdade (metadado declarativo; isolamento = chave de conta dev + company.environment) - Sandbox @deprecated; Config emite E_USER_DEPRECATED ao selecioná-lo, com a orientação do isolamento real; remoção na próxima major - Testes: deprecation disparada só em Sandbox; URLs idênticas com Production e Sandbox (pina a ausência de roteamento) - Docs: configuration.md ganha a seção "Ambientes na NFE.io"; getting-started.md, README e skill corrigidos - Nenhum comportamento de rede muda Inclui o corte da release v3.4.0 (Version.php + CHANGELOG), que embarca também a fix-inbound-routes (#30). OpenSpec: fix-sandbox-environment-contract
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumo
Environment::Sandboxprometia isolamento que nunca existiu e isso é um risco real: um integrador que instancianew Client(apiKey: $k, environment: Environment::Sandbox)acredita estar isolado e emite documento fiscal real se a chave for de produção.Fatos (review 2026-07-14 + verificação 2026-07-29):
Config::baseUrlForApi()nunca consultou$environment— todo tráfego vai para os hosts de produção com qualquer valor do enum.production|developmente tampouco roteia.client-corejá dizia que o servidor distingue por credencial, não por subdomínio — o docblock contradizia a spec.O que muda
EnvironmenteConfig: o enum é metadado declarativo; o isolamento real vem do escopo da chave +company.environment = Development.Sandboxfica@deprecatede oConfigemiteE_USER_DEPRECATED(via@trigger_error, padrão Symfony) ao selecioná-lo, com a orientação correta. Remoção na próxima major.configuration.mdganha a seção "Ambientes na NFE.io" (duas camadas de isolamento);getting-started.md, README e skill corrigidos.ProductioneSandbox.Testes
Sandbox; URLs idênticas nos dois valores do enum.make test: 264 passed / 1 failed — a falha é a ambiental pré-existente (CurlTransportFailurePhaseTest, DNS; passa no CI).make stanemake cslimpos.Release v3.4.0
Este PR também corta a v3.4.0 (
Version.php+ CHANGELOG versionado, padrão dos releases anteriores), embarcando junto afix-inbound-routes(#30, já na master). Após o merge: tagv3.4.0na master →release.ymlverifica a matrix e publica.OpenSpec:
fix-sandbox-environment-contract(11/11 tasks; artefatos locais). Com este PR, a onda 1 inteira da review (P0) está entregue.