Skip to content

feat: iframe-based app onboarding as a temporary integration path#14

Closed
oto-macenauer-absa wants to merge 1 commit into
masterfrom
feat/iframe-onboarding
Closed

feat: iframe-based app onboarding as a temporary integration path#14
oto-macenauer-absa wants to merge 1 commit into
masterfrom
feat/iframe-onboarding

Conversation

@oto-macenauer-absa

Copy link
Copy Markdown
Collaborator

Implements #10.

Adds a lightweight iframe onboarding mode so teams can appear in the marketplace with a single URL — no headless package, marketplace.json, or release artifact. An explicit temporary stopgap.

Changes

  • Registry (apps.json): new "type": "iframe" + "url" entry type; optional "temporary": true to flag for migration. repo/marketplace.json/artifact not required.
  • Loader (src/utils/apps.js): getAppPages emits a single route per iframe entry (no filesystem crawl).
  • Route (src/pages/[...path].astro): renders a full-viewport <iframe> (sandboxed) inside the marketplace chrome when standalone, full-height when headless/embedded. Packaged apps are completely unchanged.
  • Catalogue (AppCard.astro + marketplace.css): an External badge on iframe cards.
  • Build (scripts/build-vite.js): iframe entries skip the fetch/build + asset steps; up-front registry validation (iframe requires url; packaged requires repo/localPath/prebuilt); warns on temporary entries; counts iframe apps in the summary.
  • Docs: README registry section + HEADLESS_RULES.md note (temporary nature; the external site must allow embedding — CSP frame-ancestors / X-Frame-Options).

Tests

Registers a third iframe app in the test registry; build-integrity.spec.js adds an iframe onboarding suite:

  • single route renders <iframe src=…> full-viewport
  • no packaged sub-app pages generated for the iframe entry
  • landing shows the card with the External badge
  • packaged apps unaffected

Local: embedded 25 passed, standalone 14 passed.

Acceptance criteria

  • apps.json accepts "type": "iframe" + "url"
  • iframe entry renders a full-viewport <iframe> in the chrome at /knowledge-base/{slug}/
  • iframe entries appear on the catalogue with an "External" badge
  • existing headless apps unaffected
  • registry validation allows/handles the new fields
  • "temporary": true flag (warned at build time) marks entries for migration
  • HEADLESS_RULES.md notes the iframe option + its temporary nature

Closes #10

🤖 Generated with Claude Code

Add an iframe onboarding mode so teams can be listed in the marketplace with a
single URL, without a headless package/release artifact. Explicit stopgap.

- apps.json: new "type": "iframe" + "url" entry type (no repo/marketplace.json/
  artifact required); optional "temporary": true to flag entries for migration.
- src/utils/apps.js: getAppPages emits a single route per iframe entry.
- src/pages/[...path].astro: renders a full-viewport <iframe> inside the
  marketplace chrome (standalone) or full-height (headless/embedded); packaged
  apps are unchanged.
- src/components/AppCard.astro + marketplace.css: "External" badge on iframe
  cards in the catalogue.
- scripts/build-vite.js: skip iframe entries in artifact/asset steps; validate
  registry entries (iframe requires url; packaged requires a source); warn on
  temporary entries; include iframe apps in the summary count.
- Tests: register a third (iframe) app in the test registry; build-integrity
  covers the iframe route, the External badge, no packaged pages, and that
  packaged apps are unaffected.
- Docs: README registry section + HEADLESS_RULES.md note (temporary nature,
  cross-origin embedding requirement).

Closes #10

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@oto-macenauer-absa oto-macenauer-absa deleted the feat/iframe-onboarding branch July 2, 2026 07:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: iFrame-based app onboarding as a temporary integration path

1 participant