# `design.extpage.add` Add an installed extension's page to the workspace draft under /ek/{slug} (owner-changeable path); the page renders the extension's composite through the active theme. - **scope**: `design:write` - **storefront-visible** (bumps the catalog generation): no - **destructive**: no ## Payload | field | type | required | notes | |---|---|---|---| | `workspace` | string (/^(main\|ws_[A-Z0-9]{26})$/, default "main") | no | | | `ext` | string (/^[a-z0-9-]+\.[a-z0-9-]+$/, ≤80 chars) | yes | | | `slug` | string (/^[a-z0-9-]{1,32}$/) | yes | | | `path` | string (/^\/ek\/[a-z0-9-]{1,40}$/) | no | | | `expectedRev` | integer (1..9007199254740991) \| null | no | | ### JSON Schema ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "workspace": { "default": "main", "type": "string", "pattern": "^(main|ws_[A-Z0-9]{26})$" }, "ext": { "type": "string", "maxLength": 80, "pattern": "^[a-z0-9-]+\\.[a-z0-9-]+$" }, "slug": { "type": "string", "pattern": "^[a-z0-9-]{1,32}$" }, "path": { "type": "string", "pattern": "^\\/ek\\/[a-z0-9-]{1,40}$" }, "expectedRev": { "default": null, "anyOf": [ { "type": "integer", "minimum": 1, "maximum": 9007199254740991 }, { "type": "null" } ] } }, "required": [ "ext", "slug" ], "additionalProperties": false } ```