Skip to content
Reference

Service configuration fields

The Services page shows only settings supported for the selected App and service. A field absent from the page isn’t customer-editable. How a saved change reaches the running App is explained in How App configuration is applied.

Each card separates:

  • Editable settings, which create customer-set values.
  • Running configuration, which includes values from all four states below for troubleshooting.
  • Version, when the current platform catalog offers customer selection.

Service badges and the running-configuration file use the same four labels:

LabelMeaning
customer-setYour App has an override for the setting.
sized to plansynsmarts calculates the value from the App’s purchased resources or a service reservation.
platform defaultThe platform baseline applies because the App has no override. Removing an override returns to this value.
lockedThe value protects a platform path, port, recovery behavior, or operational guarantee and isn’t editable.

The catalog is default-open: a writable setting is customer-editable unless changing it would break platform operation or a guarantee. Those exceptions are locked.

Locked settings appear only in Running configuration. They never appear as editable fields.

This card has its own PHP version and extension pickers. The version is stored as a full x.y.z key at services.php_fpm.version; extensions are stored at services.php_fpm.extensions and are checked against that selected version. Your Magento version doesn’t restrict the picker: your own composer.json determines which Magento release is installed, so the PHP line is yours to pick. Check Adobe’s supported matrix before moving to a line your Magento release doesn’t support.

PHP-FPM and PHP-CLI are validated independently and may use different versions and extension lists.

SettingType and rangeDefaultMeaning
memory_limitMiB, 64-8192sized to planMaximum memory for one web request. The sized value is the default, not a cap.
max_execution_timeInteger seconds, 1-300300Maximum wall-clock request time. Through Cloudflare’s proxy a request ends at 100 s; see Request time.
max_input_timeInteger seconds, -1 to 600WordPress 300; Magento -1Time allowed to read request input. -1 uses the execution-time limit.
max_input_varsInteger, 100-100000WordPress 1000; Magento 10000Maximum accepted request input variables.
post_max_sizeMiB, 1-51264Maximum POST body size.
upload_max_filesizeMiB, 1-51264Maximum size of one uploaded file.
max_file_uploadsInteger, 1-100020Maximum files in one request.
default_socket_timeoutInteger seconds, 1-60060Default timeout for socket-based streams.
disable_functionsString, maximum 4096 charactersexec,passthru,shell_exec,system,proc_terminate,proc_nice,putenvPHP functions disabled for web requests. An empty value enables them inside the App’s container.
allow_url_includeBooleanOffAllows URL-aware wrappers to load PHP code.
log_errorsString, maximum 8 charactersOnControls whether PHP writes errors to the managed error log.

post_max_size should be at least as large as upload_max_filesize for uploads to succeed.

For web requests, memory_limit, disable_functions, allow_url_include, and log_errors — and the platform’s locked values — are applied in the FPM pool as php_admin_value or php_admin_flag entries: your overrides render as php_admin_value[memory_limit], php_admin_value[disable_functions], and so on. Application code, .user.ini, and ini_set() can’t raise or override them. Other settings, and all scheduled-command settings, load as ordinary startup php.ini values.

These rows use the four labels in the running file. Values marked platform default can be overridden by an editable setting.

SettingStateEffective behavior
error_reportingplatform defaultE_ALL & ~E_DEPRECATED & ~E_STRICT
display_errorsplatform defaultOff; errors don’t render in customer responses.
log_errorsplatform defaultOn
opcache.enableplatform default1
opcache.max_accelerated_filesplatform defaultWordPress 10000; Magento 130000
opcache.validate_timestampsplatform defaultMagento 0; WordPress code changes are detected according to the managed runtime policy.
opcache.revalidate_freqplatform defaultWordPress 0; not used for Magento’s immutable code image.
realpath_cache_sizeplatform defaultMagento 10 MiB
realpath_cache_ttlplatform defaultMagento 7200 seconds
opcache.memory_consumptionsized to planDerived from the purchased shape.

