Change the meilisearch key auth to conform to 0.25.0

This commit is contained in:
Ekaterina Vaartis 2022-03-22 20:29:17 +03:00
parent 79225d9b0a
commit 1e23f527e3
3 changed files with 12 additions and 10 deletions

View file

@ -47,15 +47,15 @@ you have to get the _private key_, which is actually used for authentication.
=== "OTP" === "OTP"
```sh ```sh
./bin/pleroma_ctl search.meilisearch show-private-key <your master key here> ./bin/pleroma_ctl search.meilisearch show-keys <your master key here>
``` ```
=== "From Source" === "From Source"
```sh ```sh
mix pleroma.search.meilisearch show-private-key <your master key here> mix pleroma.search.meilisearch show-keys <your master key here>
``` ```
This is the key you actually put into your configuration file. You will see a "Default Admin API Key", this is the key you actually put into your configuration file.
### Initial indexing ### Initial indexing

View file

@ -22,7 +22,7 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
) )
# The ranking rule syntax was changed but nothing about that is mentioned in the changelog # The ranking rule syntax was changed but nothing about that is mentioned in the changelog
if not Version.match?(meili_version, ">= 0.24.0") do if not Version.match?(meili_version, ">= 0.25.0") do
raise "Meilisearch <0.24.0 not supported" raise "Meilisearch <0.24.0 not supported"
end end
@ -112,7 +112,7 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
meili_delete!("/indexes/objects/documents") meili_delete!("/indexes/objects/documents")
end end
def run(["show-private-key", master_key]) do def run(["show-keys", master_key]) do
start_pleroma() start_pleroma()
endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url]) endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])
@ -120,15 +120,17 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
{:ok, result} = {:ok, result} =
Pleroma.HTTP.get( Pleroma.HTTP.get(
Path.join(endpoint, "/keys"), Path.join(endpoint, "/keys"),
[{"X-Meili-API-Key", master_key}] [{"Authorization", "Bearer #{master_key}"}]
) )
decoded = Jason.decode!(result.body) decoded = Jason.decode!(result.body)
if decoded["private"] do if decoded["results"] do
IO.puts(decoded["private"]) Enum.each(decoded["results"], fn %{"description" => desc, "key" => key} ->
IO.puts("#{desc}: #{key}")
end)
else else
IO.puts("Error fetching the key, check the master key is correct: #{inspect(decoded)}") IO.puts("Error fetching the keys, check the master key is correct: #{inspect(decoded)}")
end end
end end

View file

@ -13,7 +13,7 @@ defmodule Pleroma.Search.Meilisearch do
private_key = Pleroma.Config.get([Pleroma.Search.Meilisearch, :private_key]) private_key = Pleroma.Config.get([Pleroma.Search.Meilisearch, :private_key])
[{"Content-Type", "application/json"}] ++ [{"Content-Type", "application/json"}] ++
if is_nil(private_key), do: [], else: [{"X-Meili-API-Key", private_key}] if is_nil(private_key), do: [], else: [{"Authorization", "Bearer #{private_key}"}]
end end
def meili_get(path) do def meili_get(path) do