parameters:
    default_cdn_strategy: "id"
    env(APP_URL): ''
    APP_URL: "%env(string:APP_URL)%"
    env(REDIS_PREFIX): ''

shopware:
    http_cache:
        reverse_proxy:
            enabled: false
            ban_method: "BAN" # This can defer from used reverse proxy
            hosts: [ "http://varnish" ]
            max_parallel_invalidations: 2
            redis_url: "redis://redis"
            purge_all:
            fastly:

        ignored_url_parameters:
            - 'pk_campaign' # Piwik
            - 'piwik_campaign'
            - 'pk_kwd'
            - 'piwik_kwd'
            - 'pk_keyword'
            - 'mtm_campaign' # Matomo
            - 'matomo_campaign'
            - 'mtm_cid'
            - 'matomo_cid'
            - 'mtm_kwd'
            - 'matomo_kwd'
            - 'mtm_keyword'
            - 'matomo_keyword'
            - 'mtm_source'
            - 'matomo_source'
            - 'mtm_medium'
            - 'matomo_medium'
            - 'mtm_content'
            - 'matomo_content'
            - 'mtm_group'
            - 'matomo_group'
            - 'mtm_placement'
            - 'matomo_placement'
            - 'pixelId' # Yahoo
            - 'kwid'
            - 'kw'
            - 'chl'
            - 'dv'
            - 'nk'
            - 'pa'
            - 'camid'
            - 'adgid'
            - 'utm_term' # Google
            - 'utm_source'
            - 'utm_medium'
            - 'utm_campaign'
            - 'utm_content'
            - 'cx'
            - 'ie'
            - 'cof'
            - 'siteurl'
            - '_ga'
            - 'adgroupid'
            - 'campaignid'
            - 'adid'
            - 'gclsrc' # Google DoubleClick
            - 'gclid'
            - 'fbclid' # Facebook
            - 'fb_action_ids'
            - 'fb_action_types'
            - 'fb_source'
            - 'mc_cid' # Mailchimp
            - 'mc_eid'
            - '_bta_tid' # Bronto
            - '_bta_c'
            - 'trk_contact' # Listrak
            - 'trk_msg'
            - 'trk_module'
            - 'trk_sid'
            - 'gdfms'  # GodataFeed
            - 'gdftrk'
            - 'gdffi'
            - '_ke'  # Klaviyo
            - 'redirect_log_mongo_id' # Klaviyo
            - 'redirect_mongo_id'
            - 'sb_referer_host'
            - 'mkwid' # Marin
            - 'pcrid'
            - 'ef_id' # Adobe Advertising Cloud
            - 's_kwcid' # Adobe Analytics
            - 'msclkid' # Microsoft Advertising
            - 'dm_i' # dotdigital
            - 'epik' # Pinterest
            - 'pp'
    profiler:
        integrations: []
    filesystem:
        private:
            type: "local"
            config:
                root: "%kernel.project_dir%/files"
        public:
            type: "local"
            config:
                root: "%kernel.project_dir%/public"
        temp:
            type: "local"
            config:
                root: "%kernel.project_dir%/var"
        theme:
        asset:
        sitemap:
        allowed_extensions: ["jpg", "jpeg", "png", "webp", "gif", "svg", "bmp", "tiff", "tif", "eps", "webm", "mkv", "flv", "ogv", "ogg", "mov", "mp4", "avi", "wmv", "pdf", "aac", "mp3", "wav", "flac", "oga", "wma", "txt", "doc", "ico", "glb"]
        private_allowed_extensions: ["jpg", "jpeg", "png", "webp", "gif", "svg", "bmp", "tiff", "tif", "eps", "webm", "mkv", "flv", "ogv", "ogg", "mov", "mp4", "avi", "wmv", "pdf", "aac", "mp3", "wav", "flac", "oga", "wma", "txt", "doc", "ico", "glb", "zip", "rar"]
        private_local_download_strategy: "php"

    cdn:
        url: ''
        strategy: "%env(string:default:default_cdn_strategy:SHOPWARE_CDN_STRATEGY_DEFAULT)%"

    increment:
        user_activity:
            type: 'mysql'

            # type: 'array'

            # type: 'redis'
            #     config:
            #         url: 'redis://localhost'

        message_queue:
            type: 'mysql'

            # type: 'array'

            # type: 'redis'
            #     config:
            #         url: 'redis://localhost'

    api:
        # @deprecated tag:v6.6.0 - The new default will be 100
        max_limit: null
        api_browser:
            auth_required: true
        store:
            context_lifetime: 'P1D' # 1 day interval, see also https://www.php.net/manual/en/dateinterval.construct.php#refsect1-dateinterval.construct-parameters
            max_limit: 100
        jwt_key:
            private_key_path: 'file://%kernel.project_dir%/config/jwt/private.pem'
            private_key_passphrase: 'shopware'
            public_key_path: 'file://%kernel.project_dir%/config/jwt/public.pem'
        rate_limiter:
            login:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours' # reset limit after this time if no more requests failed
                limits:
                    - limit: 10
                      interval: '10 seconds'
                    - limit: 15
                      interval: '30 seconds'
                    - limit: 20
                      interval: '60 seconds'
            guest_login:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours'
                limits:
                    - limit: 10
                      interval: '10 seconds'
                    - limit: 15
                      interval: '30 seconds'
                    - limit: 20
                      interval: '60 seconds'
            oauth:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours'
                limits:
                    - limit: 10
                      interval: '10 seconds'
                    - limit: 15
                      interval: '30 seconds'
                    - limit: 20
                      interval: '60 seconds'
            reset_password:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours'
                limits:
                    - limit: 3
                      interval: '30 seconds'
                    - limit: 5
                      interval: '60 seconds'
                    - limit: 10
                      interval: '90 seconds'
            user_recovery:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours'
                limits:
                    - limit: 3
                      interval: '30 seconds'
                    - limit: 5
                      interval: '60 seconds'
                    - limit: 10
                      interval: '90 seconds'
            contact_form:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours'
                limits:
                    - limit: 3
                      interval: '30 seconds'
                    - limit: 5
                      interval: '60 seconds'
                    - limit: 10
                      interval: '90 seconds'
            notification:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours'
                limits:
                    - limit: 10
                      interval: '10 seconds'
                    - limit: 15
                      interval: '30 seconds'
                    - limit: 20
                      interval: '60 seconds'
            newsletter_form:
                enabled: true
                policy: 'time_backoff'
                reset: '24 hours'
                limits:
                    - limit: 3
                      interval: '30 seconds'
                    - limit: 5
                      interval: '60 seconds'
                    - limit: 10
                      interval: '90 seconds'
            cart_add_line_item:
                enabled: true
                policy: 'system_config'
                reset: '1 hours'
                limits:
                    -   domain: 'core.cart.lineItemAddLimit'
                        interval: '60 seconds'

    admin_worker:
        enable_admin_worker: true
        enable_queue_stats_worker: true
        enable_notification_worker: true
        # This has to be lower than PHP's max_execution_time (default: 30s)
        poll_interval: 20
        transports: ["async", "low_priority"]

    auto_update:
        enabled: true

    store:
        frw: false

    sitemap:
        batchsize: 100
        custom_urls:
        excluded_urls:

    deployment:
        blue_green: '%env(bool:default:defaults_bool_true:BLUE_GREEN_DEPLOYMENT)%'
        cluster_setup: false

    media:
        enable_url_upload_feature: true
        enable_url_validation: true
        url_upload_max_size: 0

    dal:
        batch_size: 125
        max_rule_prices: 100
        versioning:
            expire_days: 30

    mail:
        update_mail_variables_on_send: true

    cart:
        compress: false
        expire_days: 120
        redis_url: false

    number_range:
        increment_storage: "SQL"
        redis_url: false

    sales_channel_context:
        expire_days: 120

    html_sanitizer:
        enabled: true
        cache_dir: '%kernel.cache_dir%'
        cache_enabled: true
        sets:
            - name: HTML5
              tags: ["article", "aside", "audio", "bdi", "canvas", "datalist", "details", "dialog", "embed", "figcaption", "figure", "footer", "header", "main", "mark", "meter", "nav", "progress", "rp", "rt", "ruby", "section", "summary", "time", "wbr", "output", "canvas", "svg", "track", "video", "source", "input"]
              attributes: ["controls", "open", "min", "max", "datetime", "for", "type", "kind", "srclang", "label", "value", "placeholder", "autoplay", "loop", "muted", "preload", "low", "high", "optimum", "default", "poster", "media", "maxlength", "minlength", "pattern", "required", "autocomplete", "autofocus", "disabled", "readonly", "multiple", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "list", "step", "checked", "accept"]
            - name: basic
              tags: ["a", "abbr", "acronym", "address", "b", "bdo", "big", "blockquote", "br", "caption", "center", "cite", "code", "col", "colgroup", "dd", "del", "dfn", "dir", "div", "dl", "dt", "em", "font", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "ins", "kbd", "li", "menu", "ol", "p", "pre", "q", "s", "samp", "small", "span", "strike", "strong", "sub", "sup", "table", "tbody", "td", "tfoot", "th", "thead", "tr", "tt", "u", "ul", "var", "img"]
              attributes: ["align", "bgcolor", "border", "cellpadding", "cellspacing", "cite", "class", "clear", "color", "colspan", "dir", "face", "frame", "height", "href", "id", "lang", "name", "noshade", "nowrap", "rel", "rev", "rowspan", "scope", "size", "span", "start", "style", "summary", "title", "type", "valign", "value", "width", "target", "src", "alt"]
              options:
                  - key: Attr.AllowedFrameTargets
                    values: ['_blank', '_self', '_parent', '_top']
                  - key: Attr.AllowedRel
                    values: ['nofollow', 'print']
                  - key: Attr.EnableID
                    value: true
            - name: media
              tags: ["img"]
              attributes: ["src", "alt"]
            - name: script
              tags: ["script"]
              options:
                  - key: HTML.Trusted
                    value: true
            - name: tidy
              options:
                  - key: Output.TidyFormat
                    value: true
            - name: bootstrap
              tags: ["a", "span"]
              attributes: ["role", "aria-label", "aria-labelledly", "aria-current", "aria-expanded", "aria-controls", "aria-hidden", "aria-describedby", "tabindex", "aria-modal", "data-bs-toggle", "data-bs-target", "data-bs-dismiss", "data-bs-slide", "data-bs-slide-to", "data-bs-parent", "data-bs-config", "data-bs-content", "data-bs-spy"]
              custom_attributes:
                  - tags: ["a", "span"]
                    attributes: ["href", "role", "aria-label", "aria-labelledly", "aria-current", "aria-expanded", "aria-controls", "aria-hidden", "aria-describedby", "tabindex", "aria-modal", "data-bs-toggle", "data-bs-target", "data-bs-dismiss", "data-bs-slide", "data-bs-slide-to", "data-bs-parent", "data-bs-config", "data-bs-content", "data-bs-spy"]
            - name: snippet
              tags: ["a"]
              attributes: ["data-url", "data-ajax-modal", "data-prev-url"]
              custom_attributes:
                  - tags: ["a"]
                    attributes: ["data-url", "data-ajax-modal", "data-prev-url"]

        fields:
            - name: product_translation.description
              sets: ["basic", "media", "HTML5"]
            - name: app_cms_block.template
              sets: ["basic", "media", "tidy", "HTML5"]
            - name: snippet.value
              sets: ["basic", "media", "bootstrap", "snippet", "HTML5"]

    logger:
        file_rotation_count: 14
        exclude_exception:
            - League\OAuth2\Server\Exception\OAuthServerException
            - Symfony\Component\HttpKernel\Exception\NotFoundHttpException
            # deprecated tag:v6.6.0 - Exception will be removed
            - Shopware\Core\Content\Media\Exception\DuplicatedMediaFileNameException
            - Shopware\Core\Framework\Routing\Exception\LanguageNotFoundException
        exclude_events:
            - user.recovery.request
            - customer.recovery.request
        error_code_log_levels:
            PRODUCT__CATEGORY_NOT_FOUND: notice
            PRODUCT_SORTING_NOT_FOUND: notice
            PROMOTION__INDIVIDUAL_CODES_PATTERN_ALREADY_IN_USE: notice
            PROMOTION__INDIVIDUAL_CODES_PATTERN_INSUFFICIENTLY_COMPLEX: notice
            CHECKOUT__CART_INVALID_LINE_ITEM_QUANTITY: notice
            CHECKOUT__INSUFFICIENT_PERMISSION: notice
            CHECKOUT__TAX_ID_NOT_FOUND: notice
            CHECKOUT__TAX_ID_PARAMETER_IS_MISSING: notice
            CHECKOUT__PRICE_PARAMETER_IS_MISSING: notice
            CHECKOUT__PRICES_PARAMETER_IS_MISSING: notice
            CHECKOUT__CUSTOMER_NOT_FOUND: notice
            CHECKOUT__CUSTOMERS_NOT_FOUND: notice
            CHECKOUT__CUSTOMER_GROUP_REQUEST_NOT_FOUND: notice
            CHECKOUT__CUSTOMER_GROUP_NOT_FOUND: notice
            CHECKOUT__CUSTOMER_NOT_LOGGED_IN: notice
            CHECKOUT__CUSTOMER_ADDRESS_NOT_FOUND: notice
            CHECKOUT__CUSTOMER_AUTH_BAD_CREDENTIALS: notice
            CHECKOUT__CUSTOMER_ADDRESS_IS_ACTIVE: notice
            CHECKOUT__CUSTOMER_ADDRESS_IS_DEFAULT: notice
            CHECKOUT__CUSTOMER_IS_ALREADY_CONFIRMED: notice
            CHECKOUT__CUSTOMER_GROUP_REGISTRATION_NOT_FOUND: notice
            CHECKOUT__CUSTOMER_NOT_FOUND_BY_HASH: notice
            CHECKOUT__CUSTOMER_NOT_FOUND_BY_ID: notice
            CHECKOUT__CUSTOMER_RECOVERY_HASH_EXPIRED: notice
            CHECKOUT__WISHLIST_IS_NOT_ACTIVATED: notice
            CHECKOUT__WISHLIST_NOT_FOUND: notice
            CHECKOUT__DUPLICATE_WISHLIST_PRODUCT: notice
            CHECKOUT__CUSTOMER_IS_INACTIVE: notice
            CHECKOUT__LEGACY_PASSWORD_ENCODER_NOT_FOUND: notice
            CHECKOUT__NO_HASH_PROVIDED: notice
            CHECKOUT__WISHLIST_PRODUCT_NOT_FOUND: notice
            CHECKOUT__CUSTOMER_AUTH_THROTTLED: notice
            CHECKOUT__CUSTOMER_OPTIN_NOT_COMPLETED: notice
            CHECKOUT__LINE_ITEM_DOWNLOAD_FILE_NOT_FOUND: notice
            CHECKOUT__CUSTOMER_IDS_PARAMETER_IS_MISSING: notice
            CHECKOUT__ORDER_CUSTOMER_NOT_LOGGED_IN: notice
            CHECKOUT__PROMOTION__NOT_FOUND: notice
            CHECKOUT__PROMOTION_DISCOUNT_NOT_FOUND: notice
            CHECKOUT__SERVICE_CATEGORY_NOT_FOUND: notice
            CHECKOUT__FOOTER_CATEGORY_NOT_FOUND: notice
            CHECKOUT__DUPLICATE_SHIPPING_METHOD_PRICE: notice
            CHECKOUT__CUSTOMER_COUNTRY_NOT_FOUND: notice
            CHECKOUT__COUNTRY_NOT_FOUND: notice
            CHECKOUT__COUNTRY_STATE_NOT_FOUND: notice
            CHECKOUT__ASYNC_PAYMENT_FINALIZE_INTERRUPTED: notice
            CHECKOUT__ASYNC_PAYMENT_PROCESS_INTERRUPTED: notice
            CHECKOUT__CAPTURE_PREPARED_PAYMENT_ERROR: notice
            CHECKOUT__CUSTOMER_CANCELED_EXTERNAL_PAYMENT: notice
            CHECKOUT__SYNC_PAYMENT_PROCESS_INTERRUPTED: notice
            CHECKOUT__RECURRING_PROCESS_INTERRUPTED: notice
            CHECKOUT__REFUND_PROCESS_INTERRUPTED: notice
            CONTENT__AFTER_CATEGORY_NOT_FOUND: notice
            CHECKOUT__CART_LINE_ITEM_NOT_STACKABLE: notice
            DOCUMENT__INVALID_DOCUMENT_ID: notice
            DOCUMENT__INVALID_GENERATOR_TYPE: notice
            DOCUMENT__ORDER_NOT_FOUND: notice
            CONTENT__MEDIA_INVALID_CONTENT_LENGTH: notice
            CONTENT__MEDIA_INVALID_URL: notice
            CONTENT__MEDIA_ILLEGAL_URL: notice
            CONTENT__MEDIA_DISABLE_URL_UPLOAD_FEATURE: notice
            CONTENT__MEDIA_CANNOT_OPEN_SOURCE_STREAM_TO_READ: notice
            CONTENT__MEDIA_CANNOT_OPEN_SOURCE_STREAM_TO_WRITE: notice
            CONTENT__MEDIA_FILE_SIZE_LIMIT_EXCEEDED: notice
            CONTENT__MEDIA_MISSING_FILE_EXTENSION: notice
            CONTENT__MEDIA_ILLEGAL_FILE_NAME: notice
            CONTENT__MEDIA_EMPTY_FILE: notice
            CONTENT__MEDIA_INVALID_FILE: notice
            CONTENT__MEDIA_EMPTY_FILE_NAME: notice
            CONTENT__MEDIA_FOLDER_NOT_FOUND: notice
            CONTENT__MEDIA_FOLDER_NAME_NOT_FOUND: notice
            CONTENT__MEDIA_FILE_TYPE_NOT_SUPPORTED: notice
            CONTENT__MEDIA_EMPTY_ID: notice
            CONTENT__MEDIA_FILE_NOT_SUPPORTED_FOR_THUMBNAIL: notice
            CONTENT__MEDIA_STRATEGY_NOT_FOUND: notice
            CONTENT__MEDIA_DUPLICATED_FILE_NAME: notice
            CONTENT__MEDIA_NOT_FOUND: notice
            CONTENT__MEDIA_MISSING_FILE: notice
            CONTENT__NEWSLETTER_RECIPIENT_THROTTLED: notice
            CONTENT__NEWSLETTER_RECIPIENT_NOT_FOUND: notice
            CONTENT__MISSING_EMAIL_PARAMETER: notice
            CONTENT__PRODUCT_EXPORT_EMPTY: notice
            FRAMEWORK__RATE_LIMIT_EXCEEDED: notice
            FRAMEWORK__SALES_CHANNEL_ID_PARAMETER_IS_MISSING: notice
            FRAMEWORK__TEMPLATE_PARAMETER_IS_MISSING: notice
            FRAMEWORK__ROUTE_NAME_PARAMETER_IS_MISSING: notice
            FRAMEWORK__ENTITY_NAME_PARAMETER_IS_MISSING: notice
            FRAMEWORK__SALES_CHANNEL_NOT_FOUND: notice
            FRAMEWORK__API_UNSUPPORTED_ASSOCIATION_FIELD_EXCEPTION: notice
            FRAMEWORK__NOT_EXISTING_RELATION_EXCEPTION: notice
            FRAMEWORK__INVALID_VERSION_ID: notice
            FRAMEWORK__API_TYPE_PARAMETER_INVALID: notice
            FRAMEWORK__APP_ID_PARAMETER_IS_MISSING: notice
            FRAMEWORK__APP_NOT_COMPATIBLE: notice
            FRAMEWORK__APP_WEBHOOK_FAILED: notice
            FRAMEWORK__API_SALES_CHANNEL_ID_PARAMETER_IS_MISSING: notice
            FRAMEWORK__API_CUSTOMER_ID_PARAMETER_IS_MISSING: notice
            FRAMEWORK__API_INVALID_ACCESS_KEY: notice
            FRAMEWORK__API_INVALID_ACCESS_KEY_IDENTIFIER: notice
            FRAMEWORK__API_SHIPPING_COSTS_PARAMETER_IS_MISSING: notice
            FRAMEWORK__API_SALES_CHANNEL_MAINTENANCE_MODE: notice
            FRAMEWORK__CANNOT_CREATE_NEW_VERSION: notice
            FRAMEWORK__KEY_PARAMETER_IS_MISSING: notice
            FRAMEWORK__CLUSTER_PARAMETER_IS_MISSING: notice
            FRAMEWORK__INVALID_API_CRITERIA_IDS: notice
            FRAMEWORK__INVALID_CRITERIA_IDS: notice
            FRAMEWORK__DEFINITION_NOT_FOUND: notice
            FRAMEWORK__LANGUAGE_NOT_FOUND: notice
            FRAMEWORK__SYNC_ACTION_PROCESS_INTERRUPTED: notice
            FRAMEWORK__WRITE_TYPE_INTEND_ERROR: notice
            SYSTEM__SALES_CHANNEL_DOES_NOT_EXISTS: notice
            SYSTEM__LANGUAGE_INVALID_EXCEPTION: notice
            SYSTEM__COUNTRY_DOES_NOT_EXISTS_EXCEPTION: notice
            SYSTEM__CURRENCY_DOES_NOT_EXISTS_EXCEPTION: notice
            SYSTEM__COUNTRY_STATE_DOES_NOT_EXISTS_EXCEPTION: notice
            SYSTEM__SALES_CHANNEL_LANGUAGE_NOT_AVAILABLE_EXCEPTION: notice
            SYSTEM__SNIPPET_INVALID_FILTER_NAME: notice
            SYSTEM__SNIPPET_INVALID_LIMIT_QUERY: notice
            SYSTEM__NO_CONTEXT_DATA_EXCEPTION: notice
            PRODUCT_EXPORT__RENDER_FOOTER_EXCEPTION: notice
            PRODUCT_EXPORT__RENDER_HEADER_EXCEPTION: notice
            PRODUCT_EXPORT__RENDER_PRODUCT_EXCEPTION: notice
            SYSTEM__SCOPE_NOT_FOUND: notice
            FRAMEWORK__EXTENSION_THEME_STILL_IN_USE: notice
            PRODUCT_CONFIGURATION_OPTION_EXISTS_ALREADY: notice

    cache:
        redis_prefix: '%env(REDIS_PREFIX)%'
        tagging:
            each_snippet: true
            each_config: true
            each_theme_config: true
        invalidation:
            delay: 0
            delay_options:
                storage: cache
            count: 150
            http_cache: ['logged-in', 'cart-filled']
            product_listing_route: []
            product_detail_route: []
            product_review_route: []
            product_search_route: []
            product_suggest_route: []
            product_cross_selling_route: []
            payment_method_route: []
            shipping_method_route: []
            navigation_route: []
            category_route: []
            landing_page_route: []
            language_route: []
            currency_route: []
            country_route: []
            country_state_route: []
            salutation_route: []
            sitemap_route: []

    twig:
        allowed_php_functions: []

    dompdf:
        options:
            isRemoteEnabled: true

    stock:
        enable_stock_management: true

    usage_data:
        gateway:
            dispatch_enabled: true
            base_uri: 'https://data.shopware.io'
            batch_size: 50