The process-manager settings are editable. Each one’s default is derived from PHP-FPM’s modeled share of unallocated App headroom after service reservations, platform costs, and workload floors. Leave a setting unset and it tracks that derivation as the shape or a service reservation changes; set it and your value is used exactly as written. PHP-FPM has no customer memory reservation or fixed memory limit.

Raising the worker count above what the shape’s memory supports is allowed and isn’t capped. Workers that exceed the available memory are stopped by the platform under pressure. Size increases against measurements from your own load testing rather than as a precaution. memory_limit behaves the same way: its sized to plan value is the default, not a ceiling, and a higher value is accepted up to the field’s stated maximum.

SettingEffective behavior
pmEditable. Process-manager mode; its sized to plan default is static.
pm.max_childrenEditable. Worker limit; default derived after runtime and extension reservations.
pm.start_serversEditable. Workers started in dynamic mode; default scales with the worker limit.
pm.min_spare_serversEditable. Minimum idle workers in dynamic mode; default scales likewise.
pm.max_spare_serversEditable. Maximum idle workers in dynamic mode; default scales likewise.
pm.max_requestsEditable. Requests a worker serves before respawning; 0 disables respawn.
pm.status_pathEditable. Default /status; the platform’s FPM metrics scrape follows your value.

These settings protect the FPM listener, tracing and logging paths, filesystem boundary, session path, and clock. They appear in the running file with the locked label and aren’t editable.

SettingAppEffective behavior
listenAll0.0.0.0:9000 inside the App network.
catch_workers_outputAllyes; worker output reaches managed logs.
error_logAll/dev/stderr, collected by the managed logging pipeline.
php_admin_value[auto_prepend_file]Magento/usr/local/share/synsmarts/otel/platform-prepend.php, which loads the Composer environment guard before the managed tracing gate.
php_admin_value[auto_prepend_file]WordPress and Shopware/usr/local/share/synsmarts/otel/trace-gate.php, which loads the managed tracing gate.
php_admin_value[open_basedir]WordPress/var/www/html:/tmp:/etc/ssl/certs:/usr/local/share/synsmarts/otel:/usr/local/share/synsmarts/wordpress-plugins
php_admin_value[open_basedir]Magento and Shopware/var/www/html:/tmp:/etc/ssl/certs:/var/run/secrets/eks.amazonaws.com/serviceaccount/:/usr/local/share/synsmarts/otel
php_admin_value[session.save_path]All/tmp
php_admin_value[date.timezone]AllUTC; not customer-configurable. Application code may still set a per-request timezone at runtime.

This card controls the PHP processes used by Scheduled Jobs and the managed shell. It has its own version picker and extension picker, stored at services.php_cli.version and services.php_cli.extensions. Both are validated against the PHP-CLI selection, independently of PHP-FPM.

SettingType and rangeDefaultMeaning
memory_limitMiB, 128-8192Magento 4096; Shopware 2048; WordPress 512Maximum memory for each scheduled or shell PHP command.
default_socket_timeoutInteger seconds, 1-60060Default timeout for CLI socket streams.

The running file uses the four labels. error_log and date.timezone are locked; the other rows below are platform defaults with customer-editable registry entries.

SettingStateEffective behavior
max_execution_timeplatform default0; the scheduler enforces the job timeout instead.
error_reportingplatform defaultE_ALL & ~E_DEPRECATED & ~E_STRICT
display_errorsplatform defaultOff
log_errorsplatform defaultOn
error_loglocked/dev/stderr
date.timezonelockedUTC; not customer-configurable. Scheduled code may still set its own timezone at runtime, and schedules can run in another zone (Choose a time zone for schedules).

Applying a PHP-CLI change restarts scheduled-job execution while the web App remains online.

