http_server:
  listen_address: :8080
  read_header_timeout: 60
  shutdown_timeout: 5

api:
  amplitude:
    ampli_environment_env: AMPLI_ENVIRONMENT
  middleware:
    api_protocol_env: API_PROTOCOL
    domain_env: SERVICE_HOST
    api_endpoint_env: API_ENDPOINT
    signature:
      secret_key_env: API_ENDPOINT_SECRET
      algorithm: HS256
    CORS:
      max_age: 300
      allowed_origins:
        - "*"
      allowed_methods:
        - "GET"
        - "POST"
        - "PUT"
        - "PATCH"
        - "DELETE"
        - "OPTIONS"
      allowed_headers:
        - "Accept"
        - "Authorization"
        - "Content-Type"
        - "X-Requested-With"
      exposed_headers:
      allow_credentials: false
    websocket:
      endpoint_env: WS_ENDPOINT
      timeout: 60
    message_broker:
      driver: NATS
      settings:
        url_env: NATS_URL
        host_env: NATS_HOST         
        port_env: NATS_PORT         
        username_env: NATS_USER     
        password_env: NATS_PASSWORD 
        broker_name: Sendico Backend server
        max_reconnects: 10          
        reconnect_wait: 5           
        buffer_size: 1024
      # type: in-process
      # settings:
      #   buffer_size: 10
    token: 
      expiration_hours:
        account: 24
        refresh: 720
      length: 32
    password: 
      token_length: 32
      check:
        min_length: 8
        digit: true
        upper: true 
        lower: true
        special: true


  storage:
    # driver: aws_s3
    # settings:
    #   access_key_id_env: S3_ACCESS_KEY_ID
    #   secret_access_key_env: S3_ACCESS_KEY_SECRET
    #   region_env: S3_REGION
    #   bucket_name_env: S3_BUCKET_NAME
    driver: local_fs
    settings:
      root_path: ./storage

  chain_gateway:
    address: dev-tron-gateway:50071
    address_env: TRON_GATEWAY_ADDRESS
    dial_timeout_seconds: 5
    call_timeout_seconds: 5
    insecure: true
    default_asset:
      chain: TRON_NILE
      token_symbol: USDT
      contract_address: ""
  ledger:
    address: dev-ledger:50052
    address_env: LEDGER_ADDRESS
    dial_timeout_seconds: 5
    call_timeout_seconds: 5
    insecure: true
  payment_orchestrator:
    address: dev-payments-orchestrator:50062
    address_env: PAYMENTS_ADDRESS
    dial_timeout_seconds: 5
    call_timeout_seconds: 5
    insecure: true

app:

database:
  driver: mongodb
  settings:
    host_env: MONGO_HOST
    port_env: MONGO_PORT
    database_env: MONGO_DATABASE
    user_env: MONGO_USER
    password_env: MONGO_PASSWORD
    auth_source_env: MONGO_AUTH_SOURCE
    replica_set_env: MONGO_REPLICA_SET
    enforcer: 
      driver: native
      settings:
        model_path_env: PERMISSION_MODEL
        adapter:
          collection_name_env: PERMISSION_COLLECTION
          database_name_env: MONGO_DATABASE
          timeout_seconds_env: PERMISSION_TIMEOUT
          is_filtered_env: PERMISSION_IS_FILTERED
