imports: - { resource: parameters.yml } - { resource: security.yml } - { resource: services.yml } - { resource: wallabag.yml } parameters: # Allows to use the live reload feature for changes in assets use_webpack_dev_server: false craue_config.cache_adapter.class: Craue\ConfigBundle\CacheAdapter\SymfonyCacheComponentAdapter env(DATABASE_URL): '%database_scheme%://%database_user%:%database_password%@%database_host%:%database_port%/%database_name%?unix_socket=%database_socket%&charset=%database_charset%' framework: #esi: ~ translator: enabled: true fallback: "%locale%" default_path: '%kernel.project_dir%/translations' secret: "%secret%" router: resource: "%kernel.project_dir%/app/config/routing.yml" strict_requirements: ~ form: ~ csrf_protection: ~ validation: enable_annotations: true default_locale: "%locale%" trusted_hosts: ~ session: # handler_id set to null will use default session handler from php.ini handler_id: session.handler.native_file save_path: "%kernel.project_dir%/var/sessions/%kernel.environment%" cookie_secure: auto fragments: ~ http_method_override: true assets: ~ mailer: dsn: "%mailer_dsn%" http_client: scoped_clients: download_images.client: scope: '.*' pocket.client: scope: '.*' headers: Content-Type: 'application/json' X-Accept: 'application/json' # Twig Configuration twig: default_path: '%kernel.project_dir%/templates' debug: "%kernel.debug%" strict_variables: "%kernel.debug%" form_themes: - "@SpiriitFormFilter/Form/form_div_layout.html.twig" globals: registration_enabled: '%fosuser_registration%' # Doctrine Configuration doctrine: dbal: url: '%env(resolve:DATABASE_URL)%' types: json_array: Wallabag\Doctrine\JsonArrayType orm: auto_generate_proxy_classes: "%kernel.debug%" entity_managers: default: auto_mapping: true mappings: Wallabag: type: annotation is_bundle: false dir: '%kernel.project_dir%/src/Entity' prefix: 'Wallabag\Entity' alias: Wallabag stof_doctrine_extensions: default_locale: "%locale%" translation_fallback: true orm: default: tree: true sluggable: true doctrine_migrations: migrations_paths: 'Application\Migrations': "%kernel.project_dir%/app/DoctrineMigrations" storage: table_storage: table_name: 'migration_versions' version_column_name: 'version' version_column_length: 192 executed_at_column_name: 'executed_at' fos_rest: param_fetcher_listener: true body_listener: true view: mime_types: csv: - 'text/csv' - 'text/plain' pdf: - 'application/pdf' epub: - 'application/epub+zip' view_response_listener: 'force' formats: xml: true json: true txt: true csv: true pdf: true epub: true failed_validation: HTTP_BAD_REQUEST routing_loader: false format_listener: enabled: true rules: - { path: "^/api/entries/([0-9]+)/export.(.*)", priorities: ['epub', 'pdf', 'txt', 'csv'], fallback_format: json, prefer_extension: false } - { path: "^/api", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false } - { path: "^/annotations", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false } # for an unknown reason, EACH REQUEST goes to FOS\RestBundle\EventListener\FormatListener # so we need to add custom rule for custom api export but also for all other routes of the application... - { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: false } nelmio_api_doc: areas: default: disable_default_routes: true documentation: info: title: wallabag API documentation description: This is the API documentation of wallabag version: 2.x components: securitySchemes: Bearer: type: apiKey description: 'Value: Bearer {jwt}' name: Authorization in: header security: - Bearer: [] nelmio_cors: defaults: allow_credentials: false allow_origin: [] allow_headers: [] allow_methods: [] expose_headers: [] max_age: 0 hosts: [] #origin_regex: false paths: '^/api/': allow_origin: ['*'] allow_headers: ['Authorization','content-type'] allow_methods: ['POST', 'PUT', 'PATCH','GET', 'DELETE'] max_age: 3600 '^/oauth/': allow_origin: ['*'] allow_headers: ['Authorization','content-type'] allow_methods: ['POST', 'PUT', 'GET', 'DELETE'] max_age: 3600 '^/': #origin_regex: true allow_origin: ['*'] allow_headers: ['Authorization','content-type'] allow_methods: ['POST', 'PUT', 'GET', 'DELETE'] max_age: 3600 hosts: ['^api\.'] fos_user: db_driver: orm firewall_name: secured_area user_class: Wallabag\Entity\User registration: confirmation: enabled: "%fosuser_confirmation%" from_email: address: "%from_email%" sender_name: wallabag service: mailer: Wallabag\Mailer\UserMailer fos_oauth_server: db_driver: orm client_class: Wallabag\Entity\Api\Client access_token_class: Wallabag\Entity\Api\AccessToken refresh_token_class: Wallabag\Entity\Api\RefreshToken auth_code_class: Wallabag\Entity\Api\AuthCode service: user_provider: fos_user.user_provider.username_email options: refresh_token_lifetime: "%fos_oauth_server_refresh_token_lifetime%" access_token_lifetime: "%fos_oauth_server_access_token_lifetime%" scheb_two_factor: trusted_device: enabled: true cookie_name: wllbg_trusted_computer lifetime: 2592000 backup_codes: enabled: true google: enabled: true issuer: "%server_name%" template: "Authentication/form.html.twig" email: enabled: true sender_email: "%twofactor_sender%" digits: 6 template: "Authentication/form.html.twig" mailer: Wallabag\Mailer\AuthCodeMailer rulerz: targets: doctrine: true old_sound_rabbit_mq: connections: default: host: "%rabbitmq_host%" port: "%rabbitmq_port%" user: "%rabbitmq_user%" password: "%rabbitmq_password%" vhost: / lazy: true producers: import_pocket: connection: default exchange_options: name: 'wallabag.import.pocket' type: topic import_readability: connection: default exchange_options: name: 'wallabag.import.readability' type: topic import_pinboard: connection: default exchange_options: name: 'wallabag.import.pinboard' type: topic import_delicious: connection: default exchange_options: name: 'wallabag.import.delicious' type: topic import_instapaper: connection: default exchange_options: name: 'wallabag.import.instapaper' type: topic import_wallabag_v1: connection: default exchange_options: name: 'wallabag.import.wallabag_v1' type: topic import_wallabag_v2: connection: default exchange_options: name: 'wallabag.import.wallabag_v2' type: topic import_elcurator: connection: default exchange_options: name: 'wallabag.import.elcurator' type: topic import_firefox: connection: default exchange_options: name: 'wallabag.import.firefox' type: topic import_chrome: connection: default exchange_options: name: 'wallabag.import.chrome' type: topic import_shaarli: connection: default exchange_options: name: 'wallabag.import.shaarli' type: topic import_pocket_html: connection: default exchange_options: name: 'wallabag.import.pocket_html' type: topic consumers: import_pocket: connection: default exchange_options: name: 'wallabag.import.pocket' type: topic queue_options: name: 'wallabag.import.pocket' callback: wallabag_core.consumer.amqp.pocket qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_readability: connection: default exchange_options: name: 'wallabag.import.readability' type: topic queue_options: name: 'wallabag.import.readability' callback: wallabag_core.consumer.amqp.readability qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_instapaper: connection: default exchange_options: name: 'wallabag.import.instapaper' type: topic queue_options: name: 'wallabag.import.instapaper' callback: wallabag_core.consumer.amqp.instapaper qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_pinboard: connection: default exchange_options: name: 'wallabag.import.pinboard' type: topic queue_options: name: 'wallabag.import.pinboard' callback: wallabag_core.consumer.amqp.pinboard qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_delicious: connection: default exchange_options: name: 'wallabag.import.delicious' type: topic queue_options: name: 'wallabag.import.delicious' callback: wallabag_core.consumer.amqp.delicious qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_wallabag_v1: connection: default exchange_options: name: 'wallabag.import.wallabag_v1' type: topic queue_options: name: 'wallabag.import.wallabag_v1' callback: wallabag_core.consumer.amqp.wallabag_v1 qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_wallabag_v2: connection: default exchange_options: name: 'wallabag.import.wallabag_v2' type: topic queue_options: name: 'wallabag.import.wallabag_v2' callback: wallabag_core.consumer.amqp.wallabag_v2 qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_elcurator: connection: default exchange_options: name: 'wallabag.import.elcurator' type: topic queue_options: name: 'wallabag.import.elcurator' callback: wallabag_core.consumer.amqp.elcurator qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_firefox: connection: default exchange_options: name: 'wallabag.import.firefox' type: topic queue_options: name: 'wallabag.import.firefox' callback: wallabag_core.consumer.amqp.firefox qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_chrome: connection: default exchange_options: name: 'wallabag.import.chrome' type: topic queue_options: name: 'wallabag.import.chrome' callback: wallabag_core.consumer.amqp.chrome qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_shaarli: connection: default exchange_options: name: 'wallabag.import.shaarli' type: topic queue_options: name: 'wallabag.import.shaarli' callback: wallabag_core.consumer.amqp.shaarli qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} import_pocket_html: connection: default exchange_options: name: 'wallabag.import.pocket_html' type: topic queue_options: name: 'wallabag.import.pocket_html' callback: wallabag_core.consumer.amqp.pocket_html qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"} fos_js_routing: routes_to_expose: - homepage - starred - archive - all - tag - config - import - developer - howto - fos_user_security_logout - new jms_serializer: handlers: # to be removed if we switch to (default) ISO8601 datetime instead of ATOM # see: https://github.com/schmittjoh/JMSSerializerBundle/pull/494 datetime: default_format: "Y-m-d\\TH:i:sO" # ATOM # see https://github.com/symfony/symfony-standard/pull/1133 sensio_framework_extra: router: annotations: false httplug: clients: wallabag_core: factory: Wallabag\Helper\HttpClientFactory config: defaults: timeout: 10 plugins: ['httplug.plugin.logger'] discovery: client: false # define custom entity so we can override length attribute to fix utf8mb4 issue craue_config: entity_name: Wallabag\Entity\InternalSetting when@dev: maker: root_namespace: 'Wallabag'