Skip to content

Conversation

@Isengo1989
Copy link
Contributor

Everything past COMPOSER_PLUGIN_LOADER was added.

@Isengo1989 Isengo1989 requested review from Copilot and mitelg October 24, 2025 11:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds missing environment variable documentation to the Shopware configuration guide. The primary purpose is to expand the environment variables reference table with 18 previously undocumented configuration options covering Redis, Elasticsearch/OpenSearch, administration interface, and other system settings.

Key changes:

  • Aligned table column separators for consistent formatting
  • Added 18 new environment variables with descriptions and default values covering Redis, service registry, administration paths, Fastly CDN, Elasticsearch/OpenSearch configuration, and system feature toggles

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

| `MESSENGER_TRANSPORT_LOW_PRIORITY_DSN` | (empty) | DSN for low priority queue (example: `amqp://guest:guest@localhost:5672/%2f/low_prio`) |
| `MESSENGER_TRANSPORT_FAILURE_DSN` | (empty) | DSN for failed messages queue (example: `amqp://guest:guest@localhost:5672/%2f/failure`) |
| `COMPOSER_PLUGIN_LOADER` | (empty) | When set to a non-empty value (e.g., `1` or `true`), enables the Composer plugin loader instead of the database plugin loader. All plugins defined in the root `composer.json` will be automatically active, regardless of database settings. |
| `REDIS_URL` | (empty) | Redis connection URL for caching and sessions |
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The description 'Redis connection URL for caching and sessions' should include an example format (e.g., redis://localhost:6379) to help users understand the expected URL structure.

Suggested change
| `REDIS_URL` | (empty) | Redis connection URL for caching and sessions |
| `REDIS_URL` | (empty) | Redis connection URL for caching and sessions (example: `redis://localhost:6379`) |

Copilot uses AI. Check for mistakes.
| `REDIS_PREFIX` | (empty) | Prefix for Redis keys |
| `SERVICE_REGISTRY_URL` | `https://registry.services.shopware.io` | URL for Shopware Services registry |
| `SHOPWARE_ADMINISTRATION_PATH_NAME` | `admin` | Custom path name for administration interface |
| `FASTLY_API_KEY` | (empty) | API key for Fastly CDN integration |
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Consider adding a note that this API key should be kept secure and not committed to version control, similar to how APP_SECRET is documented.

Suggested change
| `FASTLY_API_KEY` | (empty) | API key for Fastly CDN integration |
| `FASTLY_API_KEY` | (empty) | API key for Fastly CDN integration. **Keep this value secure and do not commit it to version control.** |

Copilot uses AI. Check for mistakes.
| `SERVICE_REGISTRY_URL` | `https://registry.services.shopware.io` | URL for Shopware Services registry |
| `SHOPWARE_ADMINISTRATION_PATH_NAME` | `admin` | Custom path name for administration interface |
| `FASTLY_API_KEY` | (empty) | API key for Fastly CDN integration |
| `SHOPWARE_ES_THROW_EXCEPTION` | `1` | Whether to throw exceptions on Elasticsearch errors |
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The description should clarify the accepted boolean values (e.g., '1' for enabled, '0' for disabled) to match the pattern used for other boolean environment variables in the table.

Suggested change
| `SHOPWARE_ES_THROW_EXCEPTION` | `1` | Whether to throw exceptions on Elasticsearch errors |
| `SHOPWARE_ES_THROW_EXCEPTION` | `1` | Whether to throw exceptions on Elasticsearch errors (`1` to enable, `0` to disable) |

Copilot uses AI. Check for mistakes.
| `COMPOSER_PLUGIN_LOADER` | (empty) | When set to a non-empty value (e.g., `1` or `true`), enables the Composer plugin loader instead of the database plugin loader. All plugins defined in the root `composer.json` will be automatically active, regardless of database settings. |
| `REDIS_URL` | (empty) | Redis connection URL for caching and sessions |
| `REDIS_PREFIX` | (empty) | Prefix for Redis keys |
| `SERVICE_REGISTRY_URL` | `https://registry.services.shopware.io` | URL for Shopware Services registry |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Gaitholabi @AydinHassan is that correct?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah but honestly I'm not sure if we should document this - it's not really something that should be customised and is mostly used for us to switch to the testing registry. wdyt @keulinho ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, this was found in the devenv.nix

env.SERVICE_REGISTRY_URL = lib.mkDefault "https://registry.staging-services.shopware.io";

If there is NO use-case-scenario for customers, we can ignore it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might in the future document how to use it with the testing environment or provide a different customer facing one. But at this point the API is not even public so it would be pretty hard for someone to build a custom implementation and it might cause issues putting a random different url in there.

| `REDIS_URL` | (empty) | Redis connection URL for caching and sessions |
| `REDIS_PREFIX` | (empty) | Prefix for Redis keys |
| `SERVICE_REGISTRY_URL` | `https://registry.services.shopware.io` | URL for Shopware Services registry |
| `SHOPWARE_ADMINISTRATION_PATH_NAME` | `admin` | Custom path name for administration interface |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jleifeld would you mind checking admin related env variables?

| `REDIS_PREFIX` | (empty) | Prefix for Redis keys |
| `SERVICE_REGISTRY_URL` | `https://registry.services.shopware.io` | URL for Shopware Services registry |
| `SHOPWARE_ADMINISTRATION_PATH_NAME` | `admin` | Custom path name for administration interface |
| `FASTLY_API_KEY` | (empty) | API key for Fastly CDN integration |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could not find this one in the code 🤔

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SERVICE_REGISTRY_URL and SHOPWARE_ADMINISTRATION_PATH_NAME are defined directly in the container. The other ones I am also not aware of.

| `ADMIN_OPENSEARCH_URL` | (empty) | OpenSearch URL for administration |
| `SHOPWARE_ADMIN_ES_INDEX_PREFIX` | `sw-admin` | Index prefix for administration Elasticsearch |
| `SHOPWARE_ADMIN_ES_REFRESH_INDICES` | (empty) | Refresh administration indices |
| `SHOPWARE_ES_INDEXING_BATCH_SIZE` | `100` | Batch size for Elasticsearch indexing |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shopware/product-cc-inventory would you mind checking those ES variables?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, only small suggestion is SHOPWARE_ES_ENABLED, SHOPWARE_ES_INDEXING_ENABLED, OPENSEARCH_URL should be re-order with other ES variables below, or we can think of moving it as a separated table (with 13 ES variables that they can ignore or refer to whether they use ES or not)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vienthuong had the same thought - ES is pretty specific/groupable, and most probably are not using it. Will do.

| `SHOPWARE_ES_NGRAM_MAX_GRAM` | `5` | Maximum n-gram size for Elasticsearch |
| `APP_URL_CHECK_DISABLED` | `false` | Disable URL validation checks |
| `SHOPWARE_DBAL_TIMEZONE_SUPPORT_ENABLED` | `0` | Enable timezone support in DBAL |
| `SHOPWARE_DBAL_TOKEN_MINIMUM_LENGTH` | `3` | Minimum token length for DBAL |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deprecated

@Isengo1989 Isengo1989 added the Core @ct-core label Oct 27, 2025
@Isengo1989 Isengo1989 changed the title add/missing-envs DX-686/missing-envs Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Core @ct-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants