メインコンテンツへスキップ
エンタープライズプラグインレジストリは、組織が社内全体での配布用に承認されたプラグインを管理する、中央集約型のプライベートリポジトリです。各チームが個別にプラグインを発見し検証する代わりに、レジストリは事前承認済み、保守され、すぐに使用可能な機能のキュレートされたカタログを提供します。

エンタープライズプラグインレジストリを使用する理由

レジストリの設定

エンタープライズプラグインレジストリは、組織の承認されたプラグインとマーケットプレイスマニフェストを含むGitリポジトリです。

リポジトリ構造

マーケットプレイスマニフェスト

プラグインを登録するために.factory-plugin/marketplace.jsonを作成します:

組織レベルの設定

レジストリを組織レベルで設定することで、すべてのユーザーが自動的に利用できるようになります。組織管理設定に追加します:

マーケットプレイスの制限

ユーザーが未承認のマーケットプレイスを追加することを防ぐには、strictKnownMarketplacesを使用します:
strictKnownMarketplacesが設定されている場合:
  • ユーザーは承認リストからのマーケットプレイスのみ追加可能
  • 未承認のマーケットプレイスからのプラグインインストールはブロック
  • 既存の未承認マーケットプレイスは動作し続けるが更新不可
この設定により:
  • ユーザーが/pluginsを実行すると、レジストリが自動的に表示される
  • 事前有効化されたプラグインは手動インストールなしですぐに利用可能
  • ユーザーは必要に応じてレジストリから追加のプラグインをインストール可能

ユーザーエクスペリエンス

ユーザーは/plugins UIを通じてプラグインを管理します:
  1. /pluginsを実行してプラグインマネージャーを開く
  2. ブラウズタブで組織レジストリを含む登録されたすべてのマーケットプレイスからプラグインを閲覧
  3. 組織が有効にしたプラグインは起動時に自動的に事前インストール
CLI アクセスの場合:
ユーザーは公開マーケットプレイスと並んでレジストリを確認でき、組織のプラグインは明確にラベル付けされています。

役割別のプラグイン整理

組織のチームとワークフローに合わせてレジストリを構造化します:

チーム機能別

機能別

プロジェクトタイプ別

プラグインの事前インストール

全員が必要とする重要な機能については、組織管理設定でenabledPluginsを使用します:
事前インストールされたプラグイン:
  • 初回のDroidセッションですぐに利用可能
  • orgスコープで自動的にインストール
  • /plugins UIまたはdroid plugin updateで更新可能

バージョン管理

プラグインはGitコミットハッシュでバージョン管理されます。プラグインが更新されると、Droidはマーケットプレイスから最新のコミットを取得します。 バージョンを制御するには、マーケットプレイスソース自体に ref(ブランチまたはタグ)または sha(フルコミットSHA)を設定して固定します:
一般的なパターン:
  • ref: "main" — すべてのユーザー向けのプロダクション準備完了(デフォルトの動作)
  • ref: "staging" — 早期採用者チャンネル
  • ref: "v1.2.0" — リリースタグに固定
  • sha: "<40文字のSHA>" — 特定のコミットへのハードピン;droid plugin marketplace update は何も行いません
完全なソーススキーマについては、プラグイン · マーケットプレイスをrefまたはコミットに固定するを参照してください。
プラグインごとの version フィールドによるバージョン固定は現在サポートされていません。プラグインのバージョンを固定するには、ref または sha を使用してプラグインが含まれるマーケットプレイスを固定してください。

プライベート npm レジストリ認証

トークンベース認証が必要なプライベートレジストリ(JFrog Artifactory、AWS CodeArtifact、GitHub Packages など)から npm パッケージとして配布するプラグインでは、プラグインソースの authTokenEnvVar フィールドを使って、認証トークンを保持する環境変数を指定します:
インストール時に、Droid は指定された環境変数からトークンを読み取り、一時的な .npmrc にレジストリパス単位の _authToken エントリを書き込みます。トークンがインストール後にディスクへ永続化されることはありません。環境変数が設定されていない場合、インストールは早い段階で失敗し、どの変数を export すべきかを示す具体的なエラーが表示されます。 オンボーディング用ドキュメントでは、必要なトークンを開発者が export するよう案内してください:

プライベートリポジトリアクセス

プライベートGitリポジトリの場合、Droidが認証できることを確認します:

GitHub Enterprise

GitLab セルフホスト

SSHベースのアクセス

リポジトリホスト用のSSHキーが設定されていることを確認してください。

ローカルマーケットプレイス

エアギャップ環境やGitアクセスが制限されている場合、ローカルディレクトリマーケットプレイスを使用できます。これは以下の場合に便利です:
  • インターネットアクセスがない環境
  • 公開前のプラグインテスト
  • 共有ネットワークドライブ経由での内部配布

ローカルマーケットプレイスの設定

標準的なマーケットプレイス構造でディレクトリを作成します:

ローカルマーケットプレイスの追加

UI経由:/plugins → マーケットプレイスタブ → 「新しいマーケットプレイスを追加」→ 絶対パスを入力 CLI経由:

自動登録の設定

設定でlocalソースタイプを使用します:
ローカルマーケットプレイスをレジストリから削除しても、Droidはソースディレクトリを削除しません。削除時にディレクトリが削除されるのは、Gitでクローンされたマーケットプレイスのみです。

ベストプラクティス

プラグインをレジストリに追加する前に:
  • 外部依存関係のセキュリティレビュー
  • プラットフォームチームによるコードレビュー
  • 分離環境でのテスト
  • ドキュメント要件
すべてのプラグインには以下を含むREADMEが必要です:
  • 提供する機能
  • 使用すべきタイミング(および使用すべきでないタイミング)
  • 前提条件や依存関係
  • 使用例
チームが変更内容を予測できるようにセマンティックバージョニングを使用します:
  • Major: コマンドまたは動作の破壊的変更
  • Minor: 後方互換性のある新機能
  • Patch: バグ修正のみ
使用されているプラグインを追跡します:
  • インストール数
  • アクティブ利用メトリクス
  • チームからのフィードバック
  • 課題と機能リクエスト
プラグインを廃止するとき:
  • 非推奨化のタイムラインを告知する
  • 代替手段への移行パスを提供する
  • 移行中は非推奨プラグインを読み取り専用で利用可能にします

例:金融サービス組織

金融サービス会社がレジストリを設定する場合: 必須プラグイン(全員に事前インストール):
  • compliance-checks - PCI-DSSおよびSOXコンプライアンス検証
  • security-scanner - OWASP脆弱性検出
  • audit-logging - すべてのDroidアクションの強化された監査証跡
チーム固有プラグイン(インストール可能):
  • trading-systems - 定量分析および取引チーム向け
  • risk-models - リスク管理チーム向け
  • regulatory-reporting - コンプライアンスチーム向け
設定 (org-managed-settings.json):
これにより、すべての開発者が初日からコンプライアンスとセキュリティツールを持ちながら、専門チームはドメイン固有の機能を追加できます。

関連