diff --git a/config/settings/base.py b/config/settings/base.py index 8d47439d..f455fec4 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -79,6 +79,7 @@ def env_list(name, default=None): # No models. Installed so its AppConfig runs and registers the session checks. LOCAL_APPS = [ "fusion_auth", + "modules.elm", ] # Each module is an independent Django app: own tables, migrations and contract. diff --git a/config/urls.py b/config/urls.py index 33f7835b..89966121 100644 --- a/config/urls.py +++ b/config/urls.py @@ -11,6 +11,7 @@ from core.api.health import healthz, readyz urlpatterns = [ + path("elm/", include("modules.elm.api.urls")), path("healthz", healthz, name="healthz"), path("readyz", readyz, name="readyz"), path("api/v1/", include("fusion_auth.urls")), diff --git a/modules/elm/__init__.py b/modules/elm/__init__.py new file mode 100644 index 00000000..29f6583c --- /dev/null +++ b/modules/elm/__init__.py @@ -0,0 +1 @@ +# This file marks the directory as a Python package diff --git a/modules/elm/api/__init__.py b/modules/elm/api/__init__.py new file mode 100644 index 00000000..29f6583c --- /dev/null +++ b/modules/elm/api/__init__.py @@ -0,0 +1 @@ +# This file marks the directory as a Python package diff --git a/modules/elm/api/serializers.py b/modules/elm/api/serializers.py new file mode 100644 index 00000000..be8a66c8 --- /dev/null +++ b/modules/elm/api/serializers.py @@ -0,0 +1 @@ +# No serializer needed for this read-only endpoint diff --git a/modules/elm/api/urls.py b/modules/elm/api/urls.py new file mode 100644 index 00000000..6c1f1761 --- /dev/null +++ b/modules/elm/api/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from .views import ELMDataViewSet + +urlpatterns = [ + path('', ELMDataViewSet.as_view({'get': 'list'})), +] diff --git a/modules/elm/api/views.py b/modules/elm/api/views.py new file mode 100644 index 00000000..1ff99d7e --- /dev/null +++ b/modules/elm/api/views.py @@ -0,0 +1,12 @@ +from rest_framework import viewsets +from rest_framework.response import Response +from rest_framework import status + +class ELMDataViewSet(viewsets.ViewSet): + def list(self, request): + metadata = { + "label": "elm", + "description": "ELM module metadata", + "version": "1.0.0" + } + return Response(metadata, status=status.HTTP_200_OK) diff --git a/modules/elm/apps.py b/modules/elm/apps.py new file mode 100644 index 00000000..8bb620d9 --- /dev/null +++ b/modules/elm/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + +class ElmConfig(AppConfig): + name = 'modules.elm' + verbose_name = 'ELM' diff --git a/modules/elm/registry.py b/modules/elm/registry.py new file mode 100644 index 00000000..16292e87 --- /dev/null +++ b/modules/elm/registry.py @@ -0,0 +1,4 @@ +from modules.elm.apps import ElmConfig + +def register(): + return ElmConfig.name