Skip to content

コミュニティプラグインレジストリとバンドル

レジストリは2つの部分から成り、どちらも個々のDataCoreデプロイメント自身のデータベースとは意図的に 分離されています。これにより、独立したインストール間で共有できます:

  • registry/ — バックエンドAPI、ユーザーアカウント、SQLiteバックエンドの掲載データストア。
  • community-site/ — 独立したウェブサイト (独自のReactアプリ、独自のDockerサービス、ポート 5273) で、DataCoreの他の部分を一切実行せずにコンテンツを閲覧・投稿できます。これがレジストリに 独立した到達先としてアクセスする主要な方法です — メインアプリのリソース/プラグイン画面にも利便性の ためのパネルがありますが、すべて同じ registry APIと同じデータを参照します。

2種類の公開掲載をホストします:

  • プラグイン — 名前、説明、作者、バージョン、プラグインのリポジトリへのリンク、(任意で) Docker イメージ参照とタグ。
  • DataCoreバンドル — 共有可能なリソースの「レシピ」: リソース定義 (名前、タイプ、ソースURL) の 一覧と、それらを処理したパイプライン (ステップの順序とどのプラグインか、名前とリポジトリリンクで 相互参照)。完全な流れはバンドルの共有とインポートを参照してください。

投稿によって実際に保存されるもの

どちらの掲載タイプもメタデータとリンクのみを保存します — 実行可能なコードは決して保存されず、 (バンドルの場合) 処理済みの生の成果物データも決して保存されません。これは意図的なスコープ判断です:

  • 見知らぬ人が投稿したコードを他人のインフラが自動的に実行することを許可するのは、サプライチェーン /RCEリスクです。そのためプラグイン掲載は、あなたが自分でクローン・レビュー・デプロイするリポジトリ へのポインタです。
  • バンドルは元のソース (URL) とパイプライン定義へのポインタです — インポートするとそれらのソース を再取得し、インポート者自身のパイプラインで再処理します。エクスポート元の実際のSummary/Vector/ 分析出力が送信されることは一切ありません。

アカウント

どちらの種類の掲載を投稿するにも、確認済みメールアドレスを持つ無料アカウントが必要です (閲覧には 不要です)。登録、メール確認、パスワードリセット、GitHubサインインについては ユーザーアカウント を参照してください。

使い方

独立したサイトに直接アクセスするか (http://localhost:5273)、メインWeb UIのパネルを使用してください: プラグインコミュニティを見る、および リソースバンドルとして共有 / コミュニティからインポート。これらはすべて (コアウェアハウスAPIではなく) レジストリサービスを 直接呼び出します — レジストリAPIリファレンス を参照してください。

自分自身のレジストリインスタンスを運用する

docker-compose.yml に同梱されている registry サービスは、ローカルデモや信頼できる社内デプロイ 向けの単一ノードインスタンスです。複数の無関係なチームが投稿する、本当に公開されたインターネット 向けのレジストリが必要な場合、公開前に以下を追加する必要があります:

  • モデレーション — アカウントとメール確認は存在しますが、管理者によるレビューキューはなく、 掲載を削除できるのはその所有者のみです (モデレーターによる上書きはありません)。
  • 実際のメール配信SMTP_HOST が設定されていない場合、確認/リセットメールは送信される 代わりに registry/data/outbox/ に書き込まれます。SMTP_HOST/SMTP_PORT/SMTP_USER/ SMTP_PASS/MAIL_FROM を設定してください。
  • 固定の JWT_SECRET — 設定しない場合、コンテナ起動のたびにランダムなシークレットが生成され、 再起動のたびにすべてのセッションがログアウトされます。
  • より強力な不正利用対策 — 基本的なIPごとのレート制限 (20件/時間の投稿、15分あたり20回の認証 試行) はありますが、実際の公開デプロイではCAPTCHAなどを追加すべきです。
  • TLS + 実際のドメイン — 証明書を持つリバースプロキシの背後にデプロイし、各DataCoreデプロイメント のフロントエンドを、同居する registry コンテナではなく、その共有URLに向けてください。

これらは現時点では実装されていません — 信頼されたネットワークを超えて公開する予定がある場合に、 サプライズではなく情報に基づいた判断ができるよう、ここに明記しています。