#
# Loguru logging level (ERROR, WARNING, INFO, DEBUG, TRACE)
#
log_level: INFO

#
# Database URL (runtime - unprivileged user)
# For SQLite: sqlite:///fileglancer.db
# For PostgreSQL: postgresql://username:password@hostname:port/database_name
#
db_url: sqlite:///fileglancer.db

#
# Database admin URL (migrations - privileged user)
# If not specified, db_url will be used for migrations
# For PostgreSQL: postgresql://admin_user:admin_password@hostname:port/database_name
#
# db_admin_url: postgresql://admin_user:admin_password@localhost/fileglancer

#
# Database connection pool settings (applies to non-SQLite databases)
# These settings control the connection pool size for database connections
#
# db_pool_size: 5          # Number of connections to keep in the pool
# db_max_overflow: 0       # Number of additional connections allowed beyond pool_size

# If true, use seteuid/setegid for file access
# Set to False for local testing
#
use_access_flags: False

#
# File share mount paths to view in the UI. 
# If not set, defaults to the user's home directory
#
# file_share_mounts:
#   - "~/"
#   - /tmp
# 
# To view paths from fileglancer.db, use:
#
# file_share_mounts: []

#
# Atlassian Cloud info. Used for retrieving JIRA tickets.
#
# atlassian_url: https://YOUR_ORG_ID.atlassian.net
# atlassian_username: your_email@example.com
# atlassian_token: your_api_token

#
# JIRA browse URL for constructing ticket links
# If not specified, defaults to {atlassian_url}/browse
#
# jira_browse_url: https://YOUR_ORG_ID.atlassian.net/browse

#
# External URL for proxied paths
#
external_proxy_url: http://localhost:7878/files

#
# Maximum size of the sharing key LRU cache
# This controls how many sharing key lookups are cached in memory
# Higher values use more memory but reduce database queries
#
sharing_key_cache_size: 1000

#
# OKTA OAuth/OIDC Authentication Settings
# Set enable_okta_auth to true to require OKTA authentication
# When false, the application uses the $USER environment variable
#
# enable_okta_auth: false

#
# OKTA domain (e.g., your-domain.okta.com)
#
# okta_domain: your-domain.okta.com

#
# OKTA OAuth application client ID
#
# okta_client_id: your_client_id

#
# OKTA OAuth application client secret
# IMPORTANT: Keep this secret! Consider using environment variables instead
#
# okta_client_secret: your_client_secret

#
# OKTA OAuth redirect URI (callback URL)
# This must match the redirect URI configured in your OKTA application
#
# okta_redirect_uri: https://<your_domain>/api/oauth_callback

#
# Session Management Settings
#

#
# Secret key for signing session cookies
# If not set, a random key will be generated on each server start (sessions won't persist across restarts)
# For production, set this to a strong random string to maintain sessions across restarts
# Generate with: python -c "import secrets; print(secrets.token_urlsafe(32))"
#
# session_secret_key: your-generated-secret-key-here

#
# Session expiry time in hours
#
session_expiry_hours: 24

#
# Name of the session cookie
#
session_cookie_name: fg_session

#
# Whether to use secure flag on session cookies
# Set to false for development with self-signed certificates
# Set to true for production with valid HTTPS certificates
#
session_cookie_secure: true

#
# Environment setup — sourced at startup before any scheduler commands.
# Useful when running as a systemd service where login scripts don't run.
#
# env_source_script: /misc/lsf/conf/profile.lsf  # Source a shell script to set env vars
# extra_paths:               # Directories prepended to the server's PATH
#   - /opt/lsf/bin
# extra_env:                 # Extra environment variables set at startup
#   LSF_ENVDIR: /misc/lsf/conf

#
# Settings for the Apps feature
#
# apps:
#   extra_paths:                # Paths appended to $PATH in every job script
#     - /opt/nextflow/bin       # and used when verifying tool requirements
#     - /opt/pixi/bin

# Cluster configuration
# Mirrors py-cluster-api ClusterConfig - all fields are optional
# See: https://github.com/JaneliaSciComp/py-cluster-api
#
cluster:
  executor: local            # "local" or "lsf"
#   job_name_prefix: fg        # Prefix for cluster job names. REQUIRED for job
#                              # reconnection after server restarts. Without this,
#                              # active jobs will not be re-tracked and will
#                              # eventually be marked FAILED by the zombie timeout.
#   memory: "8 GB"             # Default memory allocation
#   walltime: "04:00"          # Default walltime (HH:MM)
#   cpus: 1                    # Default CPU count
#   queue: normal              # LSF queue name
#   poll_interval: 10.0        # Job status polling interval (seconds)
#   lsf_units: MB              # Memory units for LSF (KB, MB, GB)
#   suppress_job_email: true    # Suppress LSF job email notifications
#   extra_directives:           # Additional scheduler directives (prefix auto-added)
#     - "-P your_account"
#   extra_args:                 # Extra CLI args appended to submit command
#     - "-P"
#     - "your_project"
#   script_prologue:            # Commands to run before each job
#     - "module load java/11"


