♻️(backend) generalize YProvider API config
Abstracted base URL and API key under 'y-provider' for reuse in future endpoints, aligning with microservice naming. Please note the YProvider API here is internal to the cluster. In facts, we don't want these endpoints to be exposed by any ingress
This commit is contained in:
committed by
aleb_the_flash
parent
ba63358098
commit
c10808b611
@@ -31,7 +31,7 @@ class YdocConverter:
|
||||
@property
|
||||
def auth_header(self):
|
||||
"""Build microservice authentication header."""
|
||||
return settings.CONVERSION_API_KEY
|
||||
return settings.Y_PROVIDER_API_KEY
|
||||
|
||||
def convert_markdown(self, text):
|
||||
"""Convert a Markdown text into our internal format using an external microservice."""
|
||||
@@ -41,7 +41,7 @@ class YdocConverter:
|
||||
|
||||
try:
|
||||
response = requests.post(
|
||||
settings.CONVERSION_API_URL,
|
||||
f"{settings.Y_PROVIDER_API_BASE_URL}{settings.CONVERSION_API_ENDPOINT}/",
|
||||
json={
|
||||
"content": text,
|
||||
},
|
||||
|
||||
@@ -16,7 +16,7 @@ from core.services.converter_services import (
|
||||
|
||||
def test_auth_header(settings):
|
||||
"""Test authentication header generation."""
|
||||
settings.CONVERSION_API_KEY = "test-key"
|
||||
settings.Y_PROVIDER_API_KEY = "test-key"
|
||||
converter = YdocConverter()
|
||||
assert converter.auth_header == "test-key"
|
||||
|
||||
@@ -97,8 +97,9 @@ def test_convert_markdown_missing_content_field(mock_post, settings):
|
||||
def test_convert_markdown_full_integration(mock_post, settings):
|
||||
"""Test full integration with all settings."""
|
||||
|
||||
settings.CONVERSION_API_URL = "http://test.com"
|
||||
settings.CONVERSION_API_KEY = "test-key"
|
||||
settings.Y_PROVIDER_API_BASE_URL = "http://test.com/"
|
||||
settings.Y_PROVIDER_API_KEY = "test-key"
|
||||
settings.CONVERSION_API_ENDPOINT = "conversion-endpoint"
|
||||
settings.CONVERSION_API_TIMEOUT = 5
|
||||
settings.CONVERSION_API_CONTENT_FIELD = "content"
|
||||
|
||||
@@ -113,7 +114,7 @@ def test_convert_markdown_full_integration(mock_post, settings):
|
||||
|
||||
assert result == expected_content
|
||||
mock_post.assert_called_once_with(
|
||||
"http://test.com",
|
||||
"http://test.com/conversion-endpoint/",
|
||||
json={"content": "test markdown"},
|
||||
headers={
|
||||
"Authorization": "test-key",
|
||||
|
||||
@@ -505,13 +505,21 @@ class Base(Configuration):
|
||||
"day": 200,
|
||||
}
|
||||
|
||||
# Conversion microservice
|
||||
CONVERSION_API_KEY = values.Value(
|
||||
environ_name="CONVERSION_API_KEY",
|
||||
# Y provider microservice
|
||||
# Note: Be careful, this value is currently the same as in the collaboration service.
|
||||
Y_PROVIDER_API_KEY = values.Value(
|
||||
environ_name="Y_PROVIDER_API_KEY",
|
||||
environ_prefix=None,
|
||||
)
|
||||
CONVERSION_API_URL = values.Value(
|
||||
environ_name="CONVERSION_API_URL",
|
||||
Y_PROVIDER_API_BASE_URL = values.Value(
|
||||
environ_name="Y_PROVIDER_API_BASE_URL",
|
||||
environ_prefix=None,
|
||||
)
|
||||
|
||||
# Conversion endpoint
|
||||
CONVERSION_API_ENDPOINT = values.Value(
|
||||
default="convert-markdown",
|
||||
environ_name="CONVERSION_API_ENDPOINT",
|
||||
environ_prefix=None,
|
||||
)
|
||||
CONVERSION_API_CONTENT_FIELD = values.Value(
|
||||
|
||||
@@ -51,8 +51,8 @@ backend:
|
||||
AWS_S3_SECRET_ACCESS_KEY: password
|
||||
AWS_STORAGE_BUCKET_NAME: impress-media-storage
|
||||
STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage
|
||||
CONVERSION_API_URL: http://impress-y-provider:443/api/convert-markdown/
|
||||
CONVERSION_API_KEY: my-secret
|
||||
Y_PROVIDER_API_BASE_URL: http://impress-y-provider:443/api/
|
||||
Y_PROVIDER_API_KEY: my-secret
|
||||
|
||||
migrate:
|
||||
command:
|
||||
|
||||
Reference in New Issue
Block a user