Docs

Running a store

DocsRunning a store

Settings

5 sections25 min readdocs/settings.md

On this page5 sections
  1. 1How a path is built
  2. 2Scope, and how a value resolves
  3. 3Types
  4. 4Public settings
  5. 5Reference

Every configurable knob in the store: where it lives, what scope it can be set at, and what happens when it isn’t set.

Settings are edited on the Settings page in the admin. They are also the mechanism behind a lot of things that don’t look like settings - search tuning, checkout behaviour, retention windows, feature switches - so this page doubles as a map of what is tunable without a deploy.

How a path is built

Every setting has a three-part path:

section / group / field
     │       │       └── the input itself
     │       └────────── the fieldset it renders in
     └────────────────── the tab in the left nav

So outreach/forms/enabled is the Enabled field, in the Signup Forms group, on the Outreach tab. The path is the identity of the setting - it is what appears in the reference below, what the API takes, and what stays stable if a label is reworded.

Scope, and how a value resolves

A setting resolves over three levels, most specific winning:

default  (no channel, no locale)   ← the base value
  └─ channel                       ← overrides the base for one channel
       └─ channel + locale         ← overrides it for one language on that channel

Nothing set at a level means it falls through to the level above, and past the base level it falls back to the default shipped in code - which is the Default column in the reference.

Not every setting is overridable. The Scope column says which:

  • global - settable only at the base level. Things that must be true install-wide. If the admin won’t let you change a setting while a channel is selected, this is why: switch the header to Global scope, and understand you are changing it everywhere.
  • channel - overridable per channel, and per locale within a channel.

A setting that doesn’t declare its own scoping inherits from its group, then its section, then defaults to global. The reference resolves that inheritance for you, so the column is the effective answer rather than the raw declaration.

Locale is not a scope of its own. There are only two scope kinds, default and channel, and a locale is an optional refinement inside channel scope. A value at the base level may not carry one at all - that’s rejected, not ignored - so a global setting can never vary by language. And there is no way to say “this value, in German, everywhere”: you set it per channel, on each channel that serves German.

Worth pinning down because permissions use the word differently - there, locale really is an independent axis, and a grant of (any channel, de) is valid and means German content on every channel. Same vocabulary, different shape.

For how channel scope works more broadly, see channels.

Types

Most types are self-explanatory (string, int, bool, select). Four are worth knowing:

  • secret - encrypted at rest and masked by the admin API, so the form shows an empty field even when a value is set and saving it empty leaves the stored one alone rather than clearing it. Gateway keys and the like. Defaults show as - here because printing one would publish a credential. Encryption needs a configured key; without one (dev) the value is stored as plaintext, which is why production boot refuses to start without it.
  • json - any structured value, stored canonicalised, so what you read back is whitespace-normalised rather than byte-identical to what you typed.
  • image - either a plain URL or a reference into the media library; opaque to the backend.
  • multiselect and select - options can come from a static list or be generated at read time from the database (customer groups, for instance), so the choices you see depend on your data.

Public settings

Settings marked Public in the reference are served by an unauthenticated query, because the storefront needs them before anyone signs in - branding, currency display, which features are switched on. That is a meaningful slice of the registry, so treat the Public column as the list of values visible to the entire internet.

Never put a credential in one. secret and public are independent flags, and the public query filters on public alone - it does not exclude secret-typed settings, and the masking that hides them happens in the admin layer rather than underneath. A setting marked both would therefore serve its decrypted value to anonymous callers.

That combination is now rejected at startup: the registry check refuses to validate a definition that is both, so the server fails to boot with the offending path named rather than quietly exposing it.

Reference

Generated from the code-defined registry by skelet gen, so it lists what the running server actually honours. Within a group, the order matches the admin’s rendering order.

What it does is the setting’s registry description, which is also rendered as help text under the field in the admin. Descriptions are being backfilled, so where none is written yet the column falls back to the label - useful for finding the knob, less so for understanding it. If a row reads like a restatement of its own path, that’s a description waiting to be written rather than a setting with nothing to say.

164 settings in 14 sections.

General

Store Information

