Fluxos guiados por schema com configuração como código
Uma plataforma de interface guiada por configuração, com config-as-code baseado em Git, para que mudanças de regras saiam em horas sem deploy do frontend.
- Stack
- TypeScript · jsonform · Git · CI/CD · Schema validation
O problema
Fluxos para muitos mercados significavam código duplicado e um ticket de engenharia toda vez que produto ou compliance queriam mudar uma regra regional.
A abordagem
- Renderizar formulários a partir de um schema. A interface lê configuração JSON ou YAML por meio do jsonform: o schema gera os campos e as regras de validação. Ações personalizadas, como iniciar uma ponte nativa, ficam no código.
- Uma etapa, resultados diferentes. A configuração decide o que uma etapa faz em cada mercado e plataforma. Onde há suporte a um recurso nativo, a etapa mostra orientação e um botão de escanear; caso contrário, mostra os campos normais do formulário e um botão Continuar. Produto muda isso na configuração, não no código.
- Configuração como código. As mudanças são enviadas pelo Git. Cada mudança abre um pull request automático e roda CI com validação estrita de schema apoiada em tipos do TypeScript, então uma configuração malformada falha antes da produção.
Duas decisões que merecem explicação
jsonform para renderizar, código para as ações. Uma interface totalmente dirigida pelo servidor que executa lógica arbitrária enviada por ele convida riscos de execução remota de código e problemas de desempenho. Renderização orientada a dados com ações ligadas a handlers pré-compilados mantém a flexibilidade sem essa exposição.
Git em vez de um formulário de administração. Edições fáceis sem governança quebram fluxos de produção. Pull requests, verificações de tipos e CI tornam cada mudança atribuível, revisada e fácil de reverter.
O resultado
As publicações de configuração deixaram de depender de deploys do frontend, então as atualizações multimercado passaram de semanas para horas e a duplicação de código regional parou de crescer.