move more stuff out of lib

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
Jens Langhammer
2025-05-10 17:06:14 +02:00
parent e204a3fe16
commit ca0a4cb34f
210 changed files with 302 additions and 293 deletions

View File

@ -8,7 +8,7 @@ from django.urls import reverse
from authentik import __version__
from authentik.blueprints.tests import reconcile_app
from authentik.core.models import Group, User
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class TestAdminAPI(TestCase):

View File

@ -11,7 +11,7 @@ from authentik.api.authentication import bearer_auth
from authentik.common.oauth.constants import SCOPE_AUTHENTIK_API
from authentik.core.models import Token, TokenIntents
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.providers.oauth2.models import AccessToken, OAuth2Provider

View File

@ -10,14 +10,14 @@ from rest_framework.serializers import Serializer
from structlog import get_logger
from authentik.blueprints.v1.oci import OCI_PREFIX, BlueprintOCIClient, OCIException
from authentik.common.exceptions import NotReportedException
from authentik.lib.config import CONFIG
from authentik.lib.models import CreatedUpdatedModel, SerializerModel
from authentik.lib.sentry import SentryIgnoredException
LOGGER = get_logger()
class BlueprintRetrievalFailed(SentryIgnoredException):
class BlueprintRetrievalFailed(NotReportedException):
"""Error raised when we are unable to fetch the blueprint contents, whether it be HTTP files
not being accessible or local files not being readable"""

View File

@ -3,7 +3,7 @@
from django.test import TestCase
from authentik.blueprints.models import BlueprintInstance, BlueprintRetrievalFailed
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class TestModels(TestCase):

View File

@ -7,8 +7,8 @@ from django.test import TransactionTestCase
from authentik.blueprints.v1.exporter import FlowExporter
from authentik.blueprints.v1.importer import Importer, transaction_rollback
from authentik.core.models import Group
from authentik.crypto.generators import generate_id
from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import load_fixture
from authentik.policies.expression.models import ExpressionPolicy
from authentik.policies.models import PolicyBinding

View File

@ -5,8 +5,8 @@ from django.test import TransactionTestCase
from authentik.blueprints.v1.importer import Importer
from authentik.core.models import Application, Token, User
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.flows.models import Flow
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import load_fixture
from authentik.sources.oauth.models import OAuthSource

View File

@ -3,8 +3,8 @@
from django.test import TransactionTestCase
from authentik.blueprints.v1.importer import Importer
from authentik.crypto.generators import generate_id
from authentik.flows.models import Flow
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import load_fixture

View File

@ -5,8 +5,8 @@ from guardian.shortcuts import get_perms
from authentik.blueprints.v1.importer import Importer
from authentik.core.models import User
from authentik.crypto.generators import generate_id
from authentik.flows.models import Flow
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import load_fixture
from authentik.rbac.models import Role

View File

@ -3,8 +3,8 @@
from django.test import TransactionTestCase
from authentik.blueprints.v1.importer import Importer
from authentik.crypto.generators import generate_id
from authentik.flows.models import Flow
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import load_fixture

View File

@ -8,8 +8,8 @@ from yaml import dump
from authentik.blueprints.models import BlueprintInstance, BlueprintInstanceStatus
from authentik.blueprints.v1.tasks import apply_blueprint, blueprints_discovery, blueprints_find
from authentik.crypto.generators import generate_id
from authentik.lib.config import CONFIG
from authentik.lib.generators import generate_id
TMP = mkdtemp("authentik-blueprints")

View File

@ -19,8 +19,8 @@ from rest_framework.fields import Field
from rest_framework.serializers import Serializer
from yaml import SafeDumper, SafeLoader, ScalarNode, SequenceNode
from authentik.common.exceptions import NotReportedException
from authentik.lib.models import SerializerModel
from authentik.lib.sentry import SentryIgnoredException
from authentik.policies.models import PolicyBindingModel
@ -661,7 +661,7 @@ class BlueprintLoader(SafeLoader):
self.add_constructor("!AtIndex", AtIndex)
class EntryInvalidError(SentryIgnoredException):
class EntryInvalidError(NotReportedException):
"""Error raised when an entry is invalid"""
entry_model: str | None

View File

@ -28,12 +28,12 @@ from authentik.blueprints.v1.common import (
EntryInvalidError,
)
from authentik.blueprints.v1.meta.registry import BaseMetaModel, registry
from authentik.common.exceptions import NotReportedException
from authentik.core.models import User
from authentik.enterprise.license import LicenseKey
from authentik.events.logs import LogEvent, capture_logs
from authentik.events.utils import cleanse_dict
from authentik.lib.models import SerializerModel, excluded_models
from authentik.lib.sentry import SentryIgnoredException
from authentik.lib.utils.reflection import get_apps
from authentik.rbac.models import Role
@ -47,7 +47,7 @@ def is_model_allowed(model: type[Model]) -> bool:
return model not in excluded_models() and issubclass(model, SerializerModel | BaseMetaModel)
class DoRollback(SentryIgnoredException):
class DoRollback(NotReportedException):
"""Exception to trigger a rollback"""

View File

@ -16,14 +16,14 @@ from requests.exceptions import RequestException
from structlog import get_logger
from structlog.stdlib import BoundLogger
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
from authentik.lib.utils.http import authentik_user_agent
OCI_MEDIA_TYPE = "application/vnd.goauthentik.blueprint.v1+yaml"
OCI_PREFIX = "oci://"
class OCIException(SentryIgnoredException):
class OCIException(NotReportedException):
"""OCI-related errors"""

