Update nautobot_config.py
This commit is contained in:
parent
8559a663d1
commit
abb40cae80
@ -1,260 +1,605 @@
|
||||
###################################################################
|
||||
# This file serves as a base configuration for testing purposes #
|
||||
# only. It is not intended for production use. #
|
||||
###################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
from nautobot.core.settings import * # noqa: F403 # undefined-local-with-import-star
|
||||
from nautobot.core.settings_funcs import parse_redis_connection
|
||||
from nautobot.core.settings import * # noqa F401,F403
|
||||
from nautobot.core.settings_funcs import is_truthy, parse_redis_connection
|
||||
|
||||
ALLOWED_HOSTS = ["nautobot.example.com"]
|
||||
#########################
|
||||
# #
|
||||
# Required settings #
|
||||
# #
|
||||
#########################
|
||||
|
||||
# Do *not* send anonymized install metrics when migration or post_upgrade management commands are run while testing
|
||||
INSTALLATION_METRICS_ENABLED = False
|
||||
# This is a list of valid fully-qualified domain names (FQDNs) for the Nautobot server. Nautobot will not permit write
|
||||
# access to the server via any other hostnames. The first FQDN in the list will be treated as the preferred name.
|
||||
#
|
||||
# Example: ALLOWED_HOSTS = ['nautobot.example.com', 'nautobot.internal.local']
|
||||
#
|
||||
# ALLOWED_HOSTS = os.getenv("NAUTOBOT_ALLOWED_HOSTS", "").split(" ")
|
||||
|
||||
# Discover test jobs from within the Nautobot source code
|
||||
JOBS_ROOT = os.path.join(
|
||||
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "extras", "test_jobs"
|
||||
)
|
||||
# The django-redis cache is used to establish concurrent locks using Redis.
|
||||
#
|
||||
# CACHES = {
|
||||
# "default": {
|
||||
# "BACKEND": os.getenv(
|
||||
# "NAUTOBOT_CACHES_BACKEND",
|
||||
# "django_prometheus.cache.backends.redis.RedisCache" if METRICS_ENABLED else "django_redis.cache.RedisCache",
|
||||
# ),
|
||||
# "LOCATION": parse_redis_connection(redis_database=1),
|
||||
# "TIMEOUT": 300,
|
||||
# "OPTIONS": {
|
||||
# "CLIENT_CLASS": "django_redis.client.DefaultClient",
|
||||
# "PASSWORD": "",
|
||||
# },
|
||||
# }
|
||||
# }
|
||||
|
||||
# Enable both example apps
|
||||
PLUGINS = [
|
||||
"example_app",
|
||||
"example_app_with_view_override",
|
||||
]
|
||||
# Number of seconds to cache ContentType lookups. Set to 0 to disable caching.
|
||||
# CONTENT_TYPE_CACHE_TIMEOUT = int(os.getenv("NAUTOBOT_CONTENT_TYPE_CACHE_TIMEOUT", "0"))
|
||||
|
||||
# Hard-code the SECRET_KEY for simplicity
|
||||
SECRET_KEY = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" # noqa: S105 # hardcoded-password-string
|
||||
# Celery Beat heartbeat file path - will be touched by Beat each time it wakes up as a proof-of-health.
|
||||
# CELERY_BEAT_HEARTBEAT_FILE = os.getenv(
|
||||
# "NAUTOBOT_CELERY_BEAT_HEARTBEAT_FILE",
|
||||
# os.path.join(tempfile.gettempdir(), "nautobot_celery_beat_heartbeat"),
|
||||
# )
|
||||
|
||||
# Redis variables
|
||||
# Celery broker URL used to tell workers where queues are located
|
||||
#
|
||||
# CELERY_BROKER_URL = os.getenv("NAUTOBOT_CELERY_BROKER_URL", parse_redis_connection(redis_database=0))
|
||||
|
||||
# Use *different* redis_databases than the ones (0 and 1) used during non-automated-testing operations.
|
||||
CACHES["default"]["LOCATION"] = parse_redis_connection(redis_database=2) # noqa: F405 # undefined-local-with-import-star-usage
|
||||
# Optional configuration dict for Celery to use custom SSL certificates to connect to Redis.
|
||||
#
|
||||
# CELERY_BROKER_USE_SSL = None
|
||||
|
||||
# Testing storages within cli.py
|
||||
STORAGE_CONFIG = {
|
||||
"AWS_ACCESS_KEY_ID": "ASFWDAMWWOQMEOQMWPMDA<WPDA",
|
||||
"AWS_SECRET_ACCESS_KEY": "ASFKMWADMsacasdaw/dawrt1231541231231",
|
||||
"AWS_STORAGE_BUCKET_NAME": "nautobot",
|
||||
"AWS_S3_REGION_NAME": "us-west-1",
|
||||
}
|
||||
# Database configuration. See the Django documentation for a complete list of available parameters:
|
||||
# https://docs.djangoproject.com/en/stable/ref/settings/#databases
|
||||
#
|
||||
# DATABASES = {
|
||||
# "default": {
|
||||
# "NAME": os.getenv("NAUTOBOT_DB_NAME", "nautobot"), # Database name
|
||||
# "USER": os.getenv("NAUTOBOT_DB_USER", ""), # Database username
|
||||
# "PASSWORD": os.getenv("NAUTOBOT_DB_PASSWORD", ""), # Database password
|
||||
# "HOST": os.getenv("NAUTOBOT_DB_HOST", "localhost"), # Database server
|
||||
# "PORT": os.getenv("NAUTOBOT_DB_PORT", ""), # Database port (leave blank for default)
|
||||
# "CONN_MAX_AGE": int(os.getenv("NAUTOBOT_DB_TIMEOUT", "300")), # Database timeout
|
||||
# "ENGINE": os.getenv(
|
||||
# "NAUTOBOT_DB_ENGINE",
|
||||
# "django_prometheus.db.backends.postgresql" if METRICS_ENABLED else "django.db.backends.postgresql",
|
||||
# ), # Database driver ("mysql" or "postgresql")
|
||||
# }
|
||||
# }
|
||||
|
||||
# Use in-memory Constance backend instead of database backend so that settings don't leak between parallel tests.
|
||||
CONSTANCE_BACKEND = "constance.backends.memory.MemoryBackend"
|
||||
# Ensure proper Unicode handling for MySQL
|
||||
#
|
||||
if DATABASES["default"]["ENGINE"].endswith("mysql"):
|
||||
DATABASES["default"]["OPTIONS"] = {"charset": "utf8mb4"}
|
||||
|
||||
# Enable test data factories, as they're a pre-requisite for Nautobot core tests.
|
||||
TEST_USE_FACTORIES = True
|
||||
# For now, use a constant PRNG seed for consistent results. In the future we can remove this for fuzzier testing.
|
||||
TEST_FACTORY_SEED = "Nautobot"
|
||||
# This key is used for secure generation of random numbers and strings. It must never be exposed outside of this file.
|
||||
# For optimal security, SECRET_KEY should be at least 50 characters in length and contain a mix of letters, numbers, and
|
||||
# symbols. Nautobot will not run without this defined. For more information, see
|
||||
# https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-SECRET_KEY
|
||||
SECRET_KEY = os.getenv("NAUTOBOT_SECRET_KEY", "-c3djf9%pyrs2a9@axwl0)5xh$qy032)8x2algq%vl*ygb-em-")
|
||||
|
||||
# Make Celery run synchronously (eager), to always store eager results, and run the broker in-memory.
|
||||
# NOTE: Celery does not honor the TASK_TRACK_STARTED config when running in eager mode, so the job result is not saved until after the task completes.
|
||||
CELERY_TASK_ALWAYS_EAGER = True
|
||||
CELERY_TASK_STORE_EAGER_RESULT = True
|
||||
CELERY_BROKER_URL = "memory://"
|
||||
#####################################
|
||||
# #
|
||||
# Optional Django core settings #
|
||||
# #
|
||||
#####################################
|
||||
|
||||
# Metrics need to enabled in this config as overriding them with override_settings will not actually enable them
|
||||
METRICS_ENABLED = True
|
||||
# Specify one or more (name, email address) tuples representing Nautobot administrators.
|
||||
# These people will be notified of application errors (assuming correct email settings are provided).
|
||||
#
|
||||
# ADMINS = []
|
||||
|
||||
METRICS_AUTHENTICATED = True
|
||||
# FQDNs that are considered trusted origins for secure, cross-domain, requests such as HTTPS POST.
|
||||
# If running Nautobot under a single domain, you may not need to set this variable;
|
||||
# if running on multiple domains, you *may* need to set this variable to more or less the same as ALLOWED_HOSTS above.
|
||||
# You also want to set this variable if you are facing CSRF validation issues such as
|
||||
# 'CSRF failure has occured' or 'Origin checking failed - https://subdomain.example.com does not match any trusted origins.'
|
||||
# https://docs.djangoproject.com/en/stable/ref/settings/#csrf-trusted-origins
|
||||
#
|
||||
# CSRF_TRUSTED_ORIGINS = []
|
||||
# if "NAUTOBOT_CSRF_TRUSTED_ORIGINS" in os.environ and os.environ["NAUTOBOT_CSRF_TRUSTED_ORIGINS"] != "":
|
||||
# CSRF_TRUSTED_ORIGINS = os.getenv("NAUTOBOT_CSRF_TRUSTED_ORIGINS", "").split(_CONFIG_SETTING_SEPARATOR)
|
||||
|
||||
CONTENT_TYPE_CACHE_TIMEOUT = 0
|
||||
# Date/time formatting. See the following link for supported formats:
|
||||
# https://docs.djangoproject.com/en/stable/ref/templates/builtins/#date
|
||||
#
|
||||
# DATE_FORMAT = os.getenv("NAUTOBOT_DATE_FORMAT", "N j, Y")
|
||||
# SHORT_DATE_FORMAT = os.getenv("NAUTOBOT_SHORT_DATE_FORMAT", "Y-m-d")
|
||||
# TIME_FORMAT = os.getenv("NAUTOBOT_TIME_FORMAT", "g:i a")
|
||||
# DATETIME_FORMAT = os.getenv("NAUTOBOT_DATETIME_FORMAT", "N j, Y g:i a")
|
||||
# SHORT_DATETIME_FORMAT = os.getenv("NAUTOBOT_SHORT_DATETIME_FORMAT", "Y-m-d H:i")
|
||||
|
||||
# Path to the kubernetes pod manifest yaml file used to create a job pod in the kubernetes cluster.
|
||||
KUBERNETES_JOB_MANIFEST = {
|
||||
"apiVersion": "batch/v1",
|
||||
"kind": "Job",
|
||||
"metadata": {"name": "nautobot-job"},
|
||||
"spec": {
|
||||
"ttlSecondsAfterFinished": 5,
|
||||
"template": {
|
||||
"spec": {
|
||||
"containers": [
|
||||
{
|
||||
"env": [
|
||||
{
|
||||
"name": "MYSQL_DATABASE",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "MYSQL_DATABASE", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "MYSQL_PASSWORD",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "MYSQL_PASSWORD", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "MYSQL_ROOT_PASSWORD",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "MYSQL_ROOT_PASSWORD", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "MYSQL_USER",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "MYSQL_USER", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_ALLOWED_HOSTS",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_ALLOWED_HOSTS", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_CHANGELOG_RETENTION",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {"key": "NAUTOBOT_CHANGELOG_RETENTION", "name": "dev-env"}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_CONFIG",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_CONFIG", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_CREATE_SUPERUSER",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {"key": "NAUTOBOT_CREATE_SUPERUSER", "name": "dev-env"}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_DB_HOST",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_DB_HOST", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_DB_NAME",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_DB_NAME", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_DB_PASSWORD",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_DB_PASSWORD", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_DB_TIMEOUT",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_DB_TIMEOUT", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_DB_USER",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_DB_USER", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_INSTALLATION_METRICS_ENABLED",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {
|
||||
"key": "NAUTOBOT_INSTALLATION_METRICS_ENABLED",
|
||||
"name": "dev-env",
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_LOG_DEPRECATION_WARNINGS",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {"key": "NAUTOBOT_LOG_DEPRECATION_WARNINGS", "name": "dev-env"}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_NAPALM_TIMEOUT",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_NAPALM_TIMEOUT", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_REDIS_HOST",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_REDIS_HOST", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_REDIS_PASSWORD",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_REDIS_PASSWORD", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_REDIS_PORT",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_REDIS_PORT", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_SECRET_KEY",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_SECRET_KEY", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_SELENIUM_HOST",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_SELENIUM_HOST", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_SELENIUM_URL",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_SELENIUM_URL", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_SUPERUSER_API_TOKEN",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {"key": "NAUTOBOT_SUPERUSER_API_TOKEN", "name": "dev-env"}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_SUPERUSER_EMAIL",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {"key": "NAUTOBOT_SUPERUSER_EMAIL", "name": "dev-env"}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_SUPERUSER_NAME",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "NAUTOBOT_SUPERUSER_NAME", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "NAUTOBOT_SUPERUSER_PASSWORD",
|
||||
"valueFrom": {
|
||||
"configMapKeyRef": {"key": "NAUTOBOT_SUPERUSER_PASSWORD", "name": "dev-env"}
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "PGPASSWORD",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "PGPASSWORD", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "POSTGRES_DB",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "POSTGRES_DB", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "POSTGRES_PASSWORD",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "POSTGRES_PASSWORD", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "POSTGRES_USER",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "POSTGRES_USER", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "REDISCLI_AUTH",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "REDISCLI_AUTH", "name": "dev-env"}},
|
||||
},
|
||||
{
|
||||
"name": "REDIS_PASSWORD",
|
||||
"valueFrom": {"configMapKeyRef": {"key": "REDIS_PASSWORD", "name": "dev-env"}},
|
||||
},
|
||||
],
|
||||
"name": "nautobot-job",
|
||||
"image": "local/nautobot-dev:local-py3.11",
|
||||
"ports": [{"containerPort": 8080, "protocol": "TCP"}],
|
||||
"tty": True,
|
||||
"volumeMounts": [
|
||||
{"mountPath": "/opt/nautobot/media", "name": "media-root"},
|
||||
{
|
||||
"mountPath": "/opt/nautobot/nautobot_config.py",
|
||||
"name": "nautobot-cm1",
|
||||
"subPath": "nautobot_config.py",
|
||||
},
|
||||
],
|
||||
}
|
||||
],
|
||||
"volumes": [
|
||||
{"name": "media-root", "persistentVolumeClaim": {"claimName": "media-root"}},
|
||||
{
|
||||
"configMap": {
|
||||
"items": [{"key": "nautobot_config.py", "path": "nautobot_config.py"}],
|
||||
"name": "nautobot-cm1",
|
||||
},
|
||||
"name": "nautobot-cm1",
|
||||
},
|
||||
],
|
||||
"restartPolicy": "Never",
|
||||
}
|
||||
},
|
||||
"backoffLimit": 0,
|
||||
},
|
||||
}
|
||||
# Set to True to enable server debugging. WARNING: Debugging introduces a substantial performance penalty and may reveal
|
||||
# sensitive information about your installation. Only enable debugging while performing testing. Never enable debugging
|
||||
# on a production system.
|
||||
#
|
||||
# DEBUG = is_truthy(os.getenv("NAUTOBOT_DEBUG", "False"))
|
||||
|
||||
# Name of the kubernetes pod created in the kubernetes cluster
|
||||
KUBERNETES_JOB_POD_NAME = "nautobot-job"
|
||||
# If hosting Nautobot in a subdirectory, you must set this value to match the base URL prefix configured in your
|
||||
# HTTP server (e.g. `/nautobot/`). When not set, URLs will default to being prefixed by `/`.
|
||||
#
|
||||
# FORCE_SCRIPT_NAME = None
|
||||
|
||||
# Namespace of the kubernetes pod created in the kubernetes cluster
|
||||
KUBERNETES_JOB_POD_NAMESPACE = "default"
|
||||
# IP addresses recognized as internal to the system.
|
||||
#
|
||||
# INTERNAL_IPS = ("127.0.0.1", "::1")
|
||||
|
||||
# Host of the kubernetes pod created in the kubernetes cluster
|
||||
KUBERNETES_DEFAULT_SERVICE_ADDRESS = "https://kubernetes.default.svc"
|
||||
# Enable custom logging. Please see the Django documentation for detailed guidance on configuring custom logs:
|
||||
# https://docs.djangoproject.com/en/stable/topics/logging/
|
||||
#
|
||||
# LOGGING = {
|
||||
# "version": 1,
|
||||
# "disable_existing_loggers": False,
|
||||
# "formatters": {
|
||||
# "normal": {
|
||||
# "format": "%(asctime)s.%(msecs)03d %(levelname)-7s %(name)s :\n %(message)s",
|
||||
# "datefmt": "%H:%M:%S",
|
||||
# },
|
||||
# "verbose": {
|
||||
# "format": "%(asctime)s.%(msecs)03d %(levelname)-7s %(name)-20s %(filename)-15s %(funcName)30s() :\n %(message)s",
|
||||
# "datefmt": "%H:%M:%S",
|
||||
# },
|
||||
# },
|
||||
# "handlers": {
|
||||
# "normal_console": {
|
||||
# "level": "INFO",
|
||||
# "class": "logging.StreamHandler",
|
||||
# "formatter": "normal",
|
||||
# },
|
||||
# "verbose_console": {
|
||||
# "level": "DEBUG",
|
||||
# "class": "logging.StreamHandler",
|
||||
# "formatter": "verbose",
|
||||
# },
|
||||
# },
|
||||
# "loggers": {
|
||||
# "django": {"handlers": ["normal_console"], "level": "INFO"},
|
||||
# "nautobot": {
|
||||
# "handlers": ["verbose_console" if DEBUG else "normal_console"],
|
||||
# "level": "DEBUG" if DEBUG else "INFO",
|
||||
# },
|
||||
# },
|
||||
# }
|
||||
|
||||
# Enable the following to setup structlog logging for Nautobot.
|
||||
# Configures defined loggers to use structlog and overwrites all formatters and handlers.
|
||||
#
|
||||
# from nautobot.core.settings_funcs import setup_structlog_logging
|
||||
# setup_structlog_logging(
|
||||
# LOGGING,
|
||||
# INSTALLED_APPS,
|
||||
# MIDDLEWARE,
|
||||
# log_level="DEBUG" if DEBUG else "INFO",
|
||||
# debug_db=False, # Set to True to log all database queries
|
||||
# plain_format=bool(DEBUG), # Set to True to use human-readable structlog format over JSON
|
||||
# )
|
||||
|
||||
# The file path where uploaded media such as image attachments are stored. A trailing slash is not needed.
|
||||
#
|
||||
# MEDIA_ROOT = os.path.join(NAUTOBOT_ROOT, "media").rstrip("/")
|
||||
|
||||
# Set to True to use session cookies instead of persistent cookies.
|
||||
# Session cookies will expire when a browser is closed.
|
||||
#
|
||||
# SESSION_EXPIRE_AT_BROWSER_CLOSE = is_truthy(os.getenv("NAUTOBOT_SESSION_EXPIRE_AT_BROWSER_CLOSE", "False"))
|
||||
|
||||
# The length of time (in seconds) for which a user will remain logged into the web UI before being prompted to
|
||||
# re-authenticate. (Default: 1209600 [14 days])
|
||||
#
|
||||
# SESSION_COOKIE_AGE = int(os.getenv("NAUTOBOT_SESSION_COOKIE_AGE", "1209600")) # 2 weeks, in seconds
|
||||
|
||||
# Where Nautobot stores user session data.
|
||||
#
|
||||
# SESSION_ENGINE = "django.contrib.sessions.backends.db"
|
||||
|
||||
# By default, Nautobot will store session data in the database. Alternatively, a file path can be specified here to use
|
||||
# local file storage instead. (This can be useful for enabling authentication on a standby instance with read-only
|
||||
# database access.) Note that the user as which Nautobot runs must have read and write permissions to this path.
|
||||
#
|
||||
# SESSION_FILE_PATH = os.getenv("NAUTOBOT_SESSION_FILE_PATH", None)
|
||||
|
||||
# Where static files (CSS, JavaScript, etc.) are stored
|
||||
#
|
||||
# STATIC_ROOT = os.path.join(NAUTOBOT_ROOT, "static")
|
||||
|
||||
# Time zone (default: UTC)
|
||||
#
|
||||
# TIME_ZONE = os.getenv("NAUTOBOT_TIME_ZONE", "UTC")
|
||||
|
||||
###################################################################
|
||||
# #
|
||||
# Optional settings specific to Nautobot and its related apps #
|
||||
# #
|
||||
###################################################################
|
||||
|
||||
# Allow users to enable request profiling via django-silk for admins to inspect.
|
||||
# if "NAUTOBOT_ALLOW_REQUEST_PROFILING" in os.environ and os.environ["NAUTOBOT_ALLOW_REQUEST_PROFILING"] != "":
|
||||
# ALLOW_REQUEST_PROFILING = is_truthy(os.environ["NAUTOBOT_ALLOW_REQUEST_PROFILING"])
|
||||
|
||||
# URL schemes that are allowed within links in Nautobot
|
||||
#
|
||||
# ALLOWED_URL_SCHEMES = (
|
||||
# "file",
|
||||
# "ftp",
|
||||
# "ftps",
|
||||
# "http",
|
||||
# "https",
|
||||
# "irc",
|
||||
# "mailto",
|
||||
# "sftp",
|
||||
# "ssh",
|
||||
# "tel",
|
||||
# "telnet",
|
||||
# "tftp",
|
||||
# "vnc",
|
||||
# "xmpp",
|
||||
# )
|
||||
|
||||
# Banners (HTML is permitted) to display at the top and/or bottom of all Nautobot pages, and on the login page itself.
|
||||
#
|
||||
# if "NAUTOBOT_BANNER_BOTTOM" in os.environ and os.environ["NAUTOBOT_BANNER_BOTTOM"] != "":
|
||||
# BANNER_BOTTOM = os.environ["NAUTOBOT_BANNER_BOTTOM"]
|
||||
# if "NAUTOBOT_BANNER_LOGIN" in os.environ and os.environ["NAUTOBOT_BANNER_LOGIN"] != "":
|
||||
# BANNER_LOGIN = os.environ["NAUTOBOT_BANNER_LOGIN"]
|
||||
# if "NAUTOBOT_BANNER_TOP" in os.environ and os.environ["NAUTOBOT_BANNER_TOP"] != "":
|
||||
# BANNER_TOP = os.environ["NAUTOBOT_BANNER_TOP"]
|
||||
|
||||
# Branding logo locations. The logo takes the place of the Nautobot logo in the top right of the nav bar.
|
||||
# The filepath should be relative to the `MEDIA_ROOT`.
|
||||
#
|
||||
# BRANDING_FILEPATHS = {
|
||||
# "logo": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_LOGO", None), # Navbar logo
|
||||
# "favicon": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_FAVICON", None), # Browser favicon
|
||||
# "icon_16": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_ICON_16", None), # 16x16px icon
|
||||
# "icon_32": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_ICON_32", None), # 32x32px icon
|
||||
# "icon_180": os.getenv(
|
||||
# "NAUTOBOT_BRANDING_FILEPATHS_ICON_180", None
|
||||
# ), # 180x180px icon - used for the apple-touch-icon header
|
||||
# "icon_192": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_ICON_192", None), # 192x192px icon
|
||||
# "icon_mask": os.getenv(
|
||||
# "NAUTOBOT_BRANDING_FILEPATHS_ICON_MASK", None
|
||||
# ), # mono-chrome icon used for the mask-icon header
|
||||
# "header_bullet": os.getenv(
|
||||
# "NAUTOBOT_BRANDING_FILEPATHS_HEADER_BULLET", None
|
||||
# ), # bullet image used for various view headers
|
||||
# "nav_bullet": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_NAV_BULLET", None), # bullet image used for nav menu headers
|
||||
# "css": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_CSS", None), # Custom global CSS
|
||||
# "javascript": os.getenv("NAUTOBOT_BRANDING_FILEPATHS_JAVASCRIPT", None), # Custom global JavaScript
|
||||
# }
|
||||
|
||||
# Prepended to CSV, YAML and export template filenames (i.e. `nautobot_device.yml`)
|
||||
#
|
||||
# BRANDING_PREPENDED_FILENAME = os.getenv("NAUTOBOT_BRANDING_PREPENDED_FILENAME", "nautobot_")
|
||||
|
||||
# Title to use in place of "Nautobot"
|
||||
#
|
||||
# BRANDING_TITLE = os.getenv("NAUTOBOT_BRANDING_TITLE", "Nautobot")
|
||||
|
||||
# Branding URLs (links in the bottom right of the footer)
|
||||
#
|
||||
# BRANDING_URLS = {
|
||||
# "code": os.getenv("NAUTOBOT_BRANDING_URLS_CODE", "https://github.com/nautobot/nautobot"),
|
||||
# "docs": os.getenv("NAUTOBOT_BRANDING_URLS_DOCS", None),
|
||||
# "help": os.getenv("NAUTOBOT_BRANDING_URLS_HELP", "https://github.com/nautobot/nautobot/wiki"),
|
||||
# }
|
||||
|
||||
# Options to pass to the Celery broker transport, for example when using Celery with Redis Sentinel.
|
||||
#
|
||||
# CELERY_BROKER_TRANSPORT_OPTIONS = {}
|
||||
|
||||
# Default celery queue name that will be used by workers and tasks if no queue is specified
|
||||
# CELERY_TASK_DEFAULT_QUEUE = os.getenv("NAUTOBOT_CELERY_TASK_DEFAULT_QUEUE", "default")
|
||||
|
||||
# Global task time limits (seconds)
|
||||
# Exceeding the soft limit will result in a SoftTimeLimitExceeded exception,
|
||||
# while exceeding the hard limit will result in a SIGKILL.
|
||||
#
|
||||
# CELERY_TASK_SOFT_TIME_LIMIT = int(os.getenv("NAUTOBOT_CELERY_TASK_SOFT_TIME_LIMIT", str(5 * 60)))
|
||||
# CELERY_TASK_TIME_LIMIT = int(os.getenv("NAUTOBOT_CELERY_TASK_TIME_LIMIT", str(10 * 60)))
|
||||
|
||||
# How many tasks a worker is allowed to reserve for its own consumption and execution.
|
||||
# If set to zero (not recommended) a single worker can reserve all tasks even if other workers are free.
|
||||
# For short running tasks (such as webhooks) you may want to set this to a larger number to increase throughput.
|
||||
# Conversely, for long running tasks (such as SSoT or Golden-Config Jobs at scale) you may want to set this to 1
|
||||
# so that a worker executing a long-running task will not prefetch other tasks, which would block their execution
|
||||
# until the long-running task completes.
|
||||
# https://docs.celeryq.dev/en/stable/userguide/optimizing.html#prefetch-limits
|
||||
# CELERY_WORKER_PREFETCH_MULTIPLIER = int(os.getenv("NAUTOBOT_CELERY_WORKER_PREFETCH_MULTIPLIER", "4"))
|
||||
|
||||
# Ports for prometheus metric HTTP server running on the celery worker.
|
||||
# Normally this should be set to a single port, unless you have multiple workers running on a single machine, i.e.
|
||||
# sharing the same available ports. In that case you need to specify a range of ports greater than or equal to the
|
||||
# highest amount of workers you are running on a single machine (comma-separated, like "8080,8081,8082"). You can then
|
||||
# use the `target_limit` parameter to the Prometheus `scrape_config` to ensure you are not getting duplicate metrics in
|
||||
# that case. Set this to an empty string to disable it.
|
||||
# CELERY_WORKER_PROMETHEUS_PORTS = []
|
||||
# if os.getenv("NAUTOBOT_CELERY_WORKER_PROMETHEUS_PORTS"):
|
||||
# CELERY_WORKER_PROMETHEUS_PORTS = [
|
||||
# int(value) for value in os.getenv("NAUTOBOT_CELERY_WORKER_PROMETHEUS_PORTS").split(",")
|
||||
# ]
|
||||
|
||||
# If enabled stdout and stderr of running jobs will be redirected to the task logger.
|
||||
# CELERY_WORKER_REDIRECT_STDOUTS = is_truthy(os.getenv("NAUTOBOT_CELERY_WORKER_REDIRECT_STDOUTS", "True"))
|
||||
|
||||
# The log level of log messages generated by redirected job stdout and stderr.
|
||||
# Can be one of `DEBUG`, `INFO`, `WARNING`, `ERROR`, or `CRITICAL`.
|
||||
# CELERY_WORKER_REDIRECT_STDOUTS_LEVEL = os.getenv("NAUTOBOT_CELERY_WORKER_REDIRECT_STDOUTS_LEVEL", "WARNING")
|
||||
|
||||
# Number of days to retain changelog entries. Set to 0 to retain changes indefinitely. Defaults to 90 if not set here.
|
||||
#
|
||||
# if "NAUTOBOT_CHANGELOG_RETENTION" in os.environ and os.environ["NAUTOBOT_CHANGELOG_RETENTION"] != "":
|
||||
# CHANGELOG_RETENTION = int(os.environ["NAUTOBOT_CHANGELOG_RETENTION"])
|
||||
|
||||
# If True, all origins will be allowed. Other settings restricting allowed origins will be ignored.
|
||||
# Defaults to False. Setting this to True can be dangerous, as it allows any website to make
|
||||
# cross-origin requests to yours. Generally you'll want to restrict the list of allowed origins with
|
||||
# CORS_ALLOWED_ORIGINS or CORS_ALLOWED_ORIGIN_REGEXES.
|
||||
#
|
||||
# CORS_ALLOW_ALL_ORIGINS = is_truthy(os.getenv("NAUTOBOT_CORS_ALLOW_ALL_ORIGINS", "False"))
|
||||
|
||||
# A list of origins that are authorized to make cross-site HTTP requests. Defaults to [].
|
||||
#
|
||||
# CORS_ALLOWED_ORIGINS = [
|
||||
# 'https://hostname.example.com',
|
||||
# ]
|
||||
|
||||
# A list of strings representing regexes that match Origins that are authorized to make cross-site
|
||||
# HTTP requests. Defaults to [].
|
||||
#
|
||||
# CORS_ALLOWED_ORIGIN_REGEXES = [
|
||||
# r'^(https?://)?(\w+\.)?example\.com$',
|
||||
# ]
|
||||
|
||||
# UUID uniquely but anonymously identifying this Nautobot deployment.
|
||||
#
|
||||
# if "NAUTOBOT_DEPLOYMENT_ID" in os.environ and os.environ["NAUTOBOT_DEPLOYMENT_ID"] != "":
|
||||
# DEPLOYMENT_ID = os.environ["NAUTOBOT_DEPLOYMENT_ID"]
|
||||
|
||||
# Device names are not guaranteed globally-unique by Nautobot but in practice they often are.
|
||||
# Set this to True to use the device name alone as the natural key for Device objects.
|
||||
# Set this to False to use the sequence (name, tenant, location) as the natural key instead.
|
||||
#
|
||||
# if "NAUTOBOT_DEVICE_NAME_AS_NATURAL_KEY" in os.environ and os.environ["NAUTOBOT_DEVICE_NAME_AS_NATURAL_KEY"] != "":
|
||||
# DEVICE_NAME_AS_NATURAL_KEY = is_truthy(os.environ["NAUTOBOT_DEVICE_NAME_AS_NATURAL_KEY"])
|
||||
|
||||
# Event Brokers
|
||||
# EVENT_BROKERS = {}
|
||||
|
||||
# Exempt certain models from the enforcement of view permissions. Models listed here will be viewable by all users and
|
||||
# by anonymous users. List models in the form `<app>.<model>`. Add '*' to this list to exempt all models.
|
||||
# Defaults to [].
|
||||
#
|
||||
# EXEMPT_VIEW_PERMISSIONS = [
|
||||
# 'dcim.location',
|
||||
# 'ipam.prefix',
|
||||
# ]
|
||||
|
||||
# Global 3rd-party authentication settings
|
||||
#
|
||||
# EXTERNAL_AUTH_DEFAULT_GROUPS = []
|
||||
# EXTERNAL_AUTH_DEFAULT_PERMISSIONS = {}
|
||||
|
||||
# Directory where cloned Git repositories will be stored.
|
||||
#
|
||||
# GIT_ROOT = os.getenv("NAUTOBOT_GIT_ROOT", os.path.join(NAUTOBOT_ROOT, "git").rstrip("/"))
|
||||
|
||||
# Prefixes to use for custom fields, relationships, and computed fields in GraphQL representation of data.
|
||||
#
|
||||
# GRAPHQL_COMPUTED_FIELD_PREFIX = "cpf"
|
||||
# GRAPHQL_CUSTOM_FIELD_PREFIX = "cf"
|
||||
# GRAPHQL_RELATIONSHIP_PREFIX = "rel"
|
||||
|
||||
# HTTP proxies Nautobot should use when sending outbound HTTP requests (e.g. for webhooks).
|
||||
#
|
||||
# HTTP_PROXIES = {
|
||||
# 'http': 'http://10.10.1.10:3128',
|
||||
# 'https': 'http://10.10.1.10:1080',
|
||||
# }
|
||||
|
||||
# Send anonymized installation metrics when `nautobot-server post_upgrade` command is run.
|
||||
#
|
||||
INSTALLATION_METRICS_ENABLED = is_truthy(os.getenv("NAUTOBOT_INSTALLATION_METRICS_ENABLED", "False"))
|
||||
|
||||
# Storage backend to use for Job input files and Job output files.
|
||||
#
|
||||
# Note: the default is for backwards compatibility and it is recommended to change it if possible for your deployment.
|
||||
#
|
||||
# JOB_FILE_IO_STORAGE = os.getenv("NAUTOBOT_JOB_FILE_IO_STORAGE", "db_file_storage.storage.DatabaseFileStorage")
|
||||
|
||||
# Maximum size in bytes of any single file created by Job.create_file().
|
||||
#
|
||||
# JOB_CREATE_FILE_MAX_SIZE = 10 << 20
|
||||
|
||||
# Directory where Jobs can be discovered.
|
||||
#
|
||||
# JOBS_ROOT = os.getenv("NAUTOBOT_JOBS_ROOT", os.path.join(NAUTOBOT_ROOT, "jobs").rstrip("/"))
|
||||
|
||||
# Location names are not guaranteed globally-unique by Nautobot but in practice they often are.
|
||||
# Set this to True to use the location name alone as the natural key for Location objects.
|
||||
# Set this to False to use the sequence (name, parent__name, parent__parent__name, ...) as the natural key instead.
|
||||
#
|
||||
# if "NAUTOBOT_LOCATION_NAME_AS_NATURAL_KEY" in os.environ and os.environ["NAUTOBOT_LOCATION_NAME_AS_NATURAL_KEY"] != "":
|
||||
# LOCATION_NAME_AS_NATURAL_KEY = is_truthy(os.environ["NAUTOBOT_LOCATION_NAME_AS_NATURAL_KEY"])
|
||||
|
||||
# Log Nautobot deprecation warnings. Note that this setting is ignored (deprecation logs always enabled) if DEBUG = True
|
||||
#
|
||||
# LOG_DEPRECATION_WARNINGS = is_truthy(os.getenv("NAUTOBOT_LOG_DEPRECATION_WARNINGS", "False"))
|
||||
|
||||
# Setting this to True will display a "maintenance mode" banner at the top of every page.
|
||||
#
|
||||
# MAINTENANCE_MODE = is_truthy(os.getenv("NAUTOBOT_MAINTENANCE_MODE", "False"))
|
||||
|
||||
# Maximum number of objects that the UI and API will retrieve in a single request. Default is 1000
|
||||
#
|
||||
# if "NAUTOBOT_MAX_PAGE_SIZE" in os.environ and os.environ["NAUTOBOT_MAX_PAGE_SIZE"] != "":
|
||||
# MAX_PAGE_SIZE = int(os.environ["NAUTOBOT_MAX_PAGE_SIZE"])
|
||||
|
||||
# Expose Prometheus monitoring metrics at the HTTP endpoint '/metrics'
|
||||
#
|
||||
# METRICS_ENABLED = is_truthy(os.getenv("NAUTOBOT_METRICS_ENABLED", "False"))
|
||||
|
||||
# Require API Authentication to HTTP endpoint '/metrics'
|
||||
#
|
||||
# METRICS_AUTHENTICATED = is_truthy(os.getenv("NAUTOBOT_METRICS_AUTHENTICATED", "False"))
|
||||
|
||||
# Disable app metrics for specific apps
|
||||
#
|
||||
# if "NAUTOBOT_METRICS_DISABLED_APPS" in os.environ and os.environ["NAUTOBOT_METRICS_DISABLED_APPS"] != "":
|
||||
# METRICS_DISABLED_APPS = os.getenv("NAUTOBOT_METRICS_DISABLED_APPS", "").split(",")
|
||||
|
||||
# Credentials that Nautobot will uses to authenticate to devices when connecting via NAPALM.
|
||||
#
|
||||
# NAPALM_USERNAME = os.getenv("NAUTOBOT_NAPALM_USERNAME", "")
|
||||
# NAPALM_PASSWORD = os.getenv("NAUTOBOT_NAPALM_PASSWORD", "")
|
||||
|
||||
# NAPALM timeout (in seconds). (Default: 30)
|
||||
#
|
||||
# NAPALM_TIMEOUT = int(os.getenv("NAUTOBOT_NAPALM_TIMEOUT", "30"))
|
||||
|
||||
# NAPALM optional arguments (see https://napalm.readthedocs.io/en/latest/support/#optional-arguments). Arguments must
|
||||
# be provided as a dictionary.
|
||||
#
|
||||
# NAPALM_ARGS = {}
|
||||
|
||||
# Expiration date (YYYY-MM-DD) for an active Nautobot support contract with Network to Code.
|
||||
# Displayed in the About page.
|
||||
# if (
|
||||
# "NAUTOBOT_NTC_SUPPORT_CONTRACT_EXPIRATION_DATE" in os.environ
|
||||
# and os.environ["NAUTOBOT_NTC_SUPPORT_CONTRACT_EXPIRATION_DATE"] != ""
|
||||
# ):
|
||||
# NTC_SUPPORT_CONTRACT_EXPIRATION_DATE = datetime.date.fromisoformat(
|
||||
# os.environ["NAUTOBOT_NTC_SUPPORT_CONTRACT_EXPIRATION_DATE"]
|
||||
# )
|
||||
|
||||
# Default number of objects to display per page of the UI and REST API. Default is 50
|
||||
#
|
||||
# if "NAUTOBOT_PAGINATE_COUNT" in os.environ and os.environ["NAUTOBOT_PAGINATE_COUNT"] != "":
|
||||
# PAGINATE_COUNT = int(os.environ["NAUTOBOT_PAGINATE_COUNT"])
|
||||
|
||||
# Options given in the web UI for the number of objects to display per page.
|
||||
# Default is [25, 50, 100, 250, 500, 1000]
|
||||
#
|
||||
# if "NAUTOBOT_PER_PAGE_DEFAULTS" in os.environ and os.environ["NAUTOBOT_PER_PAGE_DEFAULTS"] != "":
|
||||
# PER_PAGE_DEFAULTS = [int(val) for val in os.environ["NAUTOBOT_PER_PAGE_DEFAULTS"].split(",")]
|
||||
|
||||
# Enable installed plugins. Add the name of each plugin to the list.
|
||||
#
|
||||
# PLUGINS = []
|
||||
|
||||
# Plugins configuration settings. These settings are used by various plugins that the user may have installed.
|
||||
# Each key in the dictionary is the name of an installed plugin and its value is a dictionary of settings.
|
||||
#
|
||||
# PLUGINS_CONFIG = {
|
||||
# 'my_plugin': {
|
||||
# 'foo': 'bar',
|
||||
# 'buzz': 'bazz'
|
||||
# }
|
||||
# }
|
||||
|
||||
# Prefer IPv6 addresses or IPv4 addresses in selecting a device's primary IP address? Default False
|
||||
#
|
||||
# if "NAUTOBOT_PREFER_IPV4" in os.environ and os.environ["NAUTOBOT_PREFER_IPV4"] != "":
|
||||
# PREFER_IPV4 = is_truthy(os.environ["NAUTOBOT_PREFER_IPV4"])
|
||||
|
||||
# Publish a simple "no-index" robots.txt for Nautobot?
|
||||
# PUBLISH_ROBOTS_TXT = is_truthy(os.getenv("NAUTOBOT_PUBLISH_ROBOTS_TXT", "True"))
|
||||
|
||||
# Default height and width in pixels of a single rack unit in rendered rack elevations. Defaults are 22 and 230
|
||||
#
|
||||
# if (
|
||||
# "NAUTOBOT_RACK_ELEVATION_DEFAULT_UNIT_HEIGHT" in os.environ
|
||||
# and os.environ["NAUTOBOT_RACK_ELEVATION_DEFAULT_UNIT_HEIGHT"] != ""
|
||||
# ):
|
||||
# RACK_ELEVATION_DEFAULT_UNIT_HEIGHT = int(os.environ["NAUTOBOT_RACK_ELEVATION_DEFAULT_UNIT_HEIGHT"])
|
||||
# if (
|
||||
# "NAUTOBOT_RACK_ELEVATION_DEFAULT_UNIT_WIDTH" in os.environ
|
||||
# and os.environ["NAUTOBOT_RACK_ELEVATION_DEFAULT_UNIT_WIDTH"] != ""
|
||||
# ):
|
||||
# RACK_ELEVATION_DEFAULT_UNIT_WIDTH = int(os.environ["NAUTOBOT_RACK_ELEVATION_DEFAULT_UNIT_WIDTH"])
|
||||
|
||||
# Enable two-digit format for the rack unit numbering in rack elevations.
|
||||
#
|
||||
# if (
|
||||
# "NAUTOBOT_RACK_ELEVATION_UNIT_TWO_DIGIT_FORMAT" in os.environ
|
||||
# and os.environ["NAUTOBOT_RACK_ELEVATION_UNIT_TWO_DIGIT_FORMAT"] != ""
|
||||
# ):
|
||||
# RACK_ELEVATION_UNIT_TWO_DIGIT_FORMAT = is_truthy(os.environ["NAUTOBOT_RACK_ELEVATION_UNIT_TWO_DIGIT_FORMAT"])
|
||||
|
||||
# Sets an age out timer of redis lock. This is NOT implicitly applied to locks, must be added
|
||||
# to a lock creation as `timeout=settings.REDIS_LOCK_TIMEOUT`
|
||||
#
|
||||
# REDIS_LOCK_TIMEOUT = int(os.getenv("NAUTOBOT_REDIS_LOCK_TIMEOUT", "600"))
|
||||
|
||||
# How frequently to check for a new Nautobot release on GitHub, and the URL to check for this information.
|
||||
# Defaults to disabled (no URL) and check every 24 hours when enabled
|
||||
#
|
||||
# if "NAUTOBOT_RELEASE_CHECK_TIMEOUT" in os.environ and os.environ["NAUTOBOT_RELEASE_CHECK_TIMEOUT"] != "":
|
||||
# RELEASE_CHECK_TIMEOUT = int(os.environ["NAUTOBOT_RELEASE_CHECK_TIMEOUT"])
|
||||
# if "NAUTOBOT_RELEASE_CHECK_URL" in os.environ and os.environ["NAUTOBOT_RELEASE_CHECK_URL"] != "":
|
||||
# RELEASE_CHECK_URL = os.environ["NAUTOBOT_RELEASE_CHECK_URL"]
|
||||
|
||||
# Remote auth backend settings
|
||||
#
|
||||
# REMOTE_AUTH_AUTO_CREATE_USER = False
|
||||
# REMOTE_AUTH_HEADER = "HTTP_REMOTE_USER"
|
||||
|
||||
# Job log entry sanitization and similar
|
||||
#
|
||||
# SANITIZER_PATTERNS = [
|
||||
# # General removal of username-like and password-like tokens
|
||||
# (re.compile(r"(https?://)?\S+\s*@", re.IGNORECASE), r"\1{replacement}@"),
|
||||
# (
|
||||
# re.compile(r"(username|password|passwd|pwd|secret|secrets)([\"']?(?:\s+is.?|:)?\s+)\S+[\"']?", re.IGNORECASE),
|
||||
# r"\1\2{replacement}",
|
||||
# ),
|
||||
# ]
|
||||
|
||||
# Configure SSO, for more information see docs/configuration/authentication/sso.md
|
||||
#
|
||||
# SOCIAL_AUTH_POSTGRES_JSONFIELD = False
|
||||
|
||||
# By default uploaded media is stored on the local filesystem. Using Django-storages is also supported. Provide the
|
||||
# class path of the storage driver in STORAGE_BACKEND and any configuration options in STORAGE_CONFIG.
|
||||
# These default to None and {} respectively.
|
||||
#
|
||||
# STORAGE_BACKEND = 'storages.backends.s3.S3Storage'
|
||||
# STORAGE_CONFIG = {
|
||||
# 'AWS_ACCESS_KEY_ID': 'Key ID',
|
||||
# 'AWS_SECRET_ACCESS_KEY': 'Secret',
|
||||
# 'AWS_STORAGE_BUCKET_NAME': 'nautobot',
|
||||
# 'AWS_S3_REGION_NAME': 'eu-west-1',
|
||||
# }
|
||||
|
||||
# Reject invalid UI/API filter parameters, or discard them while logging a warning?
|
||||
#
|
||||
# STRICT_FILTERING = is_truthy(os.getenv("NAUTOBOT_STRICT_FILTERING", "True"))
|
||||
|
||||
# Custom message to display on 4xx and 5xx error pages. Markdown and HTML are supported.
|
||||
# Default message directs the user to #nautobot on NTC's Slack community.
|
||||
#
|
||||
# if "NAUTOBOT_SUPPORT_MESSAGE" in os.environ and os.environ["NAUTOBOT_SUPPORT_MESSAGE"] != "":
|
||||
# SUPPORT_MESSAGE = os.environ["NAUTOBOT_SUPPORT_MESSAGE"]
|
||||
|
||||
# UI_RACK_VIEW_TRUNCATE_FUNCTION
|
||||
#
|
||||
# def UI_RACK_VIEW_TRUNCATE_FUNCTION(device_display_name):
|
||||
# """Given device display name, truncate to fit the rack elevation view.
|
||||
#
|
||||
# :param device_display_name: Full display name of the device attempting to be rendered in the rack elevation.
|
||||
# :type device_display_name: str
|
||||
#
|
||||
# :return: Truncated device name
|
||||
# :type: str
|
||||
# """
|
||||
# return str(device_display_name).split(".")[0]
|
||||
|
||||
# A list of strings designating all applications that are enabled in this Django installation.
|
||||
# Each string should be a dotted Python path to an application configuration class (preferred),
|
||||
# or a package containing an application.
|
||||
# https://docs.nautobot.com/projects/core/en/latest/configuration/optional-settings/#extra-applications
|
||||
# EXTRA_INSTALLED_APPS = []
|
||||
|
||||
# Allow users to enable request profiling on their login session
|
||||
# ALLOW_REQUEST_PROFILING = False
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user