Integração do Elastic Cloud ao Front End

Olá, boa tarde.

Estou tentando integrar o Elasticsearch a um aplicativo React, e pela quantidade de informações a respeito, não sei se é possivel faze-lo.

O maior problema é que o aplicativo não possui um BackEnd (estamos usando firebase temporariamente), então a comunicação teria que ser feita diretamente ao Elastic Cloud.

Entrei em contato com o suporte, e me recomendaram o App Search, mas pelo que entendi, é necessário hospeda-lo em algum lugar ou fazer a assinatura de um dos pacotes.

É possivel integrar o Elastic Cloud diretamente ao Front End?

Oi @Renato_Razal,

É possível sim, basta que você habilite o CORS no seu deployment. Na documentação do Elasticsearch você pode encontrar as opções mas uma configuração simples seria:

http.cors.enabled: true
http.cors.allow-origin: "http://HOST-PERMITIDO"

Opa @luiz.santos, boa tarde.

Eu cheguei a ver esse trecho da documentação, mas ele diz que é necessário um arquivo de configuração ou alterar diretamente na API via esse metodo.

Eu tentei alterar direto pelo painel, mas de todos os modos que tentei obtive esse resultado:

    {
      "status": 400,
      "error": {
        "root_cause": [
          {
            "reason": "persistent setting [http.cors.allow-origin], not dynamically updateable",
            "type": "illegal_argument_exception"
          }
        ],
        "type": "illegal_argument_exception",
        "reason": "persistent setting [http.cors.allow-origin], not dynamically updateable"
      }
    }

Exemplo de requisição:

PUT /_cluster/settings

{
    "persistent": {
        "http.cors.enabled": true,
        "http.cors.allow-origin": "*"
    }
}

Oi Renato,

Essas configurações não podem ser alteradas dinamicamente usando a API _cluster. Você precisa seguir as orientações da documentação da Elastic Cloud para adicionar as user settings overrides.

1 Like

Opa @luiz.santos, muito obrigado, consegui configurar o CORS.