[Carol] Adicionar suporte ao "Accept-Encoding" "gzip" e retornar conteúdo compactado
Description
Stakeholder
Henrique / Robson
Problema
-
Notamos que tenants do clockin, que fazem o acionamento de endpoints “filter” e “namedquery” possuem o retorno para o client de uma massa grande de dados, o que ocasiona um aumento de custos de networking.
-
Thread do slack com debate: https://totvsideia.slack.com/archives/C047TPTTXV0/p1774471349595349
Objetivo
-
Adicionar feature flag e adicionar suporte ao “Accept-Encoding” “gzip” para retornar dados compactados ao cliente da tenant (conforme RFC1952).
Roles
-
Tenant Admin, Business USer, App Admin (por fim, todas as roles logadas).
Critério de Aceite
-
Tenants com acesso ao recurso de “Accept-Encoding” devem estar com a feature flag habilitada.
-
Apenas os endpoints abaixo deverão ter suporte a esse recurso (todas as versões do endpoint):
/api/vX/queries/named/{query_name}/api/vX/queries/filter
-
Se o cliente realizar uma request com “Accept-Encoding” atribuído com “gzip”, BE deve compactar o resultado e efetuar o retorno com o header “
Content-Encoding" definido com “gzip”.
-
Se “Accept-Encoding” não estiver informado, o resultado deverá ser enviado em formato padrão (json).
-
Se a tenant não estiver com a feature flag do “Accept-Encoding” habilitado, o resultado deverá ser enviado em formato padrão (json).
Observações adicionais sobre comunicado
-
Todos os times que consomem a Carol deverão ser notificados, em especial Clockin.
-
Rollout será gradual, com alinhamento ao time do clockin.
-
Ação deverá resultar em economia, principalmente para clockin.