リファレンス

ランタイムの機能

ObjectOS が ObjectStack フレームワークのパッケージから読み込める機能。

対応エディション

ObjectOS はすべてのプロジェクトでベースのランタイムを読み込み、その後、アプリケーションのアーティファクトが宣言したオプションの機能をインストールします。

ベースのランタイム

ベースのプロジェクトカーネルには次のものが含まれます。

  • ObjectKernel のライフサイクルとサービスレジストリ
  • ObjectQL データエンジン
  • 設定されたデータドライバー
  • メタデータサービス
  • アプリケーションのアーティファクトの登録
  • OS_AUTH_SECRET が設定されている場合の認証
  • RBAC、行レベルセキュリティ、フィールドのセキュリティのためのセキュリティプラグイン
  • i18n サービス

オプションの機能

アーティファクトは requires リストで機能を宣言できます。ObjectOS は、イメージに存在する場合、一致するフレームワークのパッケージを読み込みます。

機能パッケージ目的
automation@objectstack/service-automationフロー/DAG の実行と自動化ノード
aiフレームワークのパッケージではありません。AI ランタイムは ObjectOS に付属します(AI サービス)LLM アダプター、会話、ツール、SSE ルート
analytics@objectstack/service-analyticsキューブ、分析クエリ、レポートのデータ
audit@objectstack/plugin-audit監査ログのオブジェクトと監査証跡
cache@objectstack/service-cacheキャッシュの抽象化とアダプター
storage@objectstack/service-storageファイル/オブジェクトストレージのサービス
queue@objectstack/service-queueキューの抽象化とワーカー
job@objectstack/service-jobスケジュール/バックグラウンドのジョブ
realtime@objectstack/service-realtimeWebSocket と pub/sub のリアルタイム
settings@objectstack/service-settings設定のマニフェストと K/V リゾルバー

機能が要求されているのにイメージにそのパッケージが含まれていない場合、ObjectOS は警告をログに出力し、その機能を無効にしたまま実行を続けます。 これは意図的な動作です。開発中にオプションのパッケージが欠けていてもランタイムが起動できるようにするためです。しかし本番では現実のリスクになります。

  • 監査を必要とするアプリを @objectstack/plugin-audit のないイメージに読み込むと、問題なく起動し、監査ログを一切書き込みません。コンプライアンスの証拠が、エラーもなく欠落します。
  • ジョブで動くアプリを @objectstack/service-job のないイメージに読み込むと、問題なく起動し、スケジュールされた処理を黙って一切実行しません。

本番のチェックリスト:

  1. 機能の警告はデプロイの失敗として扱います。起動ログを capability not loaded(またはそれに相当するもの)で検索し、1 つでもあれば readiness プローブ / ロールアウトを失敗させます。
  2. ObjectOS ランタイムのイメージは、アーティファクトが requires で宣言するすべてのパッケージを含むものに固定します。
  3. アーティファクトを公開するときは、その requires リストを一緒に記載し、オペレーターが対応するイメージを確認できるようにします。

API サーフェス

ObjectOS が一般的に公開するもの:

  • 生成された REST API
  • /api/v1/auth/* の下の認証エンドポイント
  • メタデータと i18n のエンドポイント
  • 有効な機能のサービスエンドポイント

OData はフレームワークレベルの機能であり、デプロイされたランタイムのパッケージに含まれ、かつ有効になっている場合にだけ、サポートされていると記載すべきものです。

GraphQL はそれらに含まれません。 GraphQL のサーフェスは ObjectStack 17.0 で削除されました。このルートの背後にエンドポイントが実装されたことは一度もなく、現在 /graphql は 404 を返します。どのランタイムパッケージについても、利用可能またはオプションの機能として記載しないでください。(graphql は外部データソースのプロトコルとしては引き続き有効です。それは ObjectOS がクエリするシステムであり、ObjectOS が提供するサーフェスではありません。)