authentik.events.context_processors.base

Base event enricher

 1"""Base event enricher"""
 2
 3from functools import cache
 4from typing import TYPE_CHECKING
 5
 6from django.http import HttpRequest
 7
 8if TYPE_CHECKING:
 9    from authentik.api.v3.config import Capabilities
10    from authentik.events.models import Event
11
12
13class EventContextProcessor:
14    """Base event enricher"""
15
16    def capability(self) -> Capabilities | None:
17        """Return the capability this context processor provides"""
18        return None
19
20    def configured(self) -> bool:
21        """Return true if this context processor is configured"""
22        return False
23
24    def enrich_event(self, event: Event):
25        """Modify event"""
26        raise NotImplementedError
27
28    def enrich_context(self, request: HttpRequest) -> dict:
29        """Modify context"""
30        raise NotImplementedError
31
32
33@cache
34def get_context_processors() -> list[EventContextProcessor]:
35    """Get a list of all configured context processors"""
36    from authentik.events.context_processors.asn import ASN_CONTEXT_PROCESSOR
37    from authentik.events.context_processors.geoip import GEOIP_CONTEXT_PROCESSOR
38
39    processors_types = [ASN_CONTEXT_PROCESSOR, GEOIP_CONTEXT_PROCESSOR]
40    processors = []
41    for _type in processors_types:
42        if _type.configured():
43            processors.append(_type)
44    return processors
class EventContextProcessor:
14class EventContextProcessor:
15    """Base event enricher"""
16
17    def capability(self) -> Capabilities | None:
18        """Return the capability this context processor provides"""
19        return None
20
21    def configured(self) -> bool:
22        """Return true if this context processor is configured"""
23        return False
24
25    def enrich_event(self, event: Event):
26        """Modify event"""
27        raise NotImplementedError
28
29    def enrich_context(self, request: HttpRequest) -> dict:
30        """Modify context"""
31        raise NotImplementedError

Base event enricher

def capability(unknown):
17    def capability(self) -> Capabilities | None:
18        """Return the capability this context processor provides"""
19        return None

Return the capability this context processor provides

def configured(self) -> bool:
21    def configured(self) -> bool:
22        """Return true if this context processor is configured"""
23        return False

Return true if this context processor is configured

def enrich_event(unknown):
25    def enrich_event(self, event: Event):
26        """Modify event"""
27        raise NotImplementedError

Modify event

def enrich_context(self, request: django.http.request.HttpRequest) -> dict:
29    def enrich_context(self, request: HttpRequest) -> dict:
30        """Modify context"""
31        raise NotImplementedError

Modify context

@cache
def get_context_processors() -> list[EventContextProcessor]:
34@cache
35def get_context_processors() -> list[EventContextProcessor]:
36    """Get a list of all configured context processors"""
37    from authentik.events.context_processors.asn import ASN_CONTEXT_PROCESSOR
38    from authentik.events.context_processors.geoip import GEOIP_CONTEXT_PROCESSOR
39
40    processors_types = [ASN_CONTEXT_PROCESSOR, GEOIP_CONTEXT_PROCESSOR]
41    processors = []
42    for _type in processors_types:
43        if _type.configured():
44            processors.append(_type)
45    return processors

Get a list of all configured context processors