# Public root URL
public_root_url: "http://127.0.0.1/eesyphp"

# Application root data directory
data_directory: "${root_directory_path}/data"

# Temporary files root directory
tmp_root_directory: "${data_directory}/tmp"

# Temporary uploading files directory (optional, default: PHP ini default)
upload_tmp_directory: ${tmp_root_directory}/uploading"

# Uploading file size limit (in bytes, example: 104857600 == 100Mb)
# (optional, default: PHP ini default)
upload_max_filesize: 104857600

# Main pagetitle
main_pagetitle: "Eesyphp"

# Debug Ajax request/response
debug_ajax: false

#
# Log configuration
#
log:
  # Logs directory path
  directory_path: "${data_directory}/logs"

  # CLI log file path
  cli_file_path: "${log.directory_path}/cli.log"

  # Log file path
  file_path: "${log.directory_path}/app.log"

  # Log level (TRACE / DEBUG / INFO / WARNING / ERROR / FATAL)
  level: 'INFO'

  # Log PHP errors levels (as specified to set_error_handler())
  # Note: expected a list of PHP error level constants that will be resolved and combine
  # with a bitwise operator. After the first value, the bitwise operator "|" (OR) or "^" (XOR)
  # could be specified as contanst name prefix, otherwise the "&" (AND) operator will be used.
  # The constant name could also be prefix with "~" or "!" (NOT) bitwise operator.
  #
  # Default:
  # - In TRACE or DEBUG: E_ALL & ~E_STRICT
  # - Otherwise: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
  #log_php_errors_levels:
  #  - E_ALL
  #  - ~E_NOTICE
  #  - ~E_STRICT
  #  - ~E_DEPRECATED


#
# Sentry configuration
#
sentry:
  # Sentry DSN
  #dsn: null

  # Log PHP errors in Sentry: list of errors types to logs
  # See: https://www.php.net/manual/fr/errorfunc.constants.php
  php_error_types:
    - "E_ERROR"
    - "E_PARSE"
    - "E_CORE_ERROR"
    - "E_COMPILE_ERROR"
    - "E_USER_ERROR"
    - "E_RECOVERABLE_ERROR"
    - "E_DEPRECATED"


  # Traces sample rate (between 0 and 1)
  # Note: this parameter permit to determine how many transactions (=~ access) are traced and
  # sent to Sentry, for instance, 0.2 meen that 20% of the transactions will be traced. In dev
  # mode, set to 1 if you want all transactions are sent to Sentry.
  # Default: 0.2
  traces_sample_rate: 0.2

#
# Smarty templates configuration
#
templates:
  # Smarty directories
  directory: "${root_directory_path}/templates"
  cache_directory: "${tmp_root_directory}/templates_c"
  # Theme CSS file
  included_css_files:
    #- css/custom.css
  included_js_files:
    #- js/custom.js

#
# Translations
#
i18n:
  # Default locale (see locales directory for available languages list, default: 'en_US.UTF8')
  #default_locale: 'en_US.UTF8'

#
# Session
#
session:
  timeout: 1800        # Session timeout dur to inactivity (in seconds)
  max_duration: 43200  # Session max duration (in seconds, default : 12h)

#
# Database configuration
#
db:
  # Sqlite
  dsn: "sqlite:${data_directory}/db.sqlite3"
  options: null

  # Date/Datetime format in database (strptime format)
  date_format: '%s'
  datetime_format: '%s'

  # Postgresql
  #dsn: "pgsql:host=localhost;port=5432;dbname=items"
  #user: "items"
  #pwd: "items"
  #options: null

  # Date/Datetime format in database (strptime format)
  #date_format: '%Y-%m-%d'                # Exemple : 2018-10-12
  #datetime_format: '%Y-%m-%d %H:%M:%S'   # Exemple : 2018-10-12 18:06:59

  # MariaDB / MySQL
  #dsn: "mysql:host=localhost;dbname=items"
  #user: "items"
  #pwd: "items"
  #options: null

  # Date/Datetime format in database (strptime format)
  #date_format: '%Y-%m-%d'               # Exemple : 2018-10-12
  #datetime_format: '%Y-%m-%d %H:%M:%S'  # Exemple : 2018-10-12 18:06:59


