This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/authentik/root/urls.py

60 lines
1.9 KiB
Python

"""authentik URL Configuration"""
from django.conf import settings
from django.conf.urls.static import static
from django.urls import include, path
from structlog.stdlib import get_logger
from authentik.core.views import error
from authentik.lib.utils.reflection import get_apps
from authentik.root.monitoring import LiveView, MetricsView, ReadyView
LOGGER = get_logger()
handler400 = error.BadRequestView.as_view()
handler403 = error.ForbiddenView.as_view()
handler404 = error.NotFoundView.as_view()
handler500 = error.ServerErrorView.as_view()
urlpatterns = []
for _authentik_app in get_apps():
mountpoints = None
base_url_module = _authentik_app.name + ".urls"
if hasattr(_authentik_app, "mountpoint"):
mountpoint = getattr(_authentik_app, "mountpoint")
mountpoints = {base_url_module: mountpoint}
if hasattr(_authentik_app, "mountpoints"):
mountpoints = getattr(_authentik_app, "mountpoints")
if not mountpoints:
continue
for module, mountpoint in mountpoints.items():
namespace = _authentik_app.label + module.replace(base_url_module, "")
_path = path(
mountpoint,
include(
(module, _authentik_app.label),
namespace=namespace,
),
)
urlpatterns.append(_path)
LOGGER.debug(
"Mounted URLs",
app_name=_authentik_app.name,
app_mountpoint=mountpoint,
namespace=namespace,
)
urlpatterns += [
path("metrics/", MetricsView.as_view(), name="metrics"),
path("-/health/live/", LiveView.as_view(), name="health-live"),
path("-/health/ready/", ReadyView.as_view(), name="health-ready"),
]
if settings.DEBUG: # pragma: no cover
urlpatterns = (
static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
+ urlpatterns
)