Files
authentik/scripts/generate_config.py
Jens L. 5bfac4c11e root: add mypy (#16904)
* add mypy

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* fix some stuff

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* fix more stuff

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* actually do overrides on a per-module basis

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* fix small stuff

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* add pydantic plugin

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-09-22 19:37:49 +02:00

98 lines
2.4 KiB
Python
Executable File

#!/usr/bin/env python3
"""Generate config for development"""
from typing import Any
from yaml import safe_dump
from authentik.lib.generators import generate_id
def generate_local_config() -> dict[str, Any]:
"""Generate a local development configuration"""
# TODO: This should be generated and validated against a schema, such as Pydantic.
return {
"debug": True,
"log_level": "debug",
"secret_key": generate_id(),
"postgresql": {
"user": "postgres",
},
"outposts": {
"container_image_base": "ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s",
"disable_embedded_outpost": False,
},
"blueprints_dir": "./blueprints",
"cert_discovery_dir": "./certs",
"events": {
"processors": {
"geoip": "tests/GeoLite2-City-Test.mmdb",
"asn": "tests/GeoLite2-ASN-Test.mmdb",
}
},
"storage": {
"media": {
"backend": "file",
"s3": {
"endpoint": "http://localhost:8020",
"access_key": "accessKey1",
"secret_key": "secretKey1",
"bucket_name": "authentik-media",
"custom_domain": "localhost:8020/authentik-media",
"secure_urls": False,
},
},
},
"tenants": {
"enabled": False,
"api_key": generate_id(),
},
"worker": {
"processes": 1,
"threads": 1,
"consumer_listen_timeout": "seconds=10",
"scheduler_interval": "seconds=30",
},
}
if __name__ == "__main__":
config_file_name = "local.env.yml"
with open(config_file_name, "w", encoding="utf-8") as _config:
_config.write(
"""
# Local authentik configuration overrides
#
# https://docs.goauthentik.io/docs/install-config/configuration/
#
# To regenerate this file, run the following command from the repository root:
#
# ```shell
# make gen-dev-config
# ```
"""
)
safe_dump(
generate_local_config(),
_config,
default_flow_style=False,
)
print(
f"""
---
Generated configuration file: {config_file_name}
For more information on how to use this configuration, see:
https://docs.goauthentik.io/docs/install-config/configuration/
---
"""
)