View File

@ -7,7 +7,7 @@ from authentik.brands.api import Themes
from authentik.brands.models import Brand
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_brand
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.providers.oauth2.models import OAuth2Provider
from authentik.providers.saml.models import SAMLProvider

View File

@ -0,0 +1,7 @@
class AuthentikException(Exception):
"""Base class for authentik exceptions"""
class NotReportedException(AuthentikException):
"""Exception base class for all errors that are suppressed,
and not sent to any kind of monitoring."""

View File

@ -19,7 +19,7 @@ from sentry_sdk.tracing import Span
from structlog.stdlib import get_logger
from authentik.common.expression.exceptions import ControlFlowException
from authentik.core.models import AuthenticatedSession, User
from authentik.core.models import User
from authentik.events.models import Event
from authentik.lib.utils.http import get_http_session
from authentik.lib.utils.time import timedelta_from_string

View File

@ -1,6 +1,6 @@
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
class ControlFlowException(SentryIgnoredException):
class ControlFlowException(NotReportedException):
"""Exceptions used to control the flow from exceptions, not reported as a warning/
error in logs"""

View File

@ -4,13 +4,13 @@ from urllib.parse import quote, urlparse
from django.http import HttpRequest, HttpResponse, HttpResponseRedirect
from authentik.common.exceptions import NotReportedException
from authentik.events.models import Event, EventAction
from authentik.lib.sentry import SentryIgnoredException
from authentik.lib.views import bad_request_message
from authentik.providers.oauth2.models import GrantTypes, RedirectURI
class OAuth2Error(SentryIgnoredException):
class OAuth2Error(NotReportedException):
"""Base class for all OAuth2 Errors"""
error: str

View File

@ -1,9 +1,9 @@
"""authentik saml source exceptions"""
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
class SAMLException(SentryIgnoredException):
class SAMLException(NotReportedException):
"""Base SAML Exception"""

View File

@ -1,7 +1,7 @@
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
class BaseSyncException(SentryIgnoredException):
class BaseSyncException(NotReportedException):
"""Base class for all sync exceptions"""

View File

@ -1,10 +1,10 @@
"""authentik core exceptions"""
from authentik.common.exceptions import NotReportedException
from authentik.common.expression.exceptions import ControlFlowException
from authentik.lib.sentry import SentryIgnoredException
class PropertyMappingExpressionException(SentryIgnoredException):
class PropertyMappingExpressionException(NotReportedException):
"""Error when a PropertyMapping Exception expression could not be parsed or evaluated."""
def __init__(self, exc: Exception, mapping) -> None:

View File

@ -5,7 +5,7 @@ from django.db import migrations, models
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
import authentik.core.models
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
def set_default_token_key(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):

View File

