# (c) cavaliba.com - home - configuration_default.py


# SIDEBAR_CONTENT default - the real fresh-install AND upgrade source (seeded
# via sync_configuration()/CavalibaConfiguration whenever no DB row exists
# yet for this key). Previously only a fallback: a one-time migrator
# (app_home.migrator.migrate_sidebar_to_yaml(), removed) used to overwrite
# this with a value computed from live DashboardApp rows on any install
# crossing the 5.0.0 boundary, so admin sidebar customizations made through
# the old DashboardApp-driven system survived the upgrade. That conversion no
# longer runs - an admin upgrading from before 5.0.0 with a customized
# sidebar now gets this generic default instead and must reproduce any
# customization by hand in SIDEBAR_CONTENT. Content mirrors what the old
# builtin/init/090_dashboard.yml (since removed - it only ever held _home
# entries, DashboardApp's YAML import path no longer exists) used to define,
# expressed with app:/schema: entries.
SIDEBAR_CONTENT_DEFAULT = """
- section: "Services"
  entries:
    - app: sirene
    - app: sms
    - app: cmt
    - app: ipam

- section: "Asset Management"
  entries:
    - schema: user
    - schema: group
    - schema: site
    - schema: sitegroup
    - schema: app
    - schema: sirene_template
    - schema: sirene_public
    - app: all_schemas

- section: "Tools"
  entries:
    - app: import
    - app: export
    - app: dataview
    - app: enumerate
    - app: pipeline
    - app: revision
    - app: code_editor
    - app: configuration
    - app: admintools

- section: "Security"
  entries:
    - app: role
    - app: permission
    - app: apikey
    - app: log
    - app: sms_stat
    - app: sms_journal

- section: "Doc"
  entries:
    - app: cavaliba_doc

"""


# Default DASHBOARD_CONTENT (home page). Note: '@ALL' (the schema: wildcard)
# and leading '!' (negation) are YAML reserved indicators - values using them
# MUST be quoted (unquoted @ALL or !name raise a YAML parse error, they don't
# parse as plain strings).
DASHBOARD_CONTENT_DEFAULT = """
- section: "Services"
  entries:
    - app: sirene
    - app: ipam
    - app: sms
    - app: cmt

- section: "Assets"
  entries:
    - schema: "!sirene_message"
    - schema: "@ALL"
    - app: all_schemas

- section: "Tools"
  entries:
    - app: import
    - app: export
    - app: revision
    - app: code_editor
    - app: enumerate
    - app: dataview
    - app: pipeline
    - app: admintools
    - app: configuration

- section: "Security"
  entries:
    - app: role
    - app: permission
    - app: apikey
    - app: log
    - app: sms_stat
    - app: sms_journal
"""


CONFIGURATION_DEFAULT = {
    "env": {
        "CAVALIBA_AUTH_MODE": "local",
        "CAVALIBA_FORCE_LOGIN": "admin",
        "CAVALIBA_DEBUG_AAA": "no",
    },
    "home": {
        "GLOBAL_APPNAME": "Cavaliba",
        "CSV_DELIMITER": ",",
        "LOGO_SIZE": 0,
        "LOG_DEBUG": "yes",
        # "LOG_KEEP_DAYS": 31,
        "LOG_KEEP_DAYS_DEBUG": 7,
        "LOG_KEEP_DAYS_INFO": 120,
        "LOG_KEEP_DAYS_WARNING": 365,
        "LOG_KEEP_DAYS_ERROR": 365,
        "LOG_KEEP_DAYS_CRITICAL": 99999,
        "LOG_MAX_ENTRIES": 2200000,
        "LOG_EXCLUDED_IP": "",
        "BETA_PREVIEW": "no",
        "SIDEBAR_COLOR": "#000000",
        "SIDEBAR_ENV": "",
        "SIDEBAR_CONTENT": SIDEBAR_CONTENT_DEFAULT,
        "DASHBOARD_CONTENT": DASHBOARD_CONTENT_DEFAULT,
        "REVISION_DISPLAY": 10,
        "REVISION_KEEP_DAYS": 999,
    },
    "user": {
        "TRUSTED_ANONYMOUS_IPS": "",
        # oauth2, basic, local, forced
        "AUTH_FEDERATED_LOGIN_FIELD": "X-User",
        "AUTH_FEDERATED_EMAIL_FIELD": "X-Email",
        "AUTH_LOGIN_REMOVE_DOMAIN": "yes",
        # manual, create, update, sync, visitor
        "AUTH_PROVISIONING": "manual",
        "CACHE_SESSION": "yes",
    },
    "data": {
        "DATA_DEFAULT_SIZE": 100,
        "DATA_MAX_SIZE": 500,
        "DATA_BIGSET_SIZE": 100,
        "EXPORT_INTERACTIVE_MAX_SIZE": 5000,
    },
    "sirene": {
        "SIRENE_APPNAME": "Sirene",
        "PUBLIC_MAX_ITEMS": 6,
        "DEFAULT_DURATION_MINUTE": 1440,
        "PUBLIC_SORT_ORDER": "creation",
        "PUBLIC_SKIP_TO_TRUSTED": "no",
        "USER_MAX_NOTIFICATION": 100,
        "EMAIL_MAX_NOTIFICATION": 100,
        "EMAIL_MODE": "stdout",
        "EMAIL_FROM": "noreply@findadomain.com",
        "EMAIL_SMTP_BATCH": 100,
        "EMAIL_PREFIX": "[Cavaliba] ",
        "EMAIL_UPDATE_PREFIX": "[Cavaliba Update] ",
        "EMAIL_MESSAGE_TEMPLATE": "default",
        "EMAIL_TEST_SUBJECT": "Cavaliba - TEST TEST TEST - Please ignore.",
        "EMAIL_TEST_CONTENT": "Test.Ignore.",
        "SMS_MAX_NOTIFICATION": 30,
        "SMS_PREFIX": "[Cavaliba] ",
        "SMS_UPDATE_PREFIX": "[Cavaliba Update] ",
        "SMS_TEST": "Cavaliba - TEST TEST TEST - Please ignore.",
        "SMS_QUOTA_PER_DAY": 100,
        "SMS_MODE": "stdout",
        "SMS_WARNING": "IMPORTANT: All SMS activity is recorded for security purposes.",
        # "APP_CLASS": "app",
        # "SITE_CLASS": "site",
        # "SITEGROUP_CLASS": "sitegroup",
        # "CUSTOMER_CLASS": "customer",
        "NOTIFY_FIELDS": "user group app site",
        "NOTIFY_SUBSCRIPTIONS": "site:app",
    },
    "cmt": {
        "CMT_APPNAME": "CMT",
        "CMT_RAW_KEEP_DAYS": 7,
        "CMT_SAMPLE_HOUR_KEEP_DAYS": 31,
    },
    "ipam": {
        "IPAM_APPNAME": "IPAM - IP Management",
    },
}
