@drip-apex/apex-cli 0.14.2 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +69 -3
  2. package/dist/cli.js +1433 -366
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -177,7 +177,7 @@ including every subcommand, argument, option, and alias.
177
177
  - `apex triggers apply-recipe` — apply a server-owned trigger recipe.
178
178
  - `apex triggers enable-capture` — enable temporary setup capture.
179
179
  - `apex triggers disable-capture` — disable setup capture and clear its expiry.
180
- - `apex domains` — manage install domains.
180
+ - `apex domains` — manage install domains, and landing-page domains (`claim`, `register`, `status`, `unclaim`; registering asks for a price confirmation).
181
181
  - `apex handover` — manage cross-domain identity handover.
182
182
  - `apex install` — generate storefront installation snippets.
183
183
  - `apex funnels` — manage analytics funnels.
@@ -215,7 +215,7 @@ including every subcommand, argument, option, and alias.
215
215
 
216
216
  - `apex external-pixels` — manage external pixel snippets.
217
217
  - `apex assets` — manage uploaded assets.
218
- - `apex landing-pages` — discover landing pages.
218
+ - `apex landing-pages` — build landing pages with your own tools, then apply, preview, deploy and roll them back.
219
219
  - `apex brand` — manage brand context.
220
220
  - `apex shops` — manage shops and active-shop context.
221
221
  - `apex skills` — inspect agent skill guidance.
@@ -227,13 +227,52 @@ command inventory:
227
227
 
228
228
  | Command | Purpose |
229
229
  | --- | --- |
230
+ | `apex admin customers create` | Create internal, demo or dogfood accounts with a platform user key. Requires `--name`, `--category`, an 8 to 500 character `--reason`, and `--confirm`. |
230
231
  | `apex admin shops archive <shopId>` | Archive a shop and disable Apex delivery; use `--force` in non-interactive environments. |
231
232
  | `apex admin shops restore <shopId>` | Restore an archived shop while leaving its runtime kill switch unchanged. |
232
233
 
234
+ ## Landing pages built outside Apex
235
+
236
+ A landing page is built in a checkout folder by any tool (Claude Code, Codex,
237
+ a static-site build); Apex keeps its versions, goals and deploys.
238
+
239
+ ```bash
240
+ apex landing-pages create --name "Fall sale" --out ./fall-sale # or: pull <id> --out ./fall-sale
241
+ # edit ./fall-sale/index.html and its assets; context/ holds brand, catalog, offers and reviews
242
+ apex landing-pages plan ./fall-sale # what would change
243
+ apex landing-pages apply ./fall-sale --yes # new version + signed preview link (24 hours)
244
+ apex landing-pages deploy ./fall-sale # live on <shop>.apex-page.com, or the host in apex-landing-page.json
245
+ apex landing-pages rollback ./fall-sale --version 1
246
+ apex landing-pages experiment ./fall-sale --control 1 --variant 2 # draft split; start it in the dashboard
247
+ ```
248
+
249
+ The folder holds the page files (index.html at the root, at most 300 files
250
+ and 100 MB; html, css, js, json, svg, images, fonts, txt, xml, webmanifest, mp4 and webm),
251
+ `apex-landing-page.json` and the `context/` folder (each pull replaces its JSON
252
+ files with the server's current set). Build with relative asset
253
+ URLs (Vite `base: "./"`). `apex-landing-page.json` sets the name, slug, an
254
+ optional `host`, a domain claimed with `apex domains claim <host>` (without
255
+ one, or `--host`, a deploy goes to the shop's own instant host
256
+ `<shop>.apex-page.com`), the `path` (default `/<slug>`), whether Apex injects the shop snippet
257
+ (`snippet`, on by default), the `shop_hosts` that receive the visitor's identity
258
+ on outbound links (default: the shop's install domains), the `goals`
259
+ (key, name, type click, pageview or custom) and an optional `experiment`
260
+ (control and variant version numbers). Apply refuses to run without `--yes`
261
+ when no terminal can confirm, and refuses with exit 5 when the page changed
262
+ since the pull (`--force` replaces it anyway). Pull refuses to overwrite a
263
+ checkout with changes that are not applied, or a folder's own files that are not a
264
+ checkout (exit 5; `--force` discards or replaces them). A deploy makes the page's goals match
265
+ `apex-landing-page.json`, so a goal edited in the dashboard is reset. A deploy or rollback while an
266
+ experiment splits the page keeps serving the experiment's two arms and
267
+ leaves its goals as they are (new manifest goals are added); the deployed
268
+ version serves when the experiment ends, and its goal changes apply at the
269
+ next deploy after that.
270
+
233
271
  ## Which local format am I in?
234
272
 
235
273
  Inspect the marker under `.apex/`: `experiment-filesystem.json` means the
236
- folder belongs to `apex experiments pull/plan/apply`, while `session.json`
274
+ folder belongs to `apex experiments pull/plan/apply`, `landing-page.json` means
275
+ an `apex landing-pages` checkout, while `session.json`
237
276
  means it is an `apex workspace checkout/status/publish` workspace. Keep the two
238
277
  formats in different folders; when the wrong command is run, Apex points to the
239
278
  matching status command.
@@ -485,3 +524,30 @@ are sent. Login/logout, tests, the mock transport, and runs with no resolvable c
485
524
  (`APEX_API_KEY` or `DRIP_API_KEY`) are recorded with credential kind `env` unless
486
525
  `APEX_TELEMETRY=0`. Set `APEX_TELEMETRY=0` to disable the beacon. The best-effort request has an
487
526
  800 ms timeout and never changes command output or exit status.
527
+
528
+ MP4 (`video/mp4`) and WebM (`video/webm`) videos are hosted directly by Apex.
529
+ Each version holds at most 300 files and 100 MB; each video is limited to 50 MB,
530
+ and other files to 3 MB. `apply` automatically obtains a 15-minute upload grant
531
+ for videos above 3 MB and sends resumable 8 MB parts straight to the Worker,
532
+ retrying failed parts with progress output. The Worker verifies the declared
533
+ size and SHA-256 before apply records the file. Pull and signed previews also
534
+ fetch large videos directly from the Worker. Video supports byte ranges,
535
+ including Safari's `bytes=0-1` probe; rollback preserves the older bytes.
536
+
537
+ Engineering account creation uses `apex login --user` credentials with `admin:write`
538
+ and a live platform role with onboarding write permission. Real customer accounts
539
+ are created in **Admin, Links**.
540
+
541
+ ```sh
542
+ apex admin customers create --name "Demo workspace" --category demo --reason "Workshop demo account" --confirm --json
543
+ apex admin customers create --name "Dogfood store" --category dogfood --domain dogfood.example.com --platform woo --owner owner@example.com --reason "Engineering dogfood account" --confirm
544
+ ```
545
+
546
+ `--type` defaults to `company` (`company|agency`); `--plan` defaults to
547
+ `self_managed` (`self_managed|apex_managed|drip_managed`). Managed plans require
548
+ `--consultant <platform_access UUID>` and `--consultant-title <text>`.
549
+ An optional first store uses `--domain <host> --platform <shopify|shopware|woo|other>`
550
+ or `--claim-shop <UUID>`, exclusively. `woo` maps to `woocommerce` and `other` to
551
+ `custom`. `--owner <email>` sends an owner invitation and requires a store;
552
+ accounts without a store have no invitations. Output includes the organization ID,
553
+ store ID (or null), invitation results and partial delivery status.