Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  • Alteração do application.yml para utilizar a propriedade ta-api-hub.products, possibilitando configuração de múltiplos produtos e seus respectivos datasources:
    • ```yaml
      ta-api-hub:
      default-instance:
      default-company:
      products:
      bioenergia:
      enabled:
      name:
      datasource:
      driver-class-name:
      url:
      username:
      password:
      test-connection:
      industria-mi:
      enabled:
      name:
      datasource:
      driver-class-name:
      url:
      username:
      password:
      test-connection:
      industria-pi:
      enabled:
      name:
      datasource:
      driver-class-name:
      url:
      username:
      password:
      test-connection:
      ```
  • Criação das classes ExternalProductContext, ProductDataSourceConfig, ExternalProductFilter e da anotação ExternalProductAware para controle dinâmico do contexto de produto externo por requisição;
  • Modificação da DataSourceUtil para gerenciar múltiplos datasources, templates e named templates conforme o produto ativo;
  • Foi necessário revisar e atualizar todos os pontos do código que utilizavam @Value para injeção de propriedades, especialmente nas classes BO, devido à nova estrutura do application.yml. Isso garantiu que as configurações fossem corretamente lidas conforme o novo padrão de organização do arquivo de propriedades.
  • Adição da chave de cabeçalho X-Product para utilizar os endpoints dos controladores anotados com @ExternalProductAware (atualmente, MigrationsController e FunctionsController, ou seja, /admin/migrations e /functions). Nesses casos, o cabeçalho é obrigatório para identificar explicitamente o produto externo da requisição, garantindo o isolamento e a seleção correta da base de dados. Para os demais controladores, o produto é resolvido automaticamente pelo contexto interno da API, por meio do método getProduct presente em classes como EntityHe, QueryHe e MobileServices, não sendo necessário informar o cabeçalho.

...