[{"data":1,"prerenderedAt":3286},["ShallowReactive",2],{"navigation_docs":3,"-docs-guides-operate-stay-current":2413},[4,82,446,500,743,2131],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started\u002Findex",[9,10,17,23,30,37,44,51,57,63,69,75],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"children":14,"icon":16},"Apps and Sites","\u002Fdocs\u002Fgetting-started\u002Fapps-and-sites","docs\u002Fgetting-started\u002Fapps-and-sites\u002Findex",[15],{"title":11,"path":12,"stem":13,"icon":16},"i-lucide-columns-2",{"title":18,"path":19,"stem":20,"children":21},"Architecture Overview","\u002Fdocs\u002Fgetting-started\u002Farchitecture","docs\u002Fgetting-started\u002Farchitecture\u002Findex",[22],{"title":18,"path":19,"stem":20},{"title":24,"path":25,"stem":26,"children":27,"icon":29},"Bring an existing frontend","\u002Fdocs\u002Fgetting-started\u002Fbring-an-existing-frontend","docs\u002Fgetting-started\u002Fbring-an-existing-frontend\u002Findex",[28],{"title":24,"path":25,"stem":26,"icon":29},"i-lucide-arrow-right-left",{"title":31,"path":32,"stem":33,"children":34,"icon":36},"Concepts","\u002Fdocs\u002Fgetting-started\u002Fconcepts","docs\u002Fgetting-started\u002Fconcepts\u002Findex",[35],{"title":31,"path":32,"stem":33,"icon":36},"i-lucide-shapes",{"title":38,"path":39,"stem":40,"children":41,"icon":43},"Frontend stacks","\u002Fdocs\u002Fgetting-started\u002Ffrontend-stacks","docs\u002Fgetting-started\u002Ffrontend-stacks\u002Findex",[42],{"title":38,"path":39,"stem":40,"icon":43},"i-lucide-layers",{"title":45,"path":46,"stem":47,"children":48,"icon":50},"Get Help","\u002Fdocs\u002Fgetting-started\u002Fget-help","docs\u002Fgetting-started\u002Fget-help\u002Findex",[49],{"title":45,"path":46,"stem":47,"icon":50},"i-lucide-life-buoy",{"title":52,"path":53,"stem":54,"children":55},"Glossary","\u002Fdocs\u002Fgetting-started\u002Fglossary","docs\u002Fgetting-started\u002Fglossary\u002Findex",[56],{"title":52,"path":53,"stem":54},{"title":58,"path":59,"stem":60,"children":61},"Platform Overview","\u002Fdocs\u002Fgetting-started\u002Fplatform-overview","docs\u002Fgetting-started\u002Fplatform-overview\u002Findex",[62],{"title":58,"path":59,"stem":60},{"title":64,"path":65,"stem":66,"children":67},"Prerequisites","\u002Fdocs\u002Fgetting-started\u002Fprerequisites","docs\u002Fgetting-started\u002Fprerequisites\u002Findex",[68],{"title":64,"path":65,"stem":66},{"title":70,"path":71,"stem":72,"children":73},"Your First App in 15 Minutes","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002Fgetting-started\u002Fquick-start\u002Findex",[74],{"title":70,"path":71,"stem":72},{"title":76,"path":77,"stem":78,"children":79,"icon":81},"Security and trust","\u002Fdocs\u002Fgetting-started\u002Fsecurity-and-trust","docs\u002Fgetting-started\u002Fsecurity-and-trust\u002Findex",[80],{"title":76,"path":77,"stem":78,"icon":81},"i-lucide-shield-check",{"title":83,"path":84,"stem":85,"children":86},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides\u002Findex",[87,88,151,249,256,310,364,391],{"title":83,"path":84,"stem":85},{"title":89,"path":90,"stem":91,"children":92,"icon":94},"Build an App","\u002Fdocs\u002Fguides\u002Fapps","docs\u002Fguides\u002Fapps\u002Findex",[93,95,102,109,116,123,130,137,144],{"title":89,"path":90,"stem":91,"icon":94},"i-lucide-layout-grid",{"title":96,"path":97,"stem":98,"children":99,"icon":101},"Give your App a Cockpit screen","\u002Fdocs\u002Fguides\u002Fapps\u002Fadd-a-cockpit-screen","docs\u002Fguides\u002Fapps\u002Fadd-a-cockpit-screen\u002Findex",[100],{"title":96,"path":97,"stem":98,"icon":101},"i-lucide-layout-dashboard",{"title":103,"path":104,"stem":105,"children":106,"icon":108},"Add a data model","\u002Fdocs\u002Fguides\u002Fapps\u002Fadd-a-data-model","docs\u002Fguides\u002Fapps\u002Fadd-a-data-model\u002Findex",[107],{"title":103,"path":104,"stem":105,"icon":108},"i-lucide-database",{"title":110,"path":111,"stem":112,"children":113,"icon":115},"Build your first App","\u002Fdocs\u002Fguides\u002Fapps\u002Fbuild-your-first-app","docs\u002Fguides\u002Fapps\u002Fbuild-your-first-app\u002Findex",[114],{"title":110,"path":111,"stem":112,"icon":115},"i-lucide-hammer",{"title":117,"path":118,"stem":119,"children":120,"icon":122},"Deploy and verify an App","\u002Fdocs\u002Fguides\u002Fapps\u002Fdeploy-with-the-cli","docs\u002Fguides\u002Fapps\u002Fdeploy-with-the-cli\u002Findex",[121],{"title":117,"path":118,"stem":119,"icon":122},"i-lucide-square-terminal",{"title":124,"path":125,"stem":126,"children":127,"icon":129},"Publish a business event from your App","\u002Fdocs\u002Fguides\u002Fapps\u002Fpublish-a-business-event","docs\u002Fguides\u002Fapps\u002Fpublish-a-business-event\u002Findex",[128],{"title":124,"path":125,"stem":126,"icon":129},"i-lucide-megaphone",{"title":131,"path":132,"stem":133,"children":134,"icon":136},"Publish on the Marketplace","\u002Fdocs\u002Fguides\u002Fapps\u002Fpublish-on-the-marketplace","docs\u002Fguides\u002Fapps\u002Fpublish-on-the-marketplace\u002Findex",[135],{"title":131,"path":132,"stem":133,"icon":136},"i-lucide-store",{"title":138,"path":139,"stem":140,"children":141,"icon":143},"React to events and run scheduled work in your App","\u002Fdocs\u002Fguides\u002Fapps\u002Freact-to-events-and-run-scheduled-work","docs\u002Fguides\u002Fapps\u002Freact-to-events-and-run-scheduled-work\u002Findex",[142],{"title":138,"path":139,"stem":140,"icon":143},"i-lucide-timer",{"title":145,"path":146,"stem":147,"children":148,"icon":150},"Ship a schema change","\u002Fdocs\u002Fguides\u002Fapps\u002Fship-a-schema-change","docs\u002Fguides\u002Fapps\u002Fship-a-schema-change\u002Findex",[149],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-git-branch",{"title":152,"path":153,"stem":154,"children":155,"icon":157},"Set up selling","\u002Fdocs\u002Fguides\u002Fcommerce","docs\u002Fguides\u002Fcommerce\u002Findex",[156,158,165,172,179,186,193,200,207,214,221,228,235,242],{"title":152,"path":153,"stem":154,"icon":157},"i-lucide-shopping-cart",{"title":159,"path":160,"stem":161,"children":162,"icon":164},"Set up B2B pricing","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fb2b-pricing","docs\u002Fguides\u002Fcommerce\u002Fb2b-pricing\u002Findex",[163],{"title":159,"path":160,"stem":161,"icon":164},"i-lucide-circle-dollar-sign",{"title":166,"path":167,"stem":168,"children":169,"icon":171},"Give buyer staff the right permissions","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fbuyer-permissions","docs\u002Fguides\u002Fcommerce\u002Fbuyer-permissions\u002Findex",[170],{"title":166,"path":167,"stem":168,"icon":171},"i-lucide-user-cog",{"title":173,"path":174,"stem":175,"children":176,"icon":178},"Confirm invoice payments","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fconfirm-invoice-payments","docs\u002Fguides\u002Fcommerce\u002Fconfirm-invoice-payments\u002Findex",[177],{"title":173,"path":174,"stem":175,"icon":178},"i-lucide-receipt",{"title":180,"path":181,"stem":182,"children":183,"icon":185},"Model a catalog with attributes, families and variants","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fmodel-a-catalog","docs\u002Fguides\u002Fcommerce\u002Fmodel-a-catalog\u002Findex",[184],{"title":180,"path":181,"stem":182,"icon":185},"i-lucide-boxes",{"title":187,"path":188,"stem":189,"children":190,"icon":192},"Order and quote numbers","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fnumber-ranges","docs\u002Fguides\u002Fcommerce\u002Fnumber-ranges\u002Findex",[191],{"title":187,"path":188,"stem":189,"icon":192},"i-lucide-hash",{"title":194,"path":195,"stem":196,"children":197,"icon":199},"Manage product images and documents","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fproduct-media","docs\u002Fguides\u002Fcommerce\u002Fproduct-media\u002Findex",[198],{"title":194,"path":195,"stem":196,"icon":199},"i-lucide-image",{"title":201,"path":202,"stem":203,"children":204,"icon":206},"Run promotions and voucher codes","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fpromotions-and-vouchers","docs\u002Fguides\u002Fcommerce\u002Fpromotions-and-vouchers\u002Findex",[205],{"title":201,"path":202,"stem":203,"icon":206},"i-lucide-ticket-percent",{"title":208,"path":209,"stem":210,"children":211,"icon":213},"Set up purchase approvals","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fpurchase-approvals","docs\u002Fguides\u002Fcommerce\u002Fpurchase-approvals\u002Findex",[212],{"title":208,"path":209,"stem":210,"icon":213},"i-lucide-stamp",{"title":215,"path":216,"stem":217,"children":218,"icon":220},"Turn an accepted quote into an order","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fquotes-to-orders","docs\u002Fguides\u002Fcommerce\u002Fquotes-to-orders\u002Findex",[219],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-handshake",{"title":222,"path":223,"stem":224,"children":225,"icon":227},"Build categories from rules","\u002Fdocs\u002Fguides\u002Fcommerce\u002Frule-based-categories","docs\u002Fguides\u002Fcommerce\u002Frule-based-categories\u002Findex",[226],{"title":222,"path":223,"stem":224,"icon":227},"i-lucide-list-filter",{"title":229,"path":230,"stem":231,"children":232,"icon":234},"Ship, cancel and return an order","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fship-cancel-and-return","docs\u002Fguides\u002Fcommerce\u002Fship-cancel-and-return\u002Findex",[233],{"title":229,"path":230,"stem":231,"icon":234},"i-lucide-package-check",{"title":236,"path":237,"stem":238,"children":239,"icon":241},"Set up shipping rates and tax","\u002Fdocs\u002Fguides\u002Fcommerce\u002Fshipping-rates","docs\u002Fguides\u002Fcommerce\u002Fshipping-rates\u002Findex",[240],{"title":236,"path":237,"stem":238,"icon":241},"i-lucide-truck",{"title":243,"path":244,"stem":245,"children":246,"icon":248},"Connect a payment provider and take a test payment","\u002Fdocs\u002Fguides\u002Fcommerce\u002Ftest-payments","docs\u002Fguides\u002Fcommerce\u002Ftest-payments\u002Findex",[247],{"title":243,"path":244,"stem":245,"icon":248},"i-lucide-credit-card",{"title":250,"path":251,"stem":252,"children":253,"icon":255},"Start from an example","\u002Fdocs\u002Fguides\u002Fexamples","docs\u002Fguides\u002Fexamples\u002Findex",[254],{"title":250,"path":251,"stem":252,"icon":255},"i-lucide-folder-code",{"title":257,"path":258,"stem":259,"children":260,"icon":262},"Connect a system","\u002Fdocs\u002Fguides\u002Fintegrations","docs\u002Fguides\u002Fintegrations\u002Findex",[261,263,269,276,283,289,296,303],{"title":257,"path":258,"stem":259,"icon":262},"i-lucide-plug",{"title":264,"path":265,"stem":266,"children":267,"icon":29},"Connect a procurement system by punchout","\u002Fdocs\u002Fguides\u002Fintegrations\u002Fconnect-by-punchout","docs\u002Fguides\u002Fintegrations\u002Fconnect-by-punchout\u002Findex",[268],{"title":264,"path":265,"stem":266,"icon":29},{"title":270,"path":271,"stem":272,"children":273,"icon":275},"Hand an order to the ERP","\u002Fdocs\u002Fguides\u002Fintegrations\u002Fhand-an-order-to-the-erp","docs\u002Fguides\u002Fintegrations\u002Fhand-an-order-to-the-erp\u002Findex",[274],{"title":270,"path":271,"stem":272,"icon":275},"i-lucide-arrow-left-right",{"title":277,"path":278,"stem":279,"children":280,"icon":282},"Import a BMECAT catalog","\u002Fdocs\u002Fguides\u002Fintegrations\u002Fimport-a-bmecat-catalog","docs\u002Fguides\u002Fintegrations\u002Fimport-a-bmecat-catalog\u002Findex",[281],{"title":277,"path":278,"stem":279,"icon":282},"i-lucide-package-plus",{"title":284,"path":285,"stem":286,"children":287,"icon":50},"Keep an Integration Studio workflow running","\u002Fdocs\u002Fguides\u002Fintegrations\u002Fkeep-a-workflow-running","docs\u002Fguides\u002Fintegrations\u002Fkeep-a-workflow-running\u002Findex",[288],{"title":284,"path":285,"stem":286,"icon":50},{"title":290,"path":291,"stem":292,"children":293,"icon":295},"Receive platform events at your own endpoint","\u002Fdocs\u002Fguides\u002Fintegrations\u002Freceive-platform-events","docs\u002Fguides\u002Fintegrations\u002Freceive-platform-events\u002Findex",[294],{"title":290,"path":291,"stem":292,"icon":295},"i-lucide-webhook",{"title":297,"path":298,"stem":299,"children":300,"icon":302},"Recover abandoned carts with a workflow","\u002Fdocs\u002Fguides\u002Fintegrations\u002Frecover-abandoned-carts","docs\u002Fguides\u002Fintegrations\u002Frecover-abandoned-carts\u002Findex",[301],{"title":297,"path":298,"stem":299,"icon":302},"i-lucide-mail-check",{"title":304,"path":305,"stem":306,"children":307,"icon":309},"Send low-stock alerts to the ERP","\u002Fdocs\u002Fguides\u002Fintegrations\u002Fsend-low-stock-alerts-to-the-erp","docs\u002Fguides\u002Fintegrations\u002Fsend-low-stock-alerts-to-the-erp\u002Findex",[308],{"title":304,"path":305,"stem":306,"icon":309},"i-lucide-bell-ring",{"title":311,"path":312,"stem":313,"children":314,"icon":316},"Operate & go live","\u002Fdocs\u002Fguides\u002Foperate","docs\u002Fguides\u002Foperate\u002Findex",[315,317,323,330,337,344,351,357],{"title":311,"path":312,"stem":313,"icon":316},"i-lucide-activity",{"title":318,"path":319,"stem":320,"children":321,"icon":81},"Answer a customer's security questionnaire","\u002Fdocs\u002Fguides\u002Foperate\u002Fanswer-a-security-questionnaire","docs\u002Fguides\u002Foperate\u002Fanswer-a-security-questionnaire\u002Findex",[322],{"title":318,"path":319,"stem":320,"icon":81},{"title":324,"path":325,"stem":326,"children":327,"icon":329},"Debug a failed request","\u002Fdocs\u002Fguides\u002Foperate\u002Fdebug-a-failed-request","docs\u002Fguides\u002Foperate\u002Fdebug-a-failed-request\u002Findex",[328],{"title":324,"path":325,"stem":326,"icon":329},"i-lucide-bug",{"title":331,"path":332,"stem":333,"children":334,"icon":336},"Go live with a project","\u002Fdocs\u002Fguides\u002Foperate\u002Fgo-live-checklist","docs\u002Fguides\u002Foperate\u002Fgo-live-checklist\u002Findex",[335],{"title":331,"path":332,"stem":333,"icon":336},"i-lucide-list-checks",{"title":338,"path":339,"stem":340,"children":341,"icon":343},"Migrate from an existing shop","\u002Fdocs\u002Fguides\u002Foperate\u002Fmigrate-from-an-existing-shop","docs\u002Fguides\u002Foperate\u002Fmigrate-from-an-existing-shop\u002Findex",[342],{"title":338,"path":339,"stem":340,"icon":343},"i-lucide-route",{"title":345,"path":346,"stem":347,"children":348,"icon":350},"Size a launch","\u002Fdocs\u002Fguides\u002Foperate\u002Fplan-for-limits","docs\u002Fguides\u002Foperate\u002Fplan-for-limits\u002Findex",[349],{"title":345,"path":346,"stem":347,"icon":350},"i-lucide-gauge",{"title":352,"path":353,"stem":354,"children":355,"icon":336},"Script a bulk change","\u002Fdocs\u002Fguides\u002Foperate\u002Fscript-a-bulk-change","docs\u002Fguides\u002Foperate\u002Fscript-a-bulk-change\u002Findex",[356],{"title":352,"path":353,"stem":354,"icon":336},{"title":358,"path":359,"stem":360,"children":361,"icon":363},"Stay current","\u002Fdocs\u002Fguides\u002Foperate\u002Fstay-current","docs\u002Fguides\u002Foperate\u002Fstay-current\u002Findex",[362],{"title":358,"path":359,"stem":360,"icon":363},"i-lucide-refresh-cw",{"title":365,"path":366,"stem":367,"children":368,"icon":370},"Plan before you build","\u002Fdocs\u002Fguides\u002Fplan","docs\u002Fguides\u002Fplan\u002Findex",[369,371,378,385],{"title":365,"path":366,"stem":367,"icon":370},"i-lucide-map",{"title":372,"path":373,"stem":374,"children":375,"icon":377},"Choose a system of record","\u002Fdocs\u002Fguides\u002Fplan\u002Fchoose-a-system-of-record","docs\u002Fguides\u002Fplan\u002Fchoose-a-system-of-record\u002Findex",[376],{"title":372,"path":373,"stem":374,"icon":377},"i-lucide-network",{"title":379,"path":380,"stem":381,"children":382,"icon":384},"Choose an event surface","\u002Fdocs\u002Fguides\u002Fplan\u002Fchoose-an-event-surface","docs\u002Fguides\u002Fplan\u002Fchoose-an-event-surface\u002Findex",[383],{"title":379,"path":380,"stem":381,"icon":384},"i-lucide-signpost",{"title":386,"path":387,"stem":388,"children":389,"icon":343},"Choose where the logic goes","\u002Fdocs\u002Fguides\u002Fplan\u002Fchoose-where-the-logic-goes","docs\u002Fguides\u002Fplan\u002Fchoose-where-the-logic-goes\u002Findex",[390],{"title":386,"path":387,"stem":388,"icon":343},{"title":392,"path":393,"stem":394,"children":395,"icon":397},"Build a storefront","\u002Fdocs\u002Fguides\u002Fstorefronts","docs\u002Fguides\u002Fstorefronts\u002Findex",[396,398,405,412,419,426,432,439],{"title":392,"path":393,"stem":394,"icon":397},"i-lucide-paintbrush",{"title":399,"path":400,"stem":401,"children":402,"icon":404},"Brand a Theme with design tokens","\u002Fdocs\u002Fguides\u002Fstorefronts\u002Fbrand-with-tokens","docs\u002Fguides\u002Fstorefronts\u002Fbrand-with-tokens\u002Findex",[403],{"title":399,"path":400,"stem":401,"icon":404},"i-lucide-palette",{"title":406,"path":407,"stem":408,"children":409,"icon":411},"Build a block","\u002Fdocs\u002Fguides\u002Fstorefronts\u002Fbuild-a-block","docs\u002Fguides\u002Fstorefronts\u002Fbuild-a-block\u002Findex",[410],{"title":406,"path":407,"stem":408,"icon":411},"i-lucide-blocks",{"title":413,"path":414,"stem":415,"children":416,"icon":418},"Build your first Theme","\u002Fdocs\u002Fguides\u002Fstorefronts\u002Fbuild-your-first-theme","docs\u002Fguides\u002Fstorefronts\u002Fbuild-your-first-theme\u002Findex",[417],{"title":413,"path":414,"stem":415,"icon":418},"i-lucide-layout-template",{"title":420,"path":421,"stem":422,"children":423,"icon":425},"Connect your own frontend","\u002Fdocs\u002Fguides\u002Fstorefronts\u002Fconnect-a-frontend","docs\u002Fguides\u002Fstorefronts\u002Fconnect-a-frontend\u002Findex",[424],{"title":420,"path":421,"stem":422,"icon":425},"i-lucide-plug-zap",{"title":427,"path":428,"stem":429,"children":430,"icon":363},"Refresh price caches when a price list changes","\u002Fdocs\u002Fguides\u002Fstorefronts\u002Frefresh-price-caches","docs\u002Fguides\u002Fstorefronts\u002Frefresh-price-caches\u002Findex",[431],{"title":427,"path":428,"stem":429,"icon":363},{"title":433,"path":434,"stem":435,"children":436,"icon":438},"Reorder and quick order","\u002Fdocs\u002Fguides\u002Fstorefronts\u002Freorder-and-quick-order","docs\u002Fguides\u002Fstorefronts\u002Freorder-and-quick-order\u002Findex",[437],{"title":433,"path":434,"stem":435,"icon":438},"i-lucide-repeat",{"title":440,"path":441,"stem":442,"children":443,"icon":445},"Sign a buyer in from your server","\u002Fdocs\u002Fguides\u002Fstorefronts\u002Fsign-a-buyer-in","docs\u002Fguides\u002Fstorefronts\u002Fsign-a-buyer-in\u002Findex",[444],{"title":440,"path":441,"stem":442,"icon":445},"i-lucide-log-in",{"title":447,"path":448,"stem":449,"children":450},"SDKs","\u002Fdocs\u002Fsdks","docs\u002Fsdks\u002Findex",[451,452,458,464,470,476,482,488,494],{"title":447,"path":448,"stem":449},{"title":453,"path":454,"stem":455,"children":456},"App SDK","\u002Fdocs\u002Fsdks\u002Fapp-sdk","docs\u002Fsdks\u002Fapp-sdk\u002Findex",[457],{"title":453,"path":454,"stem":455},{"title":459,"path":460,"stem":461,"children":462},"CLI","\u002Fdocs\u002Fsdks\u002Fcli","docs\u002Fsdks\u002Fcli\u002Findex",[463],{"title":459,"path":460,"stem":461},{"title":465,"path":466,"stem":467,"children":468},"Design systems","\u002Fdocs\u002Fsdks\u002Fdesign-systems","docs\u002Fsdks\u002Fdesign-systems\u002Findex",[469],{"title":465,"path":466,"stem":467},{"title":471,"path":472,"stem":473,"children":474},"Integration Node SDK","\u002Fdocs\u002Fsdks\u002Fintegration-nodes","docs\u002Fsdks\u002Fintegration-nodes\u002Findex",[475],{"title":471,"path":472,"stem":473},{"title":477,"path":478,"stem":479,"children":480},"Node SDK","\u002Fdocs\u002Fsdks\u002Fnode","docs\u002Fsdks\u002Fnode\u002Findex",[481],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485,"children":486},"PHP SDK","\u002Fdocs\u002Fsdks\u002Fphp","docs\u002Fsdks\u002Fphp\u002Findex",[487],{"title":483,"path":484,"stem":485},{"title":489,"path":490,"stem":491,"children":492,"icon":150},"Versioning","\u002Fdocs\u002Fsdks\u002Fversioning","docs\u002Fsdks\u002Fversioning\u002Findex",[493],{"title":489,"path":490,"stem":491,"icon":150},{"title":495,"path":496,"stem":497,"children":498},"Web \u002F JavaScript SDK","\u002Fdocs\u002Fsdks\u002Fweb","docs\u002Fsdks\u002Fweb\u002Findex",[499],{"title":495,"path":496,"stem":497},{"title":501,"path":502,"stem":503,"children":504},"Services","\u002Fdocs\u002Fservices","docs\u002Fservices\u002Findex",[505,506,542,549,579,585,609,616,623,677,725],{"title":501,"path":502,"stem":503},{"title":507,"path":508,"stem":509,"children":510},"API usage","\u002Fdocs\u002Fservices\u002Fapi-usage","docs\u002Fservices\u002Fapi-usage\u002Findex",[511,512,518,524,530,536],{"title":507,"path":508,"stem":509},{"title":513,"path":514,"stem":515,"children":516},"Errors","\u002Fdocs\u002Fservices\u002Fapi-usage\u002Ferrors","docs\u002Fservices\u002Fapi-usage\u002Ferrors\u002Findex",[517],{"title":513,"path":514,"stem":515},{"title":519,"path":520,"stem":521,"children":522},"Retries & idempotency","\u002Fdocs\u002Fservices\u002Fapi-usage\u002Fidempotency","docs\u002Fservices\u002Fapi-usage\u002Fidempotency\u002Findex",[523],{"title":519,"path":520,"stem":521},{"title":525,"path":526,"stem":527,"children":528},"Pagination & filtering","\u002Fdocs\u002Fservices\u002Fapi-usage\u002Fpagination","docs\u002Fservices\u002Fapi-usage\u002Fpagination\u002Findex",[529],{"title":525,"path":526,"stem":527},{"title":531,"path":532,"stem":533,"children":534},"Rate limits","\u002Fdocs\u002Fservices\u002Fapi-usage\u002Frate-limits","docs\u002Fservices\u002Fapi-usage\u002Frate-limits\u002Findex",[535],{"title":531,"path":532,"stem":533},{"title":537,"path":538,"stem":539,"children":540},"Versioning & stability","\u002Fdocs\u002Fservices\u002Fapi-usage\u002Fversioning","docs\u002Fservices\u002Fapi-usage\u002Fversioning\u002Findex",[541],{"title":537,"path":538,"stem":539},{"title":543,"path":544,"stem":545,"children":546,"icon":548},"Record history","\u002Fdocs\u002Fservices\u002Faudit","docs\u002Fservices\u002Faudit\u002Findex",[547],{"title":543,"path":544,"stem":545,"icon":548},"i-lucide-history",{"title":550,"path":551,"stem":552,"children":553},"Authentication","\u002Fdocs\u002Fservices\u002Fauth","docs\u002Fservices\u002Fauth\u002Findex",[554,555,561,567,573],{"title":550,"path":551,"stem":552},{"title":556,"path":557,"stem":558,"children":559},"API keys","\u002Fdocs\u002Fservices\u002Fauth\u002Fapi-keys","docs\u002Fservices\u002Fauth\u002Fapi-keys\u002Findex",[560],{"title":556,"path":557,"stem":558},{"title":562,"path":563,"stem":564,"children":565},"Multi-factor authentication","\u002Fdocs\u002Fservices\u002Fauth\u002Fmfa","docs\u002Fservices\u002Fauth\u002Fmfa\u002Findex",[566],{"title":562,"path":563,"stem":564},{"title":568,"path":569,"stem":570,"children":571},"Social sign-in","\u002Fdocs\u002Fservices\u002Fauth\u002Foauth2","docs\u002Fservices\u002Fauth\u002Foauth2\u002Findex",[572],{"title":568,"path":569,"stem":570},{"title":574,"path":575,"stem":576,"children":577},"Sessions","\u002Fdocs\u002Fservices\u002Fauth\u002Fsessions","docs\u002Fservices\u002Fauth\u002Fsessions\u002Findex",[578],{"title":574,"path":575,"stem":576},{"title":580,"path":581,"stem":582,"children":583,"icon":199},"Avatars","\u002Fdocs\u002Fservices\u002Favatars","docs\u002Fservices\u002Favatars\u002Findex",[584],{"title":580,"path":581,"stem":582,"icon":199},{"title":586,"path":587,"stem":588,"children":589},"Events","\u002Fdocs\u002Fservices\u002Fevents","docs\u002Fservices\u002Fevents\u002Findex",[590,591,597,603],{"title":586,"path":587,"stem":588},{"title":592,"path":593,"stem":594,"children":595},"Consuming events","\u002Fdocs\u002Fservices\u002Fevents\u002Fconsuming-events","docs\u002Fservices\u002Fevents\u002Fconsuming-events\u002Findex",[596],{"title":592,"path":593,"stem":594},{"title":598,"path":599,"stem":600,"children":601},"Event catalog","\u002Fdocs\u002Fservices\u002Fevents\u002Fevent-catalog","docs\u002Fservices\u002Fevents\u002Fevent-catalog\u002Findex",[602],{"title":598,"path":599,"stem":600},{"title":604,"path":605,"stem":606,"children":607},"Event types","\u002Fdocs\u002Fservices\u002Fevents\u002Fevent-types","docs\u002Fservices\u002Fevents\u002Fevent-types\u002Findex",[608],{"title":604,"path":605,"stem":606},{"title":610,"path":611,"stem":612,"children":613,"icon":615},"Locale","\u002Fdocs\u002Fservices\u002Flocale","docs\u002Fservices\u002Flocale\u002Findex",[614],{"title":610,"path":611,"stem":612,"icon":615},"i-lucide-globe",{"title":617,"path":618,"stem":619,"children":620,"icon":622},"Messaging","\u002Fdocs\u002Fservices\u002Fmessaging","docs\u002Fservices\u002Fmessaging\u002Findex",[621],{"title":617,"path":618,"stem":619,"icon":622},"i-lucide-mail",{"title":624,"path":625,"stem":626,"children":627},"Network","\u002Fdocs\u002Fservices\u002Fnetwork","docs\u002Fservices\u002Fnetwork\u002Findex",[628,629,635,641,647,653,659,665,671],{"title":624,"path":625,"stem":626},{"title":630,"path":631,"stem":632,"children":633},"Caching","\u002Fdocs\u002Fservices\u002Fnetwork\u002Fcaching","docs\u002Fservices\u002Fnetwork\u002Fcaching\u002Findex",[634],{"title":630,"path":631,"stem":632},{"title":636,"path":637,"stem":638,"children":639},"Content delivery (CDN)","\u002Fdocs\u002Fservices\u002Fnetwork\u002Fcdn","docs\u002Fservices\u002Fnetwork\u002Fcdn\u002Findex",[640],{"title":636,"path":637,"stem":638},{"title":642,"path":643,"stem":644,"children":645},"Compression","\u002Fdocs\u002Fservices\u002Fnetwork\u002Fcompression","docs\u002Fservices\u002Fnetwork\u002Fcompression\u002Findex",[646],{"title":642,"path":643,"stem":644},{"title":648,"path":649,"stem":650,"children":651},"DDoS mitigation","\u002Fdocs\u002Fservices\u002Fnetwork\u002Fddos","docs\u002Fservices\u002Fnetwork\u002Fddos\u002Findex",[652],{"title":648,"path":649,"stem":650},{"title":654,"path":655,"stem":656,"children":657},"Edge network","\u002Fdocs\u002Fservices\u002Fnetwork\u002Fedges","docs\u002Fservices\u002Fnetwork\u002Fedges\u002Findex",[658],{"title":654,"path":655,"stem":656},{"title":660,"path":661,"stem":662,"children":663},"Endpoints","\u002Fdocs\u002Fservices\u002Fnetwork\u002Fendpoints","docs\u002Fservices\u002Fnetwork\u002Fendpoints\u002Findex",[664],{"title":660,"path":661,"stem":662},{"title":666,"path":667,"stem":668,"children":669},"Transport Layer Security (TLS)","\u002Fdocs\u002Fservices\u002Fnetwork\u002Ftls","docs\u002Fservices\u002Fnetwork\u002Ftls\u002Findex",[670],{"title":666,"path":667,"stem":668},{"title":672,"path":673,"stem":674,"children":675},"Web application firewall (WAF)","\u002Fdocs\u002Fservices\u002Fnetwork\u002Fwaf","docs\u002Fservices\u002Fnetwork\u002Fwaf\u002Findex",[676],{"title":672,"path":673,"stem":674},{"title":678,"path":679,"stem":680,"children":681},"Storage","\u002Fdocs\u002Fservices\u002Fstorage","docs\u002Fservices\u002Fstorage\u002Findex",[682,683,689,695,701,707,713,719],{"title":678,"path":679,"stem":680},{"title":684,"path":685,"stem":686,"children":687},"Folders","\u002Fdocs\u002Fservices\u002Fstorage\u002Fbuckets","docs\u002Fservices\u002Fstorage\u002Fbuckets\u002Findex",[688],{"title":684,"path":685,"stem":686},{"title":690,"path":691,"stem":692,"children":693},"Signed URLs and access","\u002Fdocs\u002Fservices\u002Fstorage\u002Ffile-tokens","docs\u002Fservices\u002Fstorage\u002Ffile-tokens\u002Findex",[694],{"title":690,"path":691,"stem":692},{"title":696,"path":697,"stem":698,"children":699},"Serve and transform images","\u002Fdocs\u002Fservices\u002Fstorage\u002Fimages","docs\u002Fservices\u002Fstorage\u002Fimages\u002Findex",[700],{"title":696,"path":697,"stem":698},{"title":702,"path":703,"stem":704,"children":705},"3D assets","\u002Fdocs\u002Fservices\u002Fstorage\u002Fmodel-viewer","docs\u002Fservices\u002Fstorage\u002Fmodel-viewer\u002Findex",[706],{"title":702,"path":703,"stem":704},{"title":708,"path":709,"stem":710,"children":711},"Access control and visibility","\u002Fdocs\u002Fservices\u002Fstorage\u002Fpermissions","docs\u002Fservices\u002Fstorage\u002Fpermissions\u002Findex",[712],{"title":708,"path":709,"stem":710},{"title":714,"path":715,"stem":716,"children":717},"Quick start","\u002Fdocs\u002Fservices\u002Fstorage\u002Fquick-start","docs\u002Fservices\u002Fstorage\u002Fquick-start\u002Findex",[718],{"title":714,"path":715,"stem":716},{"title":720,"path":721,"stem":722,"children":723},"Upload and manage files","\u002Fdocs\u002Fservices\u002Fstorage\u002Fupload-download","docs\u002Fservices\u002Fstorage\u002Fupload-download\u002Findex",[724],{"title":720,"path":721,"stem":722},{"title":726,"path":727,"stem":728,"children":729},"Webhooks","\u002Fdocs\u002Fservices\u002Fwebhooks","docs\u002Fservices\u002Fwebhooks\u002Findex",[730,731,737],{"title":726,"path":727,"stem":728},{"title":732,"path":733,"stem":734,"children":735},"Delivery","\u002Fdocs\u002Fservices\u002Fwebhooks\u002Fdelivery","docs\u002Fservices\u002Fwebhooks\u002Fdelivery\u002Findex",[736],{"title":732,"path":733,"stem":734},{"title":738,"path":739,"stem":740,"children":741},"Security","\u002Fdocs\u002Fservices\u002Fwebhooks\u002Fsecurity","docs\u002Fservices\u002Fwebhooks\u002Fsecurity\u002Findex",[742],{"title":738,"path":739,"stem":740},{"title":744,"path":745,"stem":746,"children":747},"Studios","\u002Fdocs\u002Fstudios","docs\u002Fstudios\u002Findex",[748,749,755,920,1271,1591,1773],{"title":744,"path":745,"stem":746},{"title":750,"path":751,"stem":752,"children":753},"AI Studio","\u002Fdocs\u002Fstudios\u002Fai","docs\u002Fstudios\u002Fai\u002Findex",[754],{"title":750,"path":751,"stem":752},{"title":756,"path":757,"stem":758,"children":759,"icon":761},"Analytics Studio","\u002Fdocs\u002Fstudios\u002Fanalytics","docs\u002Fstudios\u002Fanalytics\u002Findex",[760,762,805,842,848,866,896],{"title":756,"path":757,"stem":758,"icon":761},"i-lucide-chart-column",{"title":763,"path":764,"stem":765,"children":766,"icon":768},"Make your app's data analyzable","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fanalytics-json","docs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Findex",[767,769,775,781,787,793,799],{"title":763,"path":764,"stem":765,"icon":768},"i-lucide-table-2",{"title":770,"path":771,"stem":772,"children":773},"Column locators","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fcolumn-locators","docs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fcolumn-locators\u002Findex",[774],{"title":770,"path":771,"stem":772},{"title":776,"path":777,"stem":778,"children":779},"Declaring a view","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fdeclaring-a-view","docs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fdeclaring-a-view\u002Findex",[780],{"title":776,"path":777,"stem":778},{"title":782,"path":783,"stem":784,"children":785},"Example","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fexample","docs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fexample\u002Findex",[786],{"title":782,"path":783,"stem":784},{"title":788,"path":789,"stem":790,"children":791},"Semantic roles","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fsemantic-roles","docs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fsemantic-roles\u002Findex",[792],{"title":788,"path":789,"stem":790},{"title":794,"path":795,"stem":796,"children":797},"Tenant isolation","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Ftenant-isolation","docs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Ftenant-isolation\u002Findex",[798],{"title":794,"path":795,"stem":796},{"title":800,"path":801,"stem":802,"children":803},"The contract","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fthe-contract","docs\u002Fstudios\u002Fanalytics\u002Fanalytics-json\u002Fthe-contract\u002Findex",[804],{"title":800,"path":801,"stem":802},{"title":806,"path":807,"stem":808,"children":809,"icon":811},"Stream commerce activity","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fevents","docs\u002Fstudios\u002Fanalytics\u002Fevents\u002Findex",[810,812,818,824,830,836],{"title":806,"path":807,"stem":808,"icon":811},"i-lucide-radio",{"title":813,"path":814,"stem":815,"children":816},"Delivery guarantees","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fdelivery-guarantees","docs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fdelivery-guarantees\u002Findex",[817],{"title":813,"path":814,"stem":815},{"title":819,"path":820,"stem":821,"children":822},"Event types for reporting","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fevent-types-for-reporting","docs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fevent-types-for-reporting\u002Findex",[823],{"title":819,"path":820,"stem":821},{"title":825,"path":826,"stem":827,"children":828},"Register an endpoint","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fregister-an-endpoint","docs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fregister-an-endpoint\u002Findex",[829],{"title":825,"path":826,"stem":827},{"title":831,"path":832,"stem":833,"children":834},"The event stream","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fthe-event-stream","docs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fthe-event-stream\u002Findex",[835],{"title":831,"path":832,"stem":833},{"title":837,"path":838,"stem":839,"children":840},"Verify a delivery","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fverify-a-delivery","docs\u002Fstudios\u002Fanalytics\u002Fevents\u002Fverify-a-delivery\u002Findex",[841],{"title":837,"path":838,"stem":839},{"title":843,"path":844,"stem":845,"children":846,"icon":29},"Getting data out","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fgetting-data-out","docs\u002Fstudios\u002Fanalytics\u002Fgetting-data-out\u002Findex",[847],{"title":843,"path":844,"stem":845,"icon":29},{"title":849,"path":850,"stem":851,"children":852,"icon":336},"Limits and what's next","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Flimits","docs\u002Fstudios\u002Fanalytics\u002Flimits\u002Findex",[853,854,860],{"title":849,"path":850,"stem":851,"icon":336},{"title":855,"path":856,"stem":857,"children":858},"Designing for what's coming","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Flimits\u002Fdesigning-for-whats-coming","docs\u002Fstudios\u002Fanalytics\u002Flimits\u002Fdesigning-for-whats-coming\u002Findex",[859],{"title":855,"path":856,"stem":857},{"title":861,"path":862,"stem":863,"children":864},"What does not exist yet","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Flimits\u002Fwhat-does-not-exist-yet","docs\u002Fstudios\u002Fanalytics\u002Flimits\u002Fwhat-does-not-exist-yet\u002Findex",[865],{"title":861,"path":862,"stem":863},{"title":867,"path":868,"stem":869,"children":870,"icon":108},"Build your own reporting store","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fown-store","docs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Findex",[871,872,878,884,890],{"title":867,"path":868,"stem":869,"icon":108},{"title":873,"path":874,"stem":875,"children":876},"Backfill","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fbackfill","docs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fbackfill\u002Findex",[877],{"title":873,"path":874,"stem":875},{"title":879,"path":880,"stem":881,"children":882},"Incremental sync","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fincremental-sync","docs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fincremental-sync\u002Findex",[883],{"title":879,"path":880,"stem":881},{"title":885,"path":886,"stem":887,"children":888},"Modelling","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fmodelling","docs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fmodelling\u002Findex",[889],{"title":885,"path":886,"stem":887},{"title":891,"path":892,"stem":893,"children":894},"Pull versus push","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fpull-vs-push","docs\u002Fstudios\u002Fanalytics\u002Fown-store\u002Fpull-vs-push\u002Findex",[895],{"title":891,"path":892,"stem":893},{"title":897,"path":898,"stem":899,"children":900,"icon":761},"What the tenant sees","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees","docs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees\u002Findex",[901,902,908,914],{"title":897,"path":898,"stem":899,"icon":761},{"title":903,"path":904,"stem":905,"children":906},"Cohorts","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees\u002Fcohorts","docs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees\u002Fcohorts\u002Findex",[907],{"title":903,"path":904,"stem":905},{"title":909,"path":910,"stem":911,"children":912},"Datasets and charts","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees\u002Fdatasets-and-charts","docs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees\u002Fdatasets-and-charts\u002Findex",[913],{"title":909,"path":910,"stem":911},{"title":915,"path":916,"stem":917,"children":918},"Studio overview","\u002Fdocs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees\u002Fstudio-overview","docs\u002Fstudios\u002Fanalytics\u002Fwhat-the-tenant-sees\u002Fstudio-overview\u002Findex",[919],{"title":915,"path":916,"stem":917},{"title":921,"path":922,"stem":923,"children":924},"App Studio","\u002Fdocs\u002Fstudios\u002Fapps","docs\u002Fstudios\u002Fapps\u002Findex",[925,926,962,1032,1103,1121,1187],{"title":921,"path":922,"stem":923},{"title":927,"path":928,"stem":929,"children":930,"icon":101},"Admin UI","\u002Fdocs\u002Fstudios\u002Fapps\u002Fadmin-ui","docs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Findex",[931,932,938,944,950,956],{"title":927,"path":928,"stem":929,"icon":101},{"title":933,"path":934,"stem":935,"children":936},"How the Cockpit renders","\u002Fdocs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fhow-cockpit-renders","docs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fhow-cockpit-renders\u002Findex",[937],{"title":933,"path":934,"stem":935},{"title":939,"path":940,"stem":941,"children":942},"Preview locally","\u002Fdocs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fpreview-locally","docs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fpreview-locally\u002Findex",[943],{"title":939,"path":940,"stem":941},{"title":945,"path":946,"stem":947,"children":948},"Reading settings","\u002Fdocs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Freading-settings","docs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Freading-settings\u002Findex",[949],{"title":945,"path":946,"stem":947},{"title":951,"path":952,"stem":953,"children":954},"Settings","\u002Fdocs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fsettings","docs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fsettings\u002Findex",[955],{"title":951,"path":952,"stem":953},{"title":957,"path":958,"stem":959,"children":960},"Vocabularies","\u002Fdocs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fvocabularies","docs\u002Fstudios\u002Fapps\u002Fadmin-ui\u002Fvocabularies\u002Findex",[961],{"title":957,"path":958,"stem":959},{"title":963,"path":964,"stem":965,"children":966,"icon":343},"Your app's API","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi","docs\u002Fstudios\u002Fapps\u002Fapi\u002Findex",[967,968,973,979,985,991,997,1002,1008,1014,1020,1026],{"title":963,"path":964,"stem":965,"icon":343},{"title":630,"path":969,"stem":970,"children":971},"\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Fcaching","docs\u002Fstudios\u002Fapps\u002Fapi\u002Fcaching\u002Findex",[972],{"title":630,"path":969,"stem":970},{"title":974,"path":975,"stem":976,"children":977},"Calling another app","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Fcalling-another-app","docs\u002Fstudios\u002Fapps\u002Fapi\u002Fcalling-another-app\u002Findex",[978],{"title":974,"path":975,"stem":976},{"title":980,"path":981,"stem":982,"children":983},"Capabilities","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Fcapabilities","docs\u002Fstudios\u002Fapps\u002Fapi\u002Fcapabilities\u002Findex",[984],{"title":980,"path":981,"stem":982},{"title":986,"path":987,"stem":988,"children":989},"Capability reference","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Fcapability-reference","docs\u002Fstudios\u002Fapps\u002Fapi\u002Fcapability-reference\u002Findex",[990],{"title":986,"path":987,"stem":988},{"title":992,"path":993,"stem":994,"children":995},"CRUD","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Fcrud","docs\u002Fstudios\u002Fapps\u002Fapi\u002Fcrud\u002Findex",[996],{"title":992,"path":993,"stem":994},{"title":513,"path":998,"stem":999,"children":1000},"\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Ferrors","docs\u002Fstudios\u002Fapps\u002Fapi\u002Ferrors\u002Findex",[1001],{"title":513,"path":998,"stem":999},{"title":1003,"path":1004,"stem":1005,"children":1006},"Overriding a capability","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Foverriding-a-capability","docs\u002Fstudios\u002Fapps\u002Fapi\u002Foverriding-a-capability\u002Findex",[1007],{"title":1003,"path":1004,"stem":1005},{"title":1009,"path":1010,"stem":1011,"children":1012},"Pagination and filtering","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Fpagination-and-filtering","docs\u002Fstudios\u002Fapps\u002Fapi\u002Fpagination-and-filtering\u002Findex",[1013],{"title":1009,"path":1010,"stem":1011},{"title":1015,"path":1016,"stem":1017,"children":1018},"Published OpenAPI","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Fpublished-openapi","docs\u002Fstudios\u002Fapps\u002Fapi\u002Fpublished-openapi\u002Findex",[1019],{"title":1015,"path":1016,"stem":1017},{"title":1021,"path":1022,"stem":1023,"children":1024},"The router","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Frouter","docs\u002Fstudios\u002Fapps\u002Fapi\u002Frouter\u002Findex",[1025],{"title":1021,"path":1022,"stem":1023},{"title":1027,"path":1028,"stem":1029,"children":1030},"Tags","\u002Fdocs\u002Fstudios\u002Fapps\u002Fapi\u002Ftags","docs\u002Fstudios\u002Fapps\u002Fapi\u002Ftags\u002Findex",[1031],{"title":1027,"path":1028,"stem":1029},{"title":1033,"path":1034,"stem":1035,"children":1036,"icon":108},"Data model","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Findex",[1037,1038,1044,1050,1056,1062,1068,1074,1080,1086,1092,1097],{"title":1033,"path":1034,"stem":1035,"icon":108},{"title":1039,"path":1040,"stem":1041,"children":1042},"Adapters","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fadapters","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fadapters\u002Findex",[1043],{"title":1039,"path":1040,"stem":1041},{"title":1045,"path":1046,"stem":1047,"children":1048},"Column types","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fcolumn-types","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fcolumn-types\u002Findex",[1049],{"title":1045,"path":1046,"stem":1047},{"title":1051,"path":1052,"stem":1053,"children":1054},"Cross-app lookups","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fcross-app-lookups","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fcross-app-lookups\u002Findex",[1055],{"title":1051,"path":1052,"stem":1053},{"title":1057,"path":1058,"stem":1059,"children":1060},"Migrations","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fmigrations","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fmigrations\u002Findex",[1061],{"title":1057,"path":1058,"stem":1059},{"title":1063,"path":1064,"stem":1065,"children":1066},"Projections","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fprojections","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fprojections\u002Findex",[1067],{"title":1063,"path":1064,"stem":1065},{"title":1069,"path":1070,"stem":1071,"children":1072},"Relationships","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Frelationships","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Frelationships\u002Findex",[1073],{"title":1069,"path":1070,"stem":1071},{"title":1075,"path":1076,"stem":1077,"children":1078},"Schema reference","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fschema-reference","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fschema-reference\u002Findex",[1079],{"title":1075,"path":1076,"stem":1077},{"title":1081,"path":1082,"stem":1083,"children":1084},"Scoping","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fscoping","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fscoping\u002Findex",[1085],{"title":1081,"path":1082,"stem":1083},{"title":1087,"path":1088,"stem":1089,"children":1090},"search.json reference","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fsearch-json","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Fsearch-json\u002Findex",[1091],{"title":1087,"path":1088,"stem":1089},{"title":794,"path":1093,"stem":1094,"children":1095},"\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Ftenant-isolation","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Ftenant-isolation\u002Findex",[1096],{"title":794,"path":1093,"stem":1094},{"title":1098,"path":1099,"stem":1100,"children":1101},"The typed client","\u002Fdocs\u002Fstudios\u002Fapps\u002Fdata-model\u002Ftyped-client","docs\u002Fstudios\u002Fapps\u002Fdata-model\u002Ftyped-client\u002Findex",[1102],{"title":1098,"path":1099,"stem":1100},{"title":1104,"path":1105,"stem":1106,"children":1107},"Getting started","\u002Fdocs\u002Fstudios\u002Fapps\u002Fgetting-started","docs\u002Fstudios\u002Fapps\u002Fgetting-started\u002Findex",[1108,1109,1115],{"title":1104,"path":1105,"stem":1106},{"title":1110,"path":1111,"stem":1112,"children":1113},"App model","\u002Fdocs\u002Fstudios\u002Fapps\u002Fgetting-started\u002Fapp-model","docs\u002Fstudios\u002Fapps\u002Fgetting-started\u002Fapp-model\u002Findex",[1114],{"title":1110,"path":1111,"stem":1112},{"title":1116,"path":1117,"stem":1118,"children":1119},"App isolation","\u002Fdocs\u002Fstudios\u002Fapps\u002Fgetting-started\u002Fisolation","docs\u002Fstudios\u002Fapps\u002Fgetting-started\u002Fisolation\u002Findex",[1120],{"title":1116,"path":1117,"stem":1118},{"title":1122,"path":1123,"stem":1124,"children":1125,"icon":185},"Platform services","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Findex",[1126,1127,1133,1139,1145,1151,1157,1163,1169,1175,1181],{"title":1122,"path":1123,"stem":1124,"icon":185},{"title":1128,"path":1129,"stem":1130,"children":1131},"Entity access","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fentity-access","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fentity-access\u002Findex",[1132],{"title":1128,"path":1129,"stem":1130},{"title":1134,"path":1135,"stem":1136,"children":1137},"Events you emit","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fevents-you-emit","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fevents-you-emit\u002Findex",[1138],{"title":1134,"path":1135,"stem":1136},{"title":1140,"path":1141,"stem":1142,"children":1143},"Events you receive","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fevents-you-receive","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fevents-you-receive\u002Findex",[1144],{"title":1140,"path":1141,"stem":1142},{"title":1146,"path":1147,"stem":1148,"children":1149},"Not yet proven","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fnot-yet-proven","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fnot-yet-proven\u002Findex",[1150],{"title":1146,"path":1147,"stem":1148},{"title":1152,"path":1153,"stem":1154,"children":1155},"Outbound HTTP","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Foutbound-http","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Foutbound-http\u002Findex",[1156],{"title":1152,"path":1153,"stem":1154},{"title":1158,"path":1159,"stem":1160,"children":1161},"Permissions","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fpermissions","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fpermissions\u002Findex",[1162],{"title":1158,"path":1159,"stem":1160},{"title":1164,"path":1165,"stem":1166,"children":1167},"Person permissions","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fperson-permissions","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fperson-permissions\u002Findex",[1168],{"title":1164,"path":1165,"stem":1166},{"title":1170,"path":1171,"stem":1172,"children":1173},"Scheduled work","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fscheduled-work","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Fscheduled-work\u002Findex",[1174],{"title":1170,"path":1171,"stem":1172},{"title":1176,"path":1177,"stem":1178,"children":1179},"Tenant identity","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Ftenant-identity","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Ftenant-identity\u002Findex",[1180],{"title":1176,"path":1177,"stem":1178},{"title":1182,"path":1183,"stem":1184,"children":1185},"Tracing","\u002Fdocs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Ftracing","docs\u002Fstudios\u002Fapps\u002Fplatform-services\u002Ftracing\u002Findex",[1186],{"title":1182,"path":1183,"stem":1184},{"title":1188,"path":1189,"stem":1190,"children":1191,"icon":1193},"Ship and operate","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Findex",[1192,1194,1200,1206,1212,1218,1224,1230,1236,1242,1248,1254,1260,1266],{"title":1188,"path":1189,"stem":1190,"icon":1193},"i-lucide-rocket",{"title":1195,"path":1196,"stem":1197,"children":1198},"Billing","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fbilling","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fbilling\u002Findex",[1199],{"title":1195,"path":1196,"stem":1197},{"title":1201,"path":1202,"stem":1203,"children":1204},"Consent","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fconsent","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fconsent\u002Findex",[1205],{"title":1201,"path":1202,"stem":1203},{"title":1207,"path":1208,"stem":1209,"children":1210},"Dependencies","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fdependencies","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fdependencies\u002Findex",[1211],{"title":1207,"path":1208,"stem":1209},{"title":1213,"path":1214,"stem":1215,"children":1216},"Deploying","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fdeploying","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fdeploying\u002Findex",[1217],{"title":1213,"path":1214,"stem":1215},{"title":1219,"path":1220,"stem":1221,"children":1222},"Manifest reference","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fmanifest-reference","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fmanifest-reference\u002Findex",[1223],{"title":1219,"path":1220,"stem":1221},{"title":1225,"path":1226,"stem":1227,"children":1228},"Operating","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Foperating","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Foperating\u002Findex",[1229],{"title":1225,"path":1226,"stem":1227},{"title":1231,"path":1232,"stem":1233,"children":1234},"Pairing a frontend","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fpairing-a-frontend","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fpairing-a-frontend\u002Findex",[1235],{"title":1231,"path":1232,"stem":1233},{"title":1237,"path":1238,"stem":1239,"children":1240},"Private or Marketplace","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fprivate-vs-marketplace","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fprivate-vs-marketplace\u002Findex",[1241],{"title":1237,"path":1238,"stem":1239},{"title":1243,"path":1244,"stem":1245,"children":1246},"Publish and install","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fpublish-and-install","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fpublish-and-install\u002Findex",[1247],{"title":1243,"path":1244,"stem":1245},{"title":1249,"path":1250,"stem":1251,"children":1252},"Testing","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Ftesting","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Ftesting\u002Findex",[1253],{"title":1249,"path":1250,"stem":1251},{"title":1255,"path":1256,"stem":1257,"children":1258},"Validate","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fvalidate","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fvalidate\u002Findex",[1259],{"title":1255,"path":1256,"stem":1257},{"title":1261,"path":1262,"stem":1263,"children":1264},"Verifying live","\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fverifying-live","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fverifying-live\u002Findex",[1265],{"title":1261,"path":1262,"stem":1263},{"title":489,"path":1267,"stem":1268,"children":1269},"\u002Fdocs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fversioning","docs\u002Fstudios\u002Fapps\u002Fship-and-operate\u002Fversioning\u002Findex",[1270],{"title":489,"path":1267,"stem":1268},{"title":1272,"path":1273,"stem":1274,"children":1275,"icon":1277},"Commerce Studio","\u002Fdocs\u002Fstudios\u002Fcommerce","docs\u002Fstudios\u002Fcommerce\u002Findex",[1276,1278,1350,1410,1459,1464,1517,1571],{"title":1272,"path":1273,"stem":1274,"icon":1277},"i-lucide-shopping-bag",{"title":1279,"path":1280,"stem":1281,"children":1282,"icon":1284},"Build an app","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Findex",[1283,1285,1291,1297,1303,1309,1315,1321,1327,1333,1339,1344],{"title":1279,"path":1280,"stem":1281,"icon":1284},"i-lucide-puzzle",{"title":1286,"path":1287,"stem":1288,"children":1289},"Actions and writes","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Factions-and-writes","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Factions-and-writes\u002Findex",[1290],{"title":1286,"path":1287,"stem":1288},{"title":1292,"path":1293,"stem":1294,"children":1295},"cockpit.json reference","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fcockpit-json-reference","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fcockpit-json-reference\u002Findex",[1296],{"title":1292,"path":1293,"stem":1294},{"title":1298,"path":1299,"stem":1300,"children":1301},"Detail views","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fdetail-views","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fdetail-views\u002Findex",[1302],{"title":1298,"path":1299,"stem":1300},{"title":1304,"path":1305,"stem":1306,"children":1307},"Forms","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fforms","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fforms\u002Findex",[1308],{"title":1304,"path":1305,"stem":1306},{"title":1310,"path":1311,"stem":1312,"children":1313},"From manifest to installed","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Ffrom-manifest-to-installed","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Ffrom-manifest-to-installed\u002Findex",[1314],{"title":1310,"path":1311,"stem":1312},{"title":1316,"path":1317,"stem":1318,"children":1319},"How it renders","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fhow-it-renders","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fhow-it-renders\u002Findex",[1320],{"title":1316,"path":1317,"stem":1318},{"title":1322,"path":1323,"stem":1324,"children":1325},"List views","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Flist-views","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Flist-views\u002Findex",[1326],{"title":1322,"path":1323,"stem":1324},{"title":1328,"path":1329,"stem":1330,"children":1331},"Navigation","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fnavigation","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fnavigation\u002Findex",[1332],{"title":1328,"path":1329,"stem":1330},{"title":1334,"path":1335,"stem":1336,"children":1337},"Permissions and scope","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fpermissions-and-scope","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fpermissions-and-scope\u002Findex",[1338],{"title":1334,"path":1335,"stem":1336},{"title":939,"path":1340,"stem":1341,"children":1342},"\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fpreview-locally","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fpreview-locally\u002Findex",[1343],{"title":939,"path":1340,"stem":1341},{"title":1345,"path":1346,"stem":1347,"children":1348},"Widgets","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fwidgets","docs\u002Fstudios\u002Fcommerce\u002Fbuild-an-app\u002Fwidgets\u002Findex",[1349],{"title":1345,"path":1346,"stem":1347},{"title":1351,"path":1352,"stem":1353,"children":1354,"icon":1356},"Catalog","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Findex",[1355,1357,1363,1369,1375,1381,1386,1392,1398,1404],{"title":1351,"path":1352,"stem":1353,"icon":1356},"i-lucide-package",{"title":1358,"path":1359,"stem":1360,"children":1361},"Assets","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fassets","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fassets\u002Findex",[1362],{"title":1358,"path":1359,"stem":1360},{"title":1364,"path":1365,"stem":1366,"children":1367},"Associations","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fassociations","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fassociations\u002Findex",[1368],{"title":1364,"path":1365,"stem":1366},{"title":1370,"path":1371,"stem":1372,"children":1373},"Categories","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fcategories","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fcategories\u002Findex",[1374],{"title":1370,"path":1371,"stem":1372},{"title":1376,"path":1377,"stem":1378,"children":1379},"Completeness","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fcompleteness","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fcompleteness\u002Findex",[1380],{"title":1376,"path":1377,"stem":1378},{"title":1033,"path":1382,"stem":1383,"children":1384},"\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fdata-model","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fdata-model\u002Findex",[1385],{"title":1033,"path":1382,"stem":1383},{"title":1387,"path":1388,"stem":1389,"children":1390},"Import and export","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fimport-and-export","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fimport-and-export\u002Findex",[1391],{"title":1387,"path":1388,"stem":1389},{"title":1393,"path":1394,"stem":1395,"children":1396},"Languages and locale codes","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Flanguages-and-locale-codes","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Flanguages-and-locale-codes\u002Findex",[1397],{"title":1393,"path":1394,"stem":1395},{"title":1399,"path":1400,"stem":1401,"children":1402},"Products","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fproducts","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Fproducts\u002Findex",[1403],{"title":1399,"path":1400,"stem":1401},{"title":1405,"path":1406,"stem":1407,"children":1408},"References","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Freferences","docs\u002Fstudios\u002Fcommerce\u002Fcatalog\u002Freferences\u002Findex",[1409],{"title":1405,"path":1406,"stem":1407},{"title":1411,"path":1412,"stem":1413,"children":1414,"icon":1416},"Customers","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Findex",[1415,1417,1423,1429,1435,1441,1447,1453],{"title":1411,"path":1412,"stem":1413,"icon":1416},"i-lucide-building-2",{"title":1418,"path":1419,"stem":1420,"children":1421},"Contacts","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fcontacts","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fcontacts\u002Findex",[1422],{"title":1418,"path":1419,"stem":1420},{"title":1424,"path":1425,"stem":1426,"children":1427},"Organizations","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Forganizations","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Forganizations\u002Findex",[1428],{"title":1424,"path":1425,"stem":1426},{"title":1430,"path":1431,"stem":1432,"children":1433},"Roles and permissions","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Froles-and-permissions","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Froles-and-permissions\u002Findex",[1434],{"title":1430,"path":1431,"stem":1432},{"title":1436,"path":1437,"stem":1438,"children":1439},"Sales reps","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fsales-reps","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fsales-reps\u002Findex",[1440],{"title":1436,"path":1437,"stem":1438},{"title":1442,"path":1443,"stem":1444,"children":1445},"Segments","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fsegments","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fsegments\u002Findex",[1446],{"title":1442,"path":1443,"stem":1444},{"title":1448,"path":1449,"stem":1450,"children":1451},"Storefront accounts","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fstorefront-accounts","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fstorefront-accounts\u002Findex",[1452],{"title":1448,"path":1449,"stem":1450},{"title":1454,"path":1455,"stem":1456,"children":1457},"Value lists","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fvalue-lists","docs\u002Fstudios\u002Fcommerce\u002Fcustomers\u002Fvalue-lists\u002Findex",[1458],{"title":1454,"path":1455,"stem":1456},{"title":1104,"path":1460,"stem":1461,"children":1462,"icon":1193},"\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fgetting-started","docs\u002Fstudios\u002Fcommerce\u002Fgetting-started\u002Findex",[1463],{"title":1104,"path":1460,"stem":1461,"icon":1193},{"title":1465,"path":1466,"stem":1467,"children":1468,"icon":615},"Markets and pricing","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Findex",[1469,1470,1476,1482,1488,1494,1500,1506,1511],{"title":1465,"path":1466,"stem":1467,"icon":615},{"title":1471,"path":1472,"stem":1473,"children":1474},"Carriers and tracking","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fcarriers-and-tracking","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fcarriers-and-tracking\u002Findex",[1475],{"title":1471,"path":1472,"stem":1473},{"title":1477,"path":1478,"stem":1479,"children":1480},"Channels","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fchannels","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fchannels\u002Findex",[1481],{"title":1477,"path":1478,"stem":1479},{"title":1483,"path":1484,"stem":1485,"children":1486},"Markets","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fmarkets","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fmarkets\u002Findex",[1487],{"title":1483,"path":1484,"stem":1485},{"title":1489,"path":1490,"stem":1491,"children":1492},"Payment lifecycle","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fpayment-lifecycle","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fpayment-lifecycle\u002Findex",[1493],{"title":1489,"path":1490,"stem":1491},{"title":1495,"path":1496,"stem":1497,"children":1498},"Payment methods","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fpayment-methods","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fpayment-methods\u002Findex",[1499],{"title":1495,"path":1496,"stem":1497},{"title":1501,"path":1502,"stem":1503,"children":1504},"Price lists","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fprice-lists","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fprice-lists\u002Findex",[1505],{"title":1501,"path":1502,"stem":1503},{"title":951,"path":1507,"stem":1508,"children":1509},"\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fsettings","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fsettings\u002Findex",[1510],{"title":951,"path":1507,"stem":1508},{"title":1512,"path":1513,"stem":1514,"children":1515},"Shipping rates","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fshipping-rates","docs\u002Fstudios\u002Fcommerce\u002Fmarkets-and-pricing\u002Fshipping-rates\u002Findex",[1516],{"title":1512,"path":1513,"stem":1514},{"title":1518,"path":1519,"stem":1520,"children":1521,"icon":1523},"Orders","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Findex",[1522,1524,1530,1536,1542,1548,1554,1559,1565],{"title":1518,"path":1519,"stem":1520,"icon":1523},"i-lucide-receipt-text",{"title":1525,"path":1526,"stem":1527,"children":1528},"Carts","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Fcarts","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Fcarts\u002Findex",[1529],{"title":1525,"path":1526,"stem":1527},{"title":1531,"path":1532,"stem":1533,"children":1534},"Documents","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Fdocuments","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Fdocuments\u002Findex",[1535],{"title":1531,"path":1532,"stem":1533},{"title":1537,"path":1538,"stem":1539,"children":1540},"Events and comments","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Fevents-and-comments","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Fevents-and-comments\u002Findex",[1541],{"title":1537,"path":1538,"stem":1539},{"title":1543,"path":1544,"stem":1545,"children":1546},"Number ranges","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Fnumber-ranges","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Fnumber-ranges\u002Findex",[1547],{"title":1543,"path":1544,"stem":1545},{"title":1549,"path":1550,"stem":1551,"children":1552},"Order lists","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Forder-lists","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Forder-lists\u002Findex",[1553],{"title":1549,"path":1550,"stem":1551},{"title":1518,"path":1555,"stem":1556,"children":1557},"\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Forders","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Forders\u002Findex",[1558],{"title":1518,"path":1555,"stem":1556},{"title":1560,"path":1561,"stem":1562,"children":1563},"Returns","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Freturns","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Freturns\u002Findex",[1564],{"title":1560,"path":1561,"stem":1562},{"title":1566,"path":1567,"stem":1568,"children":1569},"Stock","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Forders\u002Fstock","docs\u002Fstudios\u002Fcommerce\u002Forders\u002Fstock\u002Findex",[1570],{"title":1566,"path":1567,"stem":1568},{"title":1572,"path":1573,"stem":1574,"children":1575,"icon":1577},"Procurement","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fprocurement","docs\u002Fstudios\u002Fcommerce\u002Fprocurement\u002Findex",[1576,1578,1585],{"title":1572,"path":1573,"stem":1574,"icon":1577},"i-lucide-clipboard-check",{"title":1579,"path":1580,"stem":1581,"children":1582,"icon":1584},"Cost centers","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fprocurement\u002Fcost-centers","docs\u002Fstudios\u002Fcommerce\u002Fprocurement\u002Fcost-centers\u002Findex",[1583],{"title":1579,"path":1580,"stem":1581,"icon":1584},"i-lucide-wallet",{"title":1586,"path":1587,"stem":1588,"children":1589,"icon":29},"Punchout","\u002Fdocs\u002Fstudios\u002Fcommerce\u002Fprocurement\u002Fpunchout","docs\u002Fstudios\u002Fcommerce\u002Fprocurement\u002Fpunchout\u002Findex",[1590],{"title":1586,"path":1587,"stem":1588,"icon":29},{"title":1592,"path":1593,"stem":1594,"children":1595},"Integration Studio","\u002Fdocs\u002Fstudios\u002Fintegration-studio","docs\u002Fstudios\u002Fintegration-studio\u002Findex",[1596,1597,1634,1671,1701,1706,1736],{"title":1592,"path":1593,"stem":1594},{"title":1598,"path":1599,"stem":1600,"children":1601,"icon":1603},"Build the workflow","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fbuild","docs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Findex",[1602,1604,1610,1616,1622,1628],{"title":1598,"path":1599,"stem":1600,"icon":1603},"i-lucide-workflow",{"title":1605,"path":1606,"stem":1607,"children":1608},"Expressions","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fexpressions","docs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fexpressions\u002Findex",[1609],{"title":1605,"path":1606,"stem":1607},{"title":1611,"path":1612,"stem":1613,"children":1614},"Node catalog","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fnode-catalog","docs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fnode-catalog\u002Findex",[1615],{"title":1611,"path":1612,"stem":1613},{"title":1617,"path":1618,"stem":1619,"children":1620},"Node configuration","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fnode-configuration","docs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fnode-configuration\u002Findex",[1621],{"title":1617,"path":1618,"stem":1619},{"title":1623,"path":1624,"stem":1625,"children":1626},"Templates","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Ftemplates","docs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Ftemplates\u002Findex",[1627],{"title":1623,"path":1624,"stem":1625},{"title":1629,"path":1630,"stem":1631,"children":1632},"The workflow document","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fworkflow-model","docs\u002Fstudios\u002Fintegration-studio\u002Fbuild\u002Fworkflow-model\u002Findex",[1633],{"title":1629,"path":1630,"stem":1631},{"title":1635,"path":1636,"stem":1637,"children":1638,"icon":1640},"Connect the systems","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fconnect","docs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Findex",[1639,1641,1647,1653,1659,1665],{"title":1635,"path":1636,"stem":1637,"icon":1640},"i-lucide-key-round",{"title":1642,"path":1643,"stem":1644,"children":1645},"Credentials","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Fcredentials","docs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Fcredentials\u002Findex",[1646],{"title":1642,"path":1643,"stem":1644},{"title":1648,"path":1649,"stem":1650,"children":1651},"File transfer","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Ffiles","docs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Ffiles\u002Findex",[1652],{"title":1648,"path":1649,"stem":1650},{"title":1654,"path":1655,"stem":1656,"children":1657},"OAuth","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Foauth","docs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Foauth\u002Findex",[1658],{"title":1654,"path":1655,"stem":1656},{"title":1660,"path":1661,"stem":1662,"children":1663},"Reaching Revenue Cloud","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Freaching-revenue-cloud","docs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Freaching-revenue-cloud\u002Findex",[1664],{"title":1660,"path":1661,"stem":1662},{"title":1666,"path":1667,"stem":1668,"children":1669},"Secrets","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Fsecrets","docs\u002Fstudios\u002Fintegration-studio\u002Fconnect\u002Fsecrets\u002Findex",[1670],{"title":1666,"path":1667,"stem":1668},{"title":1672,"path":1673,"stem":1674,"children":1675,"icon":1356},"Extend the Studio","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fextend","docs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Findex",[1676,1677,1683,1689,1695],{"title":1672,"path":1673,"stem":1674,"icon":1356},{"title":1678,"path":1679,"stem":1680,"children":1681},"Custom nodes","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fcustom-nodes","docs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fcustom-nodes\u002Findex",[1682],{"title":1678,"path":1679,"stem":1680},{"title":1684,"path":1685,"stem":1686,"children":1687},"Dynamic behaviour","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fdynamic-behaviour","docs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fdynamic-behaviour\u002Findex",[1688],{"title":1684,"path":1685,"stem":1686},{"title":1690,"path":1691,"stem":1692,"children":1693},"Package manifest","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fpackage-manifest","docs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fpackage-manifest\u002Findex",[1694],{"title":1690,"path":1691,"stem":1692},{"title":1696,"path":1697,"stem":1698,"children":1699},"Registration","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fregistration","docs\u002Fstudios\u002Fintegration-studio\u002Fextend\u002Fregistration\u002Findex",[1700],{"title":1696,"path":1697,"stem":1698},{"title":1104,"path":1702,"stem":1703,"children":1704,"icon":1193},"\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fgetting-started","docs\u002Fstudios\u002Fintegration-studio\u002Fgetting-started\u002Findex",[1705],{"title":1104,"path":1702,"stem":1703,"icon":1193},{"title":1707,"path":1708,"stem":1709,"children":1710,"icon":316},"Run, watch, recover","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Foperate","docs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Findex",[1711,1712,1718,1724,1730],{"title":1707,"path":1708,"stem":1709,"icon":316},{"title":1713,"path":1714,"stem":1715,"children":1716},"Missed runs","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Fdead-letters","docs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Fdead-letters\u002Findex",[1717],{"title":1713,"path":1714,"stem":1715},{"title":1719,"path":1720,"stem":1721,"children":1722},"Failure handling","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Ffailure-handling","docs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Ffailure-handling\u002Findex",[1723],{"title":1719,"path":1720,"stem":1721},{"title":1725,"path":1726,"stem":1727,"children":1728},"Revisions and audit","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Frevisions-and-audit","docs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Frevisions-and-audit\u002Findex",[1729],{"title":1725,"path":1726,"stem":1727},{"title":1731,"path":1732,"stem":1733,"children":1734},"Runs","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Fruns","docs\u002Fstudios\u002Fintegration-studio\u002Foperate\u002Fruns\u002Findex",[1735],{"title":1731,"path":1732,"stem":1733},{"title":1737,"path":1738,"stem":1739,"children":1740,"icon":1742},"Start the workflow","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fstart","docs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Findex",[1741,1743,1749,1755,1761,1767],{"title":1737,"path":1738,"stem":1739,"icon":1742},"i-lucide-zap",{"title":1744,"path":1745,"stem":1746,"children":1747},"Event triggers","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fevent-triggers","docs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fevent-triggers\u002Findex",[1748],{"title":1744,"path":1745,"stem":1746},{"title":1750,"path":1751,"stem":1752,"children":1753},"Execution modes","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fexecution-modes","docs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fexecution-modes\u002Findex",[1754],{"title":1750,"path":1751,"stem":1752},{"title":1756,"path":1757,"stem":1758,"children":1759},"Schedule triggers","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fschedule-triggers","docs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fschedule-triggers\u002Findex",[1760],{"title":1756,"path":1757,"stem":1758},{"title":1762,"path":1763,"stem":1764,"children":1765},"Triggers","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Ftriggers","docs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Ftriggers\u002Findex",[1766],{"title":1762,"path":1763,"stem":1764},{"title":1768,"path":1769,"stem":1770,"children":1771},"Webhook triggers","\u002Fdocs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fwebhook-triggers","docs\u002Fstudios\u002Fintegration-studio\u002Fstart\u002Fwebhook-triggers\u002Findex",[1772],{"title":1768,"path":1769,"stem":1770},{"title":1774,"path":1775,"stem":1776,"children":1777},"Experience Studio","\u002Fdocs\u002Fstudios\u002Fsites","docs\u002Fstudios\u002Fsites\u002Findex",[1778,1779,1827,1885,2011,2017,2059],{"title":1774,"path":1775,"stem":1776},{"title":1780,"path":1781,"stem":1782,"children":1783,"icon":418},"Compose pages","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Findex",[1784,1785,1791,1797,1803,1809,1815,1821],{"title":1780,"path":1781,"stem":1782,"icon":418},{"title":1786,"path":1787,"stem":1788,"children":1789},"Block catalog","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks\u002Fblock-catalog","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Fblock-catalog\u002Findex",[1790],{"title":1786,"path":1787,"stem":1788},{"title":1792,"path":1793,"stem":1794,"children":1795},"Block options","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks\u002Fblock-options","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Fblock-options\u002Findex",[1796],{"title":1792,"path":1793,"stem":1794},{"title":1798,"path":1799,"stem":1800,"children":1801},"How a block works","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks\u002Fhow-a-block-works","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Fhow-a-block-works\u002Findex",[1802],{"title":1798,"path":1799,"stem":1800},{"title":1804,"path":1805,"stem":1806,"children":1807},"Inline editing","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks\u002Finline-editing","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Finline-editing\u002Findex",[1808],{"title":1804,"path":1805,"stem":1806},{"title":1810,"path":1811,"stem":1812,"children":1813},"Reading published pages","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks\u002Freading-pages","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Freading-pages\u002Findex",[1814],{"title":1810,"path":1811,"stem":1812},{"title":1816,"path":1817,"stem":1818,"children":1819},"Registering blocks","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks\u002Fregistering","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Fregistering\u002Findex",[1820],{"title":1816,"path":1817,"stem":1818},{"title":1822,"path":1823,"stem":1824,"children":1825},"Shells and fields","\u002Fdocs\u002Fstudios\u002Fsites\u002Fblocks\u002Fshells-and-fields","docs\u002Fstudios\u002Fsites\u002Fblocks\u002Fshells-and-fields\u002Findex",[1826],{"title":1822,"path":1823,"stem":1824},{"title":1828,"path":1829,"stem":1830,"children":1831,"icon":262},"Connect data","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata","docs\u002Fstudios\u002Fsites\u002Fdata\u002Findex",[1832,1833,1838,1844,1850,1856,1861,1867,1873,1879],{"title":1828,"path":1829,"stem":1830,"icon":262},{"title":550,"path":1834,"stem":1835,"children":1836},"\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fauthentication","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fauthentication\u002Findex",[1837],{"title":550,"path":1834,"stem":1835},{"title":1839,"path":1840,"stem":1841,"children":1842},"The BFF pattern","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fbff-pattern","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fbff-pattern\u002Findex",[1843],{"title":1839,"path":1840,"stem":1841},{"title":1845,"path":1846,"stem":1847,"children":1848},"Catalog, cart, checkout","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fcatalog-cart-checkout","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fcatalog-cart-checkout\u002Findex",[1849],{"title":1845,"path":1846,"stem":1847},{"title":1851,"path":1852,"stem":1853,"children":1854},"Consent manager","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fconsent-manager","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fconsent-manager\u002Findex",[1855],{"title":1851,"path":1852,"stem":1853},{"title":1304,"path":1857,"stem":1858,"children":1859},"\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fforms","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fforms\u002Findex",[1860],{"title":1304,"path":1857,"stem":1858},{"title":1862,"path":1863,"stem":1864,"children":1865},"Media and assets","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fmedia","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fmedia\u002Findex",[1866],{"title":1862,"path":1863,"stem":1864},{"title":1868,"path":1869,"stem":1870,"children":1871},"Multi-tenant themes","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fmulti-tenant-themes","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fmulti-tenant-themes\u002Findex",[1872],{"title":1868,"path":1869,"stem":1870},{"title":1874,"path":1875,"stem":1876,"children":1877},"Search collections","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fsearch-collections","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fsearch-collections\u002Findex",[1878],{"title":1874,"path":1875,"stem":1876},{"title":1880,"path":1881,"stem":1882,"children":1883},"Search","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdata\u002Fsearch","docs\u002Fstudios\u002Fsites\u002Fdata\u002Fsearch\u002Findex",[1884],{"title":1880,"path":1881,"stem":1882},{"title":1886,"path":1887,"stem":1888,"children":1889,"icon":1193},"Build and deploy","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Findex",[1890,1891,1897,1903,1909,1915,1921,1927,2005],{"title":1886,"path":1887,"stem":1888,"icon":1193},{"title":1892,"path":1893,"stem":1894,"children":1895},"Build configuration","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fbuild-configuration","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fbuild-configuration\u002Findex",[1896],{"title":1892,"path":1893,"stem":1894},{"title":1898,"path":1899,"stem":1900,"children":1901},"Compute specifications","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fcompute-specifications","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fcompute-specifications\u002Findex",[1902],{"title":1898,"path":1899,"stem":1900},{"title":1904,"path":1905,"stem":1906,"children":1907},"Environment variables","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fenvironment-variables","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fenvironment-variables\u002Findex",[1908],{"title":1904,"path":1905,"stem":1906},{"title":1910,"path":1911,"stem":1912,"children":1913},"From Git","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Ffrom-git","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Ffrom-git\u002Findex",[1914],{"title":1910,"path":1911,"stem":1912},{"title":1916,"path":1917,"stem":1918,"children":1919},"From the CLI","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Ffrom-the-cli","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Ffrom-the-cli\u002Findex",[1920],{"title":1916,"path":1917,"stem":1918},{"title":1922,"path":1923,"stem":1924,"children":1925},"Manually","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fmanually","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fmanually\u002Findex",[1926],{"title":1922,"path":1923,"stem":1924},{"title":1928,"path":1929,"stem":1930,"children":1931},"Quick-starts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Findex",[1932,1933,1939,1945,1951,1957,1963,1969,1975,1981,1987,1993,1999],{"title":1928,"path":1929,"stem":1930},{"title":1934,"path":1935,"stem":1936,"children":1937},"Deploy an Angular app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fangular","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fangular\u002Findex",[1938],{"title":1934,"path":1935,"stem":1936},{"title":1940,"path":1941,"stem":1942,"children":1943},"Deploy a Astro app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fastro","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fastro\u002Findex",[1944],{"title":1940,"path":1941,"stem":1942},{"title":1946,"path":1947,"stem":1948,"children":1949},"Deploy a Flutter Web app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fflutter","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fflutter\u002Findex",[1950],{"title":1946,"path":1947,"stem":1948},{"title":1952,"path":1953,"stem":1954,"children":1955},"Deploy a Next.js app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fnextjs","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fnextjs\u002Findex",[1956],{"title":1952,"path":1953,"stem":1954},{"title":1958,"path":1959,"stem":1960,"children":1961},"Deploy a Nuxt app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fnuxt","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fnuxt\u002Findex",[1962],{"title":1958,"path":1959,"stem":1960},{"title":1964,"path":1965,"stem":1966,"children":1967},"Deploy a React Native app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Freact-native","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Freact-native\u002Findex",[1968],{"title":1964,"path":1965,"stem":1966},{"title":1970,"path":1971,"stem":1972,"children":1973},"Deploy a React app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Freact","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Freact\u002Findex",[1974],{"title":1970,"path":1971,"stem":1972},{"title":1976,"path":1977,"stem":1978,"children":1979},"Deploy a Remix app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fremix","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fremix\u002Findex",[1980],{"title":1976,"path":1977,"stem":1978},{"title":1982,"path":1983,"stem":1984,"children":1985},"Deploy a SvelteKit app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fsveltekit","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fsveltekit\u002Findex",[1986],{"title":1982,"path":1983,"stem":1984},{"title":1988,"path":1989,"stem":1990,"children":1991},"Deploy a TanStack Start app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Ftanstack-start","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Ftanstack-start\u002Findex",[1992],{"title":1988,"path":1989,"stem":1990},{"title":1994,"path":1995,"stem":1996,"children":1997},"Deploy a Vanilla JS app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fvanilla","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fvanilla\u002Findex",[1998],{"title":1994,"path":1995,"stem":1996},{"title":2000,"path":2001,"stem":2002,"children":2003},"Deploy a Vue.js app to revenexx Storefronts","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fvue","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fquick-starts\u002Fvue\u002Findex",[2004],{"title":2000,"path":2001,"stem":2002},{"title":2006,"path":2007,"stem":2008,"children":2009},"Starting points","\u002Fdocs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fstarting-points","docs\u002Fstudios\u002Fsites\u002Fdeploy\u002Fstarting-points\u002Findex",[2010],{"title":2006,"path":2007,"stem":2008},{"title":1104,"path":2012,"stem":2013,"children":2014,"icon":2016},"\u002Fdocs\u002Fstudios\u002Fsites\u002Fgetting-started","docs\u002Fstudios\u002Fsites\u002Fgetting-started\u002Findex",[2015],{"title":1104,"path":2012,"stem":2013,"icon":2016},"i-lucide-terminal",{"title":2018,"path":2019,"stem":2020,"children":2021,"icon":615},"Production","\u002Fdocs\u002Fstudios\u002Fsites\u002Fproduction","docs\u002Fstudios\u002Fsites\u002Fproduction\u002Findex",[2022,2023,2029,2035,2041,2047,2053],{"title":2018,"path":2019,"stem":2020,"icon":615},{"title":2024,"path":2025,"stem":2026,"children":2027},"Deployments","\u002Fdocs\u002Fstudios\u002Fsites\u002Fproduction\u002Fdeployments","docs\u002Fstudios\u002Fsites\u002Fproduction\u002Fdeployments\u002Findex",[2028],{"title":2024,"path":2025,"stem":2026},{"title":2030,"path":2031,"stem":2032,"children":2033},"Domains","\u002Fdocs\u002Fstudios\u002Fsites\u002Fproduction\u002Fdomains","docs\u002Fstudios\u002Fsites\u002Fproduction\u002Fdomains\u002Findex",[2034],{"title":2030,"path":2031,"stem":2032},{"title":2036,"path":2037,"stem":2038,"children":2039},"Instant rollbacks","\u002Fdocs\u002Fstudios\u002Fsites\u002Fproduction\u002Finstant-rollbacks","docs\u002Fstudios\u002Fsites\u002Fproduction\u002Finstant-rollbacks\u002Findex",[2040],{"title":2036,"path":2037,"stem":2038},{"title":2042,"path":2043,"stem":2044,"children":2045},"Logs","\u002Fdocs\u002Fstudios\u002Fsites\u002Fproduction\u002Flogs","docs\u002Fstudios\u002Fsites\u002Fproduction\u002Flogs\u002Findex",[2046],{"title":2042,"path":2043,"stem":2044},{"title":2048,"path":2049,"stem":2050,"children":2051},"Previews","\u002Fdocs\u002Fstudios\u002Fsites\u002Fproduction\u002Fpreviews","docs\u002Fstudios\u002Fsites\u002Fproduction\u002Fpreviews\u002Findex",[2052],{"title":2048,"path":2049,"stem":2050},{"title":2054,"path":2055,"stem":2056,"children":2057},"Publishing a theme","\u002Fdocs\u002Fstudios\u002Fsites\u002Fproduction\u002Fpublishing-a-theme","docs\u002Fstudios\u002Fsites\u002Fproduction\u002Fpublishing-a-theme\u002Findex",[2058],{"title":2054,"path":2055,"stem":2056},{"title":2060,"path":2061,"stem":2062,"children":2063,"icon":404},"Build the theme","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Findex",[2064,2065,2071,2077,2083,2089,2095,2101,2107,2125],{"title":2060,"path":2061,"stem":2062,"icon":404},{"title":2066,"path":2067,"stem":2068,"children":2069},"Theme anatomy","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Fanatomy","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Fanatomy\u002Findex",[2070],{"title":2066,"path":2067,"stem":2068},{"title":2072,"path":2073,"stem":2074,"children":2075},"Design tokens","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Fdesign-tokens","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Fdesign-tokens\u002Findex",[2076],{"title":2072,"path":2073,"stem":2074},{"title":2078,"path":2079,"stem":2080,"children":2081},"Frameworks","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Fframeworks","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Fframeworks\u002Findex",[2082],{"title":2078,"path":2079,"stem":2080},{"title":2084,"path":2085,"stem":2086,"children":2087},"The layer chain","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Flayer-chain","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Flayer-chain\u002Findex",[2088],{"title":2084,"path":2085,"stem":2086},{"title":2090,"path":2091,"stem":2092,"children":2093},"Local development","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Flocal-development","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Flocal-development\u002Findex",[2094],{"title":2090,"path":2091,"stem":2092},{"title":2096,"path":2097,"stem":2098,"children":2099},"Modules and plugins","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Fmodules-and-plugins","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Fmodules-and-plugins\u002Findex",[2100],{"title":2096,"path":2097,"stem":2098},{"title":2102,"path":2103,"stem":2104,"children":2105},"Overriding","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Foverriding","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Foverriding\u002Findex",[2106],{"title":2102,"path":2103,"stem":2104},{"title":2108,"path":2109,"stem":2110,"children":2111},"Rendering","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Frendering","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Frendering\u002Findex",[2112,2113,2119],{"title":2108,"path":2109,"stem":2110},{"title":2114,"path":2115,"stem":2116,"children":2117},"SSR","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Frendering\u002Fssr","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Frendering\u002Fssr\u002Findex",[2118],{"title":2114,"path":2115,"stem":2116},{"title":2120,"path":2121,"stem":2122,"children":2123},"Static","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Frendering\u002Fstatic","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Frendering\u002Fstatic\u002Findex",[2124],{"title":2120,"path":2121,"stem":2122},{"title":2126,"path":2127,"stem":2128,"children":2129},"Service modes","\u002Fdocs\u002Fstudios\u002Fsites\u002Ftheme\u002Fservice-modes","docs\u002Fstudios\u002Fsites\u002Ftheme\u002Fservice-modes\u002Findex",[2130],{"title":2126,"path":2127,"stem":2128},{"title":2132,"path":2133,"stem":2134,"children":2135},"Tools","\u002Fdocs\u002Ftools","docs\u002Ftools\u002Findex",[2136,2137,2144,2359],{"title":2132,"path":2133,"stem":2134},{"title":2138,"path":2139,"stem":2140,"children":2141,"icon":2143},"AI agents","\u002Fdocs\u002Ftools\u002Fai-agents","docs\u002Ftools\u002Fai-agents\u002Findex",[2142],{"title":2138,"path":2139,"stem":2140,"icon":2143},"i-lucide-shield-alert",{"title":2145,"path":2146,"stem":2147,"children":2148},"Command line","\u002Fdocs\u002Ftools\u002Fcommand-line","docs\u002Ftools\u002Fcommand-line\u002Findex",[2149,2150,2156,2161,2167,2173,2179,2185,2191,2197,2317,2323,2329,2335,2341,2347,2353],{"title":2145,"path":2146,"stem":2147},{"title":2151,"path":2152,"stem":2153,"children":2154},"Aliases","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Faliases","docs\u002Ftools\u002Fcommand-line\u002Faliases\u002Findex",[2155],{"title":2151,"path":2152,"stem":2153},{"title":550,"path":2157,"stem":2158,"children":2159},"\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fauthentication","docs\u002Ftools\u002Fcommand-line\u002Fauthentication\u002Findex",[2160],{"title":550,"path":2157,"stem":2158},{"title":2162,"path":2163,"stem":2164,"children":2165},"Commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fcommands","docs\u002Ftools\u002Fcommand-line\u002Fcommands\u002Findex",[2166],{"title":2162,"path":2163,"stem":2164},{"title":2168,"path":2169,"stem":2170,"children":2171},"Global commands reference","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fglobal-commands","docs\u002Ftools\u002Fcommand-line\u002Fglobal-commands\u002Findex",[2172],{"title":2168,"path":2169,"stem":2170},{"title":2174,"path":2175,"stem":2176,"children":2177},"Installation","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Finstallation","docs\u002Ftools\u002Fcommand-line\u002Finstallation\u002Findex",[2178],{"title":2174,"path":2175,"stem":2176},{"title":2180,"path":2181,"stem":2182,"children":2183},"Interactive use","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Finteractive","docs\u002Ftools\u002Fcommand-line\u002Finteractive\u002Findex",[2184],{"title":2180,"path":2181,"stem":2182},{"title":2186,"path":2187,"stem":2188,"children":2189},"Non-interactive use","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fnon-interactive","docs\u002Ftools\u002Fcommand-line\u002Fnon-interactive\u002Findex",[2190],{"title":2186,"path":2187,"stem":2188},{"title":2192,"path":2193,"stem":2194,"children":2195},"Project configuration","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fproject-configuration","docs\u002Ftools\u002Fcommand-line\u002Fproject-configuration\u002Findex",[2196],{"title":2192,"path":2193,"stem":2194},{"title":2198,"path":2199,"stem":2200,"children":2201},"Command reference","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Findex",[2202,2203,2209,2215,2221,2227,2233,2239,2245,2251,2257,2263,2269,2275,2281,2287,2293,2299,2305,2311],{"title":2198,"path":2199,"stem":2200},{"title":2204,"path":2205,"stem":2206,"children":2207},"About commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fabout","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fabout\u002Findex",[2208],{"title":2204,"path":2205,"stem":2206},{"title":2210,"path":2211,"stem":2212,"children":2213},"Apps commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fapps","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fapps\u002Findex",[2214],{"title":2210,"path":2211,"stem":2212},{"title":2216,"path":2217,"stem":2218,"children":2219},"Carts commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fcarts","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fcarts\u002Findex",[2220],{"title":2216,"path":2217,"stem":2218},{"title":2222,"path":2223,"stem":2224,"children":2225},"Channels commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fchannels","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fchannels\u002Findex",[2226],{"title":2222,"path":2223,"stem":2224},{"title":2228,"path":2229,"stem":2230,"children":2231},"Create commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fcreate","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fcreate\u002Findex",[2232],{"title":2228,"path":2229,"stem":2230},{"title":2234,"path":2235,"stem":2236,"children":2237},"Customers commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fcustomers","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fcustomers\u002Findex",[2238],{"title":2234,"path":2235,"stem":2236},{"title":2240,"path":2241,"stem":2242,"children":2243},"Deploy commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fdeploy","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fdeploy\u002Findex",[2244],{"title":2240,"path":2241,"stem":2242},{"title":2246,"path":2247,"stem":2248,"children":2249},"Forms commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fforms","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fforms\u002Findex",[2250],{"title":2246,"path":2247,"stem":2248},{"title":2252,"path":2253,"stem":2254,"children":2255},"Markets commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fmarkets","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fmarkets\u002Findex",[2256],{"title":2252,"path":2253,"stem":2254},{"title":2258,"path":2259,"stem":2260,"children":2261},"Order lists commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Forderlists","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Forderlists\u002Findex",[2262],{"title":2258,"path":2259,"stem":2260},{"title":2264,"path":2265,"stem":2266,"children":2267},"Orders commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Forders","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Forders\u002Findex",[2268],{"title":2264,"path":2265,"stem":2266},{"title":2270,"path":2271,"stem":2272,"children":2273},"Pages commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fpages","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fpages\u002Findex",[2274],{"title":2270,"path":2271,"stem":2272},{"title":2276,"path":2277,"stem":2278,"children":2279},"Prices commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fprices","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fprices\u002Findex",[2280],{"title":2276,"path":2277,"stem":2278},{"title":2282,"path":2283,"stem":2284,"children":2285},"Products commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fproducts","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fproducts\u002Findex",[2286],{"title":2282,"path":2283,"stem":2284},{"title":2288,"path":2289,"stem":2290,"children":2291},"Search commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fsearch","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fsearch\u002Findex",[2292],{"title":2288,"path":2289,"stem":2290},{"title":2294,"path":2295,"stem":2296,"children":2297},"Settings commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fsettings","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fsettings\u002Findex",[2298],{"title":2294,"path":2295,"stem":2296},{"title":2300,"path":2301,"stem":2302,"children":2303},"Sites commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fsites","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fsites\u002Findex",[2304],{"title":2300,"path":2301,"stem":2302},{"title":2306,"path":2307,"stem":2308,"children":2309},"Skills commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fskills","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fskills\u002Findex",[2310],{"title":2306,"path":2307,"stem":2308},{"title":2312,"path":2313,"stem":2314,"children":2315},"Storage commands","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Freference\u002Fstorage","docs\u002Ftools\u002Fcommand-line\u002Freference\u002Fstorage\u002Findex",[2316],{"title":2312,"path":2313,"stem":2314},{"title":2318,"path":2319,"stem":2320,"children":2321},"Interactive shell (REPL)","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Frepl","docs\u002Ftools\u002Fcommand-line\u002Frepl\u002Findex",[2322],{"title":2318,"path":2319,"stem":2320},{"title":2324,"path":2325,"stem":2326,"children":2327},"Scaffolding","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fscaffolding","docs\u002Ftools\u002Fcommand-line\u002Fscaffolding\u002Findex",[2328],{"title":2324,"path":2325,"stem":2326},{"title":2330,"path":2331,"stem":2332,"children":2333},"Scripting & output","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fscripting","docs\u002Ftools\u002Fcommand-line\u002Fscripting\u002Findex",[2334],{"title":2330,"path":2331,"stem":2332},{"title":2336,"path":2337,"stem":2338,"children":2339},"Skills","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fskills","docs\u002Ftools\u002Fcommand-line\u002Fskills\u002Findex",[2340],{"title":2336,"path":2337,"stem":2338},{"title":2342,"path":2343,"stem":2344,"children":2345},"Full-screen app (TUI)","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Ftui","docs\u002Ftools\u002Fcommand-line\u002Ftui\u002Findex",[2346],{"title":2342,"path":2343,"stem":2344},{"title":2348,"path":2349,"stem":2350,"children":2351},"Type generation","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Ftype-generation","docs\u002Ftools\u002Fcommand-line\u002Ftype-generation\u002Findex",[2352],{"title":2348,"path":2349,"stem":2350},{"title":2354,"path":2355,"stem":2356,"children":2357},"Background watchers","\u002Fdocs\u002Ftools\u002Fcommand-line\u002Fwatch","docs\u002Ftools\u002Fcommand-line\u002Fwatch\u002Findex",[2358],{"title":2354,"path":2355,"stem":2356},{"title":2360,"path":2361,"stem":2362,"children":2363},"Model Context Protocol","\u002Fdocs\u002Ftools\u002Fmcp","docs\u002Ftools\u002Fmcp\u002Findex",[2364,2365,2371,2377,2383,2389,2395,2401,2407],{"title":2360,"path":2361,"stem":2362},{"title":2366,"path":2367,"stem":2368,"children":2369},"revenexx docs MCP in Google Antigravity","\u002Fdocs\u002Ftools\u002Fmcp\u002Fantigravity","docs\u002Ftools\u002Fmcp\u002Fantigravity\u002Findex",[2370],{"title":2366,"path":2367,"stem":2368},{"title":2372,"path":2373,"stem":2374,"children":2375},"revenexx docs MCP in Claude Code","\u002Fdocs\u002Ftools\u002Fmcp\u002Fclaude-code","docs\u002Ftools\u002Fmcp\u002Fclaude-code\u002Findex",[2376],{"title":2372,"path":2373,"stem":2374},{"title":2378,"path":2379,"stem":2380,"children":2381},"revenexx docs MCP in Claude Desktop","\u002Fdocs\u002Ftools\u002Fmcp\u002Fclaude-desktop","docs\u002Ftools\u002Fmcp\u002Fclaude-desktop\u002Findex",[2382],{"title":2378,"path":2379,"stem":2380},{"title":2384,"path":2385,"stem":2386,"children":2387},"revenexx docs MCP in Cursor","\u002Fdocs\u002Ftools\u002Fmcp\u002Fcursor","docs\u002Ftools\u002Fmcp\u002Fcursor\u002Findex",[2388],{"title":2384,"path":2385,"stem":2386},{"title":2390,"path":2391,"stem":2392,"children":2393},"revenexx docs MCP in OpenCode","\u002Fdocs\u002Ftools\u002Fmcp\u002Fopencode","docs\u002Ftools\u002Fmcp\u002Fopencode\u002Findex",[2394],{"title":2390,"path":2391,"stem":2392},{"title":2396,"path":2397,"stem":2398,"children":2399},"revenexx docs MCP in VS Code","\u002Fdocs\u002Ftools\u002Fmcp\u002Fvscode","docs\u002Ftools\u002Fmcp\u002Fvscode\u002Findex",[2400],{"title":2396,"path":2397,"stem":2398},{"title":2402,"path":2403,"stem":2404,"children":2405},"revenexx docs MCP in Windsurf","\u002Fdocs\u002Ftools\u002Fmcp\u002Fwindsurf","docs\u002Ftools\u002Fmcp\u002Fwindsurf\u002Findex",[2406],{"title":2402,"path":2403,"stem":2404},{"title":2408,"path":2409,"stem":2410,"children":2411},"revenexx docs MCP in Zenflow","\u002Fdocs\u002Ftools\u002Fmcp\u002Fzenflow","docs\u002Ftools\u002Fmcp\u002Fzenflow\u002Findex",[2412],{"title":2408,"path":2409,"stem":2410},{"id":2414,"title":2415,"body":2416,"description":3278,"extension":3279,"landing":3280,"links":3280,"meta":3281,"navigation":3282,"path":359,"seo":3283,"sitemap":3284,"stem":360,"__hash__":3285},"docs\u002Fdocs\u002Fguides\u002Foperate\u002Fstay-current\u002Findex.md","Stay current with API, SDK and CLI versions",{"type":2417,"value":2418,"toc":3269},"minimark",[2419,2423,2434,2441,2446,2459,2462,2465,2514,2517,2525,2529,2544,2554,2660,2663,2677,2710,2721,2740,2744,2751,2868,2881,2884,2943,2952,2955,3091,3128,3131,3143,3147,3150,3183,3186,3190,3200,3204,3244,3248,3265],[2420,2421,2422],"p",{},"This guide is for the developer or tech lead who owns an integration, a storefront or an App and does not want to find out about a change from a failing deploy. By the end you have a named owner for the Changelog, exact pins for the SDK and CLI (including in CI), a weekly check that tells you when your tenant's API surface changed, and an upgrade order that puts a change on dev and staging before production.",[2420,2424,2425,2426,2429,2430,2433],{},"The pages that describe the promises are ",[2427,2428,537],"a",{"href":538}," (the API) and ",[2427,2431,2432],{"href":490},"SDK versioning & stability"," (the packages). They say what you can rely on. This page turns them into a routine.",[2420,2435,2436,2440],{},[2437,2438,2439],"strong",{},"The short answer:"," one person reads the Changelog, the SDKs and the CLI you install are pinned exactly, a weekly job diffs your tenant's OpenAPI document, and every upgrade goes dev, then staging, then production.",[2442,2443,2445],"h2",{"id":2444},"_1-name-an-owner-and-subscribe","1. Name an owner and subscribe",[2420,2447,2448,2449,2455,2456,2458],{},"Deprecations and breaking changes are announced on the ",[2427,2450,2454],{"href":2451,"rel":2452},"https:\u002F\u002Fchangelog.revenexx.com",[2453],"nofollow","Changelog"," before they take effect, and with at least four weeks between the announcement and a removal of an API endpoint. That is the published policy, stated in ",[2427,2457,537],{"href":538},". For anything contractual, check your agreement. The packages and the CLI are announced there too, but with no stated window. Nothing on the response marks an endpoint as deprecated, so a notice only helps if someone reads it.",[2420,2460,2461],{},"Write one name next to the Changelog in your team's runbook, with a backup. That person reads new entries at least once every two weeks, which keeps you well inside the four-week window.",[2420,2463,2464],{},"There are two ways to follow it (as of 2026-10):",[2466,2467,2468,2484],"table",{},[2469,2470,2471],"thead",{},[2472,2473,2474,2478,2481],"tr",{},[2475,2476,2477],"th",{},"Way",[2475,2479,2480],{},"What you need",[2475,2482,2483],{},"Good to know",[2485,2486,2487,2503],"tbody",{},[2472,2488,2489,2497,2500],{},[2490,2491,2492,2493],"td",{},"RSS feed at ",[2494,2495,2496],"code",{},"https:\u002F\u002Fchangelog.revenexx.com\u002Fapi\u002Ffeeds\u002Fchangelog\u002Fxml",[2490,2498,2499],{},"Nothing, it is public",[2490,2501,2502],{},"The last 50 entries. Each item carries its type and tags as categories. The page itself does not advertise the feed, so a feed reader cannot discover it from the site address",[2472,2504,2505,2508,2511],{},[2490,2506,2507],{},"Email digests (instant, daily or weekly)",[2490,2509,2510],{},"A sign-in on the Changelog, then the notification switches on its notifications page",[2490,2512,2513],{},"Per person, not per team. Point the owner's inbox, not a shared alias you cannot sign in as",[2420,2515,2516],{},"Point the feed at a channel the owner already reads, such as a team chat channel with an RSS integration.",[2518,2519,2520,2521,2524],"warning",{},"The Changelog lists releases of the SDKs, the CLI and the App SDK. It has no tag for the API itself (as of 2026-10), so you cannot filter it down to API notices. Read every new entry, or follow the whole feed. You can narrow by tag on the home page, for example ",[2494,2522,2523],{},"?tags=cli",", but a narrowed view can hide an announcement.",[2442,2526,2528],{"id":2527},"_2-pin-what-you-install-exactly","2. Pin what you install, exactly",[2420,2530,2531,2532,2535,2536,2539,2540,2543],{},"A lockfile alone is not a pin: ",[2494,2533,2534],{},"npm update"," or ",[2494,2537,2538],{},"composer update"," moves it, and so does a ",[2494,2541,2542],{},"^"," range in the manifest that allows a newer version. Pin the exact version in the manifest, and install from the lockfile in CI.",[2420,2545,2546,2547,2549,2550,2553],{},"The generated API clients are all at 0.x. Each release is compared with the previous one for changes that could stop your code compiling, and such a change ships as a minor version, never as a patch, so a minor can break you. The check reads shape, not behaviour (see ",[2427,2548,2432],{"href":490},"). That check does ",[2437,2551,2552],{},"not"," cover the CLI, so a command, flag or output shape can move in a CLI patch. Treat both the same way:",[2555,2556,2557,2614],"code-group",{},[2558,2559,2565],"pre",{"className":2560,"code":2561,"filename":2562,"language":2563,"meta":2564,"style":2564},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Saves the exact version, not a ^range. Do the same for @revenexx\u002Fnode\nnpm install --save-exact @revenexx\u002Fsdk\n\n# CI: install from the lockfile and fail if it disagrees with package.json\nnpm ci\n","JavaScript \u002F TypeScript","bash","",[2494,2566,2567,2576,2593,2600,2606],{"__ignoreMap":2564},[2568,2569,2572],"span",{"class":2570,"line":2571},"line",1,[2568,2573,2575],{"class":2574},"sHwdD","# Saves the exact version, not a ^range. Do the same for @revenexx\u002Fnode\n",[2568,2577,2579,2583,2587,2590],{"class":2570,"line":2578},2,[2568,2580,2582],{"class":2581},"sBMFI","npm",[2568,2584,2586],{"class":2585},"sfazB"," install",[2568,2588,2589],{"class":2585}," --save-exact",[2568,2591,2592],{"class":2585}," @revenexx\u002Fsdk\n",[2568,2594,2596],{"class":2570,"line":2595},3,[2568,2597,2599],{"emptyLinePlaceholder":2598},true,"\n",[2568,2601,2603],{"class":2570,"line":2602},4,[2568,2604,2605],{"class":2574},"# CI: install from the lockfile and fail if it disagrees with package.json\n",[2568,2607,2609,2611],{"class":2570,"line":2608},5,[2568,2610,2582],{"class":2581},[2568,2612,2613],{"class":2585}," ci\n",[2558,2615,2618],{"className":2560,"code":2616,"filename":2617,"language":2563,"meta":2564,"style":2564},"# Writes the exact version into composer.json, then CI installs from composer.lock\ncomposer require revenexx\u002Fsdk:\u003Cexact version>\ncomposer install\n","PHP",[2494,2619,2620,2625,2653],{"__ignoreMap":2564},[2568,2621,2622],{"class":2570,"line":2571},[2568,2623,2624],{"class":2574},"# Writes the exact version into composer.json, then CI installs from composer.lock\n",[2568,2626,2627,2630,2633,2636,2640,2643,2646,2650],{"class":2570,"line":2578},[2568,2628,2629],{"class":2581},"composer",[2568,2631,2632],{"class":2585}," require",[2568,2634,2635],{"class":2585}," revenexx\u002Fsdk:",[2568,2637,2639],{"class":2638},"sMK4o","\u003C",[2568,2641,2642],{"class":2585},"exact",[2568,2644,2645],{"class":2585}," versio",[2568,2647,2649],{"class":2648},"sTEyZ","n",[2568,2651,2652],{"class":2638},">\n",[2568,2654,2655,2657],{"class":2570,"line":2595},[2568,2656,2629],{"class":2581},[2568,2658,2659],{"class":2585}," install\n",[2420,2661,2662],{},"Pin the CLI in the same way wherever it runs, including CI. Ask the machine you tested on for the version, then write that into the workflow:",[2558,2664,2667],{"className":2560,"code":2665,"filename":2666,"language":2563,"meta":2564,"style":2564},"revenexx --version\n","Find the version you tested with",[2494,2668,2669],{"__ignoreMap":2564},[2568,2670,2671,2674],{"class":2570,"line":2571},[2568,2672,2673],{"class":2581},"revenexx",[2568,2675,2676],{"class":2585}," --version\n",[2558,2678,2683],{"className":2679,"code":2680,"filename":2681,"language":2682,"meta":2564,"style":2564},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","- name: Install the CLI\n  run: npm install -g @revenexx\u002Fcli@\u003Cexact version>\n",".github\u002Fworkflows\u002Fdeploy.yml","yaml",[2494,2684,2685,2700],{"__ignoreMap":2564},[2568,2686,2687,2690,2694,2697],{"class":2570,"line":2571},[2568,2688,2689],{"class":2638},"-",[2568,2691,2693],{"class":2692},"swJcz"," name",[2568,2695,2696],{"class":2638},":",[2568,2698,2699],{"class":2585}," Install the CLI\n",[2568,2701,2702,2705,2707],{"class":2570,"line":2578},[2568,2703,2704],{"class":2692},"  run",[2568,2706,2696],{"class":2638},[2568,2708,2709],{"class":2585}," npm install -g @revenexx\u002Fcli@\u003Cexact version>\n",[2420,2711,2712,2713,2716,2717,2720],{},"Do not use ",[2494,2714,2715],{},"@latest"," in a pipeline. ",[2494,2718,2719],{},"revenexx --version"," prints the installed version and says whether a newer one exists, which is how you notice that the pin is old. Take a package's version from the Changelog entry for the release you tested, or from the package registry.",[2420,2722,2723,2726,2727,2730,2731,2733,2734,2736,2737,2739],{},[2494,2724,2725],{},"@revenexx\u002Fsdk"," is the client for JavaScript in the browser and ",[2494,2728,2729],{},"@revenexx\u002Fnode"," the one for server-side Node, so pin the one you import. The ",[2494,2732,2729],{}," client and the two platform SDKs (",[2427,2735,453],{"href":454}," and ",[2427,2738,471],{"href":472},") are numbered on their own. Pin each one separately the same way, using the package name on its page, and do not read one package being ahead of another as news about either.",[2442,2741,2743],{"id":2742},"_3-check-your-tenants-api-surface-every-week","3. Check your tenant's API surface every week",[2420,2745,2746,2747,2750],{},"The endpoints you can call depend on the ",[2427,2748,2749],{"href":922},"Apps"," installed in your tenant, so the document that is true for you is your tenant's own OpenAPI document. Keep a copy in the repository, and let a scheduled job tell you when the live one stops matching it. A weekly run fits well inside a four-week notice. Use an API key of that tenant and keep it as a CI secret. Which scope the key needs to read the document is unconfirmed (as of 2026-10), so start with the narrowest key you have and widen it only if the call is refused.",[2558,2752,2755],{"className":2560,"code":2753,"filename":2754,"language":2563,"meta":2564,"style":2564},"set -euo pipefail\n\ncurl -fsS https:\u002F\u002Fapi.revenexx.com\u002Fv1\u002Fopenapi.json \\\n  -H \"X-Revenexx-Tenant: $REVENEXX_TENANT\" \\\n  -H \"X-Revenexx-Api-Key: $REVENEXX_API_KEY\" \\\n  | jq -S . > openapi.live.json\n\n# jq -S sorts keys, so only real changes show up in the diff\ndiff -u openapi.snapshot.json openapi.live.json\n","check-openapi.sh",[2494,2756,2757,2769,2773,2787,2806,2822,2843,2848,2854],{"__ignoreMap":2564},[2568,2758,2759,2763,2766],{"class":2570,"line":2571},[2568,2760,2762],{"class":2761},"s2Zo4","set",[2568,2764,2765],{"class":2585}," -euo",[2568,2767,2768],{"class":2585}," pipefail\n",[2568,2770,2771],{"class":2570,"line":2578},[2568,2772,2599],{"emptyLinePlaceholder":2598},[2568,2774,2775,2778,2781,2784],{"class":2570,"line":2595},[2568,2776,2777],{"class":2581},"curl",[2568,2779,2780],{"class":2585}," -fsS",[2568,2782,2783],{"class":2585}," https:\u002F\u002Fapi.revenexx.com\u002Fv1\u002Fopenapi.json",[2568,2785,2786],{"class":2648}," \\\n",[2568,2788,2789,2792,2795,2798,2801,2804],{"class":2570,"line":2602},[2568,2790,2791],{"class":2585},"  -H",[2568,2793,2794],{"class":2638}," \"",[2568,2796,2797],{"class":2585},"X-Revenexx-Tenant: ",[2568,2799,2800],{"class":2648},"$REVENEXX_TENANT",[2568,2802,2803],{"class":2638},"\"",[2568,2805,2786],{"class":2648},[2568,2807,2808,2810,2812,2815,2818,2820],{"class":2570,"line":2608},[2568,2809,2791],{"class":2585},[2568,2811,2794],{"class":2638},[2568,2813,2814],{"class":2585},"X-Revenexx-Api-Key: ",[2568,2816,2817],{"class":2648},"$REVENEXX_API_KEY",[2568,2819,2803],{"class":2638},[2568,2821,2786],{"class":2648},[2568,2823,2825,2828,2831,2834,2837,2840],{"class":2570,"line":2824},6,[2568,2826,2827],{"class":2638},"  |",[2568,2829,2830],{"class":2581}," jq",[2568,2832,2833],{"class":2585}," -S",[2568,2835,2836],{"class":2585}," .",[2568,2838,2839],{"class":2638}," >",[2568,2841,2842],{"class":2585}," openapi.live.json\n",[2568,2844,2846],{"class":2570,"line":2845},7,[2568,2847,2599],{"emptyLinePlaceholder":2598},[2568,2849,2851],{"class":2570,"line":2850},8,[2568,2852,2853],{"class":2574},"# jq -S sorts keys, so only real changes show up in the diff\n",[2568,2855,2857,2860,2863,2866],{"class":2570,"line":2856},9,[2568,2858,2859],{"class":2581},"diff",[2568,2861,2862],{"class":2585}," -u",[2568,2864,2865],{"class":2585}," openapi.snapshot.json",[2568,2867,2842],{"class":2585},[2420,2869,2870,2873,2874,2877,2878,2880],{},[2494,2871,2872],{},"curl -f"," makes an HTTP error (a 401, a 403 or a 5xx) fail the script before anything is written to the diff, and ",[2494,2875,2876],{},"set -e"," stops it there. A failure with curl's own message is a network or key problem, not a change to the API. A diff printed by ",[2494,2879,2859],{}," is the change.",[2420,2882,2883],{},"Create the first snapshot once, before the first run. It is the same call, saved as the baseline:",[2558,2885,2888],{"className":2560,"code":2886,"filename":2887,"language":2563,"meta":2564,"style":2564},"curl -fsS https:\u002F\u002Fapi.revenexx.com\u002Fv1\u002Fopenapi.json \\\n  -H \"X-Revenexx-Tenant: $REVENEXX_TENANT\" \\\n  -H \"X-Revenexx-Api-Key: $REVENEXX_API_KEY\" \\\n  | jq -S . > openapi.snapshot.json\n","Create the first snapshot",[2494,2889,2890,2900,2914,2928],{"__ignoreMap":2564},[2568,2891,2892,2894,2896,2898],{"class":2570,"line":2571},[2568,2893,2777],{"class":2581},[2568,2895,2780],{"class":2585},[2568,2897,2783],{"class":2585},[2568,2899,2786],{"class":2648},[2568,2901,2902,2904,2906,2908,2910,2912],{"class":2570,"line":2578},[2568,2903,2791],{"class":2585},[2568,2905,2794],{"class":2638},[2568,2907,2797],{"class":2585},[2568,2909,2800],{"class":2648},[2568,2911,2803],{"class":2638},[2568,2913,2786],{"class":2648},[2568,2915,2916,2918,2920,2922,2924,2926],{"class":2570,"line":2595},[2568,2917,2791],{"class":2585},[2568,2919,2794],{"class":2638},[2568,2921,2814],{"class":2585},[2568,2923,2817],{"class":2648},[2568,2925,2803],{"class":2638},[2568,2927,2786],{"class":2648},[2568,2929,2930,2932,2934,2936,2938,2940],{"class":2570,"line":2602},[2568,2931,2827],{"class":2638},[2568,2933,2830],{"class":2581},[2568,2935,2833],{"class":2585},[2568,2937,2836],{"class":2585},[2568,2939,2839],{"class":2638},[2568,2941,2942],{"class":2585}," openapi.snapshot.json\n",[2420,2944,2945,2946,2736,2949,2951],{},"Commit ",[2494,2947,2948],{},"openapi.snapshot.json",[2494,2950,2754],{}," at the repository root.",[2420,2953,2954],{},"The script exits non-zero when the two differ. Run it from a scheduled job, for example every Monday, so that a failed run reaches the team the way any failed pipeline does, and treat a difference as a prompt to read, not as a failure to fix:",[2558,2956,2959],{"className":2679,"code":2957,"filename":2958,"language":2682,"meta":2564,"style":2564},"on:\n  schedule:\n    - cron: \"0 7 * * 1\"\njobs:\n  check:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Diff the tenant's OpenAPI document\n        env:\n          REVENEXX_TENANT: acme\n          REVENEXX_API_KEY: ${{ secrets.REVENEXX_API_KEY }}\n        run: bash check-openapi.sh\n",".github\u002Fworkflows\u002Fopenapi-check.yml",[2494,2960,2961,2970,2977,2995,3002,3009,3019,3026,3039,3050,3058,3069,3080],{"__ignoreMap":2564},[2568,2962,2963,2967],{"class":2570,"line":2571},[2568,2964,2966],{"class":2965},"sfNiH","on",[2568,2968,2969],{"class":2638},":\n",[2568,2971,2972,2975],{"class":2570,"line":2578},[2568,2973,2974],{"class":2692},"  schedule",[2568,2976,2969],{"class":2638},[2568,2978,2979,2982,2985,2987,2989,2992],{"class":2570,"line":2595},[2568,2980,2981],{"class":2638},"    -",[2568,2983,2984],{"class":2692}," cron",[2568,2986,2696],{"class":2638},[2568,2988,2794],{"class":2638},[2568,2990,2991],{"class":2585},"0 7 * * 1",[2568,2993,2994],{"class":2638},"\"\n",[2568,2996,2997,3000],{"class":2570,"line":2602},[2568,2998,2999],{"class":2692},"jobs",[2568,3001,2969],{"class":2638},[2568,3003,3004,3007],{"class":2570,"line":2608},[2568,3005,3006],{"class":2692},"  check",[2568,3008,2969],{"class":2638},[2568,3010,3011,3014,3016],{"class":2570,"line":2824},[2568,3012,3013],{"class":2692},"    runs-on",[2568,3015,2696],{"class":2638},[2568,3017,3018],{"class":2585}," ubuntu-latest\n",[2568,3020,3021,3024],{"class":2570,"line":2845},[2568,3022,3023],{"class":2692},"    steps",[2568,3025,2969],{"class":2638},[2568,3027,3028,3031,3034,3036],{"class":2570,"line":2850},[2568,3029,3030],{"class":2638},"      -",[2568,3032,3033],{"class":2692}," uses",[2568,3035,2696],{"class":2638},[2568,3037,3038],{"class":2585}," actions\u002Fcheckout@v4\n",[2568,3040,3041,3043,3045,3047],{"class":2570,"line":2856},[2568,3042,3030],{"class":2638},[2568,3044,2693],{"class":2692},[2568,3046,2696],{"class":2638},[2568,3048,3049],{"class":2585}," Diff the tenant's OpenAPI document\n",[2568,3051,3053,3056],{"class":2570,"line":3052},10,[2568,3054,3055],{"class":2692},"        env",[2568,3057,2969],{"class":2638},[2568,3059,3061,3064,3066],{"class":2570,"line":3060},11,[2568,3062,3063],{"class":2692},"          REVENEXX_TENANT",[2568,3065,2696],{"class":2638},[2568,3067,3068],{"class":2585}," acme\n",[2568,3070,3072,3075,3077],{"class":2570,"line":3071},12,[2568,3073,3074],{"class":2692},"          REVENEXX_API_KEY",[2568,3076,2696],{"class":2638},[2568,3078,3079],{"class":2585}," ${{ secrets.REVENEXX_API_KEY }}\n",[2568,3081,3083,3086,3088],{"class":2570,"line":3082},13,[2568,3084,3085],{"class":2692},"        run",[2568,3087,2696],{"class":2638},[2568,3089,3090],{"class":2585}," bash check-openapi.sh\n",[3092,3093,3094,3112,3122],"ul",{},[3095,3096,3097,3100,3101,3104,3105,3108,3109,3111],"li",{},[2437,3098,3099],{},"Something was added."," This is the normal case under ",[2494,3102,3103],{},"\u002Fv1",", where changes are additive: new endpoints and optional fields. Copy ",[2494,3106,3107],{},"openapi.live.json"," over ",[2494,3110,2948],{}," and commit it.",[3095,3113,3114,3117,3118,3121],{},[2437,3115,3116],{},"Something was removed, renamed or retyped."," That is a breaking change. Look it up in the Changelog. If it was announced, you are inside the notice period. If it was not announced and you cannot find it, send the diff to ",[2427,3119,3120],{"href":46},"support",".",[3095,3123,3124,3127],{},[2437,3125,3126],{},"An App was installed or removed in your tenant."," That also changes the document, and it is yours to confirm.",[2420,3129,3130],{},"Read the first snapshot once against what you build on. From then on the check reports change since that point, not before it. Run it against staging as well as production if their installed Apps differ.",[2420,3132,3133,3134,2736,3137,3140,3141,3121],{},"If you want typed calls, feed the same document to an OpenAPI generator of your choice and regenerate the types when the snapshot changes, at least once a month. The CLI's ",[2494,3135,3136],{},"types",[2494,3138,3139],{},"generate"," commands work from a local project file and do not read your tenant's document, see ",[2427,3142,2348],{"href":2349},[2442,3144,3146],{"id":3145},"_4-upgrade-on-dev-then-staging-then-production","4. Upgrade on dev, then staging, then production",[2420,3148,3149],{},"Upgrade one thing at a time, so that a failure has one cause:",[3151,3152,3153,3159,3165,3171,3177],"ol",{},[3095,3154,3155,3158],{},[2437,3156,3157],{},"Read the release notes"," for the package you are about to move, from the Changelog entry. For the CLI, this is the only place that says a flag moved.",[3095,3160,3161,3164],{},[2437,3162,3163],{},"Bump on dev"," with your compiler on. A typed client turns a removed field into a build error instead of a runtime one. Run your tests and the scripts that use the CLI.",[3095,3166,3167,3170],{},[2437,3168,3169],{},"Promote to staging"," and run the flows a test cannot cover: a checkout, an order handover, a deploy of an App.",[3095,3172,3173,3176],{},[2437,3174,3175],{},"Promote to production"," only after staging has run the new version through a normal working day.",[3095,3178,3179,3182],{},[2437,3180,3181],{},"Commit the new pin and, if the API document changed, the new snapshot"," in the same pull request, so a revert takes both back. A snapshot update that belongs to no upgrade gets its own pull request.",[2420,3184,3185],{},"Move the API client, the CLI and the App SDK in separate pull requests, each with its own pin. A combined bump is quicker to write and slower to debug.",[2442,3187,3189],{"id":3188},"_5-if-you-publish-an-app-diff-your-own-contract-before-you-bump","5. If you publish an App, diff your own contract before you bump",[2420,3191,3192,3193,3196,3197,3121],{},"The same discipline applies to the contract you publish. An App's ",[2494,3194,3195],{},"version"," only moves forward and is bumped on every successful build, and a breaking change means a new major version, a new capability key and a new route, never a change in place. Before you bump, compare the routes, request fields and events your App exposes now with the ones in the version you are about to ship, using the same snapshot-and-diff approach as above on your own document. Anything another App or a merchant could notice is a break. The rules, and what merchants see, are in ",[2427,3198,3199],{"href":1267},"App versioning",[2442,3201,3203],{"id":3202},"checklist","Checklist",[3092,3205,3208,3217,3223,3232,3238],{"className":3206},[3207],"contains-task-list",[3095,3209,3212,3216],{"className":3210},[3211],"task-list-item",[3213,3214],"input",{"disabled":2598,"type":3215},"checkbox"," A named owner, and a backup, for the Changelog, with the feed or digest wired to somewhere they read.",[3095,3218,3220,3222],{"className":3219},[3211],[3213,3221],{"disabled":2598,"type":3215}," Every revenexx package and the CLI pinned to an exact version, in the manifest and in CI.",[3095,3224,3226,3228,3229,3231],{"className":3225},[3211],[3213,3227],{"disabled":2598,"type":3215}," ",[2494,3230,2948],{}," committed, and a weekly job that diffs it against the live document.",[3095,3233,3235,3237],{"className":3234},[3211],[3213,3236],{"disabled":2598,"type":3215}," An upgrade order written down: dev, staging, then production, one package per pull request, with the snapshot in the pull request it belongs to.",[3095,3239,3241,3243],{"className":3240},[3211],[3213,3242],{"disabled":2598,"type":3215}," For an App you publish: a diff of your own contract before every bump.",[2442,3245,3247],{"id":3246},"where-to-go-next","Where to go next",[3092,3249,3250,3255,3260],{},[3095,3251,3252,3254],{},[2427,3253,537],{"href":538}," — what counts as a break and how long you get.",[3095,3256,3257,3259],{},[2427,3258,2432],{"href":490}," — what a package version promises.",[3095,3261,3262,3264],{},[2427,3263,331],{"href":332}," — the one-time list this routine continues after launch.",[3266,3267,3268],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":2564,"searchDepth":2578,"depth":2578,"links":3270},[3271,3272,3273,3274,3275,3276,3277],{"id":2444,"depth":2578,"text":2445},{"id":2527,"depth":2578,"text":2528},{"id":2742,"depth":2578,"text":2743},{"id":3145,"depth":2578,"text":3146},{"id":3188,"depth":2578,"text":3189},{"id":3202,"depth":2578,"text":3203},{"id":3246,"depth":2578,"text":3247},"A routine for a team that builds on revenexx — who watches the Changelog, what to pin exactly, how to catch a change to your tenant's API surface, and the order to upgrade in.","md",null,{},{"title":358,"icon":363},{"title":2415,"description":3278},{"loc":359},"rt-Ho5VTjp7y_CD6jz4SVOwzvj6K5aTX-OcizBMM9kE",1792233081219]