テーマシステム
現在の本番バージョンで開放されているのはテーマパッケージのみです。管理者が管理画面の テーマ ページから ZIP をアップロードすると、システムはパッケージ全体を検証してからテーマストレージに書き込み、新しいパッケージは既定で無効化されます。プラグインのアップロード API・プラグイン管理ページ・プラグインランタイムはありません。
拡張タイプの選択
| タイプ | 適用シーン | JavaScript | データ能力 | 高さ範囲 |
|---|---|---|---|---|
| CSS テーマ | 元の機能を維持し、配色・フォント・余白・ビジュアルだけ調整 | 不可 | ホストの既存 DOM を使用 | ページ自体 |
| Canvas テーマ | 公開ページのレイアウト・操作・チャートを全面書き換え | sandbox iframe | 状態スナップショット + 制限付き履歴リクエスト | 400-12000 |
ページ全体のカスタマイズは Canvas テーマ、見た目だけの変更は CSS テーマを優先します。独立パネルは公開 v1 API で構築し、独立ドメインにデプロイします。
インストールと有効化の流れ
- 作者がソースからクリーンな
dist/をビルドする。 manifest.jsonは ZIP ルートに置く。- 作者が ZIP の SHA-256 を計算して公開する。
- 管理者がテーマの入口からアップロードする。
- ブラウザと Worker がそれぞれ SHA-256 を検証する。
- 検証後も既定で無効のまま。管理者が確認して手動で有効化する。
- テーマを無効化するとすぐに元の UI に戻る。
権限境界
CSS テーマはスクリプトを実行しません。Canvas テーマは sandbox="allow-scripts" かつ allow-same-origin なしの iframe で動作し、CSP が直接のネットワーク・フォーム・トップレベルナビゲーションを禁止します。データは制限付きメッセージプロトコルでホストから提供され、宣言できるのは status:read のみです。管理セッション・パスワード・TOTP・Agent マスタートークン・ノード scoped Token がテーマに渡ることはありません。
テーマ ZIP はサイズ・ファイル数・パス・タイプ・マニフェスト・SHA-256 を検証されます。具体的な制限はセキュリティとリリースを参照してください。
ドキュメント
- CSS テーマ:最小マニフェスト・フィールドルール・スコープ・アクセシビリティ。
- Canvas テーマ:完全レイアウト・権限・受入シナリオ。
- メッセージプロトコル:
postMessageタイプ・リクエスト/レスポンス・ライフサイクル。 - セキュリティとリリース:プラットフォーム検証上限・サプライチェーン・リリース受入。
- プラグインの状態:プラグイン機能が未開放の理由と代替手段。