プラグインシステム概要
Authrim には、Worker に組み込む TypeScript のプラグイン API と、Plugin Runner が管理するインストール・能力のモデルがあります。コードの読み込み、設定、実行の契約は異なります。
| 方式 | コードの実行 | 設定・スコープ |
|---|---|---|
組み込み AuthrimPlugin | Worker に import し、ar-lib-plugin で登録 | Zod スキーマ、初期設定、全体・テナント別の上書き |
Runner の in_process | Runner のレジストリに存在するハンドラーを実行 | インストールと能力のポリシー。マニフェストだけでハンドラーが生成されるわけではありません |
Runner の dynamic_worker | R2 の PLUGIN_BUNDLES から承認済みバンドルを取得し、PLUGIN_LOADER で実行 | テナント別インストール、固定された成果物とポリシー、限定したホスト機能と外部通信 |
動的な読み込みは実装されています。ただし、Admin UI から任意の npm パッケージを入れる方式ではありません。Setup がマニフェストを検出・検証して成果物とポリシーを公開し、Runner が実行対象を検証します。
組み込みプラグイン
Section titled “組み込みプラグイン”自動登録の対象には通知と人間確認のプラグインがあります。
notifier-console、notifier-cloudflare、notifier-resendhuman-verification-cloudflare-turnstilehuman-verification-google-recaptchahuman-verification-hcaptcha
一覧にあることと、有効化・認証情報の設定が済んでいることは別です。ar-lib-plugin に TOTP などの実装やインターフェースがあっても、すべての認証方式・プロバイダーが自動登録されるわけではありません。
Runner の役割
Section titled “Runner の役割”Runner はテナントのインストールを解決し、同期フックと非同期配送を処理します。ポリシーとバージョンの状態を検証し、外部アクセスを制限します。通知の非同期経路では、暗号化された配信内容を保存し、フックにはその参照を渡す仕組みがあります。
独自 Worker に渡すのは、承認済みのホストインターフェースとプラグイン用リソースのラッパーです。親 Worker の環境全体や Core・PII への無制限なアクセスではありません。プラグイン専用の D1・KV・R2 には、スコープ、アクセス権、作成方法の宣言が必要です。
ライフサイクル
Section titled “ライフサイクル”動的プラグインは、マニフェストとバンドルの作成 → Setup による公開 → テナントの認証情報・リソース設定 → 有効化 → 対応する呼び出しの実行 → 障害・配送状態の確認、という流れです。新しい成果物の公開と、既存インストールへの展開は別の操作です。
無効化はインストールの使用を止める操作です。アンインストールはリソースの後処理を含む別の操作で、稼働中 Worker のファイルシステムからパッケージを削除する操作ではありません。