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