-
Notifications
You must be signed in to change notification settings - Fork 301
DX-686/missing-envs #1982
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
DX-686/missing-envs #1982
Conversation
There was a problem hiding this 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 | |
Copilot
AI
Oct 24, 2025
There was a problem hiding this comment.
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.
| | `REDIS_URL` | (empty) | Redis connection URL for caching and sessions | | |
| | `REDIS_URL` | (empty) | Redis connection URL for caching and sessions (example: `redis://localhost:6379`) | |
| | `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 | |
Copilot
AI
Oct 24, 2025
There was a problem hiding this comment.
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.
| | `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.** | |
| | `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 | |
Copilot
AI
Oct 24, 2025
There was a problem hiding this comment.
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.
| | `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) | |
| | `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 | |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 ?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 | |
There was a problem hiding this comment.
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 | |
There was a problem hiding this comment.
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 🤔
There was a problem hiding this comment.
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 | |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
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 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deprecated
Everything past COMPOSER_PLUGIN_LOADER was added.