Loading stored default plan…

Manual Harness Controls

Toggle consent to reproduce buffered telemetry. Pending consent keeps analytics in the SDK buffer; granting flushes everything immediately.

Consent pending — [hub-embed] buffers events until you grant consent.

Real-Time Embed Test

Follow the same copy/paste flow customers use: generate the snippet in admin, paste it here, then run the embed exactly as a CMS page would. The Manual Harness Controls and plan banner above stay active on this route so consent and plan status remain visible while you test.

Environment checklist

  1. Run pnpm publish:embed whenever you rebuild @events-hub/embed-sdk so the admin snippet generator points at fresh manifests.
  2. Start the full stack with pnpm dev:stack (demo host 3000, admin 3001, API 4000, CDN 5173) before validating snippets end-to-end.
  3. Use the Manual Harness Controls to flip consent states as needed. The embed should buffer telemetry while consent is pending, just like in production.

Need a refresher on the generator requirements? Review docs/product/admin-snippet.md for SRI, Trusted Types, and refusal logic.

Snippet workflow

  1. Open the admin snippet generator and configure tenant/embed/base path settings.
  2. Copy the rendered <div data-hub-embed> snippet (container + styles + module/nomodule scripts).
  3. Paste the snippet into the tester below, review validation output, then run it inside the preview sandbox.

Resolved origins

Admin origin
http://localhost:3001
CDN origin
http://localhost:5173

These values come from NEXT_PUBLIC_ADMIN_ORIGIN / ADMIN_EMBED_CDN_ORIGIN. Update your env files if they differ from the stack you expect to validate.

Real-Time Embed Tester

Paste the snippet generated in admin and run it exactly as a CMS page would. The tester validates the markup, injects the container, mirrors telemetry, and exposes the structured log buffer without emitting new ClickHouse events. Use the consent controls above to simulate CMP states while you test.

Snippets persist locally as soon as you paste or type.

Paste the admin snippet to enable Run.

Execution toggles

Validation summary

  • Container
  • Module script
  • Nomodule script
  • Stylesheet link

Run status

Status
Idle
Run ID
Pending
Started
Finished
DOM ready
Pending
Telemetry confirmed
Pending
Telemetry events
0
Message
Awaiting execution.

Script status

Scripts will appear here after validation succeeds.

Stylesheets

No stylesheet links detected.

Preview sandbox

The snippet injects below. Use window.__liveEmbedHarness.destroyAll() from DevTools if you need to manually clear handles between runs.

Paste a valid snippet to enable the preview.

Telemetry mirror (0)

Telemetry payloads appear here after the snippet dispatches hub-embed:event.

Structured log

Copy is available after the run captures log entries.

Logs appear after you run the snippet.

Embed context

Plan hash
default-plan-seed
Plan source
fallback · loading
Consent status
pending