ObjectOS
リソース

変更履歴とバージョニング

ObjectOS のバージョン管理方法、リリース間の変更点、サポート対象について。

変更履歴とバージョニング

バージョニングポリシー

ObjectOS は セマンティックバージョニング に従います: MAJOR.MINOR.PATCH

バージョンの更新意味対応
パッチ (9.7.0 → 9.7.1)バグ修正、動作の変更なしそのまま更新でき、アプリの変更は不要
マイナー (9.6 → 9.7)新機能、後方互換ありそのまま更新でき、必要に応じて新機能を採用
メジャー (8 → 9)リリースノートに記載された破壊的変更アップグレード前に移行ガイドを必読

すべての @objectstack/* パッケージは、同期されたバージョン番号で一緒にリリースされます。これらは個別ではなく、マトリックスとしてテストされます。

互換性マトリックス

コンポーネント互換性ルール
ObjectOS イメージ ↔ コンパイル済みアーティファクト同一のマイナーバージョン。9.7.x のイメージは 9.7.x のアーティファクトを実行します。9.7 のアーティファクトは 9.6 のイメージで利用できない機能を使用している場合があります。
ObjectOS ↔ CLI同一のマイナーバージョンを推奨。npm i -g の CLI は、自身のバージョンに固定されたスキャフォールドを書き出します。
ObjectOS ↔ データベースドライバードライバーはイメージビルドで固定されます。Postgres ≥ 13 / MongoDB ≥ 5 / Turso(現行いずれか)を確認してください。
Node.js20 LTS 以降。新規デプロイには 22 LTS を推奨。

サポート期間

ブランチステータス期限
9.x(現行)活発に開発中。新機能と修正10.0 リリース後、少なくとも 12 か月
8.xセキュリティ修正のみ10.0 リリースで EOL
≤ 7.xサポート対象外すでに EOL

重大なセキュリティ修正は、現行および 1 つ前のメジャーバージョンにバックポートされます。それ以外はすべて main に取り込まれます。

リリースノート

リリース済みの ObjectOS バージョンとその CHANGELOG エントリは、次の場所で公開されています:

GitHub でリリースを購読すると、通知を受け取れます。

最近のハイライト

9.x — 現行リリーストレイン

ObjectOS One とバンドル版サーバーは現在 @objectstack 9.7.0 上で動作します。 ランタイムの起動コントラクトは 8.0 から変更ありません。createStandaloneStack は引き続き同じアーティファクト・環境・データベース設定を受け取るため、8.0 のデプロイは 設定変更なしでそのまま更新できます。変わったのはオーサリング向けの表面です:

  • 分析データセットが唯一のオーサリング表面に(9.0、破壊的)— ダッシュボードのウィジェット、レポート、リストチャートは、セマンティックな dataset (defineDataset(...))をバインドし、ディメンション/メジャーを名前で選択するようになりました。 従来のインラインクエリフィールド(ウィジェットの object/valueField/aggregate、 レポートの objectName/columns/groupingsDown、リストチャートの xAxisField/yAxisFields)は削除されました。移行方法: インラインクエリを defineDataset に移し、名前で参照します。ChartTypeSchema も、ベースとしてしか 描画されなかった 8 つのバリアントタイプを廃止しました(stacked-barbarsplinelinebubblescatter、…)。
  • ビルド時の検証が厳格化(9.6–9.7)— os compile は、裸のフィールド参照 (record.amount ではなく amount)、未知の CEL 関数、誤ったフロー値の補間構文に対して、 それぞれ did-you-mean ヒント付きで失敗するようになりました。以前は「ビルドは通るが 暗黙的に誤っていた」スタックが、明示的に失敗するようになります。アップグレード後に os compile を再実行し、指摘された箇所を修正してください。
  • 数値フィールドの数式が混合演算を計算(9.7)— record.amount / 100record.price * 2 が、暗黙的に null を返すのではなく評価されるようになりました。 / 100.0 という浮動小数点リテラルの回避策はもう不要です。
  • オブジェクト単位の REST ゲーティングを強制適用(ADR-0049)— オブジェクトの apiEnabled: false は REST 表面からそのオブジェクトを除外し、apiMethods ホワイトリストは到達可能な操作を制限します。以前はパースされるだけで強制されていませんでした。
  • パッケージドキュメントをメタデータ化 + book ナビゲーション(9.3–9.6)— src/docs/*.mddoc メタデータとして登録されます。book 要素(ADR-0046)は 派生メンバーシップのナビゲーション軸を宣言し、対象者ゲーティング付きで GET /api/v1/meta/book/:name/tree から提供されます。
  • os package install(9.3)— カタログ ID またはインラインのエアギャップ用アーティファクトから、 稼働中のランタイムにパッケージをインストールします。--email / --password で認証します。
  • 承認(Approvals)(9.3)— 差し戻し再提出(maxRevisions、デフォルト 3)、 ジョブベースの SLA 自動エスカレーション、一覧の検索/ページネーション、 セッションレスのバイリンガル承認/却下確認リンク。
  • インバウンド Webhook のフロートリガー(9.3)— type: 'api' のフローは、 HMAC 検証付きの POST /api/v1/automation/hooks/:flowName/:hookId エンドポイントをマウントし、 冪等かつキューベースの取り込みを行います。
  • 通知の保持期間がデフォルトで有効に(9.5)— 通知履歴は 90 日で自動的に剪定されます。 履歴を永久に保持するには、メッセージングの retentionDays: 0 を設定します。
  • CLI が AI プロバイダーの SDK をバンドル(9.0)— OpenAI 互換プロバイダー (DeepSeek、DashScope、SiliconFlow、OpenRouter、Cloudflare)が、 グローバルインストールした CLI でそのまま動作します。

フロー作成での動作変更として 1 点注意: create_record ノードの outputVariable は、 裸の ID ではなく作成されたレコードオブジェクトを保持するようになりました。ID を期待していた {var} 参照は {var.id} に更新してください。

8.0.x

ObjectOS One とバンドル版サーバーは @objectstack 8.0.1 上で動作していました。

  • MCP over Streamable HTTP — すべてのデプロイがネットワーク到達可能な Model Context Protocol サーバーとして機能できます。 OS_MCP_SERVER_ENABLED=true で有効化すると、エンドポイントは /api/v1/mcp で提供され、 fail-closed 認証(匿名リクエストは拒否)が適用されます。プラグインは @objectstack/plugin-mcp-server から @objectstack/mcp に名称変更されました。
  • セルフサービス API キーPOST /api/v1/keys は一度だけ表示される sys_api_key を発行します。REST のデータ/メタデータ API(/api/v1/data/api/v1/meta)は MCP と同じ検証器で API キーを認証し、キー所有者の権限と レコードレベルセキュリティの下で実行されます。
  • フィールド単位の条件ルールvisibleWhenreadonlyWhenrequiredWhen は フォーム UI だけでなく、ObjectQL によってサーバー側で強制されます。
  • 再利用可能な RLS 読み取りフィルターsecurity.getReadFilter(object, context) が レコードアクセスの読み取り範囲を公開します。分析データセット、ダッシュボード、レポートは これにブリッジし、範囲を安全に適用できない場合は fail closed になります。
  • スタンドアロン host スタック — ランタイムはシングルテナントの createStandaloneStack host を提供します。7.x のクラウド接続・ホスト名ルーティング型の createObjectOSStack ラッパーは削除されました。クラウドデプロイでは OS_ARTIFACT_FILE を公開済みの artifact URL に向けます。

5.0 — projectenvironment への名称変更(リリース済み)

これまで Project と呼ばれていたランタイムの概念が、全体を通して Environment に名称変更されました。影響範囲:

  • CLI フラグ: --environment / -e
  • HTTP パス: /api/v1/environments/:environmentId/...
  • ヘッダー: X-Environment-Id
  • 環境変数: OS_ENVIRONMENT_ID(OS_PROJECT_ID は非推奨のエイリアスとして維持)
  • DB カラム: environment_id
  • JSON スキーマ: EnvironmentArtifact

アップグレード

具体的な手順については アップグレードとロールバック を参照してください。事前チェック:

  1. 現行バージョンとターゲットバージョンの間にあるすべてのマイナーについて、CHANGELOG エントリを読みます。
  2. os diff <old-artifact> <new-artifact> を実行して、破壊的なスキーマ変更を洗い出します。
  3. ターゲットバージョンに対して os doctor を実行します。
  4. フリート全体に展開する前に、カナリアインスタンスを 1 台立ち上げます。
  5. イメージタグとアーティファクトバージョンの両方についてロールバック計画を用意します(これらは独立してロールします)。

リグレッションの報告

パッチまたはマイナーによって、以前は動作していたものが壊れた場合は、github.com/objectstack-ai/objectos/issues で、アップグレード元/先のバージョンを添えてバグを報告してください。リグレッションは最優先で対応すべきバグとして扱います。

On this page