Origem do CORS explícita e configurável, com aviso para '*' (#119)#125
Merged
leonelsanchesdasilva merged 2 commits intoJul 14, 2026
Merged
Conversation
…quido#119) O CORS era habilitado nos templates do scaffold com cors() sem opções, liberando qualquer origem ('*') de forma invisível: nada no configuracao.delprops indicava esse comportamento nem alertava que é adequado apenas para desenvolvimento. Mudanças: - Nova propriedade liquido.roteador.corsOrigem (padrão '*'), aceitando uma origem única ou várias separadas por vírgula. Encanada por ConfiguracaoRoteador -> RoteadorInterface -> Roteador, com validação natural do centro de configurações (propriedade declarada existe na classe) e entrada no esquema delprops com explicação em português. - Roteador.resolverOpcoesCors() traduz o valor para as opções do middleware cors: '*' mantém o comportamento liberado; qualquer outro valor vira lista de origens permitidas ({ origin: [...] }), com espaços tolerados e itens vazios ignorados. Valor vazio volta ao padrão. - Aviso explícito na inicialização quando o CORS está habilitado com origem '*', orientando a restrição em produção via liquido.roteador.corsOrigem em configuracao.delprops. - Templates do scaffold (Delégua e Pituguês, MVC e API REST) e o configuracao.delprops do próprio repositório agora declaram corsOrigem = '*' explicitamente, com comentário avisando que o valor é adequado apenas para desenvolvimento. README documenta a nova propriedade nos exemplos de configuração. Sobre a segunda parte da issue (.gitignore): a geração já existe na principal e no pacote 1.4.0 publicado (gerarRepositorioGit escreve um .gitignore completo quando o Git é aceito) — o achado B4 do relatório estava incorreto nesse ponto, pois o caminho 'sim' da pergunta de Git não havia sido validado. Nenhuma mudança necessária. Validação de ponta a ponta com o código compilado sobreposto ao pacote liquido@1.4.0: - corsOrigem = 'https://meusite.com.br': header Access-Control-Allow-Origin ecoa apenas a origem permitida; origem não listada não recebe o header; sem aviso no boot; - corsOrigem = '*': header Access-Control-Allow-Origin: * e aviso em português na inicialização. Testes: novo testes/infraestrutura/cors-origem.test.ts com 13 casos (parsing de origens, aviso condicional na inicialização, repasse da configuração e presença da declaração explícita nos 4 templates); mocks de centro-configuracoes atualizados para o novo método. Suíte unitária completa: 240 testes passando. Fixes DesignLiquido#119
Coverage report
Test suite run success256 tests passing in 26 suites. Report generated by 🧪jest coverage report action from 6cbbd3f |
leonelsanchesdasilva
requested changes
Jul 13, 2026
leonelsanchesdasilva
left a comment
Contributor
There was a problem hiding this comment.
Está ótimo. Só pensei em usar outro nome.
Atendendo à revisão do PR: a propriedade passa a se chamar liquido.roteador.origensCors, nome mais fiel ao conteúdo (aceita uma ou mais origens separadas por vírgula). Renomeados em conjunto, por consistência: o campo origensCors em ConfiguracaoRoteador e em Roteador, o método configurarOrigensCors na interface e na implementação, a entrada do esquema delprops, os quatro templates do scaffold, o configuracao.delprops do repositório, o README, a mensagem de aviso na inicialização e os testes. Sem mudança de comportamento; suíte completa com 240 testes passando.
oxbar
commented
Jul 14, 2026
leonelsanchesdasilva
merged commit Jul 14, 2026
fb2c447
into
DesignLiquido:principal
3 checks passed
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.
Origem do CORS explícita e configurável em
configuracao.delprops, com aviso para'*'Fixes #119
Contexto
Atende diretamente à direção apontada no comentário da issue ("Estou querendo colocar isso explicitamente em
configuracao.delprops"): a origem do CORS agora é uma propriedade declarada, visível e documentada — em vez de umcors()sem opções liberando'*'de forma invisível.O que muda
Nova propriedade
liquido.roteador.corsOrigem(padrão'*'):'https://meusite.com.br') ou várias separadas por vírgula;ConfiguracaoRoteador→RoteadorInterface→Roteador, com a validação natural do centro de configurações e entrada no esquema delprops (comdetalheem português);Roteador.resolverOpcoesCors()traduz o valor para as opções do middleware:'*'mantém o comportamento liberado; qualquer outro valor vira{ origin: [...] }. Espaços tolerados, itens vazios ignorados, valor vazio volta ao padrão.Aviso explícito na inicialização quando CORS está habilitado com
'*':Templates e documentação: os 4 templates do scaffold (Delégua/Pituguês × MVC/API REST) e o
configuracao.delpropsdo próprio repositório declaramcorsOrigemexplicitamente com o comentário de aviso; README documenta a propriedade nos exemplos de configuração.Sobre a segunda parte da issue (
.gitignore)Correção honesta ao relatório de origem: a geração de
.gitignorejá existe naprincipale no pacote1.4.0publicado —gerarRepositorioGitescreve um.gitignorecompleto (node_modules, dist, .env*, coverage, logs, .DS_Store etc.) quando o Git é aceito. O achado B4 estava incorreto nesse ponto: nos testes do relatório, a pergunta de Git foi respondida com "não", e o caminho "sim" não foi validado. Nenhuma mudança foi necessária; fica o registro para fechar essa metade da issue como já resolvida.Validação de ponta a ponta
Código compilado (
tsc) sobreposto ao pacoteliquido@1.4.0instalado, projeto REST real:corsOrigem = 'https://meusite.com.br'Origin: https://meusite.com.brAccess-Control-Allow-Origin: https://meusite.com.br✓corsOrigem = 'https://meusite.com.br'Origin: https://malicioso.comcorsOrigem = 'https://meusite.com.br'corsOrigem = '*'Origin: https://qualquer.comAccess-Control-Allow-Origin: *+ aviso em português no boot ✓Testes
Novo
testes/infraestrutura/cors-origem.test.tscom 13 casos: parsing de origens (única, múltiplas com espaços, vazia), aviso condicional na inicialização (com'*', sem com origem restrita, sem com CORS desligado), repasse da configuração ao roteador, valor padrão, e presença da declaração explícita nos 4 templates. Mocks decentro-configuracoes.test.tsatualizados para o novo método da interface.Compatibilidade
Sem quebra:
corsOrigemtem padrão'*', preservando o comportamento atual de projetos existentes que só definemcors = verdadeiro— eles apenas passam a ver o aviso de desenvolvimento no boot, que é o objetivo da issue.