The default reflects the App’s cron job memory budget. It doesn’t reserve that much memory; concurrent commands share available node capacity. A PHP memory-exhaustion fatal is written to stderr when log_errors is enabled, which it is by default.

Nginx version and platform security configuration are managed by synsmarts.

SettingType and limitMeaning
serverValidated Nginx snippet, maximum 8000 charactersAdditional directives in the managed server block.
locationValidated Nginx snippet, maximum 8000 charactersAdditional directives in the managed location block.

Both slots use a safety allowlist. Unsafe, unsupported, or locked directives are rejected when saved. A valid Nginx parse is necessary but not sufficient; directives that would bypass routing, isolation, security, or resource controls remain unavailable.

The panel also offers an Add setting picker over the Nginx 1.31 directive catalog. Each added directive renders into the block Nginx defines for it: http-only directives such as limit_req_zone, log_format, and map go into the http block, and tuning directives that Nginx accepts in a server block go into the managed server block ahead of the server snippet. Directives that Nginx accepts more than once per block take one value per line, and each line becomes its own directive in the order you enter it; different directives keep the panel’s alphabetical order. The repeatable directives are set_real_ip_from, allow, deny, error_page, limit_req_zone, limit_conn_zone, limit_req, limit_conn, proxy_set_header, proxy_hide_header, proxy_pass_header, proxy_cache_valid, fastcgi_param, fastcgi_hide_header, fastcgi_pass_header, fastcgi_cache_valid, uwsgi_param, scgi_param, grpc_set_header, add_trailer, sub_filter, set, rewrite, auth_request_set, and log_format. Every other directive, including the block-valued map, geo, and split_clients, takes one value; a second value is rejected when saved. A directive can carry at most 64 values, and its values together are limited to 8192 characters. Each value must form one complete directive, so quote an argument that contains # or spaces.

Nginx inherits fastcgi_param, proxy_set_header, and the *_hide_header and *_pass_header families as a set: a location that declares any of its own replaces the inherited ones. The platform’s PHP locations declare their own fastcgi_param entries, so a server-level fastcgi_param doesn’t reach PHP.

Requests reach Nginx through the platform’s ingress and the synsmarts WAF, so $remote_addr is the WAF’s in-cluster address and the visitor’s address arrives in X-Forwarded-For. To make $remote_addr (and PHP’s REMOTE_ADDR) the visitor’s address, add real_ip_header set to X-Forwarded-For, real_ip_recursive set to on, and one set_real_ip_from line per trusted network: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 cover the platform hops. When every domain on the App is Cloudflare-fronted, add Cloudflare’s published IP ranges as further set_real_ip_from lines so the walk continues past the Cloudflare edge to the visitor.

The running file marks these routing and security controls as locked.

Setting or blockEffective behavior
root/var/www/html for WordPress and /var/www/html/pub for Magento.
indexFramework-appropriate PHP and HTML index files.
fastcgi_passRoutes PHP requests to the active managed PHP-FPM slot.
fastcgi_read_timeoutMatches the maximum customer-selectable PHP execution-time ceiling.
try_filesFramework-specific front-controller routing.
Static asset cachingWordPress assets use a 30-day cache; Magento static and media paths use long-lived versioned cache.
Sensitive-file denialsBlocks dotfiles, logs, WordPress configuration, and PHP execution from upload paths as applicable.
Health endpointWordPress exposes the platform-managed /healthz route.
disable_symlinkson for WordPress.

The version picker shows only database versions offered for the App. The current catalog can offer Percona Server and MariaDB lines; a fresh Magento App defaults to MariaDB 11.4.

You can move to a newer database release in place. Moving backward isn’t offered because the database reuses its live data volume.

