authentik.enterprise.apps
Enterprise app config
1"""Enterprise app config""" 2 3from django.conf import settings 4from prometheus_client import Gauge 5 6from authentik.blueprints.apps import ManagedAppConfig 7from authentik.lib.utils.time import fqdn_rand 8from authentik.tasks.schedules.common import ScheduleSpec 9 10GAUGE_LICENSE_USAGE = Gauge( 11 "authentik_enterprise_license_usage", 12 "Enterprise license usage (percentage per user type).", 13 ["user_type"], 14) 15GAUGE_LICENSE_EXPIRY = Gauge( 16 "authentik_enterprise_license_expiry_seconds", "Duration until license expires, in seconds." 17) 18 19 20class EnterpriseConfig(ManagedAppConfig): 21 """Base app config for all enterprise apps""" 22 23 24class AuthentikEnterpriseConfig(EnterpriseConfig): 25 """Enterprise app config""" 26 27 name = "authentik.enterprise" 28 label = "authentik_enterprise" 29 verbose_name = "authentik Enterprise" 30 default = True 31 32 def enabled(self): 33 """Return true if enterprise is enabled and valid""" 34 return self.check_enabled() or settings.TEST 35 36 def check_enabled(self): 37 """Actual enterprise check, cached""" 38 from authentik.enterprise.license import LicenseKey 39 40 return LicenseKey.cached_summary().status.is_valid 41 42 @property 43 def tenant_schedule_specs(self) -> list[ScheduleSpec]: 44 from authentik.enterprise.tasks import enterprise_update_usage 45 46 return [ 47 ScheduleSpec( 48 actor=enterprise_update_usage, 49 crontab=f"{fqdn_rand('enterprise_update_usage')} */2 * * *", 50 ), 51 ]
GAUGE_LICENSE_USAGE =
prometheus_client.metrics.Gauge(authentik_enterprise_license_usage)
GAUGE_LICENSE_EXPIRY =
prometheus_client.metrics.Gauge(authentik_enterprise_license_expiry_seconds)
Base app config for all enterprise apps
25class AuthentikEnterpriseConfig(EnterpriseConfig): 26 """Enterprise app config""" 27 28 name = "authentik.enterprise" 29 label = "authentik_enterprise" 30 verbose_name = "authentik Enterprise" 31 default = True 32 33 def enabled(self): 34 """Return true if enterprise is enabled and valid""" 35 return self.check_enabled() or settings.TEST 36 37 def check_enabled(self): 38 """Actual enterprise check, cached""" 39 from authentik.enterprise.license import LicenseKey 40 41 return LicenseKey.cached_summary().status.is_valid 42 43 @property 44 def tenant_schedule_specs(self) -> list[ScheduleSpec]: 45 from authentik.enterprise.tasks import enterprise_update_usage 46 47 return [ 48 ScheduleSpec( 49 actor=enterprise_update_usage, 50 crontab=f"{fqdn_rand('enterprise_update_usage')} */2 * * *", 51 ), 52 ]
Enterprise app config
name =
'authentik.enterprise'
def
enabled(self):
33 def enabled(self): 34 """Return true if enterprise is enabled and valid""" 35 return self.check_enabled() or settings.TEST
Return true if enterprise is enabled and valid
def
check_enabled(self):
37 def check_enabled(self): 38 """Actual enterprise check, cached""" 39 from authentik.enterprise.license import LicenseKey 40 41 return LicenseKey.cached_summary().status.is_valid
Actual enterprise check, cached
tenant_schedule_specs: list[authentik.tasks.schedules.common.ScheduleSpec]
43 @property 44 def tenant_schedule_specs(self) -> list[ScheduleSpec]: 45 from authentik.enterprise.tasks import enterprise_update_usage 46 47 return [ 48 ScheduleSpec( 49 actor=enterprise_update_usage, 50 crontab=f"{fqdn_rand('enterprise_update_usage')} */2 * * *", 51 ), 52 ]
Get a list of schedule specs that must exist in each tenant