PathWhat it doesTypeScopePublicDefault
general/store_information/support_phoneServed to storefronts over publicConfig; the bundled one doesn’t show it.phonechannelyes-
general/store_information/descriptionA short line about the store. Served to storefronts over publicConfig; the bundled one doesn’t show it.textareachannelyes-
general/store_information/phone_mobileA second number, for stores that publish one. Served to storefronts; the bundled one doesn’t show it.phonechannelyes-
general/store_information/currency_listThe currency every stored exchange rate is quoted against, refreshed twice daily from ECB. Storefront prices come from each channel’s own currency, not from here.selectglobalyesUSD
general/store_information/working_hoursPer-day opening times. Served to storefronts over publicConfig; the bundled one doesn’t show them.working_hourschannelyes{}
general/store_information/timezoneSets the clock shown in the admin sidebar, and the day checkout counts delivery estimates from - an order placed late on Friday here counts from Friday. Report boundaries, scheduled jobs and stored timestamps are unaffected - those are UTC, or carry their own timezone.selectchannelUTC

Security

PathWhat it doesTypeScopePublicDefault
general/security/admin_single_sessionSigning in revokes every other admin session for that account. Stops a shared login being used from two places, at the cost of forcing a re-login when someone moves between machines.boolglobalfalse
general/security/catalog_query_throttleSoft per-IP budget for storefront catalog queries. Past the budget requests are slowed rather than refused; past three times it they are refused outright. 0 disables both.intchannel0
general/security/require_email_verificationRequire verified email to sign inboolchannelfalse

URLs & Redirects

PathWhat it doesTypeScopePublicDefault
general/urls/auto_redirect_on_changeKeeps old links working after a slug edit. Off means the previous URL 404s.boolglobaltrue
general/urls/redirect_typeAutomatic redirect typeselectglobal301
general/urls/url_template_fallbackOff means the save is rejected instead, which catches a broken template rather than papering over it.boolglobaltrue
general/urls/redirect_retention_daysOnly auto-created redirects are pruned - ones you added by hand are kept.intglobal365
general/urls/variant_own_urlEach variant becomes its own indexable page. More pages to crawl, but a shopper landing from search arrives on the exact one.boolchannelyestrue

Country Options

PathWhat it doesTypeScopePublicDefault
general/country/allowedAllowed countriesmultiselectchannelyes-
general/country/defaultDefault countryselectchannelyes-
general/country/required_regionCountries requiring a region/statemultiselectchannelyes-
general/country/allow_optional_stateShow optional state fieldboolchannelyesfalse
general/country/top_destinationsTop destinationsmultiselectchannelyes-
general/country/eu_countriesEU countries (VAT grouping)multiselectchannelyes-
general/country/phone_countriesAny country takes every valid number, typed with + and its country code. Allowed countries only takes numbers from the countries above - every active country when none are picked - and a store with one country takes only that country’s numbers.selectchannelyesany

Branding

PathWhat it doesTypeScopePublicDefault
general/branding/store_nameThe name transactional emails sign off with. Empty falls back to the channel’s own name, which is the operator-facing label. Also served to storefronts, though the bundled one shows the channel name.stringchannelyes-
general/branding/logo_urlShown at the top of every outbound email, and used in place of the store name wherever a storefront has a brand slot.imagechannelyes-
general/branding/favicon_urlThe tab icon. A square PNG or ICO of at least 32x32; storefronts fall back to their own bundled icon when unset.imagechannelyes-
general/branding/primary_colorThe dominant brand color - storefronts use it for buttons and other solid fills. Empty keeps their own palette.colorchannelyes-
general/branding/secondary_colorThe accent beside it, for highlights and small emphasis rather than large areas.colorchannelyes-

Contact

PathWhat it doesTypeScopePublicDefault
general/contact/support_emailThe address to show customers when they need help - not the one mail is sent from. Served to storefronts; the bundled one doesn’t show it.stringchannelyes-
general/contact/email_from_addressThe From address on every email the store sends. It has to be one your mail provider will accept, or delivery fails.stringchannel-
general/contact/email_from_nameThe From display name shown beside the address.stringchannel-

Legal

PathWhat it doesTypeScopePublicDefault
general/legal/terms_urlServed to storefronts to link from checkout and the footer; the bundled one doesn’t.stringchannelyes-
general/legal/privacy_urlAs above - served, not linked by the bundled storefront.stringchannelyes-

Sales

Checkout

