[{"data":1,"prerenderedAt":5623},["ShallowReactive",2],{"navigation_docs":3,"-hosting-bring-your-own-server-byos-webhook-config":1905,"-hosting-bring-your-own-server-byos-webhook-config-surround":5618},[4,136,463,647,1532,1622,1628,1634,1693,1792],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","/getting-started","0.getting-started/0.index",[9,10,14,18,56,81,115,132],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Starting new project","/getting-started/starting-new-project","0.getting-started/1.starting-new-project",{"title":15,"path":16,"stem":17},"What is Laioutr?","/getting-started/what-is-laioutr","0.getting-started/2.what-is-laioutr",{"title":19,"path":20,"stem":21,"children":22,"page":55},"Key Concepts","/getting-started/key-concepts","0.getting-started/3.key-concepts",[23,27,31,35,39,43,47,51],{"title":24,"path":25,"stem":26},"Architecture","/getting-started/key-concepts/architecture","0.getting-started/3.key-concepts/1.architecture",{"title":28,"path":29,"stem":30},"Data Model","/getting-started/key-concepts/data-model","0.getting-started/3.key-concepts/2.data-model",{"title":32,"path":33,"stem":34},"Internationalization","/getting-started/key-concepts/5.internationalization","0.getting-started/3.key-concepts/3.5.internationalization",{"title":36,"path":37,"stem":38},"Data Flow","/getting-started/key-concepts/data-flow","0.getting-started/3.key-concepts/3.data-flow",{"title":40,"path":41,"stem":42},"Extensibility","/getting-started/key-concepts/extensibility","0.getting-started/3.key-concepts/4.extensibility",{"title":44,"path":45,"stem":46},"Philosophy","/getting-started/key-concepts/philosophy","0.getting-started/3.key-concepts/5.philosophy",{"title":48,"path":49,"stem":50},"CI/CD Pipeline","/getting-started/key-concepts/ci-cd-pipeline","0.getting-started/3.key-concepts/6.ci-cd-pipeline",{"title":52,"path":53,"stem":54},"Multi-tenancy","/getting-started/key-concepts/multi-tenancy","0.getting-started/3.key-concepts/multi-tenancy",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Next Steps","/getting-started/next-steps","0.getting-started/4.next-steps",[61,65,69,73,77],{"title":62,"path":63,"stem":64},"Create Organization and Project","/getting-started/next-steps/create-org-and-project","0.getting-started/4.next-steps/0.create-org-and-project",{"title":66,"path":67,"stem":68},"First Project Configuration","/getting-started/next-steps/first-project-config","0.getting-started/4.next-steps/1.first-project-config",{"title":70,"path":71,"stem":72},"Setup Local Development Environment","/getting-started/next-steps/local-setup","0.getting-started/4.next-steps/3.local-setup",{"title":74,"path":75,"stem":76},"Create your first custom app","/getting-started/next-steps/create-custom-app","0.getting-started/4.next-steps/4.create-custom-app",{"title":78,"path":79,"stem":80},"CLI","/getting-started/next-steps/cli","0.getting-started/4.next-steps/5.cli",{"title":82,"path":83,"stem":84,"children":85},"Changelogs","/getting-started/changelogs","0.getting-started/5.Changelogs/0.index",[86,87,91,95,99,103,107,111],{"title":82,"path":83,"stem":84},{"title":88,"path":89,"stem":90},"Canonical Types Changelog","/getting-started/changelogs/canonical-types-changelog","0.getting-started/5.Changelogs/canonical-types-changelog",{"title":92,"path":93,"stem":94},"CLI Changelog","/getting-started/changelogs/cli-changelog","0.getting-started/5.Changelogs/cli-changelog",{"title":96,"path":97,"stem":98},"Cockpit Changelog","/getting-started/changelogs/cockpit-changelog","0.getting-started/5.Changelogs/cockpit-changelog",{"title":100,"path":101,"stem":102},"Figma Kit Changelog","/getting-started/changelogs/figma-kit-changelog","0.getting-started/5.Changelogs/figma-kit-changelog",{"title":104,"path":105,"stem":106},"Frontend Changelog","/getting-started/changelogs/frontend-changelog","0.getting-started/5.Changelogs/frontend-changelog",{"title":108,"path":109,"stem":110},"Orchestr Changelog","/getting-started/changelogs/orchestr-changelog","0.getting-started/5.Changelogs/orchestr-changelog",{"title":112,"path":113,"stem":114},"UI Changelog","/getting-started/changelogs/ui-changelog","0.getting-started/5.Changelogs/ui-changelog",{"title":116,"path":117,"stem":118,"children":119,"page":55},"Hints And Tips","/getting-started/hints-and-tips","0.getting-started/6.Hints-and-Tips",[120,124,128],{"title":121,"path":122,"stem":123},"Introduction","/getting-started/hints-and-tips/introduction","0.getting-started/6.Hints-and-Tips/0.introduction",{"title":125,"path":126,"stem":127},"Developer tools","/getting-started/hints-and-tips/developer-tools","0.getting-started/6.Hints-and-Tips/1.developer-tools",{"title":129,"path":130,"stem":131},"Claude Code plugin","/getting-started/hints-and-tips/claude-marketplace","0.getting-started/6.Hints-and-Tips/2.claude-marketplace",{"title":133,"path":134,"stem":135},"MCP Server","/getting-started/mcp-server","0.getting-started/7.mcp-server",{"title":137,"path":138,"stem":139,"children":140},"Frontend","/frontend","1.Frontend/0.index",[141,142,153,215,241,305],{"title":137,"path":138,"stem":139},{"title":121,"path":143,"stem":144,"children":145,"page":55},"/frontend/introduction","1.Frontend/1.Introduction",[146,149],{"title":19,"path":147,"stem":148},"/frontend/introduction/key-concepts","1.Frontend/1.Introduction/0.key-concepts",{"title":150,"path":151,"stem":152},"Tech Stack","/frontend/introduction/tech-stack","1.Frontend/1.Introduction/1.tech-stack",{"title":154,"path":155,"stem":156,"children":157},"Features","/frontend/features","1.Frontend/2.Features/0.index",[158,159,163,167,171,175,179,183,187,191,195,199,203,207,211],{"title":154,"path":155,"stem":156},{"title":160,"path":161,"stem":162},"Consent Management","/frontend/features/consent-management","1.Frontend/2.Features/consent-management",{"title":164,"path":165,"stem":166},"Currencies","/frontend/features/currencies","1.Frontend/2.Features/currencies",{"title":168,"path":169,"stem":170},"Environments & Staging","/frontend/features/environments","1.Frontend/2.Features/environments",{"title":172,"path":173,"stem":174},"Hooks","/frontend/features/hooks","1.Frontend/2.Features/hooks",{"title":176,"path":177,"stem":178},"Media and Media Library","/frontend/features/media","1.Frontend/2.Features/media",{"title":180,"path":181,"stem":182},"Multi-language Support","/frontend/features/multi-language-support","1.Frontend/2.Features/multi-language-support",{"title":184,"path":185,"stem":186},"Multi-market","/frontend/features/multi-market","1.Frontend/2.Features/multi-market",{"title":188,"path":189,"stem":190},"Page Types","/frontend/features/pagetypes","1.Frontend/2.Features/pagetypes",{"title":192,"path":193,"stem":194},"PWA","/frontend/features/pwa","1.Frontend/2.Features/pwa",{"title":196,"path":197,"stem":198},"Redirects","/frontend/features/redirects","1.Frontend/2.Features/redirects",{"title":200,"path":201,"stem":202},"Routing","/frontend/features/routing","1.Frontend/2.Features/routing",{"title":204,"path":205,"stem":206},"Server-Side Rendering (SSR) and Caching","/frontend/features/ssr-and-caching","1.Frontend/2.Features/ssr-and-caching",{"title":208,"path":209,"stem":210},"Tracking","/frontend/features/tracking","1.Frontend/2.Features/tracking",{"title":212,"path":213,"stem":214},"Z-Ordering","/frontend/features/z-ordering","1.Frontend/2.Features/z-ordering",{"title":216,"path":217,"stem":218,"children":219},"SEO","/frontend/seo","1.Frontend/3.SEO/0.index",[220,221,225,229,233,237],{"title":216,"path":217,"stem":218},{"title":222,"path":223,"stem":224},"Link Checker","/frontend/seo/link-checker","1.Frontend/3.SEO/link-checker",{"title":226,"path":227,"stem":228},"OG Image","/frontend/seo/og-image","1.Frontend/3.SEO/og-image",{"title":230,"path":231,"stem":232},"Robots.txt","/frontend/seo/robots-txt","1.Frontend/3.SEO/robots-txt",{"title":234,"path":235,"stem":236},"Schema.org","/frontend/seo/schema-org","1.Frontend/3.SEO/schema-org",{"title":238,"path":239,"stem":240},"Sitemap","/frontend/seo/sitemap","1.Frontend/3.SEO/sitemap",{"title":242,"path":243,"stem":244,"children":245},"Backend for Frontend","/frontend/orchestr","1.Frontend/4.Orchestr/0.index",[246,247,273,277,281,285,289,293,297,301],{"title":242,"path":243,"stem":244},{"title":248,"path":249,"stem":250,"children":251},"Recipes","/frontend/orchestr/recipes","1.Frontend/4.Orchestr/99.recipes/0.index",[252,253,257,261,265,269],{"title":248,"path":249,"stem":250},{"title":254,"path":255,"stem":256},"Analytics components from query handlers","/frontend/orchestr/recipes/analytics-from-query-handlers","1.Frontend/4.Orchestr/99.recipes/analytics-from-query-handlers",{"title":258,"path":259,"stem":260},"Identity cookies (cart and visitor IDs)","/frontend/orchestr/recipes/identity-cookies","1.Frontend/4.Orchestr/99.recipes/identity-cookies",{"title":262,"path":263,"stem":264},"System bootstrap in extendRequest","/frontend/orchestr/recipes/system-bootstrap","1.Frontend/4.Orchestr/99.recipes/system-bootstrap",{"title":266,"path":267,"stem":268},"Translating vendor errors","/frontend/orchestr/recipes/translating-vendor-errors","1.Frontend/4.Orchestr/99.recipes/translating-vendor-errors",{"title":270,"path":271,"stem":272},"Userland cache patterns","/frontend/orchestr/recipes/userland-cache-patterns","1.Frontend/4.Orchestr/99.recipes/userland-cache-patterns",{"title":274,"path":275,"stem":276},"Actions","/frontend/orchestr/actions","1.Frontend/4.Orchestr/Actions",{"title":278,"path":279,"stem":280},"Caching","/frontend/orchestr/caching","1.Frontend/4.Orchestr/Caching",{"title":282,"path":283,"stem":284},"Middleware","/frontend/orchestr/middleware","1.Frontend/4.Orchestr/Middleware",{"title":286,"path":287,"stem":288},"Queries & Links","/frontend/orchestr/queries","1.Frontend/4.Orchestr/Queries",{"title":290,"path":291,"stem":292},"Component Resolvers","/frontend/orchestr/component-resolvers","1.Frontend/4.Orchestr/component-resolvers",{"title":294,"path":295,"stem":296},"Filters","/frontend/orchestr/filters","1.Frontend/4.Orchestr/filters",{"title":298,"path":299,"stem":300},"URL Query Parameters","/frontend/orchestr/url-query-params","1.Frontend/4.Orchestr/url-query-params",{"title":302,"path":303,"stem":304},"Orchestr Wire Format","/frontend/orchestr/wire-format","1.Frontend/4.Orchestr/wire-format",{"title":306,"path":307,"stem":308,"children":309},"API Reference","/frontend/api-reference","1.Frontend/99.api-reference/0.index",[310,311,373,376,406,422,430,441,449,456],{"title":306,"path":307,"stem":308},{"title":312,"path":313,"stem":314,"children":315},"Entities","/frontend/api-reference/entities","1.Frontend/99.api-reference/01.entities/0.index",[316,317,321,325,329,333,337,341,345,349,353,357,361,365,369],{"title":312,"path":313,"stem":314},{"title":318,"path":319,"stem":320},"Product","/frontend/api-reference/entities/product","1.Frontend/99.api-reference/01.entities/1.product",{"title":322,"path":323,"stem":324},"SuggestedSearch","/frontend/api-reference/entities/suggested-search","1.Frontend/99.api-reference/01.entities/10.suggested-search",{"title":326,"path":327,"stem":328},"SuggestedSearchEntry","/frontend/api-reference/entities/suggested-search-entry","1.Frontend/99.api-reference/01.entities/11.suggested-search-entry",{"title":330,"path":331,"stem":332},"BlogCollection","/frontend/api-reference/entities/blog-collection","1.Frontend/99.api-reference/01.entities/12.blog-collection",{"title":334,"path":335,"stem":336},"Comment","/frontend/api-reference/entities/comment","1.Frontend/99.api-reference/01.entities/13.comment",{"title":338,"path":339,"stem":340},"Location","/frontend/api-reference/entities/location","1.Frontend/99.api-reference/01.entities/14.location",{"title":342,"path":343,"stem":344},"ProductVariant","/frontend/api-reference/entities/product-variant","1.Frontend/99.api-reference/01.entities/2.product-variant",{"title":346,"path":347,"stem":348},"Category","/frontend/api-reference/entities/category","1.Frontend/99.api-reference/01.entities/3.category",{"title":350,"path":351,"stem":352},"Cart","/frontend/api-reference/entities/cart","1.Frontend/99.api-reference/01.entities/4.cart",{"title":354,"path":355,"stem":356},"CartItem","/frontend/api-reference/entities/cart-item","1.Frontend/99.api-reference/01.entities/5.cart-item",{"title":358,"path":359,"stem":360},"Review","/frontend/api-reference/entities/review","1.Frontend/99.api-reference/01.entities/6.review",{"title":362,"path":363,"stem":364},"BreadcrumbItem","/frontend/api-reference/entities/breadcrumb-item","1.Frontend/99.api-reference/01.entities/7.breadcrumb-item",{"title":366,"path":367,"stem":368},"MenuItem","/frontend/api-reference/entities/menu-item","1.Frontend/99.api-reference/01.entities/8.menu-item",{"title":370,"path":371,"stem":372},"BlogPost","/frontend/api-reference/entities/blog-post","1.Frontend/99.api-reference/01.entities/9.blog-post",{"title":188,"path":374,"stem":375},"/frontend/api-reference/page-types","1.Frontend/99.api-reference/02.page-types",{"title":377,"path":378,"stem":379,"children":380},"Common Types","/frontend/api-reference/common-types","1.Frontend/99.api-reference/03.common-types/0.index",[381,382,386,390,394,398,402],{"title":377,"path":378,"stem":379},{"title":383,"path":384,"stem":385},"Link","/frontend/api-reference/common-types/link","1.Frontend/99.api-reference/03.common-types/1.link",{"title":387,"path":388,"stem":389},"Media","/frontend/api-reference/common-types/media","1.Frontend/99.api-reference/03.common-types/2.media",{"title":391,"path":392,"stem":393},"Money","/frontend/api-reference/common-types/money","1.Frontend/99.api-reference/03.common-types/3.money",{"title":395,"path":396,"stem":397},"UnitPrice","/frontend/api-reference/common-types/unit-price","1.Frontend/99.api-reference/03.common-types/4.unit-price",{"title":399,"path":400,"stem":401},"Measurement","/frontend/api-reference/common-types/measurement","1.Frontend/99.api-reference/03.common-types/5.measurement",{"title":403,"path":404,"stem":405},"Opening Hours","/frontend/api-reference/common-types/opening-hours","1.Frontend/99.api-reference/03.common-types/6.opening-hours",{"title":407,"path":408,"stem":409,"children":410,"page":55},"Ecommerce","/frontend/api-reference/ecommerce","1.Frontend/99.api-reference/10.ecommerce",[411,414,418],{"title":274,"path":412,"stem":413},"/frontend/api-reference/ecommerce/actions","1.Frontend/99.api-reference/10.ecommerce/1.actions",{"title":415,"path":416,"stem":417},"Queries","/frontend/api-reference/ecommerce/queries","1.Frontend/99.api-reference/10.ecommerce/2.queries",{"title":419,"path":420,"stem":421},"Errors","/frontend/api-reference/ecommerce/errors","1.Frontend/99.api-reference/10.ecommerce/3.errors",{"title":423,"path":424,"stem":425,"children":426,"page":55},"Newsletter","/frontend/api-reference/newsletter","1.Frontend/99.api-reference/11.newsletter",[427],{"title":274,"path":428,"stem":429},"/frontend/api-reference/newsletter/actions","1.Frontend/99.api-reference/11.newsletter/1.actions",{"title":431,"path":432,"stem":433,"children":434,"page":55},"Blog","/frontend/api-reference/blog","1.Frontend/99.api-reference/12.blog",[435,438],{"title":415,"path":436,"stem":437},"/frontend/api-reference/blog/queries","1.Frontend/99.api-reference/12.blog/1.queries",{"title":419,"path":439,"stem":440},"/frontend/api-reference/blog/errors","1.Frontend/99.api-reference/12.blog/2.errors",{"title":442,"path":443,"stem":444,"children":445,"page":55},"Suggested Search","/frontend/api-reference/suggested-search","1.Frontend/99.api-reference/13.suggested-search",[446],{"title":415,"path":447,"stem":448},"/frontend/api-reference/suggested-search/queries","1.Frontend/99.api-reference/13.suggested-search/1.queries",{"title":208,"path":450,"stem":451,"children":452,"page":55},"/frontend/api-reference/tracking","1.Frontend/99.api-reference/14.tracking",[453],{"title":274,"path":454,"stem":455},"/frontend/api-reference/tracking/actions","1.Frontend/99.api-reference/14.tracking/1.actions",{"title":338,"path":457,"stem":458,"children":459,"page":55},"/frontend/api-reference/location","1.Frontend/99.api-reference/15.location",[460],{"title":415,"path":461,"stem":462},"/frontend/api-reference/location/queries","1.Frontend/99.api-reference/15.location/1.queries",{"title":464,"path":465,"stem":466,"children":467},"Apps","/apps","2.Apps/0.index",[468,469,545,631],{"title":464,"path":465,"stem":466},{"title":470,"path":471,"stem":472,"children":473},"App Development","/apps/app-development","2.Apps/app-development/0.index",[474,475,497,501,505,509,513,517,521,525,529,533,537,541],{"title":470,"path":471,"stem":472},{"title":476,"path":477,"stem":478,"children":479},"Guides","/apps/app-development/guides","2.Apps/app-development/99.guides/0.index",[480,481,485,489,493],{"title":476,"path":477,"stem":478},{"title":482,"path":483,"stem":484},"Separate schema components from UI components","/apps/app-development/guides/schema-components-vs-ui-components","2.Apps/app-development/99.guides/schema-components-vs-ui-components",{"title":486,"path":487,"stem":488},"Section config standard","/apps/app-development/guides/section-config-standard","2.Apps/app-development/99.guides/section-config-standard",{"title":490,"path":491,"stem":492},"Shared field factories","/apps/app-development/guides/shared-field-factories","2.Apps/app-development/99.guides/shared-field-factories",{"title":494,"path":495,"stem":496},"How to write CSS","/apps/app-development/guides/writing-css","2.Apps/app-development/99.guides/writing-css",{"title":498,"path":499,"stem":500},"App Configuration","/apps/app-development/app-configuration","2.Apps/app-development/app-configuration",{"title":502,"path":503,"stem":504},"App Starter","/apps/app-development/app-starter","2.Apps/app-development/app-starter",{"title":506,"path":507,"stem":508},"Best Practice","/apps/app-development/best-practice","2.Apps/app-development/best-practice",{"title":510,"path":511,"stem":512},"Block Definitions","/apps/app-development/block-definitions","2.Apps/app-development/block-definitions",{"title":514,"path":515,"stem":516},"Coding Standards","/apps/app-development/coding-standards","2.Apps/app-development/coding-standards",{"title":518,"path":519,"stem":520},"Consent Adapters","/apps/app-development/consent-adapters","2.Apps/app-development/consent-adapters",{"title":522,"path":523,"stem":524},"Consuming Query Fields","/apps/app-development/consuming-query-fields","2.Apps/app-development/consuming-query-fields",{"title":526,"path":527,"stem":528},"Implementation Overview","/apps/app-development/implementation-overview","2.Apps/app-development/implementation-overview",{"title":530,"path":531,"stem":532},"Platform Dependencies","/apps/app-development/platform-dependencies","2.Apps/app-development/platform-dependencies",{"title":534,"path":535,"stem":536},"Schema Fields","/apps/app-development/schema-fields","2.Apps/app-development/schema-fields",{"title":538,"path":539,"stem":540},"Section Definitions","/apps/app-development/section-definitions","2.Apps/app-development/section-definitions",{"title":542,"path":543,"stem":544},"Studio Icons","/apps/app-development/studio-icons","2.Apps/app-development/studio-icons",{"title":546,"path":547,"stem":548,"children":549},"App Docs","/apps/app-docs","2.Apps/app-docs/0.index",[550,551,555,559,563,567,571,575,579,583,587,591,595,599,603,607,611,615,619,623,627],{"title":546,"path":547,"stem":548},{"title":552,"path":553,"stem":554},"Actindo","/apps/app-docs/actindo","2.Apps/app-docs/actindo",{"title":556,"path":557,"stem":558},"Adobe Commerce","/apps/app-docs/adobe-commerce","2.Apps/app-docs/adobe-commerce",{"title":560,"path":561,"stem":562},"B2Bsellers","/apps/app-docs/b2bsellers","2.Apps/app-docs/b2bsellers",{"title":564,"path":565,"stem":566},"Battery Included","/apps/app-docs/battery-included","2.Apps/app-docs/battery-included",{"title":568,"path":569,"stem":570},"CCM19","/apps/app-docs/ccm19","2.Apps/app-docs/ccm19",{"title":572,"path":573,"stem":574},"Cookiebot","/apps/app-docs/cookiebot","2.Apps/app-docs/cookiebot",{"title":576,"path":577,"stem":578},"Google Tag Manager (GTM)","/apps/app-docs/gtm","2.Apps/app-docs/gtm",{"title":580,"path":581,"stem":582},"Hygraph","/apps/app-docs/hygraph","2.Apps/app-docs/hygraph",{"title":584,"path":585,"stem":586},"JTL Platform","/apps/app-docs/jtl-platform","2.Apps/app-docs/jtl-platform",{"title":588,"path":589,"stem":590},"Nimstrata Google Retail API","/apps/app-docs/nimstrata","2.Apps/app-docs/nimstrata",{"title":592,"path":593,"stem":594},"Pimcore","/apps/app-docs/pimcore","2.Apps/app-docs/pimcore",{"title":596,"path":597,"stem":598},"Sylius","/apps/app-docs/sylius","2.Apps/app-docs/sylius",{"title":600,"path":601,"stem":602},"Commercetools","/apps/app-docs/commercetools","2.apps/app-docs/commercetools",{"title":604,"path":605,"stem":606},"Emporix","/apps/app-docs/emporix","2.apps/app-docs/emporix",{"title":608,"path":609,"stem":610},"Klaviyo","/apps/app-docs/klaviyo","2.apps/app-docs/klaviyo",{"title":612,"path":613,"stem":614},"OXID eShop","/apps/app-docs/oxid","2.apps/app-docs/oxid",{"title":616,"path":617,"stem":618},"Shopify","/apps/app-docs/shopify","2.apps/app-docs/shopify",{"title":620,"path":621,"stem":622},"Shopware","/apps/app-docs/shopware","2.apps/app-docs/shopware",{"title":624,"path":625,"stem":626},"Vercel Analytics","/apps/app-docs/vercel-analytics","2.apps/app-docs/vercel-analytics",{"title":628,"path":629,"stem":630},"Vercel Speed Insights","/apps/app-docs/vercel-speed-insights","2.apps/app-docs/vercel-speed-insights",{"title":632,"path":633,"stem":634,"children":635,"page":55},"Essentials","/apps/essentials","2.Apps/essentials",[636,640,644],{"title":637,"path":638,"stem":639},"Legal","/apps/essentials/legal","2.Apps/essentials/legal",{"title":641,"path":642,"stem":643},"Mailer","/apps/essentials/mailer","2.Apps/essentials/mailer",{"title":216,"path":645,"stem":646},"/apps/essentials/seo","2.Apps/essentials/seo",{"title":648,"path":649,"stem":650,"children":651},"Laioutr UI","/laioutr-ui","3.laioutr-ui/0.index",[652,653,685,691,697,885,902,908,914,968,986,1116],{"title":648,"path":649,"stem":650},{"title":5,"path":654,"stem":655,"children":656},"/laioutr-ui/getting-started","3.laioutr-ui/01.getting-started/0.index",[657,658,662,666,670,674,678,682],{"title":5,"path":654,"stem":655},{"title":659,"path":660,"stem":661},"Browser support","/laioutr-ui/getting-started/browser-support","3.laioutr-ui/01.getting-started/1.browser-support",{"title":663,"path":664,"stem":665},"Common Data","/laioutr-ui/getting-started/common-data","3.laioutr-ui/01.getting-started/99.common-data",{"title":667,"path":668,"stem":669},"CSS Layers","/laioutr-ui/getting-started/css-layers","3.laioutr-ui/01.getting-started/css-layers",{"title":671,"path":672,"stem":673},"Figma Kit","/laioutr-ui/getting-started/figma-kit","3.laioutr-ui/01.getting-started/figma-kit",{"title":675,"path":676,"stem":677},"Surface Tone","/laioutr-ui/getting-started/surface-tone","3.laioutr-ui/01.getting-started/surface-tone",{"title":679,"path":680,"stem":681},"Theming","/laioutr-ui/getting-started/theming","3.laioutr-ui/01.getting-started/theming",{"title":212,"path":683,"stem":684},"/laioutr-ui/getting-started/z-ordering","3.laioutr-ui/01.getting-started/z-ordering",{"title":686,"path":687,"stem":688,"children":689},"B2B","/laioutr-ui/b2b","3.laioutr-ui/b2b/0.index",[690],{"title":686,"path":687,"stem":688},{"title":692,"path":693,"stem":694,"children":695},"Booking","/laioutr-ui/booking","3.laioutr-ui/booking/0.index",[696],{"title":692,"path":693,"stem":694},{"title":698,"path":699,"stem":700,"children":701},"CMS","/laioutr-ui/cms","3.laioutr-ui/cms/0.index",[702,703,709,734,746,750,754,758,762,766,778,799,820,836],{"title":698,"path":699,"stem":700},{"title":704,"path":705,"stem":706,"children":707},"Alphabetical Index","/laioutr-ui/cms/alphabetical-index","3.laioutr-ui/cms/alphabetical-index",[708],{"title":704,"path":705,"stem":706},{"title":710,"path":711,"stem":712,"children":713,"page":55},"Banner","/laioutr-ui/cms/banner","3.laioutr-ui/cms/banner",[714,718,722,726,730],{"title":715,"path":716,"stem":717},"Banner Basic","/laioutr-ui/cms/banner/banner-basic","3.laioutr-ui/cms/banner/banner-basic",{"title":719,"path":720,"stem":721},"Banner Integrated","/laioutr-ui/cms/banner/banner-integrated","3.laioutr-ui/cms/banner/banner-integrated",{"title":723,"path":724,"stem":725},"Banner Showcase","/laioutr-ui/cms/banner/banner-showcase","3.laioutr-ui/cms/banner/banner-showcase",{"title":727,"path":728,"stem":729},"Media + Text","/laioutr-ui/cms/banner/media-text","3.laioutr-ui/cms/banner/media-text",{"title":731,"path":732,"stem":733},"USP Banner","/laioutr-ui/cms/banner/usp-banner","3.laioutr-ui/cms/banner/usp-banner",{"title":431,"path":735,"stem":736,"children":737,"page":55},"/laioutr-ui/cms/blog","3.laioutr-ui/cms/blog",[738,742],{"title":739,"path":740,"stem":741},"Blog Post Detail","/laioutr-ui/cms/blog/blog-post-detail","3.laioutr-ui/cms/blog/blog-post-detail",{"title":743,"path":744,"stem":745},"Blog Post Listing","/laioutr-ui/cms/blog/blog-post-listing","3.laioutr-ui/cms/blog/blog-post-listing",{"title":747,"path":748,"stem":749},"Brand Hero","/laioutr-ui/cms/brand-hero","3.laioutr-ui/cms/brand-hero",{"title":751,"path":752,"stem":753},"Container","/laioutr-ui/cms/container","3.laioutr-ui/cms/container",{"title":755,"path":756,"stem":757},"Content Grid","/laioutr-ui/cms/content-grid","3.laioutr-ui/cms/content-grid",{"title":759,"path":760,"stem":761},"Editorial Grid","/laioutr-ui/cms/editorial-grid","3.laioutr-ui/cms/editorial-grid",{"title":763,"path":764,"stem":765},"Media Gallery","/laioutr-ui/cms/media-gallery","3.laioutr-ui/cms/media-gallery",{"title":423,"path":767,"stem":768,"children":769,"page":55},"/laioutr-ui/cms/newsletter","3.laioutr-ui/cms/newsletter",[770,774],{"title":771,"path":772,"stem":773},"Email Input Form","/laioutr-ui/cms/newsletter/email-input-form","3.laioutr-ui/cms/newsletter/email-input-form",{"title":775,"path":776,"stem":777},"Newsletter Registration","/laioutr-ui/cms/newsletter/newsletter-registration","3.laioutr-ui/cms/newsletter/newsletter-registration",{"title":779,"path":780,"stem":781,"children":782,"page":55},"Popups","/laioutr-ui/cms/popups","3.laioutr-ui/cms/popups",[783,787,791,795],{"title":784,"path":785,"stem":786},"PopUp","/laioutr-ui/cms/popups/pop-up","3.laioutr-ui/cms/popups/pop-up",{"title":788,"path":789,"stem":790},"PopUp Info","/laioutr-ui/cms/popups/pop-up-info","3.laioutr-ui/cms/popups/pop-up-info",{"title":792,"path":793,"stem":794},"PopUp Newsletter","/laioutr-ui/cms/popups/pop-up-newsletter","3.laioutr-ui/cms/popups/pop-up-newsletter",{"title":796,"path":797,"stem":798},"PopUp Promotion","/laioutr-ui/cms/popups/pop-up-promotion","3.laioutr-ui/cms/popups/pop-up-promotion",{"title":800,"path":801,"stem":802,"children":803,"page":55},"Quotes","/laioutr-ui/cms/quotes","3.laioutr-ui/cms/quotes",[804,808,812,816],{"title":805,"path":806,"stem":807},"Persona Quote","/laioutr-ui/cms/quotes/persona-quote","3.laioutr-ui/cms/quotes/persona-quote",{"title":809,"path":810,"stem":811},"Persona Quote Slider","/laioutr-ui/cms/quotes/persona-quote-slider","3.laioutr-ui/cms/quotes/persona-quote-slider",{"title":813,"path":814,"stem":815},"Quote Card","/laioutr-ui/cms/quotes/quote-card","3.laioutr-ui/cms/quotes/quote-card",{"title":817,"path":818,"stem":819},"Quote Card Slider","/laioutr-ui/cms/quotes/quote-card-slider","3.laioutr-ui/cms/quotes/quote-card-slider",{"title":821,"path":822,"stem":823,"children":824,"page":55},"Reviews","/laioutr-ui/cms/reviews","3.laioutr-ui/cms/reviews",[825,828,832],{"title":358,"path":826,"stem":827},"/laioutr-ui/cms/reviews/review","3.laioutr-ui/cms/reviews/review",{"title":829,"path":830,"stem":831},"Review Form","/laioutr-ui/cms/reviews/review-form","3.laioutr-ui/cms/reviews/review-form",{"title":833,"path":834,"stem":835},"Social Share","/laioutr-ui/cms/reviews/social-share","3.laioutr-ui/cms/reviews/social-share",{"title":837,"path":838,"stem":839,"children":840,"page":55},"Slider","/laioutr-ui/cms/slider","3.laioutr-ui/cms/slider",[841,845,849,853,857,861,865,869,873,877,881],{"title":842,"path":843,"stem":844},"Content Slider","/laioutr-ui/cms/slider/content-slider","3.laioutr-ui/cms/slider/content-slider",{"title":846,"path":847,"stem":848},"Hero Slider","/laioutr-ui/cms/slider/hero-slider","3.laioutr-ui/cms/slider/hero-slider",{"title":850,"path":851,"stem":852},"Logo Grid","/laioutr-ui/cms/slider/logo-grid","3.laioutr-ui/cms/slider/logo-grid",{"title":854,"path":855,"stem":856},"Logo Slider","/laioutr-ui/cms/slider/logo-slider","3.laioutr-ui/cms/slider/logo-slider",{"title":858,"path":859,"stem":860},"Swiper Arrows","/laioutr-ui/cms/slider/swiper-arrows","3.laioutr-ui/cms/slider/swiper-arrows",{"title":862,"path":863,"stem":864},"Swiper Bullets","/laioutr-ui/cms/slider/swiper-bullets","3.laioutr-ui/cms/slider/swiper-bullets",{"title":866,"path":867,"stem":868},"Swiper Chrome","/laioutr-ui/cms/slider/swiper-chrome","3.laioutr-ui/cms/slider/swiper-chrome",{"title":870,"path":871,"stem":872},"Swiper Nav Bar","/laioutr-ui/cms/slider/swiper-nav-bar","3.laioutr-ui/cms/slider/swiper-nav-bar",{"title":874,"path":875,"stem":876},"Swiper Numbers","/laioutr-ui/cms/slider/swiper-numbers","3.laioutr-ui/cms/slider/swiper-numbers",{"title":878,"path":879,"stem":880},"Swiper Scrollbar","/laioutr-ui/cms/slider/swiper-scrollbar","3.laioutr-ui/cms/slider/swiper-scrollbar",{"title":882,"path":883,"stem":884},"Thumbnails Slider","/laioutr-ui/cms/slider/thumbnails-slider","3.laioutr-ui/cms/slider/thumbnails-slider",{"title":338,"path":886,"stem":887,"children":888},"/laioutr-ui/location","3.laioutr-ui/location/0.index",[889,890,894,898],{"title":338,"path":886,"stem":887},{"title":891,"path":892,"stem":893},"Location Card","/laioutr-ui/location/location-card","3.laioutr-ui/location/location-card",{"title":895,"path":896,"stem":897},"Location Detail","/laioutr-ui/location/location-detail","3.laioutr-ui/location/location-detail",{"title":899,"path":900,"stem":901},"Location Finder","/laioutr-ui/location/location-finder","3.laioutr-ui/location/location-finder",{"title":903,"path":904,"stem":905,"children":906},"Marketplace","/laioutr-ui/marketplace","3.laioutr-ui/marketplace/0.index",[907],{"title":903,"path":904,"stem":905},{"title":909,"path":910,"stem":911,"children":912},"Multichannel","/laioutr-ui/multichannel","3.laioutr-ui/multichannel/0.index",[913],{"title":909,"path":910,"stem":911},{"title":915,"path":916,"stem":917,"children":918},"Navigation & Headers","/laioutr-ui/navigation","3.laioutr-ui/navigation/0.index",[919,920,924,928,932,936,940,944,948,952,956,960,964],{"title":915,"path":916,"stem":917},{"title":921,"path":922,"stem":923},"Breadcrumbs","/laioutr-ui/navigation/breadcrumbs","3.laioutr-ui/navigation/breadcrumbs",{"title":925,"path":926,"stem":927},"Footer","/laioutr-ui/navigation/footer","3.laioutr-ui/navigation/footer",{"title":929,"path":930,"stem":931},"Footer Menu","/laioutr-ui/navigation/footer-menu","3.laioutr-ui/navigation/footer-menu",{"title":933,"path":934,"stem":935},"Header Basic","/laioutr-ui/navigation/header-basic","3.laioutr-ui/navigation/header-basic",{"title":937,"path":938,"stem":939},"Header Shop","/laioutr-ui/navigation/header-shop","3.laioutr-ui/navigation/header-shop",{"title":941,"path":942,"stem":943},"Mega Menu","/laioutr-ui/navigation/mega-menu","3.laioutr-ui/navigation/mega-menu",{"title":945,"path":946,"stem":947},"Menu Side by Side","/laioutr-ui/navigation/menu-side-by-side","3.laioutr-ui/navigation/menu-side-by-side",{"title":949,"path":950,"stem":951},"Mobile Menu (Basic)","/laioutr-ui/navigation/mobile-menu-basic","3.laioutr-ui/navigation/mobile-menu-basic",{"title":953,"path":954,"stem":955},"Mobile Menu (Shop)","/laioutr-ui/navigation/mobile-menu-shop","3.laioutr-ui/navigation/mobile-menu-shop",{"title":957,"path":958,"stem":959},"Page Not Found","/laioutr-ui/navigation/page-not-found","3.laioutr-ui/navigation/page-not-found",{"title":961,"path":962,"stem":963},"Search Auto-Suggest","/laioutr-ui/navigation/search-auto-suggest","3.laioutr-ui/navigation/search-auto-suggest",{"title":965,"path":966,"stem":967},"Top Bar","/laioutr-ui/navigation/top-bar","3.laioutr-ui/navigation/top-bar",{"title":969,"path":970,"stem":971,"children":972},"SaaS","/laioutr-ui/saas","3.laioutr-ui/saas/0.index",[973,974,978,982],{"title":969,"path":970,"stem":971},{"title":975,"path":976,"stem":977},"Plan Card","/laioutr-ui/saas/plan-card","3.laioutr-ui/saas/plan-card",{"title":979,"path":980,"stem":981},"Plan Card Slider","/laioutr-ui/saas/plan-card-slider","3.laioutr-ui/saas/plan-card-slider",{"title":983,"path":984,"stem":985},"Plan Comparison Table","/laioutr-ui/saas/plan-comparison-table","3.laioutr-ui/saas/plan-comparison-table",{"title":987,"path":988,"stem":989,"children":990},"Shop","/laioutr-ui/shop","3.laioutr-ui/shop/0.index",[991,992,1020,1024,1028,1032,1036,1092,1096,1100,1104,1108,1112],{"title":987,"path":988,"stem":989},{"title":350,"path":993,"stem":994,"children":995,"page":55},"/laioutr-ui/shop/cart","3.laioutr-ui/shop/cart",[996,1000,1004,1008,1012,1016],{"title":997,"path":998,"stem":999},"Cart Coupon Code Accordion","/laioutr-ui/shop/cart/cart-coupon-code-accordion","3.laioutr-ui/shop/cart/cart-coupon-code-accordion",{"title":1001,"path":1002,"stem":1003},"Cart List Item","/laioutr-ui/shop/cart/cart-list-item","3.laioutr-ui/shop/cart/cart-list-item",{"title":1005,"path":1006,"stem":1007},"Cart Sheet","/laioutr-ui/shop/cart/cart-sheet","3.laioutr-ui/shop/cart/cart-sheet",{"title":1009,"path":1010,"stem":1011},"Cart Summary Box","/laioutr-ui/shop/cart/cart-summary-box","3.laioutr-ui/shop/cart/cart-summary-box",{"title":1013,"path":1014,"stem":1015},"Empty State Cart","/laioutr-ui/shop/cart/empty-state-cart","3.laioutr-ui/shop/cart/empty-state-cart",{"title":1017,"path":1018,"stem":1019},"Free Delivery Progress","/laioutr-ui/shop/cart/free-delivery-progress","3.laioutr-ui/shop/cart/free-delivery-progress",{"title":1021,"path":1022,"stem":1023},"Category Card Grid","/laioutr-ui/shop/category-card-grid","3.laioutr-ui/shop/category-card-grid",{"title":1025,"path":1026,"stem":1027},"Category Card Slider","/laioutr-ui/shop/category-card-slider","3.laioutr-ui/shop/category-card-slider",{"title":1029,"path":1030,"stem":1031},"Filter Bar","/laioutr-ui/shop/filter-bar","3.laioutr-ui/shop/filter-bar",{"title":1033,"path":1034,"stem":1035},"Filter Off Canvas","/laioutr-ui/shop/filter-off-canvas","3.laioutr-ui/shop/filter-off-canvas",{"title":1037,"path":1038,"stem":1039,"children":1040,"page":55},"Product Detail","/laioutr-ui/shop/product-detail","3.laioutr-ui/shop/product-detail",[1041,1045,1049,1053,1057,1061,1064,1068,1072,1076,1080,1084,1088],{"title":1042,"path":1043,"stem":1044},"Add to Cart","/laioutr-ui/shop/product-detail/add-to-cart","3.laioutr-ui/shop/product-detail/add-to-cart",{"title":1046,"path":1047,"stem":1048},"Benefits Box","/laioutr-ui/shop/product-detail/benefits-box","3.laioutr-ui/shop/product-detail/benefits-box",{"title":1050,"path":1051,"stem":1052},"Coupon Box","/laioutr-ui/shop/product-detail/coupon-box","3.laioutr-ui/shop/product-detail/coupon-box",{"title":1054,"path":1055,"stem":1056},"Energy Label","/laioutr-ui/shop/product-detail/energy-label","3.laioutr-ui/shop/product-detail/energy-label",{"title":1058,"path":1059,"stem":1060},"Price Info","/laioutr-ui/shop/product-detail/price-info","3.laioutr-ui/shop/product-detail/price-info",{"title":1037,"path":1062,"stem":1063},"/laioutr-ui/shop/product-detail/product-detail","3.laioutr-ui/shop/product-detail/product-detail",{"title":1065,"path":1066,"stem":1067},"Product Image Gallery","/laioutr-ui/shop/product-detail/product-image-gallery","3.laioutr-ui/shop/product-detail/product-image-gallery",{"title":1069,"path":1070,"stem":1071},"Product Title","/laioutr-ui/shop/product-detail/product-title","3.laioutr-ui/shop/product-detail/product-title",{"title":1073,"path":1074,"stem":1075},"Quantity Discount","/laioutr-ui/shop/product-detail/quantity-discount","3.laioutr-ui/shop/product-detail/quantity-discount",{"title":1077,"path":1078,"stem":1079},"Variant Off Canvas","/laioutr-ui/shop/product-detail/variant-off-canvas","3.laioutr-ui/shop/product-detail/variant-off-canvas",{"title":1081,"path":1082,"stem":1083},"Variant Selector Configurator","/laioutr-ui/shop/product-detail/variant-selector-configurator","3.laioutr-ui/shop/product-detail/variant-selector-configurator",{"title":1085,"path":1086,"stem":1087},"Variant Selector (Multiple)","/laioutr-ui/shop/product-detail/variant-selector-multiple","3.laioutr-ui/shop/product-detail/variant-selector-multiple",{"title":1089,"path":1090,"stem":1091},"Variant Selector Options","/laioutr-ui/shop/product-detail/variant-selector-options","3.laioutr-ui/shop/product-detail/variant-selector-options",{"title":1093,"path":1094,"stem":1095},"Product Listing Grid","/laioutr-ui/shop/product-listing-grid","3.laioutr-ui/shop/product-listing-grid",{"title":1097,"path":1098,"stem":1099},"Product Slider","/laioutr-ui/shop/product-slider","3.laioutr-ui/shop/product-slider",{"title":1101,"path":1102,"stem":1103},"Product Slider Showcase","/laioutr-ui/shop/product-slider-showcase","3.laioutr-ui/shop/product-slider-showcase",{"title":1105,"path":1106,"stem":1107},"Product Tile (Basic)","/laioutr-ui/shop/product-tile-basic","3.laioutr-ui/shop/product-tile-basic",{"title":1109,"path":1110,"stem":1111},"Search Result Hero","/laioutr-ui/shop/search-result-hero","3.laioutr-ui/shop/search-result-hero",{"title":1113,"path":1114,"stem":1115},"Sort Modes","/laioutr-ui/shop/sort-modes","3.laioutr-ui/shop/sort-modes",{"title":1117,"path":1118,"stem":1119,"children":1120},"UI Kit","/laioutr-ui/ui-kit","3.laioutr-ui/ui-kit/0.index",[1121,1122,1282,1306,1327,1344,1381,1490,1519],{"title":1117,"path":1118,"stem":1119},{"title":1123,"path":1124,"stem":1125,"children":1126,"page":55},"General","/laioutr-ui/ui-kit/general","3.laioutr-ui/ui-kit/01.general",[1127,1131,1135,1139,1143,1147,1151,1155,1159,1163,1167,1170,1174,1178,1182,1186,1190,1194,1198,1202,1206,1210,1214,1218,1222,1226,1230,1234,1238,1242,1246,1250,1254,1258,1262,1266,1270,1274,1278],{"title":1128,"path":1129,"stem":1130},"Accordion","/laioutr-ui/ui-kit/general/accordion","3.laioutr-ui/ui-kit/01.general/Accordion",{"title":1132,"path":1133,"stem":1134},"Avatar","/laioutr-ui/ui-kit/general/avatar","3.laioutr-ui/ui-kit/01.general/Avatar",{"title":1136,"path":1137,"stem":1138},"Backdrop","/laioutr-ui/ui-kit/general/backdrop","3.laioutr-ui/ui-kit/01.general/Backdrop",{"title":1140,"path":1141,"stem":1142},"Dropdown Menu","/laioutr-ui/ui-kit/general/dropdownmenu","3.laioutr-ui/ui-kit/01.general/DropdownMenu",{"title":1144,"path":1145,"stem":1146},"Edge Glow","/laioutr-ui/ui-kit/general/edgeglow","3.laioutr-ui/ui-kit/01.general/EdgeGlow",{"title":1148,"path":1149,"stem":1150},"Empty State","/laioutr-ui/ui-kit/general/emptystate","3.laioutr-ui/ui-kit/01.general/EmptyState",{"title":1152,"path":1153,"stem":1154},"Icon","/laioutr-ui/ui-kit/general/icon","3.laioutr-ui/ui-kit/01.general/Icon",{"title":1156,"path":1157,"stem":1158},"Image Contrast Overlay","/laioutr-ui/ui-kit/general/imagecontrastoverlay","3.laioutr-ui/ui-kit/01.general/ImageContrastOverlay",{"title":1160,"path":1161,"stem":1162},"Lightbox","/laioutr-ui/ui-kit/general/lightbox","3.laioutr-ui/ui-kit/01.general/Lightbox",{"title":1164,"path":1165,"stem":1166},"Loading Spinner","/laioutr-ui/ui-kit/general/loadingspinner","3.laioutr-ui/ui-kit/01.general/LoadingSpinner",{"title":387,"path":1168,"stem":1169},"/laioutr-ui/ui-kit/general/media","3.laioutr-ui/ui-kit/01.general/Media",{"title":1171,"path":1172,"stem":1173},"Navigation Bullets","/laioutr-ui/ui-kit/general/navigationbullets","3.laioutr-ui/ui-kit/01.general/NavigationBullets",{"title":1175,"path":1176,"stem":1177},"Placeholder","/laioutr-ui/ui-kit/general/placeholder","3.laioutr-ui/ui-kit/01.general/Placeholder",{"title":1179,"path":1180,"stem":1181},"Progress Bar","/laioutr-ui/ui-kit/general/progressbar","3.laioutr-ui/ui-kit/01.general/ProgressBar",{"title":1183,"path":1184,"stem":1185},"Scrollbar","/laioutr-ui/ui-kit/general/scrollbar","3.laioutr-ui/ui-kit/01.general/Scrollbar",{"title":1187,"path":1188,"stem":1189},"Swatch","/laioutr-ui/ui-kit/general/swatch","3.laioutr-ui/ui-kit/01.general/Swatch",{"title":1191,"path":1192,"stem":1193},"SwiperScrollbar","/laioutr-ui/ui-kit/general/swiperscrollbar","3.laioutr-ui/ui-kit/01.general/SwiperScrollbar",{"title":1195,"path":1196,"stem":1197},"Thumbnail","/laioutr-ui/ui-kit/general/thumbnail","3.laioutr-ui/ui-kit/01.general/Thumbnail",{"title":1199,"path":1200,"stem":1201},"Tooltip","/laioutr-ui/ui-kit/general/tooltip","3.laioutr-ui/ui-kit/01.general/Tooltip",{"title":1203,"path":1204,"stem":1205},"Amount Pill","/laioutr-ui/ui-kit/general/amount-pill","3.laioutr-ui/ui-kit/01.general/amount-pill",{"title":1207,"path":1208,"stem":1209},"Dark Mode Switch","/laioutr-ui/ui-kit/general/dark-mode-switch","3.laioutr-ui/ui-kit/01.general/dark-mode-switch",{"title":1211,"path":1212,"stem":1213},"Language Switcher","/laioutr-ui/ui-kit/general/language-switcher","3.laioutr-ui/ui-kit/01.general/language-switcher",{"title":1215,"path":1216,"stem":1217},"Media Preview","/laioutr-ui/ui-kit/general/media-preview","3.laioutr-ui/ui-kit/01.general/media-preview",{"title":1219,"path":1220,"stem":1221},"Media Stage","/laioutr-ui/ui-kit/general/media-stage","3.laioutr-ui/ui-kit/01.general/media-stage",{"title":1223,"path":1224,"stem":1225},"Nav Link Item","/laioutr-ui/ui-kit/general/nav-link-item","3.laioutr-ui/ui-kit/01.general/nav-link-item",{"title":1227,"path":1228,"stem":1229},"Nav Section Heading","/laioutr-ui/ui-kit/general/nav-section-heading","3.laioutr-ui/ui-kit/01.general/nav-section-heading",{"title":1231,"path":1232,"stem":1233},"OnSurface","/laioutr-ui/ui-kit/general/on-surface","3.laioutr-ui/ui-kit/01.general/on-surface",{"title":1235,"path":1236,"stem":1237},"Opening Hours Weekly Table","/laioutr-ui/ui-kit/general/opening-hours-weekly-table","3.laioutr-ui/ui-kit/01.general/opening-hours-weekly-table",{"title":1239,"path":1240,"stem":1241},"Opening Status","/laioutr-ui/ui-kit/general/opening-status","3.laioutr-ui/ui-kit/01.general/opening-status",{"title":1243,"path":1244,"stem":1245},"Opening Status Detail","/laioutr-ui/ui-kit/general/opening-status-detail","3.laioutr-ui/ui-kit/01.general/opening-status-detail",{"title":1247,"path":1248,"stem":1249},"Opening Status Indicator","/laioutr-ui/ui-kit/general/opening-status-indicator","3.laioutr-ui/ui-kit/01.general/opening-status-indicator",{"title":1251,"path":1252,"stem":1253},"Rating Progress Bar Filter","/laioutr-ui/ui-kit/general/rating-progress-bar-filter","3.laioutr-ui/ui-kit/01.general/rating-progress-bar-filter",{"title":1255,"path":1256,"stem":1257},"Status Message","/laioutr-ui/ui-kit/general/status-message","3.laioutr-ui/ui-kit/01.general/status-message",{"title":1259,"path":1260,"stem":1261},"Stock Info Summary","/laioutr-ui/ui-kit/general/stock-info-summary","3.laioutr-ui/ui-kit/01.general/stock-info-summary",{"title":1263,"path":1264,"stem":1265},"Swatch Chip","/laioutr-ui/ui-kit/general/swatch-chip","3.laioutr-ui/ui-kit/01.general/swatch-chip",{"title":1267,"path":1268,"stem":1269},"Swatch Option","/laioutr-ui/ui-kit/general/swatch-option","3.laioutr-ui/ui-kit/01.general/swatch-option",{"title":1271,"path":1272,"stem":1273},"Swatch Summary","/laioutr-ui/ui-kit/general/swatch-summary","3.laioutr-ui/ui-kit/01.general/swatch-summary",{"title":1275,"path":1276,"stem":1277},"Zoom Level (Segmented)","/laioutr-ui/ui-kit/general/zoom-level-segmented","3.laioutr-ui/ui-kit/01.general/zoom-level-segmented",{"title":1279,"path":1280,"stem":1281},"Zoom Level (Stepper)","/laioutr-ui/ui-kit/general/zoom-level-stepper","3.laioutr-ui/ui-kit/01.general/zoom-level-stepper",{"title":1283,"path":1284,"stem":1285,"children":1286,"page":55},"Typography","/laioutr-ui/ui-kit/typography","3.laioutr-ui/ui-kit/02.typography",[1287,1291,1294,1298,1302],{"title":1288,"path":1289,"stem":1290},"Icon List","/laioutr-ui/ui-kit/typography/iconlist","3.laioutr-ui/ui-kit/02.typography/IconList",{"title":383,"path":1292,"stem":1293},"/laioutr-ui/ui-kit/typography/link","3.laioutr-ui/ui-kit/02.typography/Link",{"title":1295,"path":1296,"stem":1297},"Rich Content","/laioutr-ui/ui-kit/typography/richcontent","3.laioutr-ui/ui-kit/02.typography/RichContent",{"title":1299,"path":1300,"stem":1301},"Text","/laioutr-ui/ui-kit/typography/text","3.laioutr-ui/ui-kit/02.typography/Text",{"title":1303,"path":1304,"stem":1305},"Text Group","/laioutr-ui/ui-kit/typography/text-group","3.laioutr-ui/ui-kit/02.typography/text-group",{"title":1307,"path":1308,"stem":1309,"children":1310,"page":55},"Layout","/laioutr-ui/ui-kit/layout","3.laioutr-ui/ui-kit/03.layout",[1311,1315,1319,1323],{"title":1312,"path":1313,"stem":1314},"Grid Fill","/laioutr-ui/ui-kit/layout/gridfill","3.laioutr-ui/ui-kit/03.layout/GridFill",{"title":1316,"path":1317,"stem":1318},"Grid Masonry","/laioutr-ui/ui-kit/layout/gridmasonry","3.laioutr-ui/ui-kit/03.layout/GridMasonry",{"title":1320,"path":1321,"stem":1322},"Scroll Area","/laioutr-ui/ui-kit/layout/scrollarea","3.laioutr-ui/ui-kit/03.layout/ScrollArea",{"title":1324,"path":1325,"stem":1326},"Separator","/laioutr-ui/ui-kit/layout/separator","3.laioutr-ui/ui-kit/03.layout/Separator",{"title":1328,"path":1329,"stem":1330,"children":1331,"page":55},"Content","/laioutr-ui/ui-kit/content","3.laioutr-ui/ui-kit/04.content",[1332,1336,1340],{"title":1333,"path":1334,"stem":1335},"Card","/laioutr-ui/ui-kit/content/card","3.laioutr-ui/ui-kit/04.content/Card",{"title":1337,"path":1338,"stem":1339},"Description List","/laioutr-ui/ui-kit/content/description-list","3.laioutr-ui/ui-kit/04.content/description-list",{"title":1341,"path":1342,"stem":1343},"Link Tile","/laioutr-ui/ui-kit/content/link-tile","3.laioutr-ui/ui-kit/04.content/link-tile",{"title":1345,"path":1346,"stem":1347,"children":1348,"page":55},"Surfaces","/laioutr-ui/ui-kit/surfaces","3.laioutr-ui/ui-kit/05.surfaces",[1349,1353,1357,1361,1365,1369,1373,1377],{"title":1350,"path":1351,"stem":1352},"Alert Dialog","/laioutr-ui/ui-kit/surfaces/alertdialog","3.laioutr-ui/ui-kit/05.surfaces/AlertDialog",{"title":1354,"path":1355,"stem":1356},"Popover","/laioutr-ui/ui-kit/surfaces/popover","3.laioutr-ui/ui-kit/05.surfaces/Popover",{"title":1358,"path":1359,"stem":1360},"Sheet","/laioutr-ui/ui-kit/surfaces/sheet","3.laioutr-ui/ui-kit/05.surfaces/Sheet",{"title":1362,"path":1363,"stem":1364},"Tabs","/laioutr-ui/ui-kit/surfaces/tabs","3.laioutr-ui/ui-kit/05.surfaces/Tabs",{"title":1366,"path":1367,"stem":1368},"Toast","/laioutr-ui/ui-kit/surfaces/toast","3.laioutr-ui/ui-kit/05.surfaces/Toast",{"title":1370,"path":1371,"stem":1372},"Toaster","/laioutr-ui/ui-kit/surfaces/toaster","3.laioutr-ui/ui-kit/05.surfaces/Toaster",{"title":1374,"path":1375,"stem":1376},"Context Menu","/laioutr-ui/ui-kit/surfaces/context-menu","3.laioutr-ui/ui-kit/05.surfaces/context-menu",{"title":1378,"path":1379,"stem":1380},"Navigation Menu","/laioutr-ui/ui-kit/surfaces/navigation-menu","3.laioutr-ui/ui-kit/05.surfaces/navigation-menu",{"title":1382,"path":1383,"stem":1384,"children":1385,"page":55},"Form","/laioutr-ui/ui-kit/form","3.laioutr-ui/ui-kit/06.form",[1386,1390,1394,1398,1402,1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450,1454,1458,1462,1466,1470,1474,1478,1482,1486],{"title":1387,"path":1388,"stem":1389},"Button","/laioutr-ui/ui-kit/form/button","3.laioutr-ui/ui-kit/06.form/Button",{"title":1391,"path":1392,"stem":1393},"Checkbox","/laioutr-ui/ui-kit/form/checkbox","3.laioutr-ui/ui-kit/06.form/Checkbox",{"title":1395,"path":1396,"stem":1397},"Field","/laioutr-ui/ui-kit/form/field","3.laioutr-ui/ui-kit/06.form/Field",{"title":1399,"path":1400,"stem":1401},"Input","/laioutr-ui/ui-kit/form/input","3.laioutr-ui/ui-kit/06.form/Input",{"title":1403,"path":1404,"stem":1405},"Label","/laioutr-ui/ui-kit/form/label","3.laioutr-ui/ui-kit/06.form/Label",{"title":1407,"path":1408,"stem":1409},"Load More","/laioutr-ui/ui-kit/form/loadmore","3.laioutr-ui/ui-kit/06.form/LoadMore",{"title":1411,"path":1412,"stem":1413},"Pagination","/laioutr-ui/ui-kit/form/pagination","3.laioutr-ui/ui-kit/06.form/Pagination",{"title":1415,"path":1416,"stem":1417},"Quantity Picker","/laioutr-ui/ui-kit/form/quantitypicker","3.laioutr-ui/ui-kit/06.form/QuantityPicker",{"title":1419,"path":1420,"stem":1421},"Select","/laioutr-ui/ui-kit/form/select","3.laioutr-ui/ui-kit/06.form/Select",{"title":1423,"path":1424,"stem":1425},"Switch","/laioutr-ui/ui-kit/form/switch","3.laioutr-ui/ui-kit/06.form/Switch",{"title":1427,"path":1428,"stem":1429},"Highlight Toggle","/laioutr-ui/ui-kit/form/highlight-toggle","3.laioutr-ui/ui-kit/06.form/highlight-toggle",{"title":1431,"path":1432,"stem":1433},"Icon Button","/laioutr-ui/ui-kit/form/icon-button","3.laioutr-ui/ui-kit/06.form/icon-button",{"title":1435,"path":1436,"stem":1437},"Input Autocomplete","/laioutr-ui/ui-kit/form/input-autocomplete","3.laioutr-ui/ui-kit/06.form/input-autocomplete",{"title":1439,"path":1440,"stem":1441},"Input Checkbox","/laioutr-ui/ui-kit/form/input-checkbox","3.laioutr-ui/ui-kit/06.form/input-checkbox",{"title":1443,"path":1444,"stem":1445},"Input Combobox","/laioutr-ui/ui-kit/form/input-combobox","3.laioutr-ui/ui-kit/06.form/input-combobox",{"title":1447,"path":1448,"stem":1449},"Input Group","/laioutr-ui/ui-kit/form/input-group","3.laioutr-ui/ui-kit/06.form/input-group",{"title":1451,"path":1452,"stem":1453},"Input Password","/laioutr-ui/ui-kit/form/input-password","3.laioutr-ui/ui-kit/06.form/input-password",{"title":1455,"path":1456,"stem":1457},"Input Pin","/laioutr-ui/ui-kit/form/input-pin","3.laioutr-ui/ui-kit/06.form/input-pin",{"title":1459,"path":1460,"stem":1461},"Input Radio","/laioutr-ui/ui-kit/form/input-radio","3.laioutr-ui/ui-kit/06.form/input-radio",{"title":1463,"path":1464,"stem":1465},"Input Rating","/laioutr-ui/ui-kit/form/input-rating","3.laioutr-ui/ui-kit/06.form/input-rating",{"title":1467,"path":1468,"stem":1469},"Input Search","/laioutr-ui/ui-kit/form/input-search","3.laioutr-ui/ui-kit/06.form/input-search",{"title":1471,"path":1472,"stem":1473},"Input Slider","/laioutr-ui/ui-kit/form/input-slider","3.laioutr-ui/ui-kit/06.form/input-slider",{"title":1475,"path":1476,"stem":1477},"Listbox","/laioutr-ui/ui-kit/form/listbox","3.laioutr-ui/ui-kit/06.form/listbox",{"title":1479,"path":1480,"stem":1481},"Option Tile (Image)","/laioutr-ui/ui-kit/form/option-tile-image","3.laioutr-ui/ui-kit/06.form/option-tile-image",{"title":1483,"path":1484,"stem":1485},"Option Tile (Text)","/laioutr-ui/ui-kit/form/option-tile-text","3.laioutr-ui/ui-kit/06.form/option-tile-text",{"title":1487,"path":1488,"stem":1489},"Variant Selection Card","/laioutr-ui/ui-kit/form/variant-selection-card","3.laioutr-ui/ui-kit/06.form/variant-selection-card",{"title":1491,"path":1492,"stem":1493,"children":1494,"page":55},"Indicators","/laioutr-ui/ui-kit/indicators","3.laioutr-ui/ui-kit/07.indicators",[1495,1499,1503,1507,1511,1515],{"title":1496,"path":1497,"stem":1498},"Badge","/laioutr-ui/ui-kit/indicators/badge","3.laioutr-ui/ui-kit/07.indicators/Badge",{"title":1500,"path":1501,"stem":1502},"Caption Flag","/laioutr-ui/ui-kit/indicators/captionflag","3.laioutr-ui/ui-kit/07.indicators/CaptionFlag",{"title":1504,"path":1505,"stem":1506},"Product Tile Flag","/laioutr-ui/ui-kit/indicators/producttileflag","3.laioutr-ui/ui-kit/07.indicators/ProductTileFlag",{"title":1508,"path":1509,"stem":1510},"Rating Summary","/laioutr-ui/ui-kit/indicators/ratingsummary","3.laioutr-ui/ui-kit/07.indicators/RatingSummary",{"title":1512,"path":1513,"stem":1514},"Stars Rating","/laioutr-ui/ui-kit/indicators/starsrating","3.laioutr-ui/ui-kit/07.indicators/StarsRating",{"title":1516,"path":1517,"stem":1518},"Badge Promotion","/laioutr-ui/ui-kit/indicators/badge-promotion","3.laioutr-ui/ui-kit/07.indicators/badge-promotion",{"title":1520,"path":1521,"stem":1522,"children":1523,"page":55},"Utility Components","/laioutr-ui/ui-kit/utility-components","3.laioutr-ui/ui-kit/08.utility-components",[1524,1528],{"title":1525,"path":1526,"stem":1527},"Highlighted Text","/laioutr-ui/ui-kit/utility-components/highlighted-text","3.laioutr-ui/ui-kit/08.utility-components/highlighted-text",{"title":1529,"path":1530,"stem":1531},"Sizer","/laioutr-ui/ui-kit/utility-components/sizer","3.laioutr-ui/ui-kit/08.utility-components/sizer",{"title":1533,"path":1534,"stem":1535,"children":1536},"Hosting","/hosting","4.hosting/0.index",[1537,1538,1544,1574,1592],{"title":1533,"path":1534,"stem":1535},{"title":1539,"path":1540,"stem":1541,"children":1542},"Laioutr Cloud","/hosting/laioutr-cloud","4.hosting/0.laioutr-cloud/0.index",[1543],{"title":1539,"path":1540,"stem":1541},{"title":1545,"path":1546,"stem":1547,"children":1548},"Hyperscaler","/hosting/hyperscaler","4.hosting/1.hyperscaler/0.index",[1549,1550,1554,1558,1562,1566,1570],{"title":1545,"path":1546,"stem":1547},{"title":1551,"path":1552,"stem":1553},"Akamai Adapter","/hosting/hyperscaler/akamai-adapter","4.hosting/1.hyperscaler/akamai-adapter",{"title":1555,"path":1556,"stem":1557},"AWS Adapter","/hosting/hyperscaler/aws-adapter","4.hosting/1.hyperscaler/aws-adapter",{"title":1559,"path":1560,"stem":1561},"Azure Adapter","/hosting/hyperscaler/azure-adapter","4.hosting/1.hyperscaler/azure-adapter",{"title":1563,"path":1564,"stem":1565},"Google Adapter","/hosting/hyperscaler/google-adapter","4.hosting/1.hyperscaler/google-adapter",{"title":1567,"path":1568,"stem":1569},"Netlify Adapter","/hosting/hyperscaler/netlify-adapter","4.hosting/1.hyperscaler/netlify-adapter",{"title":1571,"path":1572,"stem":1573},"Vercel Adapter","/hosting/hyperscaler/vercel-adapter","4.hosting/1.hyperscaler/vercel-adapter",{"title":1575,"path":1576,"stem":1577,"children":1578},"Native Hosting","/hosting/native-hosting-providers","4.hosting/2.native-hosting-providers/0.index",[1579,1580,1584,1588],{"title":1575,"path":1576,"stem":1577},{"title":1581,"path":1582,"stem":1583},"maxcluster","/hosting/native-hosting-providers/maxcluster","4.hosting/2.native-hosting-providers/maxcluster",{"title":1585,"path":1586,"stem":1587},"profihost","/hosting/native-hosting-providers/profihost","4.hosting/2.native-hosting-providers/profihost",{"title":1589,"path":1590,"stem":1591},"ScaleCommerce","/hosting/native-hosting-providers/scale-commerce","4.hosting/2.native-hosting-providers/scale-commerce",{"title":1593,"path":1594,"stem":1595,"children":1596},"Bring Your Own Server (BYOS)","/hosting/bring-your-own-server-byos","4.hosting/3.bring-your-own-server-byos/0.index",[1597,1598,1602,1606,1610,1614,1618],{"title":1593,"path":1594,"stem":1595},{"title":1599,"path":1600,"stem":1601},"BYOS Agent","/hosting/bring-your-own-server-byos/byos-agent","4.hosting/3.bring-your-own-server-byos/byos-agent",{"title":1603,"path":1604,"stem":1605},"Changelog","/hosting/bring-your-own-server-byos/changelog","4.hosting/3.bring-your-own-server-byos/changelog",{"title":1607,"path":1608,"stem":1609},"DevOps Components","/hosting/bring-your-own-server-byos/devops","4.hosting/3.bring-your-own-server-byos/devops",{"title":1611,"path":1612,"stem":1613},"Infrastructure Requirements","/hosting/bring-your-own-server-byos/infrastructure","4.hosting/3.bring-your-own-server-byos/infrastructure",{"title":1615,"path":1616,"stem":1617},"Software Requirements","/hosting/bring-your-own-server-byos/software","4.hosting/3.bring-your-own-server-byos/software",{"title":1619,"path":1620,"stem":1621},"Webhook Configuration","/hosting/bring-your-own-server-byos/webhook-config","4.hosting/3.bring-your-own-server-byos/webhook-config",{"title":1623,"path":1624,"stem":1625,"children":1626},"Checkout","/checkout","5.Checkout/0.index",[1627],{"title":1623,"path":1624,"stem":1625},{"title":1629,"path":1630,"stem":1631,"children":1632},"Larry AI","/larry-ai","6.Larry-AI/0.index",[1633],{"title":1629,"path":1630,"stem":1631},{"title":671,"path":1635,"stem":1636,"children":1637},"/figma-kit","7.Figma Kit/0.index",[1638,1639,1655],{"title":671,"path":1635,"stem":1636},{"title":121,"path":1640,"stem":1641,"children":1642,"page":55},"/figma-kit/introduction","7.Figma Kit/1.Introduction",[1643,1647,1651],{"title":1644,"path":1645,"stem":1646},"How to Start","/figma-kit/introduction/howtostart","7.Figma Kit/1.Introduction/0.howtostart",{"title":1648,"path":1649,"stem":1650},"Figma Variables","/figma-kit/introduction/figma-variables","7.Figma Kit/1.Introduction/figma-variables",{"title":1652,"path":1653,"stem":1654},"Library Connections","/figma-kit/introduction/library-connections","7.Figma Kit/1.Introduction/library-connections",{"title":1656,"path":1657,"stem":1658,"children":1659,"page":55},"Kits","/figma-kit/kits","7.Figma Kit/Kits",[1660,1663,1666,1669,1673,1676,1680,1684,1687,1690],{"title":686,"path":1661,"stem":1662},"/figma-kit/kits/b2b","7.Figma Kit/Kits/b2b",{"title":692,"path":1664,"stem":1665},"/figma-kit/kits/booking","7.Figma Kit/Kits/booking",{"title":698,"path":1667,"stem":1668},"/figma-kit/kits/cms","7.Figma Kit/Kits/cms",{"title":1670,"path":1671,"stem":1672},"Inpage Navigation","/figma-kit/kits/inpage-navigation","7.Figma Kit/Kits/inpage-navigation",{"title":903,"path":1674,"stem":1675},"/figma-kit/kits/marketplace","7.Figma Kit/Kits/marketplace",{"title":1677,"path":1678,"stem":1679},"Retail & Multichannel","/figma-kit/kits/multichannel","7.Figma Kit/Kits/multichannel",{"title":1681,"path":1682,"stem":1683},"Navigation","/figma-kit/kits/navigation","7.Figma Kit/Kits/navigation",{"title":969,"path":1685,"stem":1686},"/figma-kit/kits/saas","7.Figma Kit/Kits/saas",{"title":987,"path":1688,"stem":1689},"/figma-kit/kits/shop","7.Figma Kit/Kits/shop",{"title":1117,"path":1691,"stem":1692},"/figma-kit/kits/ui-kit","7.Figma Kit/Kits/ui-kit",{"title":1694,"path":1695,"stem":1696,"children":1697},"Cockpit","/cockpit","8.Cockpit/0.index",[1698,1699,1729,1746,1763],{"title":1694,"path":1695,"stem":1696},{"title":154,"path":1700,"stem":1701,"children":1702,"page":55},"/cockpit/features","8.Cockpit/1.Features",[1703,1706,1710,1714,1718,1721,1725],{"title":464,"path":1704,"stem":1705},"/cockpit/features/apps","8.Cockpit/1.Features/apps",{"title":1707,"path":1708,"stem":1709},"Content (Collections)","/cockpit/features/content-collections","8.Cockpit/1.Features/content-collections",{"title":1711,"path":1712,"stem":1713},"Deployments","/cockpit/features/deployments","8.Cockpit/1.Features/deployments",{"title":1715,"path":1716,"stem":1717},"Markets","/cockpit/features/markets","8.Cockpit/1.Features/markets",{"title":196,"path":1719,"stem":1720},"/cockpit/features/redirects","8.Cockpit/1.Features/redirects",{"title":1722,"path":1723,"stem":1724},"Studio","/cockpit/features/studio","8.Cockpit/1.Features/studio",{"title":1726,"path":1727,"stem":1728},"Translations","/cockpit/features/translations","8.Cockpit/1.Features/translations",{"title":1730,"path":1731,"stem":1732,"children":1733,"page":55},"Project Settings","/cockpit/project-settings","8.Cockpit/2.Project-Settings",[1734,1738,1742],{"title":1735,"path":1736,"stem":1737},"Delete a project","/cockpit/project-settings/delete-project","8.Cockpit/2.Project-Settings/delete-project",{"title":1739,"path":1740,"stem":1741},"NPM","/cockpit/project-settings/npm","8.Cockpit/2.Project-Settings/npm",{"title":1743,"path":1744,"stem":1745},"Project secret key","/cockpit/project-settings/project-secret-key","8.Cockpit/2.Project-Settings/project-secret-key",{"title":1747,"path":1748,"stem":1749,"children":1750,"page":55},"Account Settings","/cockpit/account-settings","8.Cockpit/3.Account-Settings",[1751,1755,1759],{"title":1752,"path":1753,"stem":1754},"Notifications","/cockpit/account-settings/notifications","8.Cockpit/3.Account-Settings/notifications",{"title":1756,"path":1757,"stem":1758},"Preferences","/cockpit/account-settings/preferences","8.Cockpit/3.Account-Settings/preferences",{"title":1760,"path":1761,"stem":1762},"Security","/cockpit/account-settings/security","8.Cockpit/3.Account-Settings/security",{"title":1764,"path":1765,"stem":1766,"children":1767,"page":55},"Organisation Settings","/cockpit/organisation-settings","8.Cockpit/4.Organisation-Settings",[1768,1772,1776,1780,1784,1788],{"title":1769,"path":1770,"stem":1771},"API keys","/cockpit/organisation-settings/api-keys","8.Cockpit/4.Organisation-Settings/api-keys",{"title":1773,"path":1774,"stem":1775},"Billing","/cockpit/organisation-settings/billing","8.Cockpit/4.Organisation-Settings/billing",{"title":1777,"path":1778,"stem":1779},"General settings","/cockpit/organisation-settings/general-settings","8.Cockpit/4.Organisation-Settings/general-settings",{"title":1781,"path":1782,"stem":1783},"Members","/cockpit/organisation-settings/members","8.Cockpit/4.Organisation-Settings/members",{"title":1785,"path":1786,"stem":1787},"Projects","/cockpit/organisation-settings/projects","8.Cockpit/4.Organisation-Settings/projects",{"title":1789,"path":1790,"stem":1791},"Roles","/cockpit/organisation-settings/roles","8.Cockpit/4.Organisation-Settings/roles",{"title":1793,"path":1794,"stem":1795,"children":1796},"Offering","/offering","9.Offering/0.index",[1797,1798,1830,1843,1856,1890,1899],{"title":1793,"path":1794,"stem":1795},{"title":1799,"path":1800,"stem":1801,"children":1802},"Products","/offering/products","9.Offering/1.Products/0.index",[1803,1804,1809,1814,1819,1825],{"title":1799,"path":1800,"stem":1801},{"title":137,"path":1805,"stem":1806,"children":1807},"/offering/products/frontend","9.Offering/1.Products/1.Frontend/0.index",[1808],{"title":137,"path":1805,"stem":1806},{"title":1694,"path":1810,"stem":1811,"children":1812},"/offering/products/cockpit","9.Offering/1.Products/2.Cockpit/0.index",[1813],{"title":1694,"path":1810,"stem":1811},{"title":1623,"path":1815,"stem":1816,"children":1817},"/offering/products/checkout","9.Offering/1.Products/3.Checkout/0.index",[1818],{"title":1623,"path":1815,"stem":1816},{"title":1820,"path":1821,"stem":1822,"children":1823},"Cloud","/offering/products/cloud","9.Offering/1.Products/4.cloud/0.index",[1824],{"title":1820,"path":1821,"stem":1822},{"title":1629,"path":1826,"stem":1827,"children":1828},"/offering/products/larry-ai","9.Offering/1.Products/5.larry-ai/0.index",[1829],{"title":1629,"path":1826,"stem":1827},{"title":1831,"path":1832,"stem":1833,"children":1834,"page":55},"Service Level Agreement","/offering/service-level-agreement","9.Offering/2.service-level-agreement",[1835,1839],{"title":1836,"path":1837,"stem":1838},"Standard Service Level Agreement Composable Frontend","/offering/service-level-agreement/standard-service-level-agreement","9.Offering/2.service-level-agreement/1.standard-service-level-agreement",{"title":1840,"path":1841,"stem":1842},"Backups","/offering/service-level-agreement/backups","9.Offering/2.service-level-agreement/backups",{"title":1844,"path":1845,"stem":1846,"children":1847,"page":55},"Customer Support","/offering/customer-support","9.Offering/3.customer-support",[1848,1852],{"title":1849,"path":1850,"stem":1851},"Standard Customer Support","/offering/customer-support/standard-customer-support","9.Offering/3.customer-support/1.standard-customer-support",{"title":1853,"path":1854,"stem":1855},"Customer Support Severity Levels of Laioutr products","/offering/customer-support/maximum-serverity-levels","9.Offering/3.customer-support/maximum-serverity-levels",{"title":1857,"path":1858,"stem":1859,"children":1860},"Trust Center","/offering/trust-center","9.Offering/4.trust-center/0.index",[1861,1862,1866,1870,1874,1878,1882,1886],{"title":1857,"path":1858,"stem":1859},{"title":1863,"path":1864,"stem":1865},"Data Protection (GDPR)","/offering/trust-center/data-protection","9.Offering/4.trust-center/1.data-protection",{"title":1867,"path":1868,"stem":1869},"Subprocessors","/offering/trust-center/subprocessors","9.Offering/4.trust-center/2.subprocessors",{"title":1871,"path":1872,"stem":1873},"Infrastructure & Hosting","/offering/trust-center/infrastructure","9.Offering/4.trust-center/3.infrastructure",{"title":1875,"path":1876,"stem":1877},"Security Measures","/offering/trust-center/security-measures","9.Offering/4.trust-center/4.security-measures",{"title":1879,"path":1880,"stem":1881},"Incident Response","/offering/trust-center/incident-response","9.Offering/4.trust-center/5.incident-response",{"title":1883,"path":1884,"stem":1885},"Compliance & Certifications","/offering/trust-center/compliance","9.Offering/4.trust-center/6.compliance",{"title":1887,"path":1888,"stem":1889},"FAQ","/offering/trust-center/faq","9.Offering/4.trust-center/7.faq",{"title":1891,"path":1892,"stem":1893,"children":1894,"page":55},"Policies","/offering/policies","9.Offering/5.policies",[1895],{"title":1896,"path":1897,"stem":1898},"Fair usage policy","/offering/policies/fair-usage-policy","9.Offering/5.policies/fair-usage-policy",{"title":1900,"path":1901,"stem":1902,"children":1903},"Academy","/offering/academy","9.Offering/6.academy/0.index",[1904],{"title":1900,"path":1901,"stem":1902},{"id":1906,"title":1619,"aliases":1907,"body":1908,"changelogKeys":1907,"description":5608,"extension":5609,"links":1907,"meta":5610,"navigation":2363,"path":1620,"playground":1907,"seo":5611,"sitemap":5614,"stem":1621,"__hash__":5617},"docs/4.hosting/3.bring-your-own-server-byos/webhook-config.md",null,{"type":1909,"value":1910,"toc":5549},"minimark",[1911,1915,1919,1937,1940,1959,1963,1976,1979,2032,2035,2067,2075,2079,2090,2166,2275,2280,2287,2306,2309,2656,2660,2665,2668,2714,2717,2731,2738,2741,2745,2758,2766,2772,2776,2779,2822,2825,2870,2873,2899,2903,2908,2911,2915,2980,2984,3151,3155,3197,3200,3258,3265,3271,3274,3277,3342,3345,3383,3389,3392,3395,3460,3463,3499,3504,3507,3510,3767,3770,3829,3832,3835,3871,3877,3884,3887,3986,3989,4025,4031,4037,4040,4139,4142,4178,4184,4190,4193,4312,4315,4354,4357,4393,4399,4405,4408,4507,4510,4546,4549,4559,4563,4569,4575,4588,4592,4595,4677,4682,4705,4709,4717,4729,4732,4735,4819,4823,4833,4933,4936,4943,5043,5047,5050,5132,5136,5142,5242,5246,5249,5285,5288,5330,5334,5383,5394,5398,5401,5412,5416,5454,5457,5461,5465,5499,5503,5517,5521,5545],[1912,1913,1123],"h1",{"id":1914},"general",[1916,1917,1918],"p",{},"Integrate your own hosting solution into Laioutr by setting up a webhook. Cockpit will call this webhook for every deployment-related action:",[1920,1921,1922,1925,1928,1931,1934],"ul",{},[1923,1924,1711],"li",{},[1923,1926,1927],{},"Status Updates",[1923,1929,1930],{},"Deployment Cancellation",[1923,1932,1933],{},"Deployment Promotion",[1923,1935,1936],{},"Rollbacks",[1916,1938,1939],{},"You provide a URL that Cockpit will call for each of these actions.",[1941,1942,1943,1944,1954,1955,1958],"tip",{},"The ",[1945,1946,1950],"a",{"href":1947,"rel":1948},"https://github.com/laioutr/byos-agent",[1949],"nofollow",[1951,1952,1953],"code",{},"@laioutr/byos-agent"," handles webhook verification, script execution, and status callbacks out of the box. See the ",[1945,1956,1957],{"href":1600},"BYOS Agent documentation"," to get started quickly, including deployment examples for Docker and PM2.",[1912,1960,1962],{"id":1961},"authentication-standard-webhooks","Authentication (Standard Webhooks)",[1916,1964,1965,1966,1971,1972,1975],{},"All requests from Cockpit are signed using the ",[1945,1967,1970],{"href":1968,"rel":1969},"https://www.standardwebhooks.com/",[1949],"Standard Webhooks"," specification. When you configure your webhook, you'll receive a signing secret (prefixed with ",[1951,1973,1974],{},"whsec_",") that you must use to verify incoming requests.",[1916,1977,1978],{},"Each request includes these headers:",[1980,1981,1982,1995],"table",{},[1983,1984,1985],"thead",{},[1986,1987,1988,1992],"tr",{},[1989,1990,1991],"th",{},"Header",[1989,1993,1994],{},"Description",[1996,1997,1998,2009,2019],"tbody",{},[1986,1999,2000,2006],{},[2001,2002,2003],"td",{},[1951,2004,2005],{},"webhook-id",[2001,2007,2008],{},"Unique identifier for this webhook delivery",[1986,2010,2011,2016],{},[2001,2012,2013],{},[1951,2014,2015],{},"webhook-timestamp",[2001,2017,2018],{},"Unix timestamp (seconds) when the request was sent",[1986,2020,2021,2026],{},[2001,2022,2023],{},[1951,2024,2025],{},"webhook-signature",[2001,2027,2028,2029],{},"HMAC-SHA256 signature in format ",[1951,2030,2031],{},"v1,{base64}",[1916,2033,2034],{},"To verify a request:",[2036,2037,2038,2045,2051,2054,2057,2064],"ol",{},[1923,2039,2040,2041,2044],{},"Concatenate ",[1951,2042,2043],{},"{webhook-id}.{webhook-timestamp}.{body}"," (body is the raw request body)",[1923,2046,2047,2048,2050],{},"Remove the ",[1951,2049,1974],{}," prefix from your signing secret",[1923,2052,2053],{},"Base64-decode the remaining string to get the raw secret bytes",[1923,2055,2056],{},"Compute HMAC-SHA256 over the signed content using the decoded secret bytes",[1923,2058,2059,2060,2063],{},"Base64-encode the result and compare with the signature after the ",[1951,2061,2062],{},"v1,"," prefix (timing-safe comparison)",[1923,2065,2066],{},"Reject requests older than 5 minutes to prevent replay attacks",[1916,2068,2069,2070,2074],{},"Most languages have Standard Webhooks libraries available. See ",[1945,2071,2073],{"href":1968,"rel":2072},[1949],"standardwebhooks.com"," for implementations.",[1912,2076,2078],{"id":2077},"request-format","Request Format",[1916,2080,2081,2082,2085,2086,2089],{},"All requests are ",[1951,2083,2084],{},"POST"," with ",[1951,2087,2088],{},"Content-Type: application/json",". Every request includes:",[1980,2091,2092,2103],{},[1983,2093,2094],{},[1986,2095,2096,2098,2101],{},[1989,2097,1395],{},[1989,2099,2100],{},"Type",[1989,2102,1994],{},[1996,2104,2105,2122,2138,2153],{},[1986,2106,2107,2112,2115],{},[2001,2108,2109],{},[1951,2110,2111],{},"event",[2001,2113,2114],{},"string",[2001,2116,2117,2118,2121],{},"The event type (e.g., ",[1951,2119,2120],{},"hosting.deployment.created",")",[1986,2123,2124,2129,2131],{},[2001,2125,2126],{},[1951,2127,2128],{},"timestamp",[2001,2130,2114],{},[2001,2132,2133,2134,2137],{},"ISO 8601 timestamp (UTC, e.g., ",[1951,2135,2136],{},"2025-01-30T12:00:00.000Z",") of when the http-request was sent",[1986,2139,2140,2145,2147],{},[2001,2141,2142],{},[1951,2143,2144],{},"project",[2001,2146,2114],{},[2001,2148,2149,2150],{},"Project identifier as ",[1951,2151,2152],{},"org-slug/project-slug",[1986,2154,2155,2160,2163],{},[2001,2156,2157],{},[1951,2158,2159],{},"data",[2001,2161,2162],{},"object",[2001,2164,2165],{},"Event-specific payload (optional)",[2167,2168,2173],"pre",{"className":2169,"code":2170,"language":2171,"meta":2172,"style":2172},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"event\": \"hosting.deployment.created\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\",\n  \"data\": { ... }\n}\n","json","",[1951,2174,2175,2184,2210,2229,2249,2270],{"__ignoreMap":2172},[2176,2177,2180],"span",{"class":2178,"line":2179},"line",1,[2176,2181,2183],{"class":2182},"sMK4o","{\n",[2176,2185,2187,2190,2193,2196,2199,2202,2205,2207],{"class":2178,"line":2186},2,[2176,2188,2189],{"class":2182},"  \"",[2176,2191,2111],{"class":2192},"spNyl",[2176,2194,2195],{"class":2182},"\"",[2176,2197,2198],{"class":2182},":",[2176,2200,2201],{"class":2182}," \"",[2176,2203,2120],{"class":2204},"sfazB",[2176,2206,2195],{"class":2182},[2176,2208,2209],{"class":2182},",\n",[2176,2211,2213,2215,2217,2219,2221,2223,2225,2227],{"class":2178,"line":2212},3,[2176,2214,2189],{"class":2182},[2176,2216,2128],{"class":2192},[2176,2218,2195],{"class":2182},[2176,2220,2198],{"class":2182},[2176,2222,2201],{"class":2182},[2176,2224,2136],{"class":2204},[2176,2226,2195],{"class":2182},[2176,2228,2209],{"class":2182},[2176,2230,2232,2234,2236,2238,2240,2242,2245,2247],{"class":2178,"line":2231},4,[2176,2233,2189],{"class":2182},[2176,2235,2144],{"class":2192},[2176,2237,2195],{"class":2182},[2176,2239,2198],{"class":2182},[2176,2241,2201],{"class":2182},[2176,2243,2244],{"class":2204},"acme-corp/storefront",[2176,2246,2195],{"class":2182},[2176,2248,2209],{"class":2182},[2176,2250,2252,2254,2256,2258,2260,2263,2267],{"class":2178,"line":2251},5,[2176,2253,2189],{"class":2182},[2176,2255,2159],{"class":2192},[2176,2257,2195],{"class":2182},[2176,2259,2198],{"class":2182},[2176,2261,2262],{"class":2182}," {",[2176,2264,2266],{"class":2265},"sTEyZ"," ... ",[2176,2268,2269],{"class":2182},"}\n",[2176,2271,2273],{"class":2178,"line":2272},6,[2176,2274,2269],{"class":2182},[2276,2277,2279],"h2",{"id":2278},"typescript-types","TypeScript Types",[1916,2281,2282,2283,2286],{},"TypeScript definitions for all webhook events and responses are available in the ",[1951,2284,2285],{},"@laioutr/webhook-types"," package:",[2167,2288,2292],{"className":2289,"code":2290,"language":2291,"meta":2172,"style":2172},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @laioutr/webhook-types\n","bash",[1951,2293,2294],{"__ignoreMap":2172},[2176,2295,2296,2300,2303],{"class":2178,"line":2179},[2176,2297,2299],{"class":2298},"sBMFI","npm",[2176,2301,2302],{"class":2204}," install",[2176,2304,2305],{"class":2204}," @laioutr/webhook-types\n",[1916,2307,2308],{},"Usage example:",[2167,2310,2314],{"className":2311,"code":2312,"language":2313,"meta":2172,"style":2172},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import type { ByosWebhookEvent, ByosDescribeResponse, ByosWebhookResponse } from '@laioutr/webhook-types/byos';\n\nfunction handleWebhook(event: ByosWebhookEvent): ByosWebhookResponse {\n  if (event.event === 'hosting.describe') {\n    return {\n      ok: true,\n      data: {\n        name: 'My CI/CD System',\n        url: 'https://storefront.example.com',\n        capabilities: {\n          /* ... */\n        },\n      },\n    } satisfies ByosDescribeResponse;\n  }\n  if (event.event === 'hosting.deployment.created') {\n    const { deploymentId, callbackUrl, files } = event.data;\n    startBuild(deploymentId, files, callbackUrl);\n  }\n  return { ok: true, data: {} };\n}\n","typescript",[1951,2315,2316,2359,2365,2392,2423,2430,2443,2453,2470,2487,2497,2504,2510,2516,2529,2535,2560,2595,2618,2623,2651],{"__ignoreMap":2172},[2176,2317,2318,2322,2325,2327,2330,2333,2336,2338,2341,2344,2347,2350,2353,2356],{"class":2178,"line":2179},[2176,2319,2321],{"class":2320},"s7zQu","import",[2176,2323,2324],{"class":2320}," type",[2176,2326,2262],{"class":2182},[2176,2328,2329],{"class":2265}," ByosWebhookEvent",[2176,2331,2332],{"class":2182},",",[2176,2334,2335],{"class":2265}," ByosDescribeResponse",[2176,2337,2332],{"class":2182},[2176,2339,2340],{"class":2265}," ByosWebhookResponse",[2176,2342,2343],{"class":2182}," }",[2176,2345,2346],{"class":2320}," from",[2176,2348,2349],{"class":2182}," '",[2176,2351,2352],{"class":2204},"@laioutr/webhook-types/byos",[2176,2354,2355],{"class":2182},"'",[2176,2357,2358],{"class":2182},";\n",[2176,2360,2361],{"class":2178,"line":2186},[2176,2362,2364],{"emptyLinePlaceholder":2363},true,"\n",[2176,2366,2367,2370,2374,2377,2380,2382,2384,2387,2389],{"class":2178,"line":2212},[2176,2368,2369],{"class":2192},"function",[2176,2371,2373],{"class":2372},"s2Zo4"," handleWebhook",[2176,2375,2376],{"class":2182},"(",[2176,2378,2111],{"class":2379},"sHdIc",[2176,2381,2198],{"class":2182},[2176,2383,2329],{"class":2298},[2176,2385,2386],{"class":2182},"):",[2176,2388,2340],{"class":2298},[2176,2390,2391],{"class":2182}," {\n",[2176,2393,2394,2397,2401,2403,2406,2408,2411,2413,2416,2418,2421],{"class":2178,"line":2231},[2176,2395,2396],{"class":2320},"  if",[2176,2398,2400],{"class":2399},"swJcz"," (",[2176,2402,2111],{"class":2265},[2176,2404,2405],{"class":2182},".",[2176,2407,2111],{"class":2265},[2176,2409,2410],{"class":2182}," ===",[2176,2412,2349],{"class":2182},[2176,2414,2415],{"class":2204},"hosting.describe",[2176,2417,2355],{"class":2182},[2176,2419,2420],{"class":2399},") ",[2176,2422,2183],{"class":2182},[2176,2424,2425,2428],{"class":2178,"line":2251},[2176,2426,2427],{"class":2320},"    return",[2176,2429,2391],{"class":2182},[2176,2431,2432,2435,2437,2441],{"class":2178,"line":2272},[2176,2433,2434],{"class":2399},"      ok",[2176,2436,2198],{"class":2182},[2176,2438,2440],{"class":2439},"sfNiH"," true",[2176,2442,2209],{"class":2182},[2176,2444,2446,2449,2451],{"class":2178,"line":2445},7,[2176,2447,2448],{"class":2399},"      data",[2176,2450,2198],{"class":2182},[2176,2452,2391],{"class":2182},[2176,2454,2456,2459,2461,2463,2466,2468],{"class":2178,"line":2455},8,[2176,2457,2458],{"class":2399},"        name",[2176,2460,2198],{"class":2182},[2176,2462,2349],{"class":2182},[2176,2464,2465],{"class":2204},"My CI/CD System",[2176,2467,2355],{"class":2182},[2176,2469,2209],{"class":2182},[2176,2471,2473,2476,2478,2480,2483,2485],{"class":2178,"line":2472},9,[2176,2474,2475],{"class":2399},"        url",[2176,2477,2198],{"class":2182},[2176,2479,2349],{"class":2182},[2176,2481,2482],{"class":2204},"https://storefront.example.com",[2176,2484,2355],{"class":2182},[2176,2486,2209],{"class":2182},[2176,2488,2490,2493,2495],{"class":2178,"line":2489},10,[2176,2491,2492],{"class":2399},"        capabilities",[2176,2494,2198],{"class":2182},[2176,2496,2391],{"class":2182},[2176,2498,2500],{"class":2178,"line":2499},11,[2176,2501,2503],{"class":2502},"sHwdD","          /* ... */\n",[2176,2505,2507],{"class":2178,"line":2506},12,[2176,2508,2509],{"class":2182},"        },\n",[2176,2511,2513],{"class":2178,"line":2512},13,[2176,2514,2515],{"class":2182},"      },\n",[2176,2517,2519,2522,2525,2527],{"class":2178,"line":2518},14,[2176,2520,2521],{"class":2182},"    }",[2176,2523,2524],{"class":2320}," satisfies",[2176,2526,2335],{"class":2298},[2176,2528,2358],{"class":2182},[2176,2530,2532],{"class":2178,"line":2531},15,[2176,2533,2534],{"class":2182},"  }\n",[2176,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558],{"class":2178,"line":2537},16,[2176,2539,2396],{"class":2320},[2176,2541,2400],{"class":2399},[2176,2543,2111],{"class":2265},[2176,2545,2405],{"class":2182},[2176,2547,2111],{"class":2265},[2176,2549,2410],{"class":2182},[2176,2551,2349],{"class":2182},[2176,2553,2120],{"class":2204},[2176,2555,2355],{"class":2182},[2176,2557,2420],{"class":2399},[2176,2559,2183],{"class":2182},[2176,2561,2563,2566,2568,2571,2573,2576,2578,2581,2583,2586,2589,2591,2593],{"class":2178,"line":2562},17,[2176,2564,2565],{"class":2192},"    const",[2176,2567,2262],{"class":2182},[2176,2569,2570],{"class":2265}," deploymentId",[2176,2572,2332],{"class":2182},[2176,2574,2575],{"class":2265}," callbackUrl",[2176,2577,2332],{"class":2182},[2176,2579,2580],{"class":2265}," files",[2176,2582,2343],{"class":2182},[2176,2584,2585],{"class":2182}," =",[2176,2587,2588],{"class":2265}," event",[2176,2590,2405],{"class":2182},[2176,2592,2159],{"class":2265},[2176,2594,2358],{"class":2182},[2176,2596,2598,2601,2603,2606,2608,2610,2612,2614,2616],{"class":2178,"line":2597},18,[2176,2599,2600],{"class":2372},"    startBuild",[2176,2602,2376],{"class":2399},[2176,2604,2605],{"class":2265},"deploymentId",[2176,2607,2332],{"class":2182},[2176,2609,2580],{"class":2265},[2176,2611,2332],{"class":2182},[2176,2613,2575],{"class":2265},[2176,2615,2121],{"class":2399},[2176,2617,2358],{"class":2182},[2176,2619,2621],{"class":2178,"line":2620},19,[2176,2622,2534],{"class":2182},[2176,2624,2626,2629,2631,2634,2636,2638,2640,2643,2645,2648],{"class":2178,"line":2625},20,[2176,2627,2628],{"class":2320},"  return",[2176,2630,2262],{"class":2182},[2176,2632,2633],{"class":2399}," ok",[2176,2635,2198],{"class":2182},[2176,2637,2440],{"class":2439},[2176,2639,2332],{"class":2182},[2176,2641,2642],{"class":2399}," data",[2176,2644,2198],{"class":2182},[2176,2646,2647],{"class":2182}," {}",[2176,2649,2650],{"class":2182}," };\n",[2176,2652,2654],{"class":2178,"line":2653},21,[2176,2655,2269],{"class":2182},[2276,2657,2659],{"id":2658},"delivery-behavior","Delivery Behavior",[2661,2662,2664],"h3",{"id":2663},"retries","Retries",[1916,2666,2667],{},"Cockpit retries failed webhook deliveries with the following policy:",[1980,2669,2670,2680],{},[1983,2671,2672],{},[1986,2673,2674,2677],{},[1989,2675,2676],{},"Parameter",[1989,2678,2679],{},"Value",[1996,2681,2682,2690,2698,2706],{},[1986,2683,2684,2687],{},[2001,2685,2686],{},"Max attempts",[2001,2688,2689],{},"3",[1986,2691,2692,2695],{},[2001,2693,2694],{},"Per-attempt timeout",[2001,2696,2697],{},"7 seconds",[1986,2699,2700,2703],{},[2001,2701,2702],{},"Total time budget",[2001,2704,2705],{},"25 seconds",[1986,2707,2708,2711],{},[2001,2709,2710],{},"Retry delay",[2001,2712,2713],{},"Exponential backoff (1s, 2s, 4s) with 30% jitter",[1916,2715,2716],{},"A delivery is considered failed if:",[1920,2718,2719,2722,2725,2728],{},[1923,2720,2721],{},"The endpoint returns a non-2xx HTTP status",[1923,2723,2724],{},"The JSON payload is not valid",[1923,2726,2727],{},"The request times out",[1923,2729,2730],{},"A network error occurs",[1916,2732,2733,2734,2737],{},"Returning ",[1951,2735,2736],{},"{ \"ok\": false, \"error\": \"...\" }"," will not trigger a retry.",[1916,2739,2740],{},"If the retries did not succeed, the event will be discarded.",[2661,2742,2744],{"id":2743},"idempotency","Idempotency",[1916,2746,1943,2747,2749,2750,2757],{},[1951,2748,2005],{}," header serves as an idempotency key. ",[2751,2752,2753,2754,2756],"strong",{},"The same ",[1951,2755,2005],{}," is used across all retry attempts"," for a given event. Your endpoint should use this to deduplicate requests if needed.",[2167,2759,2764],{"className":2760,"code":2762,"language":2763,"meta":2172},[2761],"language-text","First attempt:  webhook-id: evt_abc123\nRetry 1:        webhook-id: evt_abc123  (same)\nRetry 2:        webhook-id: evt_abc123  (same)\n","text",[1951,2765,2762],{"__ignoreMap":2172},[1916,2767,2768,2769,2771],{},"You can track ",[1951,2770,2005],{}," values to skip duplicates.",[1912,2773,2775],{"id":2774},"response-format","Response Format",[1916,2777,2778],{},"Your endpoint must respond with JSON in this format:",[2167,2780,2782],{"className":2169,"code":2781,"language":2171,"meta":2172,"style":2172},"{\n  \"ok\": true,\n  \"data\": { ... }\n}\n",[1951,2783,2784,2788,2802,2818],{"__ignoreMap":2172},[2176,2785,2786],{"class":2178,"line":2179},[2176,2787,2183],{"class":2182},[2176,2789,2790,2792,2795,2797,2799],{"class":2178,"line":2186},[2176,2791,2189],{"class":2182},[2176,2793,2794],{"class":2192},"ok",[2176,2796,2195],{"class":2182},[2176,2798,2198],{"class":2182},[2176,2800,2801],{"class":2182}," true,\n",[2176,2803,2804,2806,2808,2810,2812,2814,2816],{"class":2178,"line":2212},[2176,2805,2189],{"class":2182},[2176,2807,2159],{"class":2192},[2176,2809,2195],{"class":2182},[2176,2811,2198],{"class":2182},[2176,2813,2262],{"class":2182},[2176,2815,2266],{"class":2265},[2176,2817,2269],{"class":2182},[2176,2819,2820],{"class":2178,"line":2231},[2176,2821,2269],{"class":2182},[1916,2823,2824],{},"Or on failure:",[2167,2826,2828],{"className":2169,"code":2827,"language":2171,"meta":2172,"style":2172},"{\n  \"ok\": false,\n  \"error\": \"Human-readable error message\"\n}\n",[1951,2829,2830,2834,2847,2866],{"__ignoreMap":2172},[2176,2831,2832],{"class":2178,"line":2179},[2176,2833,2183],{"class":2182},[2176,2835,2836,2838,2840,2842,2844],{"class":2178,"line":2186},[2176,2837,2189],{"class":2182},[2176,2839,2794],{"class":2192},[2176,2841,2195],{"class":2182},[2176,2843,2198],{"class":2182},[2176,2845,2846],{"class":2182}," false,\n",[2176,2848,2849,2851,2854,2856,2858,2860,2863],{"class":2178,"line":2212},[2176,2850,2189],{"class":2182},[2176,2852,2853],{"class":2192},"error",[2176,2855,2195],{"class":2182},[2176,2857,2198],{"class":2182},[2176,2859,2201],{"class":2182},[2176,2861,2862],{"class":2204},"Human-readable error message",[2176,2864,2865],{"class":2182},"\"\n",[2176,2867,2868],{"class":2178,"line":2231},[2176,2869,2269],{"class":2182},[1916,2871,2872],{},"Return appropriate HTTP status codes:",[1920,2874,2875,2881,2887,2893],{},[1923,2876,2877,2880],{},[1951,2878,2879],{},"200"," for successful processing",[1923,2882,2883,2886],{},[1951,2884,2885],{},"400"," for invalid requests",[1923,2888,2889,2892],{},[1951,2890,2891],{},"401"," for authentication failures",[1923,2894,2895,2898],{},[1951,2896,2897],{},"500"," for server errors",[1912,2900,2902],{"id":2901},"events","Events",[2276,2904,2906],{"id":2905},"hostingdescribe",[1951,2907,2415],{},[1916,2909,2910],{},"Cockpit sends this event to discover your system's capabilities. This is called during initial setup and periodically to refresh capabilities.",[2661,2912,2914],{"id":2913},"request","Request",[2167,2916,2918],{"className":2169,"code":2917,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.describe\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\"\n}\n",[1951,2919,2920,2924,2942,2960,2976],{"__ignoreMap":2172},[2176,2921,2922],{"class":2178,"line":2179},[2176,2923,2183],{"class":2182},[2176,2925,2926,2928,2930,2932,2934,2936,2938,2940],{"class":2178,"line":2186},[2176,2927,2189],{"class":2182},[2176,2929,2111],{"class":2192},[2176,2931,2195],{"class":2182},[2176,2933,2198],{"class":2182},[2176,2935,2201],{"class":2182},[2176,2937,2415],{"class":2204},[2176,2939,2195],{"class":2182},[2176,2941,2209],{"class":2182},[2176,2943,2944,2946,2948,2950,2952,2954,2956,2958],{"class":2178,"line":2212},[2176,2945,2189],{"class":2182},[2176,2947,2128],{"class":2192},[2176,2949,2195],{"class":2182},[2176,2951,2198],{"class":2182},[2176,2953,2201],{"class":2182},[2176,2955,2136],{"class":2204},[2176,2957,2195],{"class":2182},[2176,2959,2209],{"class":2182},[2176,2961,2962,2964,2966,2968,2970,2972,2974],{"class":2178,"line":2231},[2176,2963,2189],{"class":2182},[2176,2965,2144],{"class":2192},[2176,2967,2195],{"class":2182},[2176,2969,2198],{"class":2182},[2176,2971,2201],{"class":2182},[2176,2973,2244],{"class":2204},[2176,2975,2865],{"class":2182},[2176,2977,2978],{"class":2178,"line":2251},[2176,2979,2269],{"class":2182},[2661,2981,2983],{"id":2982},"response","Response",[2167,2985,2987],{"className":2169,"code":2986,"language":2171,"meta":2172,"style":2172},"{\n  \"ok\": true,\n  \"data\": {\n    \"name\": \"Your CI/CD System\",\n    \"url\": \"https://storefront.example.com\",\n    \"capabilities\": {\n      \"statusUpdates\": true,\n      \"cancelDeployment\": false,\n      \"promoteDeployment\": false,\n      \"rollbackDeployment\": false,\n      \"deleteDeployment\": false\n    }\n  }\n}\n",[1951,2988,2989,2993,3005,3017,3038,3057,3070,3085,3098,3111,3124,3138,3143,3147],{"__ignoreMap":2172},[2176,2990,2991],{"class":2178,"line":2179},[2176,2992,2183],{"class":2182},[2176,2994,2995,2997,2999,3001,3003],{"class":2178,"line":2186},[2176,2996,2189],{"class":2182},[2176,2998,2794],{"class":2192},[2176,3000,2195],{"class":2182},[2176,3002,2198],{"class":2182},[2176,3004,2801],{"class":2182},[2176,3006,3007,3009,3011,3013,3015],{"class":2178,"line":2212},[2176,3008,2189],{"class":2182},[2176,3010,2159],{"class":2192},[2176,3012,2195],{"class":2182},[2176,3014,2198],{"class":2182},[2176,3016,2391],{"class":2182},[2176,3018,3019,3022,3025,3027,3029,3031,3034,3036],{"class":2178,"line":2231},[2176,3020,3021],{"class":2182},"    \"",[2176,3023,3024],{"class":2298},"name",[2176,3026,2195],{"class":2182},[2176,3028,2198],{"class":2182},[2176,3030,2201],{"class":2182},[2176,3032,3033],{"class":2204},"Your CI/CD System",[2176,3035,2195],{"class":2182},[2176,3037,2209],{"class":2182},[2176,3039,3040,3042,3045,3047,3049,3051,3053,3055],{"class":2178,"line":2251},[2176,3041,3021],{"class":2182},[2176,3043,3044],{"class":2298},"url",[2176,3046,2195],{"class":2182},[2176,3048,2198],{"class":2182},[2176,3050,2201],{"class":2182},[2176,3052,2482],{"class":2204},[2176,3054,2195],{"class":2182},[2176,3056,2209],{"class":2182},[2176,3058,3059,3061,3064,3066,3068],{"class":2178,"line":2272},[2176,3060,3021],{"class":2182},[2176,3062,3063],{"class":2298},"capabilities",[2176,3065,2195],{"class":2182},[2176,3067,2198],{"class":2182},[2176,3069,2391],{"class":2182},[2176,3071,3072,3075,3079,3081,3083],{"class":2178,"line":2445},[2176,3073,3074],{"class":2182},"      \"",[2176,3076,3078],{"class":3077},"sbssI","statusUpdates",[2176,3080,2195],{"class":2182},[2176,3082,2198],{"class":2182},[2176,3084,2801],{"class":2182},[2176,3086,3087,3089,3092,3094,3096],{"class":2178,"line":2455},[2176,3088,3074],{"class":2182},[2176,3090,3091],{"class":3077},"cancelDeployment",[2176,3093,2195],{"class":2182},[2176,3095,2198],{"class":2182},[2176,3097,2846],{"class":2182},[2176,3099,3100,3102,3105,3107,3109],{"class":2178,"line":2472},[2176,3101,3074],{"class":2182},[2176,3103,3104],{"class":3077},"promoteDeployment",[2176,3106,2195],{"class":2182},[2176,3108,2198],{"class":2182},[2176,3110,2846],{"class":2182},[2176,3112,3113,3115,3118,3120,3122],{"class":2178,"line":2489},[2176,3114,3074],{"class":2182},[2176,3116,3117],{"class":3077},"rollbackDeployment",[2176,3119,2195],{"class":2182},[2176,3121,2198],{"class":2182},[2176,3123,2846],{"class":2182},[2176,3125,3126,3128,3131,3133,3135],{"class":2178,"line":2499},[2176,3127,3074],{"class":2182},[2176,3129,3130],{"class":3077},"deleteDeployment",[2176,3132,2195],{"class":2182},[2176,3134,2198],{"class":2182},[2176,3136,3137],{"class":2182}," false\n",[2176,3139,3140],{"class":2178,"line":2506},[2176,3141,3142],{"class":2182},"    }\n",[2176,3144,3145],{"class":2178,"line":2512},[2176,3146,2534],{"class":2182},[2176,3148,3149],{"class":2178,"line":2518},[2176,3150,2269],{"class":2182},[2661,3152,3154],{"id":3153},"fields","Fields",[1980,3156,3157,3165],{},[1983,3158,3159],{},[1986,3160,3161,3163],{},[1989,3162,1395],{},[1989,3164,1994],{},[1996,3166,3167,3176,3188],{},[1986,3168,3169,3173],{},[2001,3170,3171],{},[1951,3172,3024],{},[2001,3174,3175],{},"Display name for your hosting provider (shown in Cockpit UI)",[1986,3177,3178,3182],{},[2001,3179,3180],{},[1951,3181,3044],{},[2001,3183,3184,3185,3187],{},"Base URL where the project is hosted (e.g., ",[1951,3186,2482],{},"). Will be used in the studio preview",[1986,3189,3190,3194],{},[2001,3191,3192],{},[1951,3193,3063],{},[2001,3195,3196],{},"Object describing which actions your system supports",[2661,3198,3199],{"id":3063},"Capabilities",[1980,3201,3202,3211],{},[1983,3203,3204],{},[1986,3205,3206,3209],{},[1989,3207,3208],{},"Capability",[1989,3210,1994],{},[1996,3212,3213,3222,3231,3240,3249],{},[1986,3214,3215,3219],{},[2001,3216,3217],{},[1951,3218,3078],{},[2001,3220,3221],{},"Your system will call back with deployment status updates. If this capability is not supported, the Cockpit deployment status will be set to unknown.",[1986,3223,3224,3228],{},[2001,3225,3226],{},[1951,3227,3091],{},[2001,3229,3230],{},"Your system can cancel in-progress deployments",[1986,3232,3233,3237],{},[2001,3234,3235],{},[1951,3236,3104],{},[2001,3238,3239],{},"Your system can promote deployments to production",[1986,3241,3242,3246],{},[2001,3243,3244],{},[1951,3245,3117],{},[2001,3247,3248],{},"Your system can rollback to previous deployments",[1986,3250,3251,3255],{},[2001,3252,3253],{},[1951,3254,3130],{},[2001,3256,3257],{},"Your system can delete deployments",[1916,3259,3260,3261,3264],{},"Set capabilities to ",[1951,3262,3263],{},"true"," only for actions your system supports. Cockpit will only send those event types if you indicate support.",[2276,3266,3268],{"id":3267},"hostingconnected",[1951,3269,3270],{},"hosting.connected",[1916,3272,3273],{},"Sent when a project successfully connects to your webhook. Use this to set up any resources you need for the project.",[2661,3275,2914],{"id":3276},"request-1",[2167,3278,3280],{"className":2169,"code":3279,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.connected\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\"\n}\n",[1951,3281,3282,3286,3304,3322,3338],{"__ignoreMap":2172},[2176,3283,3284],{"class":2178,"line":2179},[2176,3285,2183],{"class":2182},[2176,3287,3288,3290,3292,3294,3296,3298,3300,3302],{"class":2178,"line":2186},[2176,3289,2189],{"class":2182},[2176,3291,2111],{"class":2192},[2176,3293,2195],{"class":2182},[2176,3295,2198],{"class":2182},[2176,3297,2201],{"class":2182},[2176,3299,3270],{"class":2204},[2176,3301,2195],{"class":2182},[2176,3303,2209],{"class":2182},[2176,3305,3306,3308,3310,3312,3314,3316,3318,3320],{"class":2178,"line":2212},[2176,3307,2189],{"class":2182},[2176,3309,2128],{"class":2192},[2176,3311,2195],{"class":2182},[2176,3313,2198],{"class":2182},[2176,3315,2201],{"class":2182},[2176,3317,2136],{"class":2204},[2176,3319,2195],{"class":2182},[2176,3321,2209],{"class":2182},[2176,3323,3324,3326,3328,3330,3332,3334,3336],{"class":2178,"line":2231},[2176,3325,2189],{"class":2182},[2176,3327,2144],{"class":2192},[2176,3329,2195],{"class":2182},[2176,3331,2198],{"class":2182},[2176,3333,2201],{"class":2182},[2176,3335,2244],{"class":2204},[2176,3337,2865],{"class":2182},[2176,3339,3340],{"class":2178,"line":2251},[2176,3341,2269],{"class":2182},[2661,3343,2983],{"id":3344},"response-1",[2167,3346,3348],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},"{\n  \"ok\": true,\n  \"data\": {}\n}\n",[1951,3349,3350,3354,3366,3379],{"__ignoreMap":2172},[2176,3351,3352],{"class":2178,"line":2179},[2176,3353,2183],{"class":2182},[2176,3355,3356,3358,3360,3362,3364],{"class":2178,"line":2186},[2176,3357,2189],{"class":2182},[2176,3359,2794],{"class":2192},[2176,3361,2195],{"class":2182},[2176,3363,2198],{"class":2182},[2176,3365,2801],{"class":2182},[2176,3367,3368,3370,3372,3374,3376],{"class":2178,"line":2212},[2176,3369,2189],{"class":2182},[2176,3371,2159],{"class":2192},[2176,3373,2195],{"class":2182},[2176,3375,2198],{"class":2182},[2176,3377,3378],{"class":2182}," {}\n",[2176,3380,3381],{"class":2178,"line":2231},[2176,3382,2269],{"class":2182},[2276,3384,3386],{"id":3385},"hostingdisconnected",[1951,3387,3388],{},"hosting.disconnected",[1916,3390,3391],{},"Sent when a project disconnects from your webhook. Use this to clean up any resources.",[2661,3393,2914],{"id":3394},"request-2",[2167,3396,3398],{"className":2169,"code":3397,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.disconnected\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\"\n}\n",[1951,3399,3400,3404,3422,3440,3456],{"__ignoreMap":2172},[2176,3401,3402],{"class":2178,"line":2179},[2176,3403,2183],{"class":2182},[2176,3405,3406,3408,3410,3412,3414,3416,3418,3420],{"class":2178,"line":2186},[2176,3407,2189],{"class":2182},[2176,3409,2111],{"class":2192},[2176,3411,2195],{"class":2182},[2176,3413,2198],{"class":2182},[2176,3415,2201],{"class":2182},[2176,3417,3388],{"class":2204},[2176,3419,2195],{"class":2182},[2176,3421,2209],{"class":2182},[2176,3423,3424,3426,3428,3430,3432,3434,3436,3438],{"class":2178,"line":2212},[2176,3425,2189],{"class":2182},[2176,3427,2128],{"class":2192},[2176,3429,2195],{"class":2182},[2176,3431,2198],{"class":2182},[2176,3433,2201],{"class":2182},[2176,3435,2136],{"class":2204},[2176,3437,2195],{"class":2182},[2176,3439,2209],{"class":2182},[2176,3441,3442,3444,3446,3448,3450,3452,3454],{"class":2178,"line":2231},[2176,3443,2189],{"class":2182},[2176,3445,2144],{"class":2192},[2176,3447,2195],{"class":2182},[2176,3449,2198],{"class":2182},[2176,3451,2201],{"class":2182},[2176,3453,2244],{"class":2204},[2176,3455,2865],{"class":2182},[2176,3457,3458],{"class":2178,"line":2251},[2176,3459,2269],{"class":2182},[2661,3461,2983],{"id":3462},"response-2",[2167,3464,3465],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},[1951,3466,3467,3471,3483,3495],{"__ignoreMap":2172},[2176,3468,3469],{"class":2178,"line":2179},[2176,3470,2183],{"class":2182},[2176,3472,3473,3475,3477,3479,3481],{"class":2178,"line":2186},[2176,3474,2189],{"class":2182},[2176,3476,2794],{"class":2192},[2176,3478,2195],{"class":2182},[2176,3480,2198],{"class":2182},[2176,3482,2801],{"class":2182},[2176,3484,3485,3487,3489,3491,3493],{"class":2178,"line":2212},[2176,3486,2189],{"class":2182},[2176,3488,2159],{"class":2192},[2176,3490,2195],{"class":2182},[2176,3492,2198],{"class":2182},[2176,3494,3378],{"class":2182},[2176,3496,3497],{"class":2178,"line":2231},[2176,3498,2269],{"class":2182},[2276,3500,3502],{"id":3501},"hostingdeploymentcreated",[1951,3503,2120],{},[1916,3505,3506],{},"Sent when a user triggers a deployment. Contains all files needed to build and deploy the project.",[2661,3508,2914],{"id":3509},"request-3",[2167,3511,3513],{"className":2169,"code":3512,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.created\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\",\n  \"data\": {\n    \"deploymentId\": \"dep_abc123\",\n    \"environment\": \"production\",\n    \"callbackUrl\": \"https://cockpit.laioutr.cloud/api/webhook/hosting/dep_abc123?secret=cbsec_xxx\",\n    \"files\": {\n      \"package.json\": \"{ \\\"name\\\": \\\"storefront\\\", ... }\",\n      \"nuxt.config.ts\": \"export default defineNuxtConfig({ ... })\",\n      \"laioutrrc.json\": \"{ ... }\",\n      \"app.vue\": \"\u003Ctemplate>...\u003C/template>\"\n    }\n  }\n}\n",[1951,3514,3515,3519,3537,3555,3573,3585,3604,3624,3644,3657,3697,3717,3737,3755,3759,3763],{"__ignoreMap":2172},[2176,3516,3517],{"class":2178,"line":2179},[2176,3518,2183],{"class":2182},[2176,3520,3521,3523,3525,3527,3529,3531,3533,3535],{"class":2178,"line":2186},[2176,3522,2189],{"class":2182},[2176,3524,2111],{"class":2192},[2176,3526,2195],{"class":2182},[2176,3528,2198],{"class":2182},[2176,3530,2201],{"class":2182},[2176,3532,2120],{"class":2204},[2176,3534,2195],{"class":2182},[2176,3536,2209],{"class":2182},[2176,3538,3539,3541,3543,3545,3547,3549,3551,3553],{"class":2178,"line":2212},[2176,3540,2189],{"class":2182},[2176,3542,2128],{"class":2192},[2176,3544,2195],{"class":2182},[2176,3546,2198],{"class":2182},[2176,3548,2201],{"class":2182},[2176,3550,2136],{"class":2204},[2176,3552,2195],{"class":2182},[2176,3554,2209],{"class":2182},[2176,3556,3557,3559,3561,3563,3565,3567,3569,3571],{"class":2178,"line":2231},[2176,3558,2189],{"class":2182},[2176,3560,2144],{"class":2192},[2176,3562,2195],{"class":2182},[2176,3564,2198],{"class":2182},[2176,3566,2201],{"class":2182},[2176,3568,2244],{"class":2204},[2176,3570,2195],{"class":2182},[2176,3572,2209],{"class":2182},[2176,3574,3575,3577,3579,3581,3583],{"class":2178,"line":2251},[2176,3576,2189],{"class":2182},[2176,3578,2159],{"class":2192},[2176,3580,2195],{"class":2182},[2176,3582,2198],{"class":2182},[2176,3584,2391],{"class":2182},[2176,3586,3587,3589,3591,3593,3595,3597,3600,3602],{"class":2178,"line":2272},[2176,3588,3021],{"class":2182},[2176,3590,2605],{"class":2298},[2176,3592,2195],{"class":2182},[2176,3594,2198],{"class":2182},[2176,3596,2201],{"class":2182},[2176,3598,3599],{"class":2204},"dep_abc123",[2176,3601,2195],{"class":2182},[2176,3603,2209],{"class":2182},[2176,3605,3606,3608,3611,3613,3615,3617,3620,3622],{"class":2178,"line":2445},[2176,3607,3021],{"class":2182},[2176,3609,3610],{"class":2298},"environment",[2176,3612,2195],{"class":2182},[2176,3614,2198],{"class":2182},[2176,3616,2201],{"class":2182},[2176,3618,3619],{"class":2204},"production",[2176,3621,2195],{"class":2182},[2176,3623,2209],{"class":2182},[2176,3625,3626,3628,3631,3633,3635,3637,3640,3642],{"class":2178,"line":2455},[2176,3627,3021],{"class":2182},[2176,3629,3630],{"class":2298},"callbackUrl",[2176,3632,2195],{"class":2182},[2176,3634,2198],{"class":2182},[2176,3636,2201],{"class":2182},[2176,3638,3639],{"class":2204},"https://cockpit.laioutr.cloud/api/webhook/hosting/dep_abc123?secret=cbsec_xxx",[2176,3641,2195],{"class":2182},[2176,3643,2209],{"class":2182},[2176,3645,3646,3648,3651,3653,3655],{"class":2178,"line":2472},[2176,3647,3021],{"class":2182},[2176,3649,3650],{"class":2298},"files",[2176,3652,2195],{"class":2182},[2176,3654,2198],{"class":2182},[2176,3656,2391],{"class":2182},[2176,3658,3659,3661,3664,3666,3668,3670,3673,3676,3678,3680,3683,3685,3688,3690,3693,3695],{"class":2178,"line":2489},[2176,3660,3074],{"class":2182},[2176,3662,3663],{"class":3077},"package.json",[2176,3665,2195],{"class":2182},[2176,3667,2198],{"class":2182},[2176,3669,2201],{"class":2182},[2176,3671,3672],{"class":2204},"{ ",[2176,3674,3675],{"class":2265},"\\\"",[2176,3677,3024],{"class":2204},[2176,3679,3675],{"class":2265},[2176,3681,3682],{"class":2204},": ",[2176,3684,3675],{"class":2265},[2176,3686,3687],{"class":2204},"storefront",[2176,3689,3675],{"class":2265},[2176,3691,3692],{"class":2204},", ... }",[2176,3694,2195],{"class":2182},[2176,3696,2209],{"class":2182},[2176,3698,3699,3701,3704,3706,3708,3710,3713,3715],{"class":2178,"line":2499},[2176,3700,3074],{"class":2182},[2176,3702,3703],{"class":3077},"nuxt.config.ts",[2176,3705,2195],{"class":2182},[2176,3707,2198],{"class":2182},[2176,3709,2201],{"class":2182},[2176,3711,3712],{"class":2204},"export default defineNuxtConfig({ ... })",[2176,3714,2195],{"class":2182},[2176,3716,2209],{"class":2182},[2176,3718,3719,3721,3724,3726,3728,3730,3733,3735],{"class":2178,"line":2506},[2176,3720,3074],{"class":2182},[2176,3722,3723],{"class":3077},"laioutrrc.json",[2176,3725,2195],{"class":2182},[2176,3727,2198],{"class":2182},[2176,3729,2201],{"class":2182},[2176,3731,3732],{"class":2204},"{ ... }",[2176,3734,2195],{"class":2182},[2176,3736,2209],{"class":2182},[2176,3738,3739,3741,3744,3746,3748,3750,3753],{"class":2178,"line":2512},[2176,3740,3074],{"class":2182},[2176,3742,3743],{"class":3077},"app.vue",[2176,3745,2195],{"class":2182},[2176,3747,2198],{"class":2182},[2176,3749,2201],{"class":2182},[2176,3751,3752],{"class":2204},"\u003Ctemplate>...\u003C/template>",[2176,3754,2865],{"class":2182},[2176,3756,3757],{"class":2178,"line":2518},[2176,3758,3142],{"class":2182},[2176,3760,3761],{"class":2178,"line":2531},[2176,3762,2534],{"class":2182},[2176,3764,3765],{"class":2178,"line":2537},[2176,3766,2269],{"class":2182},[2661,3768,3154],{"id":3769},"fields-1",[1980,3771,3772,3780],{},[1983,3773,3774],{},[1986,3775,3776,3778],{},[1989,3777,1395],{},[1989,3779,1994],{},[1996,3781,3782,3791,3807,3820],{},[1986,3783,3784,3788],{},[2001,3785,3786],{},[1951,3787,2605],{},[2001,3789,3790],{},"Unique identifier for this deployment",[1986,3792,3793,3797],{},[2001,3794,3795],{},[1951,3796,3610],{},[2001,3798,3799,3800,3803,3804],{},"Either ",[1951,3801,3802],{},"\"production\""," or ",[1951,3805,3806],{},"\"staging\"",[1986,3808,3809,3813],{},[2001,3810,3811],{},[1951,3812,3630],{},[2001,3814,3815,3816,2121],{},"URL to POST status updates (see ",[1945,3817,3819],{"href":3818},"#status-callbacks","Status Callbacks",[1986,3821,3822,3826],{},[2001,3823,3824],{},[1951,3825,3650],{},[2001,3827,3828],{},"Map of filename to file contents",[2661,3830,2983],{"id":3831},"response-3",[1916,3833,3834],{},"Acknowledge receipt immediately. Don't wait for the build to complete.",[2167,3836,3837],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},[1951,3838,3839,3843,3855,3867],{"__ignoreMap":2172},[2176,3840,3841],{"class":2178,"line":2179},[2176,3842,2183],{"class":2182},[2176,3844,3845,3847,3849,3851,3853],{"class":2178,"line":2186},[2176,3846,2189],{"class":2182},[2176,3848,2794],{"class":2192},[2176,3850,2195],{"class":2182},[2176,3852,2198],{"class":2182},[2176,3854,2801],{"class":2182},[2176,3856,3857,3859,3861,3863,3865],{"class":2178,"line":2212},[2176,3858,2189],{"class":2182},[2176,3860,2159],{"class":2192},[2176,3862,2195],{"class":2182},[2176,3864,2198],{"class":2182},[2176,3866,3378],{"class":2182},[2176,3868,3869],{"class":2178,"line":2231},[2176,3870,2269],{"class":2182},[2276,3872,3874],{"id":3873},"hostingdeploymentcancel",[1951,3875,3876],{},"hosting.deployment.cancel",[1916,3878,3879,3880,3883],{},"Sent when a user requests to cancel an in-progress deployment. Only sent if you indicated ",[1951,3881,3882],{},"cancelDeployment: true"," in capabilities.",[2661,3885,2914],{"id":3886},"request-4",[2167,3888,3890],{"className":2169,"code":3889,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.cancel\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\",\n  \"data\": {\n    \"deploymentId\": \"dep_abc123\"\n  }\n}\n",[1951,3891,3892,3896,3914,3932,3950,3962,3978,3982],{"__ignoreMap":2172},[2176,3893,3894],{"class":2178,"line":2179},[2176,3895,2183],{"class":2182},[2176,3897,3898,3900,3902,3904,3906,3908,3910,3912],{"class":2178,"line":2186},[2176,3899,2189],{"class":2182},[2176,3901,2111],{"class":2192},[2176,3903,2195],{"class":2182},[2176,3905,2198],{"class":2182},[2176,3907,2201],{"class":2182},[2176,3909,3876],{"class":2204},[2176,3911,2195],{"class":2182},[2176,3913,2209],{"class":2182},[2176,3915,3916,3918,3920,3922,3924,3926,3928,3930],{"class":2178,"line":2212},[2176,3917,2189],{"class":2182},[2176,3919,2128],{"class":2192},[2176,3921,2195],{"class":2182},[2176,3923,2198],{"class":2182},[2176,3925,2201],{"class":2182},[2176,3927,2136],{"class":2204},[2176,3929,2195],{"class":2182},[2176,3931,2209],{"class":2182},[2176,3933,3934,3936,3938,3940,3942,3944,3946,3948],{"class":2178,"line":2231},[2176,3935,2189],{"class":2182},[2176,3937,2144],{"class":2192},[2176,3939,2195],{"class":2182},[2176,3941,2198],{"class":2182},[2176,3943,2201],{"class":2182},[2176,3945,2244],{"class":2204},[2176,3947,2195],{"class":2182},[2176,3949,2209],{"class":2182},[2176,3951,3952,3954,3956,3958,3960],{"class":2178,"line":2251},[2176,3953,2189],{"class":2182},[2176,3955,2159],{"class":2192},[2176,3957,2195],{"class":2182},[2176,3959,2198],{"class":2182},[2176,3961,2391],{"class":2182},[2176,3963,3964,3966,3968,3970,3972,3974,3976],{"class":2178,"line":2272},[2176,3965,3021],{"class":2182},[2176,3967,2605],{"class":2298},[2176,3969,2195],{"class":2182},[2176,3971,2198],{"class":2182},[2176,3973,2201],{"class":2182},[2176,3975,3599],{"class":2204},[2176,3977,2865],{"class":2182},[2176,3979,3980],{"class":2178,"line":2445},[2176,3981,2534],{"class":2182},[2176,3983,3984],{"class":2178,"line":2455},[2176,3985,2269],{"class":2182},[2661,3987,2983],{"id":3988},"response-4",[2167,3990,3991],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},[1951,3992,3993,3997,4009,4021],{"__ignoreMap":2172},[2176,3994,3995],{"class":2178,"line":2179},[2176,3996,2183],{"class":2182},[2176,3998,3999,4001,4003,4005,4007],{"class":2178,"line":2186},[2176,4000,2189],{"class":2182},[2176,4002,2794],{"class":2192},[2176,4004,2195],{"class":2182},[2176,4006,2198],{"class":2182},[2176,4008,2801],{"class":2182},[2176,4010,4011,4013,4015,4017,4019],{"class":2178,"line":2212},[2176,4012,2189],{"class":2182},[2176,4014,2159],{"class":2192},[2176,4016,2195],{"class":2182},[2176,4018,2198],{"class":2182},[2176,4020,3378],{"class":2182},[2176,4022,4023],{"class":2178,"line":2231},[2176,4024,2269],{"class":2182},[2276,4026,4028],{"id":4027},"hostingdeploymentpromote",[1951,4029,4030],{},"hosting.deployment.promote",[1916,4032,4033,4034,3883],{},"Sent when a user wants to promote a staging deployment to production. Only sent if you indicated ",[1951,4035,4036],{},"promoteDeployment: true",[2661,4038,2914],{"id":4039},"request-5",[2167,4041,4043],{"className":2169,"code":4042,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.promote\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\",\n  \"data\": {\n    \"deploymentId\": \"dep_abc123\"\n  }\n}\n",[1951,4044,4045,4049,4067,4085,4103,4115,4131,4135],{"__ignoreMap":2172},[2176,4046,4047],{"class":2178,"line":2179},[2176,4048,2183],{"class":2182},[2176,4050,4051,4053,4055,4057,4059,4061,4063,4065],{"class":2178,"line":2186},[2176,4052,2189],{"class":2182},[2176,4054,2111],{"class":2192},[2176,4056,2195],{"class":2182},[2176,4058,2198],{"class":2182},[2176,4060,2201],{"class":2182},[2176,4062,4030],{"class":2204},[2176,4064,2195],{"class":2182},[2176,4066,2209],{"class":2182},[2176,4068,4069,4071,4073,4075,4077,4079,4081,4083],{"class":2178,"line":2212},[2176,4070,2189],{"class":2182},[2176,4072,2128],{"class":2192},[2176,4074,2195],{"class":2182},[2176,4076,2198],{"class":2182},[2176,4078,2201],{"class":2182},[2176,4080,2136],{"class":2204},[2176,4082,2195],{"class":2182},[2176,4084,2209],{"class":2182},[2176,4086,4087,4089,4091,4093,4095,4097,4099,4101],{"class":2178,"line":2231},[2176,4088,2189],{"class":2182},[2176,4090,2144],{"class":2192},[2176,4092,2195],{"class":2182},[2176,4094,2198],{"class":2182},[2176,4096,2201],{"class":2182},[2176,4098,2244],{"class":2204},[2176,4100,2195],{"class":2182},[2176,4102,2209],{"class":2182},[2176,4104,4105,4107,4109,4111,4113],{"class":2178,"line":2251},[2176,4106,2189],{"class":2182},[2176,4108,2159],{"class":2192},[2176,4110,2195],{"class":2182},[2176,4112,2198],{"class":2182},[2176,4114,2391],{"class":2182},[2176,4116,4117,4119,4121,4123,4125,4127,4129],{"class":2178,"line":2272},[2176,4118,3021],{"class":2182},[2176,4120,2605],{"class":2298},[2176,4122,2195],{"class":2182},[2176,4124,2198],{"class":2182},[2176,4126,2201],{"class":2182},[2176,4128,3599],{"class":2204},[2176,4130,2865],{"class":2182},[2176,4132,4133],{"class":2178,"line":2445},[2176,4134,2534],{"class":2182},[2176,4136,4137],{"class":2178,"line":2455},[2176,4138,2269],{"class":2182},[2661,4140,2983],{"id":4141},"response-5",[2167,4143,4144],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},[1951,4145,4146,4150,4162,4174],{"__ignoreMap":2172},[2176,4147,4148],{"class":2178,"line":2179},[2176,4149,2183],{"class":2182},[2176,4151,4152,4154,4156,4158,4160],{"class":2178,"line":2186},[2176,4153,2189],{"class":2182},[2176,4155,2794],{"class":2192},[2176,4157,2195],{"class":2182},[2176,4159,2198],{"class":2182},[2176,4161,2801],{"class":2182},[2176,4163,4164,4166,4168,4170,4172],{"class":2178,"line":2212},[2176,4165,2189],{"class":2182},[2176,4167,2159],{"class":2192},[2176,4169,2195],{"class":2182},[2176,4171,2198],{"class":2182},[2176,4173,3378],{"class":2182},[2176,4175,4176],{"class":2178,"line":2231},[2176,4177,2269],{"class":2182},[2276,4179,4181],{"id":4180},"hostingdeploymentrollback",[1951,4182,4183],{},"hosting.deployment.rollback",[1916,4185,4186,4187,3883],{},"Sent when a user wants to rollback to a previous deployment. Only sent if you indicated ",[1951,4188,4189],{},"rollbackDeployment: true",[2661,4191,2914],{"id":4192},"request-6",[2167,4194,4196],{"className":2169,"code":4195,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.rollback\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\",\n  \"data\": {\n    \"deploymentId\": \"dep_abc123\",\n    \"fromDeploymentId\": \"dep_xyz789\"\n  }\n}\n",[1951,4197,4198,4202,4220,4238,4256,4268,4286,4304,4308],{"__ignoreMap":2172},[2176,4199,4200],{"class":2178,"line":2179},[2176,4201,2183],{"class":2182},[2176,4203,4204,4206,4208,4210,4212,4214,4216,4218],{"class":2178,"line":2186},[2176,4205,2189],{"class":2182},[2176,4207,2111],{"class":2192},[2176,4209,2195],{"class":2182},[2176,4211,2198],{"class":2182},[2176,4213,2201],{"class":2182},[2176,4215,4183],{"class":2204},[2176,4217,2195],{"class":2182},[2176,4219,2209],{"class":2182},[2176,4221,4222,4224,4226,4228,4230,4232,4234,4236],{"class":2178,"line":2212},[2176,4223,2189],{"class":2182},[2176,4225,2128],{"class":2192},[2176,4227,2195],{"class":2182},[2176,4229,2198],{"class":2182},[2176,4231,2201],{"class":2182},[2176,4233,2136],{"class":2204},[2176,4235,2195],{"class":2182},[2176,4237,2209],{"class":2182},[2176,4239,4240,4242,4244,4246,4248,4250,4252,4254],{"class":2178,"line":2231},[2176,4241,2189],{"class":2182},[2176,4243,2144],{"class":2192},[2176,4245,2195],{"class":2182},[2176,4247,2198],{"class":2182},[2176,4249,2201],{"class":2182},[2176,4251,2244],{"class":2204},[2176,4253,2195],{"class":2182},[2176,4255,2209],{"class":2182},[2176,4257,4258,4260,4262,4264,4266],{"class":2178,"line":2251},[2176,4259,2189],{"class":2182},[2176,4261,2159],{"class":2192},[2176,4263,2195],{"class":2182},[2176,4265,2198],{"class":2182},[2176,4267,2391],{"class":2182},[2176,4269,4270,4272,4274,4276,4278,4280,4282,4284],{"class":2178,"line":2272},[2176,4271,3021],{"class":2182},[2176,4273,2605],{"class":2298},[2176,4275,2195],{"class":2182},[2176,4277,2198],{"class":2182},[2176,4279,2201],{"class":2182},[2176,4281,3599],{"class":2204},[2176,4283,2195],{"class":2182},[2176,4285,2209],{"class":2182},[2176,4287,4288,4290,4293,4295,4297,4299,4302],{"class":2178,"line":2445},[2176,4289,3021],{"class":2182},[2176,4291,4292],{"class":2298},"fromDeploymentId",[2176,4294,2195],{"class":2182},[2176,4296,2198],{"class":2182},[2176,4298,2201],{"class":2182},[2176,4300,4301],{"class":2204},"dep_xyz789",[2176,4303,2865],{"class":2182},[2176,4305,4306],{"class":2178,"line":2455},[2176,4307,2534],{"class":2182},[2176,4309,4310],{"class":2178,"line":2472},[2176,4311,2269],{"class":2182},[2661,4313,3154],{"id":4314},"fields-2",[1980,4316,4317,4328],{},[1983,4318,4319],{},[1986,4320,4321,4323,4326],{},[1989,4322,1395],{},[1989,4324,4325],{},"Required",[1989,4327,1994],{},[1996,4329,4330,4342],{},[1986,4331,4332,4336,4339],{},[2001,4333,4334],{},[1951,4335,2605],{},[2001,4337,4338],{},"Yes",[2001,4340,4341],{},"Deployment to roll back TO",[1986,4343,4344,4348,4351],{},[2001,4345,4346],{},[1951,4347,4292],{},[2001,4349,4350],{},"No",[2001,4352,4353],{},"Currently active deployment being replaced",[2661,4355,2983],{"id":4356},"response-6",[2167,4358,4359],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},[1951,4360,4361,4365,4377,4389],{"__ignoreMap":2172},[2176,4362,4363],{"class":2178,"line":2179},[2176,4364,2183],{"class":2182},[2176,4366,4367,4369,4371,4373,4375],{"class":2178,"line":2186},[2176,4368,2189],{"class":2182},[2176,4370,2794],{"class":2192},[2176,4372,2195],{"class":2182},[2176,4374,2198],{"class":2182},[2176,4376,2801],{"class":2182},[2176,4378,4379,4381,4383,4385,4387],{"class":2178,"line":2212},[2176,4380,2189],{"class":2182},[2176,4382,2159],{"class":2192},[2176,4384,2195],{"class":2182},[2176,4386,2198],{"class":2182},[2176,4388,3378],{"class":2182},[2176,4390,4391],{"class":2178,"line":2231},[2176,4392,2269],{"class":2182},[2276,4394,4396],{"id":4395},"hostingdeploymentdelete",[1951,4397,4398],{},"hosting.deployment.delete",[1916,4400,4401,4402,3883],{},"Sent when a user wants to delete a deployment. Only sent if you indicated ",[1951,4403,4404],{},"deleteDeployment: true",[2661,4406,2914],{"id":4407},"request-7",[2167,4409,4411],{"className":2169,"code":4410,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.delete\",\n  \"timestamp\": \"2025-01-30T12:00:00.000Z\",\n  \"project\": \"acme-corp/storefront\",\n  \"data\": {\n    \"deploymentId\": \"dep_abc123\"\n  }\n}\n",[1951,4412,4413,4417,4435,4453,4471,4483,4499,4503],{"__ignoreMap":2172},[2176,4414,4415],{"class":2178,"line":2179},[2176,4416,2183],{"class":2182},[2176,4418,4419,4421,4423,4425,4427,4429,4431,4433],{"class":2178,"line":2186},[2176,4420,2189],{"class":2182},[2176,4422,2111],{"class":2192},[2176,4424,2195],{"class":2182},[2176,4426,2198],{"class":2182},[2176,4428,2201],{"class":2182},[2176,4430,4398],{"class":2204},[2176,4432,2195],{"class":2182},[2176,4434,2209],{"class":2182},[2176,4436,4437,4439,4441,4443,4445,4447,4449,4451],{"class":2178,"line":2212},[2176,4438,2189],{"class":2182},[2176,4440,2128],{"class":2192},[2176,4442,2195],{"class":2182},[2176,4444,2198],{"class":2182},[2176,4446,2201],{"class":2182},[2176,4448,2136],{"class":2204},[2176,4450,2195],{"class":2182},[2176,4452,2209],{"class":2182},[2176,4454,4455,4457,4459,4461,4463,4465,4467,4469],{"class":2178,"line":2231},[2176,4456,2189],{"class":2182},[2176,4458,2144],{"class":2192},[2176,4460,2195],{"class":2182},[2176,4462,2198],{"class":2182},[2176,4464,2201],{"class":2182},[2176,4466,2244],{"class":2204},[2176,4468,2195],{"class":2182},[2176,4470,2209],{"class":2182},[2176,4472,4473,4475,4477,4479,4481],{"class":2178,"line":2251},[2176,4474,2189],{"class":2182},[2176,4476,2159],{"class":2192},[2176,4478,2195],{"class":2182},[2176,4480,2198],{"class":2182},[2176,4482,2391],{"class":2182},[2176,4484,4485,4487,4489,4491,4493,4495,4497],{"class":2178,"line":2272},[2176,4486,3021],{"class":2182},[2176,4488,2605],{"class":2298},[2176,4490,2195],{"class":2182},[2176,4492,2198],{"class":2182},[2176,4494,2201],{"class":2182},[2176,4496,3599],{"class":2204},[2176,4498,2865],{"class":2182},[2176,4500,4501],{"class":2178,"line":2445},[2176,4502,2534],{"class":2182},[2176,4504,4505],{"class":2178,"line":2455},[2176,4506,2269],{"class":2182},[2661,4508,2983],{"id":4509},"response-7",[2167,4511,4512],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},[1951,4513,4514,4518,4530,4542],{"__ignoreMap":2172},[2176,4515,4516],{"class":2178,"line":2179},[2176,4517,2183],{"class":2182},[2176,4519,4520,4522,4524,4526,4528],{"class":2178,"line":2186},[2176,4521,2189],{"class":2182},[2176,4523,2794],{"class":2192},[2176,4525,2195],{"class":2182},[2176,4527,2198],{"class":2182},[2176,4529,2801],{"class":2182},[2176,4531,4532,4534,4536,4538,4540],{"class":2178,"line":2212},[2176,4533,2189],{"class":2182},[2176,4535,2159],{"class":2192},[2176,4537,2195],{"class":2182},[2176,4539,2198],{"class":2182},[2176,4541,3378],{"class":2182},[2176,4543,4544],{"class":2178,"line":2231},[2176,4545,2269],{"class":2182},[1912,4547,3819],{"id":4548},"status-callbacks",[1916,4550,4551,4552,4555,4556,4558],{},"If you set ",[1951,4553,4554],{},"statusUpdates: true"," in your capabilities, you should POST status updates to the ",[1951,4557,3630],{}," provided in the deployment request.",[2276,4560,4562],{"id":4561},"callback-url","Callback URL",[1916,4564,4565,4566,4568],{},"The callback URL is provided in the ",[1951,4567,2120],{}," event:",[2167,4570,4573],{"className":4571,"code":4572,"language":2763,"meta":2172},[2761],"https://cockpit.laioutr.cloud/api/webhook/hosting/{deploymentId}?secret={secret}\n",[1951,4574,4572],{"__ignoreMap":2172},[1916,4576,1943,4577,4579,4580,4583,4584,4587],{},[1951,4578,2605],{}," is embedded in the URL path. The ",[1951,4581,4582],{},"secret"," parameter (prefixed with ",[1951,4585,4586],{},"cbsec_",") authenticates your request. No additional headers or signatures are required.",[2276,4589,4591],{"id":4590},"deployment-status-state-machine","Deployment Status State Machine",[1916,4593,4594],{},"The following diagram shows the valid deployment status transitions:",[2167,4596,4600],{"className":4597,"code":4598,"language":4599,"meta":2172,"style":2172},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","stateDiagram-v2\n    [*] --> pending: Deployment created\n\n    pending --> running: Build started\n    pending --> canceled: User cancels\n    pending --> error: Immediate failure\n\n    running --> success: Build & deploy succeeded\n    running --> error: Build failed\n    running --> canceled: User cancels\n\n    success --> promoted: Promoted to production\n\n    error --> running: Retry deployment\n\n    canceled --> [*]: Terminal state\n","mermaid",[1951,4601,4602,4607,4612,4616,4621,4626,4631,4635,4640,4645,4650,4654,4659,4663,4668,4672],{"__ignoreMap":2172},[2176,4603,4604],{"class":2178,"line":2179},[2176,4605,4606],{},"stateDiagram-v2\n",[2176,4608,4609],{"class":2178,"line":2186},[2176,4610,4611],{},"    [*] --> pending: Deployment created\n",[2176,4613,4614],{"class":2178,"line":2212},[2176,4615,2364],{"emptyLinePlaceholder":2363},[2176,4617,4618],{"class":2178,"line":2231},[2176,4619,4620],{},"    pending --> running: Build started\n",[2176,4622,4623],{"class":2178,"line":2251},[2176,4624,4625],{},"    pending --> canceled: User cancels\n",[2176,4627,4628],{"class":2178,"line":2272},[2176,4629,4630],{},"    pending --> error: Immediate failure\n",[2176,4632,4633],{"class":2178,"line":2445},[2176,4634,2364],{"emptyLinePlaceholder":2363},[2176,4636,4637],{"class":2178,"line":2455},[2176,4638,4639],{},"    running --> success: Build & deploy succeeded\n",[2176,4641,4642],{"class":2178,"line":2472},[2176,4643,4644],{},"    running --> error: Build failed\n",[2176,4646,4647],{"class":2178,"line":2489},[2176,4648,4649],{},"    running --> canceled: User cancels\n",[2176,4651,4652],{"class":2178,"line":2499},[2176,4653,2364],{"emptyLinePlaceholder":2363},[2176,4655,4656],{"class":2178,"line":2506},[2176,4657,4658],{},"    success --> promoted: Promoted to production\n",[2176,4660,4661],{"class":2178,"line":2512},[2176,4662,2364],{"emptyLinePlaceholder":2363},[2176,4664,4665],{"class":2178,"line":2518},[2176,4666,4667],{},"    error --> running: Retry deployment\n",[2176,4669,4670],{"class":2178,"line":2531},[2176,4671,2364],{"emptyLinePlaceholder":2363},[2176,4673,4674],{"class":2178,"line":2537},[2176,4675,4676],{},"    canceled --> [*]: Terminal state\n",[1916,4678,4679],{},[2751,4680,4681],{},"State Transition Rules:",[1920,4683,4684,4690,4693,4702],{},[1923,4685,4686,4689],{},[1951,4687,4688],{},"canceled"," is a terminal state - no transitions are allowed after cancellation",[1923,4691,4692],{},"Same status updates are ignored (no-op)",[1923,4694,4695,4696,4698,4699],{},"All other transitions are allowed, including recovery from ",[1951,4697,2853],{}," back to ",[1951,4700,4701],{},"running",[1923,4703,4704],{},"Invalid transitions are silently accepted but not applied",[2276,4706,4708],{"id":4707},"status-events","Status Events",[1916,4710,4711,4712,4714,4715,2405],{},"Send a ",[1951,4713,2084],{}," request with ",[1951,4716,2088],{},[1916,4718,4719,4722,4723,4725,4726,4728],{},[2751,4720,4721],{},"Note:"," Status callbacks do not include the ",[1951,4724,2144],{}," field. The deployment is identified by the ",[1951,4727,2605],{}," in the callback URL path.",[2661,4730,4731],{"id":4701},"Running",[1916,4733,4734],{},"Indicate that the deployment is in progress:",[2167,4736,4738],{"className":2169,"code":4737,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.status\",\n  \"timestamp\": \"2025-01-30T12:05:00.000Z\",\n  \"data\": {\n    \"status\": \"running\"\n  }\n}\n",[1951,4739,4740,4744,4763,4782,4794,4811,4815],{"__ignoreMap":2172},[2176,4741,4742],{"class":2178,"line":2179},[2176,4743,2183],{"class":2182},[2176,4745,4746,4748,4750,4752,4754,4756,4759,4761],{"class":2178,"line":2186},[2176,4747,2189],{"class":2182},[2176,4749,2111],{"class":2192},[2176,4751,2195],{"class":2182},[2176,4753,2198],{"class":2182},[2176,4755,2201],{"class":2182},[2176,4757,4758],{"class":2204},"hosting.deployment.status",[2176,4760,2195],{"class":2182},[2176,4762,2209],{"class":2182},[2176,4764,4765,4767,4769,4771,4773,4775,4778,4780],{"class":2178,"line":2212},[2176,4766,2189],{"class":2182},[2176,4768,2128],{"class":2192},[2176,4770,2195],{"class":2182},[2176,4772,2198],{"class":2182},[2176,4774,2201],{"class":2182},[2176,4776,4777],{"class":2204},"2025-01-30T12:05:00.000Z",[2176,4779,2195],{"class":2182},[2176,4781,2209],{"class":2182},[2176,4783,4784,4786,4788,4790,4792],{"class":2178,"line":2231},[2176,4785,2189],{"class":2182},[2176,4787,2159],{"class":2192},[2176,4789,2195],{"class":2182},[2176,4791,2198],{"class":2182},[2176,4793,2391],{"class":2182},[2176,4795,4796,4798,4801,4803,4805,4807,4809],{"class":2178,"line":2251},[2176,4797,3021],{"class":2182},[2176,4799,4800],{"class":2298},"status",[2176,4802,2195],{"class":2182},[2176,4804,2198],{"class":2182},[2176,4806,2201],{"class":2182},[2176,4808,4701],{"class":2204},[2176,4810,2865],{"class":2182},[2176,4812,4813],{"class":2178,"line":2272},[2176,4814,2534],{"class":2182},[2176,4816,4817],{"class":2178,"line":2445},[2176,4818,2269],{"class":2182},[2661,4820,4822],{"id":4821},"success","Success",[1916,4824,4825,4826,4828,4829,4832],{},"Indicate that deployment succeeded. The ",[1951,4827,3044],{}," field is ",[2751,4830,4831],{},"required"," and must be a valid URL:",[2167,4834,4836],{"className":2169,"code":4835,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.status\",\n  \"timestamp\": \"2025-01-30T12:10:00.000Z\",\n  \"data\": {\n    \"status\": \"success\",\n    \"url\": \"https://storefront.example.com\"\n  }\n}\n",[1951,4837,4838,4842,4860,4879,4891,4909,4925,4929],{"__ignoreMap":2172},[2176,4839,4840],{"class":2178,"line":2179},[2176,4841,2183],{"class":2182},[2176,4843,4844,4846,4848,4850,4852,4854,4856,4858],{"class":2178,"line":2186},[2176,4845,2189],{"class":2182},[2176,4847,2111],{"class":2192},[2176,4849,2195],{"class":2182},[2176,4851,2198],{"class":2182},[2176,4853,2201],{"class":2182},[2176,4855,4758],{"class":2204},[2176,4857,2195],{"class":2182},[2176,4859,2209],{"class":2182},[2176,4861,4862,4864,4866,4868,4870,4872,4875,4877],{"class":2178,"line":2212},[2176,4863,2189],{"class":2182},[2176,4865,2128],{"class":2192},[2176,4867,2195],{"class":2182},[2176,4869,2198],{"class":2182},[2176,4871,2201],{"class":2182},[2176,4873,4874],{"class":2204},"2025-01-30T12:10:00.000Z",[2176,4876,2195],{"class":2182},[2176,4878,2209],{"class":2182},[2176,4880,4881,4883,4885,4887,4889],{"class":2178,"line":2231},[2176,4882,2189],{"class":2182},[2176,4884,2159],{"class":2192},[2176,4886,2195],{"class":2182},[2176,4888,2198],{"class":2182},[2176,4890,2391],{"class":2182},[2176,4892,4893,4895,4897,4899,4901,4903,4905,4907],{"class":2178,"line":2251},[2176,4894,3021],{"class":2182},[2176,4896,4800],{"class":2298},[2176,4898,2195],{"class":2182},[2176,4900,2198],{"class":2182},[2176,4902,2201],{"class":2182},[2176,4904,4821],{"class":2204},[2176,4906,2195],{"class":2182},[2176,4908,2209],{"class":2182},[2176,4910,4911,4913,4915,4917,4919,4921,4923],{"class":2178,"line":2272},[2176,4912,3021],{"class":2182},[2176,4914,3044],{"class":2298},[2176,4916,2195],{"class":2182},[2176,4918,2198],{"class":2182},[2176,4920,2201],{"class":2182},[2176,4922,2482],{"class":2204},[2176,4924,2865],{"class":2182},[2176,4926,4927],{"class":2178,"line":2445},[2176,4928,2534],{"class":2182},[2176,4930,4931],{"class":2178,"line":2455},[2176,4932,2269],{"class":2182},[2661,4934,4935],{"id":2853},"Error",[1916,4937,4938,4939,4828,4941,2198],{},"Indicate that the deployment failed. The ",[1951,4940,2853],{},[2751,4942,4831],{},[2167,4944,4946],{"className":2169,"code":4945,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.status\",\n  \"timestamp\": \"2025-01-30T12:10:00.000Z\",\n  \"data\": {\n    \"status\": \"error\",\n    \"error\": \"Build failed: npm install returned exit code 1\"\n  }\n}\n",[1951,4947,4948,4952,4970,4988,5000,5018,5035,5039],{"__ignoreMap":2172},[2176,4949,4950],{"class":2178,"line":2179},[2176,4951,2183],{"class":2182},[2176,4953,4954,4956,4958,4960,4962,4964,4966,4968],{"class":2178,"line":2186},[2176,4955,2189],{"class":2182},[2176,4957,2111],{"class":2192},[2176,4959,2195],{"class":2182},[2176,4961,2198],{"class":2182},[2176,4963,2201],{"class":2182},[2176,4965,4758],{"class":2204},[2176,4967,2195],{"class":2182},[2176,4969,2209],{"class":2182},[2176,4971,4972,4974,4976,4978,4980,4982,4984,4986],{"class":2178,"line":2212},[2176,4973,2189],{"class":2182},[2176,4975,2128],{"class":2192},[2176,4977,2195],{"class":2182},[2176,4979,2198],{"class":2182},[2176,4981,2201],{"class":2182},[2176,4983,4874],{"class":2204},[2176,4985,2195],{"class":2182},[2176,4987,2209],{"class":2182},[2176,4989,4990,4992,4994,4996,4998],{"class":2178,"line":2231},[2176,4991,2189],{"class":2182},[2176,4993,2159],{"class":2192},[2176,4995,2195],{"class":2182},[2176,4997,2198],{"class":2182},[2176,4999,2391],{"class":2182},[2176,5001,5002,5004,5006,5008,5010,5012,5014,5016],{"class":2178,"line":2251},[2176,5003,3021],{"class":2182},[2176,5005,4800],{"class":2298},[2176,5007,2195],{"class":2182},[2176,5009,2198],{"class":2182},[2176,5011,2201],{"class":2182},[2176,5013,2853],{"class":2204},[2176,5015,2195],{"class":2182},[2176,5017,2209],{"class":2182},[2176,5019,5020,5022,5024,5026,5028,5030,5033],{"class":2178,"line":2272},[2176,5021,3021],{"class":2182},[2176,5023,2853],{"class":2298},[2176,5025,2195],{"class":2182},[2176,5027,2198],{"class":2182},[2176,5029,2201],{"class":2182},[2176,5031,5032],{"class":2204},"Build failed: npm install returned exit code 1",[2176,5034,2865],{"class":2182},[2176,5036,5037],{"class":2178,"line":2445},[2176,5038,2534],{"class":2182},[2176,5040,5041],{"class":2178,"line":2455},[2176,5042,2269],{"class":2182},[2661,5044,5046],{"id":5045},"cancelled","Cancelled",[1916,5048,5049],{},"Indicate that the deployment was canceled:",[2167,5051,5053],{"className":2169,"code":5052,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.status\",\n  \"timestamp\": \"2025-01-30T12:08:00.000Z\",\n  \"data\": {\n    \"status\": \"canceled\"\n  }\n}\n",[1951,5054,5055,5059,5077,5096,5108,5124,5128],{"__ignoreMap":2172},[2176,5056,5057],{"class":2178,"line":2179},[2176,5058,2183],{"class":2182},[2176,5060,5061,5063,5065,5067,5069,5071,5073,5075],{"class":2178,"line":2186},[2176,5062,2189],{"class":2182},[2176,5064,2111],{"class":2192},[2176,5066,2195],{"class":2182},[2176,5068,2198],{"class":2182},[2176,5070,2201],{"class":2182},[2176,5072,4758],{"class":2204},[2176,5074,2195],{"class":2182},[2176,5076,2209],{"class":2182},[2176,5078,5079,5081,5083,5085,5087,5089,5092,5094],{"class":2178,"line":2212},[2176,5080,2189],{"class":2182},[2176,5082,2128],{"class":2192},[2176,5084,2195],{"class":2182},[2176,5086,2198],{"class":2182},[2176,5088,2201],{"class":2182},[2176,5090,5091],{"class":2204},"2025-01-30T12:08:00.000Z",[2176,5093,2195],{"class":2182},[2176,5095,2209],{"class":2182},[2176,5097,5098,5100,5102,5104,5106],{"class":2178,"line":2231},[2176,5099,2189],{"class":2182},[2176,5101,2159],{"class":2192},[2176,5103,2195],{"class":2182},[2176,5105,2198],{"class":2182},[2176,5107,2391],{"class":2182},[2176,5109,5110,5112,5114,5116,5118,5120,5122],{"class":2178,"line":2251},[2176,5111,3021],{"class":2182},[2176,5113,4800],{"class":2298},[2176,5115,2195],{"class":2182},[2176,5117,2198],{"class":2182},[2176,5119,2201],{"class":2182},[2176,5121,4688],{"class":2204},[2176,5123,2865],{"class":2182},[2176,5125,5126],{"class":2178,"line":2272},[2176,5127,2534],{"class":2182},[2176,5129,5130],{"class":2178,"line":2445},[2176,5131,2269],{"class":2182},[2661,5133,5135],{"id":5134},"promoted","Promoted",[1916,5137,5138,5139,5141],{},"Indicate that a deployment was promoted to production. The ",[1951,5140,3044],{}," field is optional:",[2167,5143,5145],{"className":2169,"code":5144,"language":2171,"meta":2172,"style":2172},"{\n  \"event\": \"hosting.deployment.status\",\n  \"timestamp\": \"2025-01-30T12:15:00.000Z\",\n  \"data\": {\n    \"status\": \"promoted\",\n    \"url\": \"https://storefront.example.com\"\n  }\n}\n",[1951,5146,5147,5151,5169,5188,5200,5218,5234,5238],{"__ignoreMap":2172},[2176,5148,5149],{"class":2178,"line":2179},[2176,5150,2183],{"class":2182},[2176,5152,5153,5155,5157,5159,5161,5163,5165,5167],{"class":2178,"line":2186},[2176,5154,2189],{"class":2182},[2176,5156,2111],{"class":2192},[2176,5158,2195],{"class":2182},[2176,5160,2198],{"class":2182},[2176,5162,2201],{"class":2182},[2176,5164,4758],{"class":2204},[2176,5166,2195],{"class":2182},[2176,5168,2209],{"class":2182},[2176,5170,5171,5173,5175,5177,5179,5181,5184,5186],{"class":2178,"line":2212},[2176,5172,2189],{"class":2182},[2176,5174,2128],{"class":2192},[2176,5176,2195],{"class":2182},[2176,5178,2198],{"class":2182},[2176,5180,2201],{"class":2182},[2176,5182,5183],{"class":2204},"2025-01-30T12:15:00.000Z",[2176,5185,2195],{"class":2182},[2176,5187,2209],{"class":2182},[2176,5189,5190,5192,5194,5196,5198],{"class":2178,"line":2231},[2176,5191,2189],{"class":2182},[2176,5193,2159],{"class":2192},[2176,5195,2195],{"class":2182},[2176,5197,2198],{"class":2182},[2176,5199,2391],{"class":2182},[2176,5201,5202,5204,5206,5208,5210,5212,5214,5216],{"class":2178,"line":2251},[2176,5203,3021],{"class":2182},[2176,5205,4800],{"class":2298},[2176,5207,2195],{"class":2182},[2176,5209,2198],{"class":2182},[2176,5211,2201],{"class":2182},[2176,5213,5134],{"class":2204},[2176,5215,2195],{"class":2182},[2176,5217,2209],{"class":2182},[2176,5219,5220,5222,5224,5226,5228,5230,5232],{"class":2178,"line":2272},[2176,5221,3021],{"class":2182},[2176,5223,3044],{"class":2298},[2176,5225,2195],{"class":2182},[2176,5227,2198],{"class":2182},[2176,5229,2201],{"class":2182},[2176,5231,2482],{"class":2204},[2176,5233,2865],{"class":2182},[2176,5235,5236],{"class":2178,"line":2445},[2176,5237,2534],{"class":2182},[2176,5239,5240],{"class":2178,"line":2455},[2176,5241,2269],{"class":2182},[2276,5243,5245],{"id":5244},"callback-response","Callback Response",[1916,5247,5248],{},"Cockpit responds with:",[2167,5250,5251],{"className":2169,"code":3347,"language":2171,"meta":2172,"style":2172},[1951,5252,5253,5257,5269,5281],{"__ignoreMap":2172},[2176,5254,5255],{"class":2178,"line":2179},[2176,5256,2183],{"class":2182},[2176,5258,5259,5261,5263,5265,5267],{"class":2178,"line":2186},[2176,5260,2189],{"class":2182},[2176,5262,2794],{"class":2192},[2176,5264,2195],{"class":2182},[2176,5266,2198],{"class":2182},[2176,5268,2801],{"class":2182},[2176,5270,5271,5273,5275,5277,5279],{"class":2178,"line":2212},[2176,5272,2189],{"class":2182},[2176,5274,2159],{"class":2192},[2176,5276,2195],{"class":2182},[2176,5278,2198],{"class":2182},[2176,5280,3378],{"class":2182},[2176,5282,5283],{"class":2178,"line":2231},[2176,5284,2269],{"class":2182},[1916,5286,5287],{},"Or on error:",[2167,5289,5291],{"className":2169,"code":5290,"language":2171,"meta":2172,"style":2172},"{\n  \"ok\": false,\n  \"error\": \"Deployment not found\"\n}\n",[1951,5292,5293,5297,5309,5326],{"__ignoreMap":2172},[2176,5294,5295],{"class":2178,"line":2179},[2176,5296,2183],{"class":2182},[2176,5298,5299,5301,5303,5305,5307],{"class":2178,"line":2186},[2176,5300,2189],{"class":2182},[2176,5302,2794],{"class":2192},[2176,5304,2195],{"class":2182},[2176,5306,2198],{"class":2182},[2176,5308,2846],{"class":2182},[2176,5310,5311,5313,5315,5317,5319,5321,5324],{"class":2178,"line":2212},[2176,5312,2189],{"class":2182},[2176,5314,2853],{"class":2192},[2176,5316,2195],{"class":2182},[2176,5318,2198],{"class":2182},[2176,5320,2201],{"class":2182},[2176,5322,5323],{"class":2204},"Deployment not found",[2176,5325,2865],{"class":2182},[2176,5327,5328],{"class":2178,"line":2231},[2176,5329,2269],{"class":2182},[2661,5331,5333],{"id":5332},"callback-http-status-codes","Callback HTTP Status Codes",[1980,5335,5336,5346],{},[1983,5337,5338],{},[1986,5339,5340,5343],{},[1989,5341,5342],{},"Status",[1989,5344,5345],{},"Meaning",[1996,5347,5348,5355,5362,5369,5376],{},[1986,5349,5350,5352],{},[2001,5351,2879],{},[2001,5353,5354],{},"Status update accepted",[1986,5356,5357,5359],{},[2001,5358,2885],{},[2001,5360,5361],{},"Invalid payload format",[1986,5363,5364,5366],{},[2001,5365,2891],{},[2001,5367,5368],{},"Missing or invalid callback secret",[1986,5370,5371,5374],{},[2001,5372,5373],{},"404",[2001,5375,5323],{},[1986,5377,5378,5380],{},[2001,5379,2897],{},[2001,5381,5382],{},"Server error",[1916,5384,5385,5387,5388,2085,5390,5393],{},[2751,5386,4721],{}," Invalid status transitions (e.g., updating a canceled deployment) return ",[1951,5389,2879],{},[1951,5391,5392],{},"{ \"ok\": true }"," but are silently ignored.",[2276,5395,5397],{"id":5396},"retry-recommendations","Retry Recommendations",[1916,5399,5400],{},"If Cockpit is temporarily unavailable when sending status callbacks:",[1920,5402,5403,5406,5409],{},[1923,5404,5405],{},"Use exponential backoff (e.g., 1s, 2s, 4s, 8s, up to 5 minutes)",[1923,5407,5408],{},"Repeated identical status updates are safe (idempotent)",[1923,5410,5411],{},"After extended failures, consider logging the issue for manual review",[1912,5413,5415],{"id":5414},"setup-in-cockpit","Setup in Cockpit",[2036,5417,5418,5427,5433,5436,5442,5448],{},[1923,5419,5420,5421,5424,5425],{},"Go to ",[2751,5422,5423],{},"Project"," → ",[2751,5426,1533],{},[1923,5428,5429,5430],{},"Click ",[2751,5431,5432],{},"Connect custom hosting",[1923,5434,5435],{},"Enter your webhook endpoint URL",[1923,5437,5438,5439,5441],{},"Copy the signing secret (starts with ",[1951,5440,1974],{},") and configure it in your system",[1923,5443,5429,5444,5447],{},[2751,5445,5446],{},"Test connection"," to verify everything works",[1923,5449,5429,5450,5453],{},[2751,5451,5452],{},"Confirm"," to save the configuration",[1916,5455,5456],{},"Your webhook will now receive events for all deployment actions.",[1912,5458,5460],{"id":5459},"troubleshooting","Troubleshooting",[2276,5462,5464],{"id":5463},"signature-verification-fails","Signature verification fails",[1920,5466,5467,5470,5475,5478,5487,5490,5493],{},[1923,5468,5469],{},"Ensure you're using the raw request body for verification, not a parsed JSON object",[1923,5471,2047,5472,5474],{},[1951,5473,1974],{}," prefix from the secret",[1923,5476,5477],{},"Base64-decode the secret before using it as the HMAC key (this is required by Standard Webhooks)",[1923,5479,5480,5481,5483,5484,5486],{},"The signature format is ",[1951,5482,2031],{}," - extract the base64 part after ",[1951,5485,2062],{}," for comparison",[1923,5488,5489],{},"Check that your signing secret matches exactly (no extra whitespace)",[1923,5491,5492],{},"Verify the timestamp is within 5 minutes of the current time",[1923,5494,5495,5496],{},"Consider using a Standard Webhooks library for your language - see ",[1945,5497,2073],{"href":1968,"rel":5498},[1949],[2276,5500,5502],{"id":5501},"not-receiving-events","Not receiving events",[1920,5504,5505,5508,5514],{},[1923,5506,5507],{},"Check that your endpoint is publicly accessible",[1923,5509,5510,5511,5513],{},"Verify your endpoint returns ",[1951,5512,2879],{}," status codes",[1923,5515,5516],{},"Check your server logs for errors",[2276,5518,5520],{"id":5519},"deployment-stuck-in-running","Deployment stuck in \"running\"",[1920,5522,5523,5526,5532,5535],{},[1923,5524,5525],{},"Ensure you're calling the callback URL with status updates",[1923,5527,5528,5529,5531],{},"Verify the callback URL secret (",[1951,5530,4586],{}," prefix) is included in the query string",[1923,5533,5534],{},"Check that your status payload matches the expected format",[1923,5536,1943,5537,5539,5540,5542,5543],{},[1951,5538,3044],{}," field is required for ",[1951,5541,4821],{}," status - invalid URLs are rejected with ",[1951,5544,2885],{},[5546,5547,5548],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}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}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":2172,"searchDepth":2186,"depth":2186,"links":5550},[5551,5552,5556,5562,5566,5570,5575,5579,5583,5588,5592,5593,5594,5601,5604,5605,5606,5607],{"id":2278,"depth":2186,"text":2279},{"id":2658,"depth":2186,"text":2659,"children":5553},[5554,5555],{"id":2663,"depth":2212,"text":2664},{"id":2743,"depth":2212,"text":2744},{"id":2905,"depth":2186,"text":2415,"children":5557},[5558,5559,5560,5561],{"id":2913,"depth":2212,"text":2914},{"id":2982,"depth":2212,"text":2983},{"id":3153,"depth":2212,"text":3154},{"id":3063,"depth":2212,"text":3199},{"id":3267,"depth":2186,"text":3270,"children":5563},[5564,5565],{"id":3276,"depth":2212,"text":2914},{"id":3344,"depth":2212,"text":2983},{"id":3385,"depth":2186,"text":3388,"children":5567},[5568,5569],{"id":3394,"depth":2212,"text":2914},{"id":3462,"depth":2212,"text":2983},{"id":3501,"depth":2186,"text":2120,"children":5571},[5572,5573,5574],{"id":3509,"depth":2212,"text":2914},{"id":3769,"depth":2212,"text":3154},{"id":3831,"depth":2212,"text":2983},{"id":3873,"depth":2186,"text":3876,"children":5576},[5577,5578],{"id":3886,"depth":2212,"text":2914},{"id":3988,"depth":2212,"text":2983},{"id":4027,"depth":2186,"text":4030,"children":5580},[5581,5582],{"id":4039,"depth":2212,"text":2914},{"id":4141,"depth":2212,"text":2983},{"id":4180,"depth":2186,"text":4183,"children":5584},[5585,5586,5587],{"id":4192,"depth":2212,"text":2914},{"id":4314,"depth":2212,"text":3154},{"id":4356,"depth":2212,"text":2983},{"id":4395,"depth":2186,"text":4398,"children":5589},[5590,5591],{"id":4407,"depth":2212,"text":2914},{"id":4509,"depth":2212,"text":2983},{"id":4561,"depth":2186,"text":4562},{"id":4590,"depth":2186,"text":4591},{"id":4707,"depth":2186,"text":4708,"children":5595},[5596,5597,5598,5599,5600],{"id":4701,"depth":2212,"text":4731},{"id":4821,"depth":2212,"text":4822},{"id":2853,"depth":2212,"text":4935},{"id":5045,"depth":2212,"text":5046},{"id":5134,"depth":2212,"text":5135},{"id":5244,"depth":2186,"text":5245,"children":5602},[5603],{"id":5332,"depth":2212,"text":5333},{"id":5396,"depth":2186,"text":5397},{"id":5463,"depth":2186,"text":5464},{"id":5501,"depth":2186,"text":5502},{"id":5519,"depth":2186,"text":5520},"Integrate your own hosting solution into Laioutr by setting up a webhook. Cockpit calls this webhook for every deployment-related action.","md",{},{"title":5612,"description":5613},"Webhook Configuration | Laioutr","Integrate your own hosting solution into Laioutr by setting up a webhook. Cockpit calls this webhook for every…",{"loc":1620,"lastmod":5615,"changefreq":5616,"priority":2179},"2026-04-08","monthly","Mg7aB0Sjh9fE4XkBVdX-FnvEwkYfCDHwTIwYQdj83js",[5619,5621],{"title":1615,"path":1616,"stem":1617,"description":5620,"children":-1},"The software requirements for the BYOS approach.",{"title":1623,"path":1624,"stem":1625,"description":5622,"children":-1},"Overview of Laioutr’s composable checkout library and how it connects to your ecommerce backend and payment providers.",1783259582339]