* release: 2025.2.3 * fix uv lock not being bumped Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
		
			
				
	
	
		
			220 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
[project]
 | 
						|
name = "authentik"
 | 
						|
version = "2025.2.3"
 | 
						|
description = ""
 | 
						|
authors = [{ name = "authentik Team", email = "hello@goauthentik.io" }]
 | 
						|
requires-python = "==3.12.*"
 | 
						|
dependencies = [
 | 
						|
    "argon2-cffi",
 | 
						|
    "celery",
 | 
						|
    "channels",
 | 
						|
    "channels-redis",
 | 
						|
    "cryptography",
 | 
						|
    "dacite",
 | 
						|
    "deepmerge",
 | 
						|
    "defusedxml",
 | 
						|
    "django",
 | 
						|
    "django-countries",
 | 
						|
    "django-cte",
 | 
						|
    "django-filter",
 | 
						|
    "django-guardian",
 | 
						|
    "django-model-utils",
 | 
						|
    "django-pglock",
 | 
						|
    "django-prometheus",
 | 
						|
    "django-redis",
 | 
						|
    "django-storages[s3]",
 | 
						|
    "django-tenants",
 | 
						|
    "djangorestframework ==3.14.0",
 | 
						|
    "djangorestframework-guardian",
 | 
						|
    "docker",
 | 
						|
    "drf-orjson-renderer",
 | 
						|
    "drf-spectacular",
 | 
						|
    "dumb-init",
 | 
						|
    "duo-client",
 | 
						|
    "fido2",
 | 
						|
    "flower",
 | 
						|
    "geoip2",
 | 
						|
    "geopy",
 | 
						|
    "google-api-python-client",
 | 
						|
    "gssapi",
 | 
						|
    "gunicorn",
 | 
						|
    "jsonpatch",
 | 
						|
    "jwcrypto",
 | 
						|
    "kubernetes",
 | 
						|
    "ldap3",
 | 
						|
    "lxml",
 | 
						|
    "msgraph-sdk",
 | 
						|
    "opencontainers",
 | 
						|
    "packaging",
 | 
						|
    "paramiko",
 | 
						|
    "psycopg[c]",
 | 
						|
    "pydantic",
 | 
						|
    "pydantic-scim",
 | 
						|
    "pyjwt",
 | 
						|
    "pyrad",
 | 
						|
    "python-kadmin-rs ==0.5.3",
 | 
						|
    "pyyaml",
 | 
						|
    "requests-oauthlib",
 | 
						|
    "scim2-filter-parser",
 | 
						|
    "sentry-sdk",
 | 
						|
    "service_identity",
 | 
						|
    "setproctitle",
 | 
						|
    "structlog",
 | 
						|
    "swagger-spec-validator",
 | 
						|
    "tenant-schemas-celery",
 | 
						|
    "twilio",
 | 
						|
    "ua-parser",
 | 
						|
    "unidecode",
 | 
						|
    "urllib3 <3",
 | 
						|
    "uvicorn[standard]",
 | 
						|
    "watchdog",
 | 
						|
    "webauthn",
 | 
						|
    "wsproto",
 | 
						|
    "xmlsec <= 1.3.14",
 | 
						|
    "zxcvbn",
 | 
						|
]
 | 
						|
 | 
						|
[dependency-groups]
 | 
						|
dev = [
 | 
						|
    "aws-cdk-lib",
 | 
						|
    "bandit",
 | 
						|
    "black",
 | 
						|
    "bump2version",
 | 
						|
    "channels[daphne]",
 | 
						|
    "codespell",
 | 
						|
    "colorama",
 | 
						|
    "constructs",
 | 
						|
    "coverage[toml]",
 | 
						|
    "debugpy",
 | 
						|
    "drf-jsonschema-serializer",
 | 
						|
    "freezegun",
 | 
						|
    "importlib-metadata",
 | 
						|
    "k5test",
 | 
						|
    "pdoc",
 | 
						|
    "pytest",
 | 
						|
    "pytest-django",
 | 
						|
    "pytest-github-actions-annotate-failures",
 | 
						|
    "pytest-randomly",
 | 
						|
    "pytest-timeout",
 | 
						|
    "requests-mock",
 | 
						|
    "ruff",
 | 
						|
    "selenium",
 | 
						|
]
 | 
						|
 | 
						|
[tool.uv.sources]
 | 
						|
django-tenants = { git = "https://github.com/rissson/django-tenants.git", branch = "authentik-fixes" }
 | 
						|
opencontainers = { git = "https://github.com/BeryJu/oci-python", rev = "c791b19056769cd67957322806809ab70f5bead8" }
 | 
						|
 | 
						|
[project.scripts]
 | 
						|
ak = "lifecycle.ak:main"
 | 
						|
 | 
						|
