From 1d190eb8b6d8b67e069dcab24ec508ec959ff7d0 Mon Sep 17 00:00:00 2001 From: Damien Ostler Date: Tue, 1 Oct 2024 23:03:55 -0400 Subject: [PATCH] fix: custom api key --- meilisearch.NET.example/appsettings.json | 4 +++- .../Configurations/MeiliSearchConfiguration.cs | 4 ++++ meilisearch.NET/MeiliSearchService.cs | 13 +++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/meilisearch.NET.example/appsettings.json b/meilisearch.NET.example/appsettings.json index c82f26f..2e778ae 100644 --- a/meilisearch.NET.example/appsettings.json +++ b/meilisearch.NET.example/appsettings.json @@ -1,7 +1,9 @@ { "Meili": { "Port": 7700, - "UiEnabled" : true + "UiEnabled" : true, + "CustomApiKey": false, + "ApiKey": "YourOptionalApiKey" }, "Logging": { "LogLevel": { diff --git a/meilisearch.NET/Configurations/MeiliSearchConfiguration.cs b/meilisearch.NET/Configurations/MeiliSearchConfiguration.cs index 6a70c9e..f9a6fc8 100644 --- a/meilisearch.NET/Configurations/MeiliSearchConfiguration.cs +++ b/meilisearch.NET/Configurations/MeiliSearchConfiguration.cs @@ -6,6 +6,8 @@ public class MeiliSearchConfiguration { private readonly string _meiliPort = "Meili:Port"; private readonly string _meiliUiEnabled = "Meili:UiEnabled"; + private readonly string _meiliEnableCustomApiKey = "Meili:CustomApiKey"; + private readonly string _meiliApiKey = "Meili:ApiKey"; private readonly IConfiguration _configuration; public MeiliSearchConfiguration(IConfiguration configuration) { @@ -13,4 +15,6 @@ public class MeiliSearchConfiguration } public int MeiliPort => _configuration.GetValue(_meiliPort); public bool UiEnabled => _configuration.GetValue(_meiliUiEnabled); + public string ApiKey => _configuration.GetValue(_meiliApiKey) ?? ""; + public bool EnableCustomApiKey => _configuration.GetValue(_meiliEnableCustomApiKey); } \ No newline at end of file diff --git a/meilisearch.NET/MeiliSearchService.cs b/meilisearch.NET/MeiliSearchService.cs index 9bcc875..300410f 100644 --- a/meilisearch.NET/MeiliSearchService.cs +++ b/meilisearch.NET/MeiliSearchService.cs @@ -33,7 +33,12 @@ public class MeiliSearchService:IMeiliSearchService _meiliSearchConfiguration = meiliSearchConfiguration; var binaryName = GetBinaryName(); MakeExecutable(Path.Combine(AppContext.BaseDirectory, binaryName)); - var apiKey = ApiKeyGenerator.GenerateApiKey(); + string apiKey = ""; + if (_meiliSearchConfiguration.EnableCustomApiKey) + apiKey = _meiliSearchConfiguration.ApiKey; + else + apiKey = ApiKeyGenerator.GenerateApiKey(); + _sdkHttpClient = httpClient; _sdkHttpClient.BaseAddress = new Uri("http://localhost:"+meiliSearchConfiguration.MeiliPort); Sdk = new MeilisearchClient(httpClient, apiKey); @@ -190,7 +195,11 @@ public class MeiliSearchService:IMeiliSearchService public void RefreshApiKey() { _logger.LogInformation("Refreshing API key."); - var apiKey = ApiKeyGenerator.GenerateApiKey(); + string apiKey = ""; + if (_meiliSearchConfiguration.EnableCustomApiKey) + apiKey = _meiliSearchConfiguration.ApiKey; + else + apiKey = ApiKeyGenerator.GenerateApiKey(); Sdk = new MeilisearchClient(_sdkHttpClient, apiKey); _logger.LogInformation("New API key generated."); Restart();