#
# Authentication
#
auth:
  # Enabled authentication
  enabled: false

  # Methods to authenticate users
  methods:
    - form
    - http
    #- cas

  # User backends
  backends:
    - ldap

  #
  # Login form
  #
  login_form:
    # Display link for other authentication methods
    # Note: method as key and label as value
    display_other_methods:
      http: "HTTP"
      cas: "SSO"

  #
  # HTTP Authentication Configuration
  #
  http:
    # HTTP Auth methods :
    # * AUTHORIZATION : use HTTP_AUTHORIZATION environnement. This mode could be use with PHP FPM.
    #                   Specific configuration is need in Apache to use this mode :
    #                   RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    # * REMOTE_USER   : use REMOTE_USER environnement variable to retreive authenticated user's login
    #                   This method could be only used with $http_auth_trust_without_password_challenge
    #                   enabled.
    # * PHP_AUTH      : use PHP_AUTH_USER and PHP_AUTH_PW environnement variables (only available
    #                   using mod_php with Apache. (default)
    method: 'PHP_AUTH'

    # Trust HTTP server authentication
    # If enabled, the application will no check user credentials and only retreive user's login
    # from HTTP server.
    #trust_without_password_challenge: true

    # Realm (use when force HTTP login, optional)
    #realm: "Authentication required"

  #
  # CAS Configuration
  #
  cas:
    # CAS host (just the domain name)
    host: 'idp.example.com'

    # CAS context (the root path, default: '/idp/cas')
    # Example: for 'http://idp.example.com/idp/cas', put '/idp/cas'
    context: '/idp/cas'

    # CAS HTTP port (default: 443)
    #port: 443

    # CAS procotol version
    # Posssible values: "1.0", "2.0" (default), "3.0" or "S1" (SAML1)
    #version: '2.0'

    # CAS server SSL certificate validation (set to false to disable)
    ca_cert_certificate_path: "/etc/ssl/certs/ca-certificates.crt"

    # CAS Debug log file
    #debug_log_file: "${root_directory_path}/data/logs/cas.log"

    # CAS Logout
    #logout: true  # Enable CAS logout on app logout
    #logout_url: "https://my.example.fr/logout/"  # Specify custom CAS logout URL

    # CAS Fake authenticated user
    #fake_authenticated_user: 'myusername'

  #
  # LDAP user backend
  #
  ldap:
    # LDAP host (required, multiple hosts could be specified with comma separator)
    host: 'ldap://localhost'

    # LDAP port (optional)
    #port: 389

    # Enable STARTTLS (optional, default: false)
    #starttls: false

    # LDAP directory base DN (required)
    basedn: 'o=example'

    # LDAP bind DN (optional)
    #bind_dn: 'uid=eesyphp,ou=sysaccounts,${auth.ldap.basedn}'

    # LDAP bind password (optional)
    #bind_password: 'secret'

    # User search filter by username. The keyword "[username]" will be replace before search by
    # the looked username (default: "uid=[username]")
    #user_filter_by_uid: 'uid=[username]'

    # User base DN
    user_basedn: 'ou=people,${auth.ldap.basedn}'

    # Bind with username instead of user DN (optional, default: false)
    #bind_with_username: true

    # LDAP user attributes to retreive with their properties:
    # [attr name]:
    #   # LDAP attribute name (optional, default: [attr name])
    #   ldap_name: [LDAP attr name]
    #   # Alternative LDAP attribute name to retrieve if the first one is not defined (optional)
    #   alt_ldap_name: [alternative LDAP attr name]
    #   # Type of value (optional, default: 'string', possible values: string, bool, int, float)
    #   type: [type of value]
    #   # Multivalued attribute (optional, default: false)
    #   multivalued: true
    #   # Default attribute value (optional, default: null)
    #   default: null
    user_attributes:
      login:
        ldap_name: 'uid'
        multivalued: false
        default: null
      name:
        ldap_name: 'displayName'
        alt_ldap_name: 'cn'
        multivalued: false
        default: null
      mail:
        type: 'string'

    # PEAR Net_LDAP2 library path (optional, default: Net/LDAP2.php)
    #netldap2_path: 'Net/LDAP2.php'

#
# Email configuration
#
email:
  # PHP PEAR Mail and Mail_Mine paths
  php_mail_path: 'Mail.php'
  php_mail_mime_path: 'Mail/mime.php'


  # Sending method :
  #  - mail : use PHP mail function
  #  - sendmail : use sendmail system command
  #  - smtp : use an SMTP server (PHP PEAR Net_SMTP required)
  send_method: 'smtp'

  # Sending parameters
  # See : http:#pear.php.net/manual/en/package.mail.mail.factory.php
  send_params: NULL

  # Headers add to all e-mails sent
  headers:
    #- "CC: support@example.com"

  # Email sender address (for all emails sent by the application)
  sender: "noreply@example.org"

  # Catch all e-mails sent to a configured e-mail address
  catch_all: false

# Web Stats JS code
#webstats_js_code: ''

# vim: tabstop=2 shiftwidth=2 softtabstop=2 expandtab