PathWhat it doesTypeScopePublicDefault
sales/checkout/allow_guestWhether someone can complete checkout without an account. Off forces registration or sign-in before the order can be placed.boolchannelyestrue
sales/checkout/min_orderOrders below this merchandise total are refused at checkout. In minor units, so 2500 is $25.00. 0 disables the floor.intchannelyes0
sales/checkout/phone_fieldWhether the details step asks for a phone number the carrier or store can reach the shopper on. Required refuses the order without one.selectchannelyesoptional
sales/checkout/business_purchaseAdds a Personal / Business switch to the details step. Business asks for the company name, and the tax ID and PO number below when they are on.boolchannelyesfalse
sales/checkout/tax_id_fieldThe one tax ID a business purchase asks for when the company’s country defines no company ID fields of its own. Set a country’s own (Serbia’s PIB and Matični broj, a VAT number) on the country’s page.selectchannelyesoptional
sales/checkout/po_number_fieldAn optional purchase-order reference on business purchases, stored on the order for invoicing. The Purchase Order payment method is offered only on a business purchase while this is on, since it bills against that reference.boolchannelyesfalse
sales/checkout/pickup_by_someone_elseAdds “Someone else will collect it” to pickup orders, with the collector’s name. The payer’s billing address is then required so the order still names who paid.boolchannelyestrue
sales/checkout/pickup_requires_billing_addressOff, a pickup order needs only a name, email and the store. On, the shopper also enters a billing address - some markets need one on every invoice.boolchannelyesfalse
sales/checkout/threshold_progressShows how much more unlocks the minimum order or free shipping, with a link back to the cart, instead of only refusing the order.boolchannelyestrue
sales/checkout/terms_consentCheckbox makes the shopper tick that they accept the terms before paying, which many EU markets need, and placement refuses an order sent without it. Notice shows a line saying placing the order accepts them. Off shows neither.selectchannelyescheckbox
sales/checkout/shipping_taxableShipping is taxed like a product line under the shipping tax class below. Turn it off where shipping is exempt.boolchanneltrue
sales/checkout/shipping_tax_classThe tax class shipping is taxed under. Empty matches only the rules that apply to every product.stringchannel-
sales/checkout/risk_hold_thresholdOrders scoring at or above this are placed on hold for manual review instead of flowing straight to fulfillment. 0 disables the hold.intchannel0
sales/checkout/address_validatorWhich validator checks checkout addresses. Options come from what is registered, so an uninstalled provider stops being offered. An unrecognised value is treated as no checking rather than failing checkout.selectchannelyesbasic
sales/checkout/address_validation_strictReject checkout addresses the validator marks invalidboolchannelyesfalse

Inventory

PathWhat it doesTypeScopePublicDefault
sales/inventory/ledger_enabledHolds stock per order line so two shoppers can’t buy the last unit. Off means stock only moves on shipment, and oversells become possible.boolglobaltrue
sales/inventory/reservations_retention_daysReservation retention (days, keep well past the return window; 0 disables pruning)intglobal180
sales/inventory/default_locationApplied when a channel is created, to seed its location assignment. Changing it does not move stock or affect channels that already exist - edit those under Inventory locations.selectglobal-
sales/inventory/flat_modeThe two modes store quantities in different places and nothing syncs them. Run skelet inventory migrate-mode --to flat (or --to multi) BEFORE changing this, or stock reads as zero in the new mode.boolglobalfalse
sales/inventory/deduction_stepOn shipment: placing an order holds stock (reservation) and the on-hand quantity drops when a shipment is created. On placement: the on-hand quantity drops the moment the order is placed - cancelling restores whatever hasn’t shipped. Salable stock is identical either way; this changes what the per-location quantities mean. Multi-location mode only.selectglobalfulfillment

Cart

PathWhat it doesTypeScopePublicDefault
sales/cart/retention_daysHow long an untouched cart survives before it is deleted. Abandoned-cart flows can’t fire on a cart that is already gone.intglobal90
sales/cart/offer_expiry_daysHow long a new cart offer stays open by default. Each offer’s expiry can still be changed before or after it is sent.intchannel7

Loyalty Program

PathWhat it doesTypeScopePublicDefault
sales/loyalty/enabledLoyalty program enabledboolchannelyesfalse
sales/loyalty/earn_points_per_unitPoints earned per currency unit of merchandise valueintchannelyes1
sales/loyalty/redeem_cents_per_pointCents of store credit per redeemed pointintchannelyes1

Referral Program

PathWhat it doesTypeScopePublicDefault
sales/referrals/enabledReferral program enabledboolchannelyesfalse
sales/referrals/referrer_reward_centsStore credit for the referrer when the referee first orders (cents)intchannelyes1000
sales/referrals/referee_reward_centsStore credit for the referee on their first order (cents)intchannelyes500