SettingType and rangeDefaultMeaning
sql_modestrict, traditional, ansi, or minimalstrictSupported SQL-mode preset. Custom SQL-mode strings aren’t accepted.
max_allowed_packetMiB, 1-102464Largest query or result packet accepted by MySQL.
wait_timeoutInteger seconds, 60-8640028800Idle non-interactive connection lifetime.
long_query_timeNumber of seconds, 0.1-6010Threshold for the slow-query log.
innodb_buffer_pool_sizeMiB, 128 to a memory-safe ceilingsized to planInnoDB buffer-pool size. The plan-sized value is the default; a larger value is accepted up to a ceiling that keeps the database inside its memory limit. Raising the database’s memory raises the ceiling.

On MariaDB 11.4 and Percona Server 8.4, the panel also offers an Add setting picker over the engine’s vetted parameter catalog. Search or filter by category (InnoDB, optimizer, logging, and so on), add a setting, and it appears below the table above as a typed control with the engine’s version-specific range and default. Removing an added setting restores the platform default. Settings that name a filesystem path or port, security-sensitive server controls such as local_infile, init_file, plugin_dir, and secure_file_priv, and settings for features the platform doesn’t run for your App aren’t offered. Clustering and replication-topology settings are examples of the last group.

Every effective MySQL parameter change currently rolls the single stateful service. synsmarts serves a temporary maintenance page, suspends scheduled jobs, waits for the new database generation and health check, then reads each requested value back from the running database. A value that doesn’t read back restores the previous settings, and the change reports failed. In both cases traffic and deferred jobs return once database health is confirmed; if it can’t be confirmed, maintenance stays on and our team is alerted.

The running file labels each row with the applicable state.

SettingEffective behavior
innodb_buffer_pool_chunk_sizeDerived with the buffer-pool layout.
max_connectionsDerived from the memory the buffer pool leaves; a larger innodb_buffer_pool_size leaves fewer.
log_binbinlog
binlog_formatROW
binlog_row_imageFULL
sync_binlog1
binlog_expire_logs_secondsDerived from the managed point-in-time recovery retention.
slow_query_logON
slow_query_log_file/var/lib/mysql/slow.log
log_slow_extraON
default_time_zone+00:00; not customer-configurable. A client may still set its own session timezone at runtime.

The version picker shows the compatible cache lines offered for the App. Selecting a version also selects its matching implementation. Fresh Apps default to Valkey 9.1; Valkey 8.1 and Redis remain available for compatibility.

You can move to a newer cache release in place. Moving backward isn’t offered because the persistent cache format is forward-only.

Persistence and network binding are locked. Other tuning values use platform defaults and can be overridden when Add setting offers them.

SettingAllowed valuesDefaultMeaning
maxmemory-policyallkeys-lru, allkeys-lfuallkeys-lruCache-key eviction policy when the cache is full.

This setting applies to the cache role. Session storage uses the locked noeviction policy. Every effective cache change currently rolls the stateful service behind the same temporary maintenance and scheduled-job suspension used for MySQL.

The running view separates cache and session roles when both are present.

SettingStateEffective behavior
maxmemorysized to planDerived from that Valkey or Redis role’s customer memory reservation.
active-defrag-ignore-bytessized to planDerived from the role reservation (active-defrag trigger floor).
activedefragplatform default or customer-setCache roles default to yes; overridable through Add setting. Session and queue-lock roles retain the upstream default.
maxmemory-policyCache: platform default or customer-set; session: lockedCache defaults to allkeys-lru; session storage uses noeviction.
appendonlylockedPlatform-selected by role.
maxmemory-samplesplatform default10; overridable through Add setting.
savelocked""; snapshot persistence is disabled.
tcp-keepaliveplatform default300 seconds; overridable through Add setting.
timeoutplatform default300 seconds; overridable through Add setting.
lazyfree-lazy-evictionplatform defaultyes; overridable through Add setting.
lazyfree-lazy-expireplatform defaultyes; overridable through Add setting.
lazyfree-lazy-server-delplatform defaultyes; overridable through Add setting.
loglevelplatform defaultnotice; overridable through Add setting.

