{
    /*
    @type 	string 
    @description 	The IP address for the service to listen to.
     */
    "bind": "0.0.0.0",

    /*
    @type 	number
    @description	The port number for the service to listen to
     */
    "port": 8080,

    /*
    @type	string
    @description 	The header name of the authentication token
     */
    "authentication_header": "X-BT-AUTH",

    /*
    @type string
    @description The header name of the backend secret
    */
    "backend_authentication_header": "X-BT-BACKEND-AUTH",

    /*
    @type string
    @description The backend secret used for backend APIs
    */
    "backend_authentication_secret": null,

    "log": {
        /*
        @type string
        @description 	The application log level. 
                        Valid Values:
                            - silly
                            - debug
                            - verbose
                            - htto
                            - info
                            - warn
                            - error
        */
        "level": "info",

        /*
        @type Array<string>
        @description 	Suppresses logging to log messages matching the listed regex patterns 
        */
        "filters": ["/TokenExpiredError/g"],

        /**
        Object containing cloudwatch settings for cloudwatch transport
        */
        "cloudwatch": {
            /**
            @description The cloudwatch region
            @type string
            */
            "region": "string",


            "credentials": {
                /**
                @description The access key
                @type string
                */
                "accessKeyId": "string",

                /**
                @description The secret key
                @type string
                */
                "secretAccessKey": "string"
            },

            "stream": {
                /**
                @description The log group
                @type string
                */
                "group": "string",

                /**
                @description The stream name
                @type string
                */
                "name": "string"
            }
        }
    },

    /*
    @type number
    @description    The maximum size in bytes that this service is capable of handling.
    @default        5242880
    */
    "request_size_limit": 5242880,

    /*
    Object holding database related configurations
    */
    "database": {
        /*
        @type IDatabaseConfig
        Note: main name will be enforced to MASTER
        */
        "main": {
            "name": "MASTER",
            "host": "example.com",
            "port": 3306,
            "schema": "schema",
            "user": "user",
            "password": "password"
        },
        "replicationNodes": [
            /*
                @type IDatabaseConfig
            */
            {}
        ],

        /*
        @type number
        @description    The timeout limit for inactive database connections. If 0, the timeout is disabled
        @default        3600000
        */
        "query_timeout": 3600000
    },

    /*
    @type Record<any, any>
    @description    Arbitruary object for application-specific parameters
    @default        {}
    */
    "customConfig": {}
}