@ -29,8 +29,8 @@ from authentik.blueprints.models import ManagedModel
from authentik.common.expression.exceptions import ControlFlowException
from authentik.core.expression.exceptions import PropertyMappingExpressionException
from authentik.core.types import UILoginButton, UserSettingSerializer
from authentik.crypto.generators import generate_id
from authentik.lib.avatars import get_avatar
from authentik.lib.generators import generate_id
from authentik.lib.merge import MERGE_LIST_UNIQUE
from authentik.lib.models import (
CreatedUpdatedModel,

View File

@ -6,7 +6,7 @@ from rest_framework.test import APITestCase
from authentik.core.models import Application, ApplicationEntitlement, Group
from authentik.core.tests.utils import create_test_admin_user, create_test_flow, create_test_user
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.policies.dummy.models import DummyPolicy
from authentik.policies.models import PolicyBinding
from authentik.providers.oauth2.models import OAuth2Provider

View File

@ -9,7 +9,7 @@ from rest_framework.test import APITestCase
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.policies.dummy.models import DummyPolicy
from authentik.policies.models import PolicyBinding
from authentik.providers.oauth2.models import OAuth2Provider, RedirectURI, RedirectURIMatchingMode

View File

@ -3,7 +3,7 @@
from django.test.testcases import TestCase
from authentik.core.models import Group, User
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class TestGroups(TestCase):

View File

@ -6,7 +6,7 @@ from rest_framework.test import APITestCase
from authentik.core.models import Group
from authentik.core.tests.utils import create_test_admin_user, create_test_user
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class TestGroupsAPI(APITestCase):

View File

@ -9,8 +9,8 @@ from authentik.core.expression.exceptions import (
)
from authentik.core.models import PropertyMapping
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
from authentik.policies.expression.models import ExpressionPolicy

View File

@ -9,7 +9,7 @@ from rest_framework.test import APITestCase
from authentik.core.api.property_mappings import PropertyMappingSerializer
from authentik.core.models import Group, PropertyMapping
from authentik.core.tests.utils import create_test_admin_user
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class TestPropertyMappingAPI(APITestCase):

View File

@ -9,9 +9,9 @@ from authentik.core.models import SourceUserMatchingModes, User
from authentik.core.sources.flow_manager import Action
from authentik.core.sources.stage import PostSourceStage
from authentik.core.tests.utils import create_test_flow
from authentik.crypto.generators import generate_id
from authentik.flows.planner import FlowPlan
from authentik.flows.views.executor import SESSION_KEY_PLAN
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import get_request
from authentik.policies.denied import AccessDeniedResponse
from authentik.policies.expression.models import ExpressionPolicy

View File

@ -5,11 +5,11 @@ from django.test import RequestFactory
from authentik.core.models import Group, SourceGroupMatchingModes
from authentik.core.sources.flow_manager import PLAN_CONTEXT_SOURCE_GROUPS, GroupUpdateStage
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.crypto.generators import generate_id
from authentik.flows.models import in_memory_stage
from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, PLAN_CONTEXT_SOURCE, FlowPlan
from authentik.flows.tests import FlowTestCase
from authentik.flows.views.executor import FlowExecutorView
from authentik.lib.generators import generate_id
from authentik.sources.oauth.models import GroupOAuthSourceConnection, OAuthSource

View File

@ -4,7 +4,7 @@ from django.test import TestCase
from authentik.core.models import Group, PropertyMapping, Source, User
from authentik.core.sources.mapper import SourceMapper
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class ProxySource(Source):

View File

@ -18,7 +18,7 @@ from authentik.core.tasks import (
clean_temporary_users,
)
from authentik.core.tests.utils import create_test_admin_user
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class TestTasks(APITestCase):

View File

@ -15,7 +15,7 @@ from authentik.core.models import (
TokenIntents,
)
from authentik.core.tests.utils import create_test_admin_user, create_test_user
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
class TestTokenAPI(APITestCase):

View File

@ -6,7 +6,7 @@ from rest_framework.test import APITestCase
from authentik.core.models import Application, Group
from authentik.core.tests.utils import create_test_flow, create_test_user
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.policies.models import PolicyBinding
from authentik.providers.oauth2.models import OAuth2Provider

View File

@ -21,8 +21,8 @@ from authentik.core.tests.utils import (
create_test_flow,
create_test_user,
)
from authentik.crypto.generators import generate_id, generate_key
from authentik.flows.models import FlowDesignation
from authentik.lib.generators import generate_id, generate_key
from authentik.stages.email.models import EmailStage

View File

@ -5,9 +5,9 @@ from django.utils.text import slugify
from authentik.brands.models import Brand
from authentik.core.models import Group, User
from authentik.crypto.builder import CertificateBuilder, PrivateKeyAlg
from authentik.crypto.generators import generate_id
from authentik.crypto.models import CertificateKeyPair
from authentik.flows.models import Flow, FlowDesignation
from authentik.lib.generators import generate_id
def create_test_flow(

View File

@ -3,7 +3,7 @@
from datetime import UTC, datetime
from authentik.blueprints.apps import ManagedAppConfig
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
MANAGED_KEY = "goauthentik.io/crypto/jwt-managed"

View File

@ -14,10 +14,10 @@ from authentik.core.api.used_by import DeleteAction
from authentik.core.tests.utils import create_test_admin_user, create_test_cert, create_test_flow
from authentik.crypto.api import CertificateKeyPairSerializer
from authentik.crypto.builder import CertificateBuilder
from authentik.crypto.generators import generate_id, generate_key
from authentik.crypto.models import CertificateKeyPair
from authentik.crypto.tasks import MANAGED_DISCOVERED, certificate_discovery
from authentik.lib.config import CONFIG
from authentik.lib.generators import generate_id, generate_key
from authentik.providers.oauth2.models import OAuth2Provider, RedirectURI, RedirectURIMatchingMode

View File

@ -7,9 +7,9 @@ from rest_framework.test import APITestCase
from authentik.core.models import Group, User
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.events.models import Event, EventAction
from authentik.events.utils import sanitize_item
from authentik.lib.generators import generate_id
class TestEnterpriseAudit(APITestCase):

View File

@ -4,13 +4,13 @@ from django.contrib.auth.hashers import make_password
from django.urls.base import reverse
from authentik.core.tests.utils import create_test_flow, create_test_user
from authentik.crypto.generators import generate_id
from authentik.enterprise.policies.unique_password.models import (
UniquePasswordPolicy,
UserPasswordHistory,
)
from authentik.flows.models import FlowDesignation, FlowStageBinding
from authentik.flows.tests import FlowTestCase
from authentik.lib.generators import generate_id
from authentik.stages.prompt.models import FieldTypes, Prompt, PromptStage

View File

@ -2,6 +2,7 @@ from django.urls import reverse
from authentik.core.models import Group, Source, User
from authentik.core.tests.utils import create_test_flow, create_test_user
from authentik.crypto.generators import generate_key
from authentik.enterprise.policies.unique_password.models import (
UniquePasswordPolicy,
UserPasswordHistory,
@ -11,7 +12,6 @@ from authentik.flows.models import FlowStageBinding
from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan
from authentik.flows.tests import FlowTestCase
from authentik.flows.views.executor import SESSION_KEY_PLAN
from authentik.lib.generators import generate_key
from authentik.policies.models import PolicyBinding, PolicyBindingModel
from authentik.stages.prompt.stage import PLAN_CONTEXT_PROMPT
from authentik.stages.user_write.models import UserWriteStage

View File

@ -8,6 +8,7 @@ from authentik.blueprints.tests import apply_blueprint
from authentik.common.sync.outgoing.models import OutgoingSyncDeleteAction
from authentik.core.models import Application, Group, User
from authentik.core.tests.utils import create_test_user
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.google_workspace.clients.test_http import MockHTTP
from authentik.enterprise.providers.google_workspace.models import (
GoogleWorkspaceProvider,
@ -16,7 +17,6 @@ from authentik.enterprise.providers.google_workspace.models import (
)
from authentik.enterprise.providers.google_workspace.tasks import google_workspace_sync
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import load_fixture
from authentik.tenants.models import Tenant

View File

@ -8,6 +8,7 @@ from django.test import TestCase
from authentik.blueprints.tests import apply_blueprint
from authentik.common.sync.outgoing.models import OutgoingSyncDeleteAction
from authentik.core.models import Application, Group, User
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.google_workspace.clients.test_http import MockHTTP
from authentik.enterprise.providers.google_workspace.models import (
GoogleWorkspaceProvider,
@ -16,7 +17,6 @@ from authentik.enterprise.providers.google_workspace.models import (
)
from authentik.enterprise.providers.google_workspace.tasks import google_workspace_sync
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import load_fixture
from authentik.tenants.models import Tenant

View File

@ -16,6 +16,7 @@ from authentik.blueprints.tests import apply_blueprint
from authentik.common.sync.outgoing.models import OutgoingSyncDeleteAction
from authentik.core.models import Application, Group, User
from authentik.core.tests.utils import create_test_user
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.microsoft_entra.models import (
MicrosoftEntraProvider,
MicrosoftEntraProviderGroup,
@ -24,7 +25,6 @@ from authentik.enterprise.providers.microsoft_entra.models import (
)
from authentik.enterprise.providers.microsoft_entra.tasks import microsoft_entra_sync
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
from authentik.tenants.models import Tenant

View File

@ -16,6 +16,7 @@ from authentik.blueprints.tests import apply_blueprint
from authentik.common.sync.outgoing.models import OutgoingSyncDeleteAction
from authentik.core.models import Application, Group, User
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.microsoft_entra.models import (
MicrosoftEntraProvider,
MicrosoftEntraProviderMapping,
@ -23,7 +24,6 @@ from authentik.enterprise.providers.microsoft_entra.models import (
)
from authentik.enterprise.providers.microsoft_entra.tasks import microsoft_entra_sync
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
from authentik.tenants.models import Tenant

View File

@ -5,10 +5,10 @@ from rest_framework.test import APITestCase
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_cert
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.ssf.models import (
SSFProvider,
)
from authentik.lib.generators import generate_id
class TestConfiguration(APITestCase):

View File

@ -11,8 +11,8 @@ from jwt import PyJWKSet
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_cert
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.ssf.models import SSFProvider
from authentik.lib.generators import generate_id
class TestJWKS(TestCase):

View File

@ -8,6 +8,7 @@ from authentik.core.tests.utils import (
create_test_cert,
create_test_user,
)
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.ssf.models import (
EventTypes,
SSFEventStatus,
@ -15,7 +16,6 @@ from authentik.enterprise.providers.ssf.models import (
Stream,
StreamEvent,
)
from authentik.lib.generators import generate_id
from authentik.policies.models import PolicyBinding
from authentik.stages.authenticator_webauthn.models import WebAuthnDevice

View File

@ -7,13 +7,13 @@ from rest_framework.test import APITestCase
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_cert, create_test_flow
from authentik.crypto.generators import generate_id
from authentik.enterprise.providers.ssf.models import (
SSFEventStatus,
SSFProvider,
Stream,
StreamEvent,
)
from authentik.lib.generators import generate_id
from authentik.providers.oauth2.id_token import IDToken
from authentik.providers.oauth2.models import AccessToken, OAuth2Provider

View File

@ -3,13 +3,13 @@
from django.urls import reverse
from authentik.core.tests.utils import create_test_flow, create_test_user
from authentik.crypto.generators import generate_id
from authentik.enterprise.stages.source.models import SourceStage
from authentik.enterprise.stages.source.stage import SourceStageFinal
from authentik.flows.models import FlowDesignation, FlowStageBinding, FlowToken, in_memory_stage
from authentik.flows.planner import PLAN_CONTEXT_IS_RESTORED, FlowPlan
from authentik.flows.tests import FlowTestCase
from authentik.flows.views.executor import SESSION_KEY_PLAN
from authentik.lib.generators import generate_id
from authentik.sources.saml.models import SAMLSource
from authentik.stages.identification.models import IdentificationStage, UserFields
from authentik.stages.password import BACKEND_INBUILT

View File

@ -8,6 +8,7 @@ from django.test import TestCase
from django.utils.timezone import now
from rest_framework.exceptions import ValidationError
from authentik.crypto.generators import generate_id
from authentik.enterprise.license import LicenseKey
from authentik.enterprise.models import (
THRESHOLD_READ_ONLY_WEEKS,
@ -17,7 +18,6 @@ from authentik.enterprise.models import (
LicenseUsage,
LicenseUsageStatus,
)
from authentik.lib.generators import generate_id
# Valid license expiry
expiry_valid = int(mktime((now() + timedelta(days=3000)).timetuple()))

View File

@ -7,6 +7,7 @@ from django.urls import reverse
from django.utils.timezone import now
from authentik.core.tests.utils import create_test_admin_user, create_test_flow, create_test_user
from authentik.crypto.generators import generate_id
from authentik.enterprise.license import LicenseKey
from authentik.enterprise.models import (
THRESHOLD_READ_ONLY_WEEKS,
@ -20,7 +21,6 @@ from authentik.flows.models import (
FlowStageBinding,
)
from authentik.flows.tests import FlowTestCase
from authentik.lib.generators import generate_id
from authentik.stages.identification.models import IdentificationStage, UserFields
from authentik.stages.password import BACKEND_INBUILT
from authentik.stages.password.models import PasswordStage

View File

@ -19,8 +19,8 @@ from authentik.core.models import Group, User
from authentik.events.models import Event, EventAction, Notification
from authentik.events.utils import model_to_dict
from authentik.lib.models import excluded_models
from authentik.lib.sentry import before_send
from authentik.lib.utils.errors import exception_to_string
from authentik.root.sentry import should_ignore_exception
from authentik.stages.authenticator_static.models import StaticToken
IGNORED_MODELS = tuple(
@ -173,7 +173,7 @@ class AuditMiddleware:
message=exception_to_string(exception),
)
thread.run()
elif before_send({}, {"exc_info": (None, exception, None)}) is not None:
elif not should_ignore_exception(exception):
thread = EventNewThread(
EventAction.SYSTEM_EXCEPTION,
request,

View File

@ -27,6 +27,7 @@ from structlog.stdlib import get_logger
from authentik import get_full_version
from authentik.brands.models import Brand
from authentik.brands.utils import DEFAULT_BRAND
from authentik.common.exceptions import NotReportedException
from authentik.core.middleware import (
SESSION_KEY_IMPERSONATE_ORIGINAL_USER,
SESSION_KEY_IMPERSONATE_USER,
@ -46,7 +47,6 @@ from authentik.lib.models import (
SerializerModel,
internal_model,
)
from authentik.lib.sentry import SentryIgnoredException
from authentik.lib.utils.http import get_http_session
from authentik.lib.utils.time import timedelta_from_string
from authentik.policies.models import PolicyBindingModel
@ -81,7 +81,7 @@ def django_app_names() -> list[str]:
return [x.name for x in apps.app_configs.values()]
class NotificationTransportError(SentryIgnoredException):
class NotificationTransportError(NotReportedException):
"""Error raised when a notification fails to be delivered"""

View File

@ -6,6 +6,7 @@ from django.urls import reverse
from rest_framework.test import APITestCase
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.events.models import (
Event,
EventAction,
@ -14,7 +15,6 @@ from authentik.events.models import (
TransportMode,
)
from authentik.events.utils import model_to_dict
from authentik.lib.generators import generate_id
from authentik.providers.oauth2.models import OAuth2Provider

View File

@ -9,9 +9,9 @@ from guardian.shortcuts import get_anonymous_user
from authentik.brands.models import Brand
from authentik.core.models import Group
from authentik.crypto.generators import generate_id
from authentik.events.models import Event
from authentik.flows.views.executor import QS_QUERY
from authentik.lib.generators import generate_id
from authentik.policies.dummy.models import DummyPolicy

View File

@ -5,9 +5,9 @@ from rest_framework.test import APITestCase
from authentik.core.models import Application, Token, TokenIntents
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.events.middleware import audit_ignore, audit_overwrite_user
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
class TestEventsMiddleware(APITestCase):

View File

@ -6,6 +6,7 @@ from django.urls import reverse
from rest_framework.test import APITestCase
from authentik.core.models import Group, User
from authentik.crypto.generators import generate_id
from authentik.events.models import (
Event,
EventAction,
@ -16,7 +17,6 @@ from authentik.events.models import (
NotificationWebhookMapping,
TransportMode,
)
from authentik.lib.generators import generate_id
from authentik.policies.event_matcher.models import EventMatcherPolicy
from authentik.policies.exceptions import PolicyException
from authentik.policies.models import PolicyBinding

View File

@ -7,10 +7,10 @@ from rest_framework.test import APITestCase
from authentik.core.tasks import clean_expired_models
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.events.models import SystemTask as DBSystemTask
from authentik.events.models import TaskStatus
from authentik.events.system_tasks import SystemTask
from authentik.lib.generators import generate_id
from authentik.root.celery import CELERY_APP

View File

@ -9,6 +9,7 @@ from requests_mock import Mocker
from authentik import get_full_version
from authentik.core.tests.utils import create_test_admin_user
from authentik.crypto.generators import generate_id
from authentik.events.models import (
Event,
Notification,
@ -17,7 +18,6 @@ from authentik.events.models import (
NotificationWebhookMapping,
TransportMode,
)
from authentik.lib.generators import generate_id
class TestEventTransports(TestCase):

View File

@ -2,11 +2,11 @@
from django.utils.translation import gettext_lazy as _
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
from authentik.policies.types import PolicyResult
class FlowNonApplicableException(SentryIgnoredException):
class FlowNonApplicableException(NotReportedException):
"""Flow does not apply to current user (denied by policy, or otherwise)."""
policy_result: PolicyResult | None = None
@ -19,14 +19,14 @@ class FlowNonApplicableException(SentryIgnoredException):
return "\n".join(self.policy_result.messages)
class EmptyFlowException(SentryIgnoredException):
class EmptyFlowException(NotReportedException):
"""Flow has no stages."""
class FlowSkipStageException(SentryIgnoredException):
class FlowSkipStageException(NotReportedException):
"""Exception to skip a stage"""
class StageInvalidException(SentryIgnoredException):
class StageInvalidException(NotReportedException):
"""Exception can be thrown in a `Challenge` or `ChallengeResponse` serializer's
validation to trigger a `executor.stage_invalid()` response"""

View File

@ -6,9 +6,9 @@ from django.urls import reverse
from rest_framework.test import APITestCase
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.crypto.generators import generate_id
from authentik.flows.api.stages import StageSerializer, StageViewSet
from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding, Stage
from authentik.lib.generators import generate_id
from authentik.policies.dummy.models import DummyPolicy
from authentik.policies.models import PolicyBinding
from authentik.stages.dummy.models import DummyStage

View File

@ -9,6 +9,7 @@ from django.urls import reverse
from authentik.core.models import Group, User
from authentik.core.tests.utils import create_test_flow, create_test_user
from authentik.crypto.generators import generate_id
from authentik.flows.markers import ReevaluateMarker, StageMarker
from authentik.flows.models import (
FlowDeniedAction,
@ -25,7 +26,6 @@ from authentik.flows.views.executor import (
SESSION_KEY_PLAN,
FlowExecutorView,
)
from authentik.lib.generators import generate_id
from authentik.policies.dummy.models import DummyPolicy
from authentik.policies.models import PolicyBinding
from authentik.policies.reputation.models import ReputationPolicy

View File

@ -7,8 +7,8 @@ from django.urls.base import reverse
from rest_framework.test import APITestCase
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.crypto.generators import generate_id
from authentik.flows.models import FlowDesignation, FlowStageBinding, InvalidResponseAction
from authentik.lib.generators import generate_id
from authentik.stages.dummy.models import DummyStage
from authentik.stages.identification.models import IdentificationStage, UserFields

View File

@ -14,6 +14,7 @@ from guardian.shortcuts import get_anonymous_user
from authentik.blueprints.tests import reconcile_app
from authentik.core.models import User
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.crypto.generators import generate_id
from authentik.flows.exceptions import EmptyFlowException, FlowNonApplicableException
from authentik.flows.markers import ReevaluateMarker, StageMarker
from authentik.flows.models import (
@ -29,7 +30,6 @@ from authentik.flows.planner import (
cache_key,
)
from authentik.flows.stage import StageView
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import dummy_get_response
from authentik.outposts.apps import MANAGED_OUTPOST
from authentik.outposts.models import Outpost

View File

@ -5,10 +5,10 @@ from django.urls import reverse
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_flow
from authentik.crypto.generators import generate_id
from authentik.flows.models import Flow, FlowDesignation
from authentik.flows.planner import FlowPlan
from authentik.flows.views.executor import SESSION_KEY_APPLICATION_PRE, SESSION_KEY_PLAN
from authentik.lib.generators import generate_id
from authentik.providers.oauth2.models import OAuth2Provider

View File

@ -23,6 +23,7 @@ from sentry_sdk.api import set_tag
from structlog.stdlib import BoundLogger, get_logger
from authentik.brands.models import Brand
from authentik.common.exceptions import NotReportedException
from authentik.core.models import Application
from authentik.events.models import Event, EventAction, cleanse_dict
from authentik.flows.apps import HIST_FLOW_EXECUTION_STAGE_TIME
@ -55,7 +56,6 @@ from authentik.flows.planner import (
FlowPlanner,
)
from authentik.flows.stage import AccessDeniedStage, StageView
from authentik.lib.sentry import SentryIgnoredException
from authentik.lib.utils.errors import exception_to_string
from authentik.lib.utils.reflection import all_subclasses, class_to_path
from authentik.lib.utils.urls import is_url_absolute, redirect_with_qs
@ -93,7 +93,7 @@ def challenge_response_types():
return mapping
class InvalidStageError(SentryIgnoredException):
class InvalidStageError(NotReportedException):
"""Error raised when a challenge from a stage is not valid"""

View File

@ -7,8 +7,8 @@ from jwt import decode
from authentik.blueprints.tests import apply_blueprint
from authentik.common.expression.evaluator import BaseEvaluator
from authentik.core.tests.utils import create_test_admin_user, create_test_flow, create_test_user
from authentik.crypto.generators import generate_id
from authentik.events.models import Event
from authentik.lib.generators import generate_id
from authentik.providers.oauth2.models import OAuth2Provider, ScopeMapping

View File

@ -2,7 +2,7 @@
from django.test import TestCase
from authentik.lib.sentry import SentryIgnoredException, before_send
from authentik.common.exceptions import NotReportedException, before_send
class TestSentry(TestCase):
@ -10,7 +10,7 @@ class TestSentry(TestCase):
def test_error_not_sent(self):
"""Test SentryIgnoredError not sent"""
self.assertIsNone(before_send({}, {"exc_info": (0, SentryIgnoredException(), 0)}))
self.assertIsNone(before_send({}, {"exc_info": (0, NotReportedException(), 0)}))
def test_error_sent(self):
"""Test error sent"""

View File

@ -5,9 +5,9 @@ from dataclasses import dataclass
from structlog.stdlib import get_logger
from authentik import __version__, get_build_hash
from authentik.common.exceptions import NotReportedException
from authentik.events.logs import LogEvent, capture_logs
from authentik.lib.config import CONFIG
from authentik.lib.sentry import SentryIgnoredException
from authentik.outposts.models import (
Outpost,
OutpostServiceConnection,
@ -17,7 +17,7 @@ from authentik.outposts.models import (
FIELD_MANAGER = "goauthentik.io"
class ControllerException(SentryIgnoredException):
class ControllerException(NotReportedException):
"""Exception raised when anything fails during controller run"""

View File

@ -1,9 +1,9 @@
"""exceptions used by the kubernetes reconciler to trigger updates"""
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
class ReconcileTrigger(SentryIgnoredException):
class ReconcileTrigger(NotReportedException):
"""Base trigger raised by child classes to notify us"""

View File

@ -22,6 +22,7 @@ from structlog.stdlib import get_logger
from authentik import __version__, get_build_hash
from authentik.blueprints.models import ManagedModel
from authentik.brands.models import Brand
from authentik.common.exceptions import NotReportedException
from authentik.core.models import (
USER_PATH_SYSTEM_PREFIX,
Provider,
@ -38,7 +39,6 @@ from authentik.lib.models import (
SerializerModel,
internal_model,
)
from authentik.lib.sentry import SentryIgnoredException
from authentik.lib.utils.errors import exception_to_string
from authentik.outposts.controllers.k8s.utils import get_namespace
@ -49,7 +49,7 @@ LOGGER = get_logger()
USER_PATH_OUTPOSTS = USER_PATH_SYSTEM_PREFIX + "/outposts"
class ServiceConnectionInvalid(SentryIgnoredException):
class ServiceConnectionInvalid(NotReportedException):
"""Exception raised when a Service Connection has invalid parameters"""

View File

@ -6,7 +6,7 @@ from rest_framework.test import APITestCase
from authentik.blueprints.tests import reconcile_app
from authentik.core.models import PropertyMapping
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.outposts.api.outposts import OutpostSerializer
from authentik.outposts.apps import MANAGED_OUTPOST
from authentik.outposts.models import Outpost, OutpostType, default_outpost_config

View File

@ -3,7 +3,7 @@
from django.test import TestCase
from authentik.blueprints.tests import reconcile_app
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.outposts.apps import MANAGED_OUTPOST
from authentik.outposts.controllers.k8s.deployment import DeploymentReconciler
from authentik.outposts.controllers.kubernetes import KubernetesController

View File

@ -1,13 +1,13 @@
"""policy exceptions"""
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
class PolicyEngineException(SentryIgnoredException):
class PolicyEngineException(NotReportedException):
"""Error raised when a policy engine is configured incorrectly"""
class PolicyException(SentryIgnoredException):
class PolicyException(NotReportedException):
"""Exception that should be raised during Policy Evaluation, and can be recovered from."""
src_exc: Exception | None = None

View File

@ -6,7 +6,7 @@ from rest_framework.serializers import ValidationError
from rest_framework.test import APITestCase
from authentik.core.models import Application
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.policies.exceptions import PolicyException
from authentik.policies.expression.api import ExpressionPolicySerializer
from authentik.policies.expression.evaluator import PolicyEvaluator

View File

@ -1,5 +1,5 @@
from authentik.lib.sentry import SentryIgnoredException
from authentik.common.exceptions import NotReportedException
class GeoIPNotFoundException(SentryIgnoredException):
class GeoIPNotFoundException(NotReportedException):
"""Exception raised when an IP is not found in a GeoIP database"""

View File

@ -3,9 +3,9 @@
from django.urls.base import reverse
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.crypto.generators import generate_id
from authentik.flows.models import FlowDesignation, FlowStageBinding
from authentik.flows.tests import FlowTestCase
from authentik.lib.generators import generate_id
from authentik.policies.password.models import PasswordPolicy
from authentik.stages.prompt.models import FieldTypes, Prompt, PromptStage

View File

@ -3,7 +3,7 @@
from django.test import TestCase
from guardian.shortcuts import get_anonymous_user
from authentik.lib.generators import generate_key
from authentik.crypto.generators import generate_key
from authentik.policies.password.models import PasswordPolicy
from authentik.policies.types import PolicyRequest, PolicyResult
from authentik.stages.prompt.stage import PLAN_CONTEXT_PROMPT

View File

@ -3,7 +3,7 @@
from django.test import TestCase
from guardian.shortcuts import get_anonymous_user
from authentik.lib.generators import generate_key
from authentik.crypto.generators import generate_key
from authentik.policies.password.models import PasswordPolicy
from authentik.policies.types import PolicyRequest, PolicyResult

View File

@ -3,7 +3,7 @@
from django.test import TestCase
from guardian.shortcuts import get_anonymous_user
from authentik.lib.generators import generate_key
from authentik.crypto.generators import generate_key
from authentik.policies.password.models import PasswordPolicy
from authentik.policies.types import PolicyRequest, PolicyResult
from authentik.stages.prompt.stage import PLAN_CONTEXT_PROMPT

View File

@ -3,7 +3,7 @@
from django.test import RequestFactory, TestCase
from authentik.core.models import User
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.policies.reputation.api import ReputationPolicySerializer
from authentik.policies.reputation.models import Reputation, ReputationPolicy
from authentik.policies.reputation.signals import update_score

View File

@ -4,7 +4,7 @@ from django.core.cache import cache
from django.test import TestCase
from authentik.core.tests.utils import create_test_admin_user
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.policies.dummy.models import DummyPolicy
from authentik.policies.engine import PolicyEngine
from authentik.policies.exceptions import PolicyEngineException

View File

@ -8,8 +8,8 @@ from django.views.debug import SafeExceptionReporterFilter
from guardian.shortcuts import get_anonymous_user
from authentik.core.models import Application, Group, User
from authentik.crypto.generators import generate_id
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
from authentik.policies.dummy.models import DummyPolicy
from authentik.policies.expression.models import ExpressionPolicy
from authentik.policies.models import Policy, PolicyBinding

View File

@ -10,9 +10,9 @@ from django.utils.translation import gettext as _
from django.views.generic.base import View
from structlog.stdlib import get_logger
from authentik.common.exceptions import NotReportedException
from authentik.core.models import Application, Provider, User
from authentik.flows.views.executor import SESSION_KEY_APPLICATION_PRE, SESSION_KEY_POST
from authentik.lib.sentry import SentryIgnoredException
from authentik.policies.denied import AccessDeniedResponse
from authentik.policies.engine import PolicyEngine
from authentik.policies.types import PolicyRequest, PolicyResult
@ -20,7 +20,7 @@ from authentik.policies.types import PolicyRequest, PolicyResult
LOGGER = get_logger()
class RequestValidationError(SentryIgnoredException):
class RequestValidationError(NotReportedException):
"""Error raised in pre_permission_check, when a request is invalid."""
response: HttpResponse | None

View File

@ -7,7 +7,7 @@ from rest_framework.test import APITestCase
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.providers.ldap.models import LDAPProvider

View File

@ -16,8 +16,8 @@ from authentik.common.oauth.constants import (
AMR_WEBAUTHN,
)
from authentik.core.models import default_token_duration
from authentik.crypto.generators import generate_id
from authentik.events.signals import get_login_event
from authentik.lib.generators import generate_id
from authentik.stages.password.stage import PLAN_CONTEXT_METHOD, PLAN_CONTEXT_METHOD_ARGS
if TYPE_CHECKING:

View File

@ -5,7 +5,7 @@ from django.conf import settings
from django.db import migrations, models
import authentik.core.models
import authentik.lib.generators
import authentik.crypto.generators
import authentik.lib.utils.time
@ -56,7 +56,7 @@ class Migration(migrations.Migration):
(
"client_id",
models.CharField(
default=authentik.lib.generators.generate_id,
default=authentik.crypto.generators.generate_id,
max_length=255,
unique=True,
verbose_name="Client ID",
@ -66,7 +66,7 @@ class Migration(migrations.Migration):
"client_secret",
models.CharField(
blank=True,
default=authentik.lib.generators.generate_key,
default=authentik.crypto.generators.generate_key,
max_length=255,
verbose_name="Client Secret",
),

View File

@ -5,7 +5,7 @@ from django.conf import settings
from django.db import migrations, models
import authentik.core.models
import authentik.lib.generators
import authentik.crypto.generators
class Migration(migrations.Migration):
@ -29,10 +29,12 @@ class Migration(migrations.Migration):
models.DateTimeField(default=authentik.core.models.default_token_duration),
),
("expiring", models.BooleanField(default=True)),
("device_code", models.TextField(default=authentik.lib.generators.generate_key)),
("device_code", models.TextField(default=authentik.crypto.generators.generate_key)),
(
"user_code",
models.TextField(default=authentik.lib.generators.generate_code_fixed_length),
models.TextField(
default=authentik.crypto.generators.generate_code_fixed_length
),
),
("_scope", models.TextField(default="", verbose_name="Scopes")),
(

View File

@ -5,7 +5,7 @@ from django.conf import settings
from django.db import migrations, models
import authentik.core.models
import authentik.lib.generators
import authentik.crypto.generators
import authentik.lib.utils.time
@ -52,7 +52,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name="refreshtoken",
name="token",
field=models.TextField(default=authentik.lib.generators.generate_key),
field=models.TextField(default=authentik.crypto.generators.generate_key),
),
migrations.AlterField(
model_name="oauth2provider",

View File

@ -40,8 +40,8 @@ from authentik.core.models import (
Provider,
User,
)
from authentik.crypto.generators import generate_code_fixed_length, generate_id, generate_key
from authentik.crypto.models import CertificateKeyPair
from authentik.lib.generators import generate_code_fixed_length, generate_id, generate_key
from authentik.lib.models import SerializerModel, internal_model
from authentik.lib.utils.time import timedelta_string_validator
from authentik.providers.oauth2.id_token import IDToken, SubModes

View File

@ -10,7 +10,7 @@ from rest_framework.test import APITestCase
from authentik.blueprints.tests import apply_blueprint
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.providers.oauth2.models import (
OAuth2Provider,
RedirectURI,

View File

@ -11,8 +11,8 @@ from authentik.common.oauth.constants import TOKEN_TYPE
from authentik.common.oauth.errors import AuthorizeError, ClientIdError, RedirectUriError
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
from authentik.crypto.generators import generate_id
from authentik.events.models import Event, EventAction
from authentik.lib.generators import generate_id
from authentik.lib.utils.time import timedelta_from_string
from authentik.providers.oauth2.models import (
AccessToken,

View File

@ -6,7 +6,7 @@ from django.urls import reverse
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.providers.oauth2.models import OAuth2Provider
from authentik.providers.oauth2.tests.utils import OAuthTestCase

View File

@ -7,7 +7,7 @@ from rest_framework.test import APIClient
from authentik.core.models import Application, Group
from authentik.core.tests.utils import create_test_admin_user, create_test_brand, create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.policies.models import PolicyBinding
from authentik.providers.oauth2.models import DeviceToken, OAuth2Provider
from authentik.providers.oauth2.tests.utils import OAuthTestCase

View File

@ -10,7 +10,7 @@ from django.utils import timezone
from authentik.common.oauth.constants import ACR_AUTHENTIK_DEFAULT
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_cert, create_test_flow
from authentik.lib.generators import generate_id
from authentik.crypto.generators import generate_id
from authentik.providers.oauth2.models import (
AccessToken,
IDToken,

View File

@ -11,8 +11,8 @@ from jwt import PyJWKSet
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_cert, create_test_flow
from authentik.crypto.builder import PrivateKeyAlg
from authentik.crypto.generators import generate_id
from authentik.crypto.models import CertificateKeyPair
from authentik.lib.generators import generate_id
from authentik.providers.oauth2.models import OAuth2Provider, RedirectURI, RedirectURIMatchingMode
from authentik.providers.oauth2.tests.utils import OAuthTestCase

Some files were not shown because too many files have changed in this diff Show More