Magento Apps store shopper sessions in the session role with session locking off and a 5-second connection timeout, the values Adobe recommends for Redis and Valkey session storage. With locking off, a shopper’s parallel requests (cart, customer data, checkout steps) run side by side instead of waiting in line for one another.

Turn locking back on when two requests from the same shopper overwrite each other’s session changes, for example a lost cart message or checkout step. Set it in the App’s configuration file:

services:
redis:
session_locking: true
FieldAllowed valuesDefaultApplies to
services.redis.session_lockingtrue, falsefalseMagento only

Saving the change replaces the store’s PHP-FPM pods through the usual blue/green rollout; the session role itself doesn’t restart, so shoppers stay signed in. The platform sets these values outside app/etc/env.php, so the session block in that file no longer controls locking or the connection timeout. Other app types reject the field.

OpenSearch is required for Magento and Shopware when the App is created and isn’t provisioned for WordPress. Fresh Magento and Shopware Apps currently default to OpenSearch 3.7.

Every offered OpenSearch version runs the OpenSearch minimal distribution with three plugins. analysis-phonetic and analysis-icu accept indexes that declare phonetic token filters or ICU analysis, such as those Smile ElasticSuite creates. The security plugin enforces the App’s search credential. Other plugins from the full upstream OpenSearch bundle aren’t installed. An App created before this image shipped gets it when its OpenSearch service is next updated, such as by a memory or version change. Before replacing the node, synsmarts checks the search node’s stored settings, mappings, pipelines, and plugin data for a plugin the minimal image doesn’t include. If it finds one, the change fails with the reason OpenSearch change refused before the search node was replaced, and the existing node keeps running unchanged. While the App is suspended, a change to an offered version fails with the reason OpenSearch change refused: the search node is suspended; repeat it after the App resumes.

The customer control is the offered Version picker. Cluster, network, and security controls are locked; heap sizing and node.processors are sized to plan.

The running file marks the single-node, replica, network, and security controls as locked. Heap, container memory, and node.processors are sized to plan.

SettingEffective behavior
discovery.typesingle-node
cluster.default_number_of_replicas0. Indexes carry no replica copies, so every index is green on the single node. Existing indexes are set to 0 replicas when the node becomes ready.
node.processorsDerived from the App’s CPU: the CPU limit when one is set, otherwise the purchased core count. Search thread pools size from this value instead of the host’s cores.
AuthenticationThe security plugin is on. The App connects as the user app with a password generated for the App; the running view redacts it. The user can create, read, write, and manage indexes and read cluster health and state. It can’t change cluster or security settings.
Transport encryptionPort 9200 and node transport accept TLS only. Each App’s node has its own certificate from the platform’s private certificate authority, which the App’s pods trust.
Network accessPort 9200 accepts connections from the App’s own pods and the platform’s provisioning workers only. The node transport port isn’t reachable.
OPENSEARCH_JAVA_OPTSReservation-derived equal initial and maximum JVM heap, sized at 50% of container memory.
Container memoryCustomer-set reservation rendered request==limit; memory outside the heap supports file cache.

Review Magento and extension compatibility before changing the version. The confirmation dialog is the authority for the apply impact of the selected change.

OpenSearch keeps its index on the node’s temporary storage; the database is the source of truth for catalog data. A memory or version change replaces the node, which deletes the catalog index, and synsmarts then rebuilds it from the database. A rebuild usually takes minutes, and a catalog of several hundred thousand products can take up to about an hour. Enabling OpenSearch after it was disabled rebuilds the index the same way. On Magento 2.4.7 or later using Magento’s built-in OpenSearch search, category and search pages start empty and fill as the rebuild progresses. Other Magento setups, such as ElasticSuite or Magento older than 2.4.7, run a full rebuild, and their category and search pages return when it finishes. Shopware keeps serving from the database until the rebuild finishes. For a memory change, the Shape dialog on the Resources page states the deletion and rebuild before you apply.