[build-system]
 | 
						|
requires = ["hatchling"]
 | 
						|
build-backend = "hatchling.build"
 | 
						|
 | 
						|
[tool.bandit]
 | 
						|
exclude_dirs = ["**/node_modules/**"]
 | 
						|
 | 
						|
[tool.codespell]
 | 
						|
skip = [
 | 
						|
    "**/node_modules",
 | 
						|
    "**/package-lock.json",
 | 
						|
    "schema.yml",
 | 
						|
    "unittest.xml",
 | 
						|
    "./blueprints/schema.json",
 | 
						|
    "go.sum",
 | 
						|
    "locale",
 | 
						|
    "**/dist",
 | 
						|
    "**/storybook-static",
 | 
						|
    "**/web/src/locales",
 | 
						|
    "**/web/xliff",
 | 
						|
    "./web/storybook-static",
 | 
						|
    "./website/build",
 | 
						|
    "./gen-ts-api",
 | 
						|
    "./gen-py-api",
 | 
						|
    "./gen-go-api",
 | 
						|
    "*.api.mdx",
 | 
						|
    "./htmlcov",
 | 
						|
]
 | 
						|
dictionary = ".github/codespell-dictionary.txt,-"
 | 
						|
ignore-words = ".github/codespell-words.txt"
 | 
						|
 | 
						|
[tool.black]
 | 
						|
line-length = 100
 | 
						|
target-version = ['py312']
 | 
						|
exclude = 'node_modules'
 | 
						|
 | 
						|
[tool.ruff]
 | 
						|
line-length = 100
 | 
						|
target-version = "py312"
 | 
						|
exclude = ["**/migrations/**", "**/node_modules/**"]
 | 
						|
 | 
						|
[tool.ruff.lint]
 | 
						|
select = [
 | 
						|
    # pycodestyle
 | 
						|
    "E",
 | 
						|
    # Pyflakes
 | 
						|
    "F",
 | 
						|
    # isort
 | 
						|
    "I",
 | 
						|
    # pyupgrade
 | 
						|
    "UP",
 | 
						|
    # flake8-bugbear
 | 
						|
    "B",
 | 
						|
    # django
 | 
						|
    "DJ",
 | 
						|
    # pylint
 | 
						|
    "PL",
 | 
						|
]
 | 
						|
ignore = [
 | 
						|
    "DJ001", # Avoid using `null=True` on string-based fields,
 | 
						|
]
 | 
						|
 | 
						|
[tool.ruff.lint.pylint]
 | 
						|
max-args = 7
 | 
						|
max-branches = 18
 | 
						|
max-returns = 10
 | 
						|
 | 
						|
[tool.coverage.run]
 | 
						|
source = ["authentik"]
 | 
						|
relative_files = true
 | 
						|
omit = [
 | 
						|
    "*/asgi.py",
 | 
						|
    "manage.py",
 | 
						|
    "*/migrations/*",
 | 
						|
    "*/management/commands/*",
 | 
						|
    "*/apps.py",
 | 
						|
    "website/",
 | 
						|
]
 | 
						|
 | 
						|
[tool.coverage.report]
 | 
						|
sort = "Cover"
 | 
						|
skip_covered = true
 | 
						|
precision = 2
 | 
						|
exclude_lines = [
 | 
						|
    "pragma: no cover",
 | 
						|
    # Don't complain about missing debug-only code:
 | 
						|
    "def __unicode__",
 | 
						|
    "def __str__",
 | 
						|
    "def __repr__",
 | 
						|
    "if self.debug",
 | 
						|
    "if TYPE_CHECKING",
 | 
						|
    # Don't complain if tests don't hit defensive assertion code:
 | 
						|
    "raise AssertionError",
 | 
						|
    "raise NotImplementedError",
 | 
						|
    # Don't complain if non-runnable code isn't run:
 | 
						|
    "if 0:",
 | 
						|
    "if __name__ == .__main__.:",
 | 
						|
]
 | 
						|
show_missing = true
 | 
						|
 | 
						|
[tool.pytest.ini_options]
 | 
						|
DJANGO_SETTINGS_MODULE = "authentik.root.settings"
 | 
						|
python_files = ["tests.py", "test_*.py", "*_tests.py"]
 | 
						|
junit_family = "xunit2"
 | 
						|
addopts = "-p no:celery -p authentik.root.test_plugin --junitxml=unittest.xml -vv --full-trace --doctest-modules --import-mode=importlib"
 | 
						|
filterwarnings = [
 | 
						|
    "ignore:defusedxml.lxml is no longer supported and will be removed in a future release.:DeprecationWarning",
 | 
						|
    "ignore:SelectableGroups dict interface is deprecated. Use select.:DeprecationWarning",
 | 
						|
]
 |