Store availability

PathWhat it doesTypeScopePublicDefault
sales/store_availability/enabledCustomers can find public stores and check product stock before visiting. Choose public locations under Inventory. Stock checking requires multi-location inventory; flat mode shows the store directory only.boolchannelyesfalse

Signals

Analytics

PathWhat it doesTypeScopePublicDefault
signals/analytics/send_log_retention_monthsEmail send-log retention (months, 0 = keep forever)intglobal24
signals/analytics/spine_retention_daysThe raw per-event log behind every Signals report. Rollups outlive it, so trends survive a short window - individual events do not.intglobal365
signals/analytics/retention_actionPrune deletes; archive writes identity-stripped copies to your backup bucket first.selectglobalprune

Web Analytics

PathWhat it doesTypeScopePublicDefault
signals/lens/enabledWeb analytics enabledboolchanneltrue
signals/lens/sampling_rateShare of visitors recorded. Below 100 the totals are estimates, which is the trade for less storage on a busy store.intchannel100
signals/lens/capture_movesMuch the heaviest event stream - clicks and scroll depth are recorded either way.boolchanneltrue
signals/lens/retention_daysWeb analytics retention (days)intglobal90
signals/lens/rollup_retention_daysDaily traffic rollup retention (days, 0 = keep forever)intglobal0
signals/lens/replay_enabledSession replay enabledboolchanneltrue
signals/lens/replay_sampling_rateSigned-in customers are recorded per their own consent; this covers everyone else.intchannel10
signals/lens/replay_max_minutesSession replay max recording length (minutes; 0 = no cap)intchannel30
signals/lens/replay_retention_daysSession replay retention (days)intglobal30

Customer Analytics

PathWhat it doesTypeScopePublicDefault
signals/synapse/lifecycle_new_daysLifecycle: new within (days)intchannel30
signals/synapse/lifecycle_active_daysLifecycle: active within (days)intchannel90
signals/synapse/lifecycle_at_risk_daysLifecycle: at-risk within (days, lapsed beyond)intchannel180
signals/synapse/return_window_daysEngagement: return window (days)intchannel30
signals/synapse/affinity_segment_min_actorsAuto affinity segment: min customers per valueintchannel5
signals/synapse/affinity_segment_max_valuesAuto affinity segment: max values per attributeintchannel20
signals/synapse/affinity_segment_window_daysAuto affinity segment: affinity window (days)intchannel90

Deliverability

PathWhat it doesTypeScopePublicDefault
signals/deliverability/auto_suppressStops mailing addresses that hard-bounced or complained. Off costs sender reputation.boolglobaltrue
signals/deliverability/soft_bounce_thresholdA soft bounce is temporary (full mailbox, server down), so it takes several before the address is dropped.intglobal3

Outreach

Triggers

PathWhat it doesTypeScopePublicDefault
outreach/triggers/abandoned_cart_minutesHow long a cart sits untouched before it counts as abandoned.intchannel60
outreach/triggers/abandoned_cart_max_age_hoursPast this the cart is too cold to chase and no flow fires - stops a backlog mailing week-old carts after downtime.intchannel72
outreach/triggers/browse_abandoned_minutesIdle time after browsing with nothing added to the cart.intchannel120
outreach/triggers/browse_abandoned_max_age_hoursThe same staleness cut-off as abandoned carts.intchannel48
outreach/triggers/back_in_stock_min_qtyStops a one-unit blip mailing the whole waiting list for something that instantly resells.intglobal1

Signup Forms

PathWhat it doesTypeScopePublicDefault
outreach/forms/enabledSignup forms enabledboolglobalyestrue

General

PathWhat it doesTypeScopePublicDefault
search/general/result_limit_defaultDefault result limitintglobal20
search/general/result_limit_maxMaximum result limitintglobal100
search/general/min_query_lengthMinimum search query lengthintglobal1
search/general/out_of_stock_displayOut-of-stock products in search & browseselectglobalshow

Product Search