The change completes only when the rebuild does. If the rebuild fails, the change reports failed, and the new memory size or version stays applied. On Magento 2.4.7 or later using Magento’s built-in OpenSearch search, a failed rebuild also pauses the catalog search indexer, so Magento’s cron doesn’t restart a rebuild that keeps failing; a successful rebuild resumes it. Other Magento setups don’t pause the indexer. Select Rebuild search index on the Search service page to run it again.

A search node that restarts outside a change, such as during node maintenance or when the index outgrows its storage, loses its index the same way. If search results or Magento category pages are empty afterward, select Rebuild search index.

The JVM heap is 50% of the memory reservation; the rest is file cache for the index. A full rebuild is the node’s heaviest workload, and a rebuild that runs out of heap fails. Size the reservation from the catalog’s size rather than from everyday search traffic. On a large catalog, expect rebuilds beyond memory and version changes: Magento rebuilds the catalog search index whenever that index is invalidated, such as when a store view is added or removed, and some deploy migrations invalidate it.

Index storage follows the reservation too. It’s four times the memory reservation, with an 8 GiB minimum, which holds the live index and the replacement copy a full rebuild writes. An index that outgrows it restarts the node, which loses the index.

If a rebuild fails on a large catalog, raise the reservation on the Resources page; that change raises the heap and index storage and starts a new rebuild on its own.

RabbitMQ is an optional Magento message broker and is disabled by default. When enabled, its Version picker shows the compatible releases offered by the current platform catalog.

You can move to a newer RabbitMQ release in place. Moving backward isn’t offered because the broker reuses its durable queue volume.

Varnish is available for Magento and Shopware. New Shopware Apps enable it by default; Magento Apps can enable it as an optional full-page cache. Its base VCL, storage, listeners, and image version remain locked. The Varnish 7.7 catalog exposes 40 bounded runtime parameters through Add setting; unsafe compiler, filesystem, debug, pool-internal, and telemetry controls remain suppressed.

The App sends cache invalidation to this namespace-local Service endpoint:

tn<first-eight-characters-of-App-ID>-varnish:6081

For example, App ID 12345678-90ab-cdef-1234-567890abcdef uses tn12345678-varnish:6081. Magento stores that host-and-port form. Shopware uses the URL http://tn12345678-varnish:6081.

Invalidation uses the platform’s dedicated purge listener on port 6081. Serving traffic stays on port 80.

The short Service name resolves because the App and Varnish run in the same namespace. The endpoint is platform-owned and isn’t a field in the authoritative App YAML.

When Varnish is enabled during provision, synsmarts writes the framework configuration below. Enabling Varnish later creates the reverse-proxy service but doesn’t rewrite framework configuration. Complete the matching App setup before relying on Varnish caching or invalidation.

Run these commands from the App root in the managed SSH shell, replacing the example host with the host derived from your App ID:

Terminal window
bin/magento setup:config:set --http-cache-hosts=tn12345678-varnish:6081
bin/magento config:set --scope=default --scope-code=0 system/full_page_cache/caching_application 2

The first command writes http_cache_hosts to the existing app/etc/env.php. The second stores 2, Magento’s Varnish cache mode, in the database. Keep app/etc/env.php out of Git and deploy source; synsmarts created that runtime file during provision, and the managed shell updates it in place.

Verify both values without printing the rest of env.php:

Terminal window
php -r '$c = include "app/etc/env.php"; var_export($c["http_cache_hosts"] ?? null); echo PHP_EOL;'
bin/magento config:show system/full_page_cache/caching_application

The first command should show tn12345678-varnish:6081; the second should show 2.

Add SHOPWARE_HTTP_CACHE_ENABLED=1 under Vars and secrets and apply the change. Then add this file to the Shopware project used for deploys:

