Skip to content

feat(signage): import plugins from a frontend repository (PPT-2814) - #310

Merged
MrYuion merged 1 commit into
developfrom
feat/PPT-2814-signage-plugin-import
Sep 24, 2026
Merged

MrYuion merged 1 commit into
developfrom
feat/PPT-2814-signage-plugin-import

Conversation

@MrYuion

@MrYuion MrYuion commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator

Problem

To add a signage plugin, an admin must type its URI by hand. The backend can now list the HTML files in an interface repository (GET /repositories/{id}/files), and plugins now report their type. Backoffice does not use either yet.

Jira: PPT-2814. The recording is on the Jira issue.

Fix

  • Add an Import Plugin from Repository button next to Add Plugin on the Signage Plugins page.
  • The wizard asks for a frontend (interface) repository. It gets the *.html files with listRepositoryFiles, then loads each file in an off-screen iframe (6 at a time, 10 s timeout) and waits for the SDK loaded message.
  • It lists only the valid plugins with their name, URI and type. When the user selects one, the normal new plugin form opens with name, URI and type filled in, and the defaults load as usual.
  • The probe iframe uses sandbox="allow-scripts" only. Unknown HTML files in the repository get an opaque origin and cannot get to the admin session. The SDK posts with target origin *, so plugins still answer.
  • Changing the repository or closing the wizard stops the probes that are in progress.
  • Bump @placeos/ts-client to 6.5.0 for listRepositoryFiles and the new types.

Checks

  • bun run test:ci: 80 files, 940 tests pass. New tests cover the probe (loaded, wrong source, fatal error, abort, type default, blank name) and the concurrency limit.
  • bun run lint, tsc, bun run build: pass.
  • Manual test on a local PlaceOS stack (nightly images) with place-labs/signage-plugin-templates: 8 of 9 HTML files are listed with the correct types (validator.html is excluded). Selecting youtube-player opens the form with the fields filled in.

Note: the dev proxy does not forward repository folders (for example /signage-plugins/), so on localhost:4200 against a remote backend the probes time out. This is the same as the existing plugin test modal.


Made by Claude Opus 5.5 (1M context) in Claude Code (T3 Code).

🤖 Generated with Claude Code

Add an import wizard next to manual plugin entry. It lists the HTML
files in an interface repository, loads each in a sandboxed off-screen
iframe, and lists the files that report as plugins. Selecting one opens
the new plugin form with name, URI and type filled in.

Bump @placeos/ts-client to 6.5.0 for listRepositoryFiles.

Refs PPT-2814

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
backoffice Ready Ready Preview Sep 24, 2026 2:12am UTC

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@MrYuion
MrYuion merged commit bc27866 into develop Sep 24, 2026
6 of 8 checks passed
@MrYuion
MrYuion deleted the feat/PPT-2814-signage-plugin-import branch September 24, 2026 02:15

This branch was successfully deployed

1 active deployment
Preview 44cfc45c Deployed Sep 24, 2026 by vercel[bot]
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.

1 participant