PathWhat it doesTypeScopePublicDefault
search/products/ranking_sales_weightSales-rank weight (log1p factor on 30d units; 0 = off)stringglobal0.5
search/products/ranking_in_stock_boostIn-stock score boost (flat; 0 = off)stringglobal0
search/products/attributesSearchable attributessearch_attributesglobal[{"name":"name","searchable":true,"we…

Product Sort

PathWhat it doesTypeScopePublicDefault
search/products_sort/optionsSort optionssort_optionsglobal[{"slug":"relevance","label":"Relevan…

Product Listing (PLP)

PathWhat it doesTypeScopePublicDefault
search/browse/page_size_defaultProducts per pageintglobalyes24
search/browse/page_size_maxMaximum per pageintglobal100
search/browse/facet_max_valuesMax filter values per facetintglobal50
search/browse/pagination_styleHow listing pages page through products. Load more keeps every state at a real ?page=N URL, so crawlers and shared links lose nothing; hybrid shows numbered pages under the button as well.selectglobalyespagination

Blog Search

PathWhat it doesTypeScopePublicDefault
search/blog/attributesSearchable attributessearch_attributesglobal[{"name":"title","searchable":true,"w…

Index Mapping (reindex required)

PathWhat it doesTypeScopePublicDefault
search/mapping/analyzerAnalyzerselectglobalstandard
search/mapping/edge_ngram_minEdge n-gram: min lengthintglobal2
search/mapping/edge_ngram_maxEdge n-gram: max lengthintglobal15
search/mapping/shardsIndex shardsintglobal1
search/mapping/replicasIndex replicasintglobal0

Reviews

Submission Policy

PathWhat it doesTypeScopePublicDefault
reviews/policy/require_authenticationRequire sign-inboolglobaltrue
reviews/policy/require_verified_purchaseRequire verified purchaseboolglobaltrue

Vote Policy

PathWhat it doesTypeScopePublicDefault
reviews/votes/require_authenticationRequire sign-in to vote on reviewsboolglobaltrue

SEO

Sitemap

PathWhat it doesTypeScopePublicDefault
seo/sitemap/include_productsInclude products in the sitemapboolchannelyestrue
seo/sitemap/include_categoriesInclude categories in the sitemapboolchannelyestrue
seo/sitemap/include_collectionsInclude collections in the sitemapboolchannelyestrue
seo/sitemap/include_cmsInclude CMS pages in the sitemapboolchannelyestrue
seo/sitemap/include_blogInclude blog posts in the sitemapboolchannelyestrue
seo/sitemap/max_urls_per_fileCatalog feeds split into numbered files of at most this many URLs (the protocol caps a file at 50,000).intchannelyes45000
seo/sitemap/exclude_pathsExclude paths (one prefix per line)textareachannelyes-
seo/sitemap/extra_urlsExtra URLs (one per line)textareachannelyes-

robots.txt

PathWhat it doesTypeScopePublicDefault
seo/robots/robots_txtrobots.txt (blank = managed default)textareachannelyes-

Facet indexing

PathWhat it doesTypeScopePublicDefault
seo/facets/indexable_combinationsFilter pages combining several facets are indexable only when the combination is listed here - one per line, slugs joined by +.textareachannelyes-
seo/facets/min_resultsFilter pages with fewer matching products go noindex; 0 disables the guard.intchannelyes0
seo/facets/robots_noindexKeep follow so crawlers still reach the products linked from the page.selectchannelyesnoindex,follow
seo/facets/robots_indexableOmitting the tag means index, follow - emit it explicitly only if an audit asks for it.selectchannelyesomit
seo/facets/max_indexable_pageFilter pages past this depth go noindex, so facets and pagination can’t multiply into a crawl trap. 1 indexes a filtered listing’s first page only; 0 removes the cap.intchannelyes1
seo/facets/max_indexable_page_unfilteredThe same cap for listings with no filter applied. 0 removes the cap, so the whole pager stays indexable and deep products keep a route into the index.intchannelyes0

Site crawl

PathWhat it doesTypeScopePublicDefault
seo/crawl/nightly_enabledCrawl this storefront nightlyboolchannelfalse
seo/crawl/max_pagesThe crawl stops here, so a big catalogue is covered across nights rather than in one run.intchannel2000
seo/crawl/alert_thresholdBroken links and redirect chains new since the last crawl.intchannel1

CMS

Editorial Workflow

PathWhat it doesTypeScopePublicDefault
cms/workflow/require_approvalRequire approval before publishingboolglobalfalse

Custom Forms

PathWhat it doesTypeScopePublicDefault
cms/forms/enabledEnable custom forms on the storefrontboolglobaltrue
cms/forms/captcha_providerCAPTCHA provider for forms that require itselectglobalnone
cms/forms/captcha_site_keyCAPTCHA site key (public)stringglobal-
cms/forms/captcha_secret_keyCAPTCHA secret keysecretglobal-

Payment

Bank Transfer / Invoice

PathWhat it doesTypeScopePublicDefault
payment/bank-transfer/instructionsBank Transfer / Invoice - payment instructions shown to the customerstringchannelWe'll email you our bank details. Ref…

Cash on Delivery

PathWhat it doesTypeScopePublicDefault
payment/cod/instructionsCash on Delivery - payment instructions shown to the customerstringchannelPay with cash when your order is deli…

Pay on Pickup

PathWhat it doesTypeScopePublicDefault
payment/pay-on-pickup/instructionsPay on Pickup - payment instructions shown to the customerstringchannelReserve now and pay in store when you…

Purchase Order

PathWhat it doesTypeScopePublicDefault
payment/purchase-order/instructionsPurchase Order - payment instructions shown to the customerstringchannelWe'll invoice you on your agreed term…

AI

LLM provider

PathWhat it doesTypeScopePublicDefault
ai/llm/enabledEnable AI content assistantboolglobalfalse
ai/llm/providerProviderselectglobalanthropic
ai/llm/api_keyAPI keysecretglobal-
ai/llm/modelModel (e.g. claude-opus-5-5, claude-sonnet-5-5, gpt-4o, gemini-2.0-flash)stringglobalclaude-opus-5-5
ai/llm/vision_modelVision model for alt-text (blank = use Model)stringglobal-
ai/llm/base_urlAPI base URL (blank = provider default; set for Azure/OpenRouter/Ollama/local)stringglobal-
ai/llm/toolsLet the assistant query data via tools (turn off for models without tool/function calling)boolglobaltrue
ai/llm/allow_customer_dataAllow the assistant and MCP clients to read individual customer data - profiles, records and the email on orders. Turn off to keep personal data out of AI providers.boolglobaltrue
ai/llm/history_retention_daysChat history retention (days; 0 = keep forever)intglobal90

Cache

Navigation (header, menus, currencies)

PathWhat it doesTypeScopePublicDefault
cache/nav/enabledNavigation (header, menus, currencies) - cachedboolglobalyestrue
cache/nav/ttl_secondsNavigation (header, menus, currencies) - TTL (seconds)intglobalyes3600

Products (PDP)

PathWhat it doesTypeScopePublicDefault
cache/product/enabledProducts (PDP) - cachedboolglobalyestrue
cache/product/ttl_secondsProducts (PDP) - TTL (seconds)intglobalyes3600
cache/product/modeOn product changeselectglobalinvalidate
cache/product/on_update…when a product is updated (incl. price)boolglobaltrue
cache/product/on_stock_change…when stock changesboolglobaltrue
cache/product/on_delete…when a product is deleted (always invalidates)boolglobaltrue

Catalog listings (categories, grids, collections)

PathWhat it doesTypeScopePublicDefault
cache/catalog/enabledCatalog listings (categories, grids, collections) - cachedboolglobalyestrue
cache/catalog/ttl_secondsCatalog listings (categories, grids, collections) - TTL (seconds)intglobalyes3600

CMS pages

PathWhat it doesTypeScopePublicDefault
cache/cms/enabledCMS pages - cachedboolglobalyestrue
cache/cms/ttl_secondsCMS pages - TTL (seconds)intglobalyes3600

System

Scheduled jobs

PathWhat it doesTypeScopePublicDefault
system/scheduler/enabledScheduler enabled (master pause switch)boolglobaltrue
system/scheduler/alert_webhook_urlFailure alert webhook URLsecretglobal-
system/scheduler/history_retention_daysRun-history retention (days)intglobal30

Audit log

PathWhat it doesTypeScopePublicDefault
system/audit/retention_daysAudit log retention (days)intglobal365

Notifications

PathWhat it doesTypeScopePublicDefault
system/notifications/retention_daysNotification retention after read (days)intglobal30

Import & export

PathWhat it doesTypeScopePublicDefault
system/data_transfer/artifact_retention_daysHow long an export stays downloadable and an import’s source file is kept for re-reading. The job history outlives the fileintglobal7
system/data_transfer/history_retention_daysHow long finished import and export runs stay listedintglobal90

Webhooks

PathWhat it doesTypeScopePublicDefault
system/webhooks/delivery_retention_daysWebhook delivery-log retention (days)intglobal90