config/packages/zzz-reverse-proxy.yaml
shopware:
http_cache:
reverse_proxy:
enabled: true
use_varnish_xkey: true
hosts: ["http://tn12345678-varnish:6081"]
max_parallel_invalidations: 3
stale_while_revalidate: 300
stale_if_error: 3600

Commit the file to the connected Git repository. For a Workspace deploy, add the same path to the Workspace source before deploying it. The framework file belongs to the Shopware project; don’t put the shopware.http_cache block in .synsmarts/<app-id>.yaml.

On Shopware 6.7, stale_while_revalidate and stale_if_error stay directly under shopware.http_cache, including when CACHE_REWORK is active. CACHE_REWORK doesn’t move them into http_cache.policies; that tree controls route policies. Verify the merged shape on your installed version:

Terminal window
bin/console debug:config shopware http_cache

Run the command against a warmed development-mode console. In production mode, Shopware’s compiled container can reject debug:config because it uses a frozen ParameterBag. Confirm that reverse_proxy.enabled is true, use_varnish_xkey is true, the host matches your App’s Varnish Service, and the two stale-response policies remain under http_cache.

Shopware 6.8 deprecates reverse_proxy.use_varnish_xkey, ban_method, ban_headers, and purge_all; xkey invalidation becomes the default. Keep use_varnish_xkey: true only while your App remains on the 6.7 configuration contract shown above.

SettingType and limitMeaning
recvValidated VCL snippet, maximum 8000 charactersAdditional VCL run in vcl_recv, after the platform cache-key and cookie logic.
backend_responseValidated VCL snippet, maximum 8000 charactersAdditional VCL run in vcl_backend_response, after platform tag registration.

Both slots use a safety allowlist and must compile with varnishd -C before a save is accepted. You can set your own custom response headers (X-*) and add conditional logic; the platform owns everything that decides caching. Statements that set cache lifetime (beresp.ttl, beresp.grace), repoint the backend, redefine subroutines, alter the cache key or cookies, trigger invalidation, or read sensitive request data (cookies, Authorization, client IP) are rejected when saved. To make a request bypass the cache, use a conditional return (pass) in the recv slot. Your VCL runs after the platform’s cache-key, cookie, and purge logic and can’t override them.

The current Magento entry shape supports Varnish. Shopware includes Varnish in its default provisioned shape. Optional envelope consumers such as ChunkHound can require a larger shape.

Saving a runtime parameter or a VCL slot renders the change and replaces the cache pod without the maintenance page. The old pod serves until the new one is ready, and the new pod starts with an empty cache. A parameter save also verifies every requested value with varnishadm param.show before completing; a value that doesn’t read back restores the previous settings, and the change reports failed. Turning Varnish on or off runs behind the temporary maintenance page until the cache is ready or removed. Purge cache remains a separate runtime action that doesn’t change saved configuration. Every Magento deploy also purges Varnish after promotion; the deploy reports Complete without waiting for the purge.

Each editable field is either platform default or customer-set. Removing a customer-set value adopts the current platform default; it doesn’t freeze the previous default.

Values labeled sized to plan can change when purchased resources change. The portal’s displayed default for the current App is authoritative.

The running view is read-only and redacts sensitive values. During an active apply, desired settings can be newer than every running service. Use operation status to determine when rollout has completed.

synsmarts validates type, range, enum membership, cross-field rules, purchased-shape caps, Nginx and Varnish VCL safety grammars, and service native configuration before committing a change.

  • PHP-FPM and Nginx changes use a health-checked replacement.
  • Database and cache changes restart the service behind a temporary maintenance response and suspend scheduled jobs until health is confirmed. This also holds when the change fails.
  • PHP-CLI changes restart scheduled-job execution without moving web traffic.
  • OpenSearch memory and version changes replace the search node and rebuild the catalog index from the database; the change completes when the rebuild does. See Index rebuilds.
  • Varnish purge is a runtime action, not a configuration apply.
  • A no-change save doesn’t restart a service.

See Configure services for the operational procedure.