マイグレーションガイド: v1.8.0
このガイドは v1.7.x から v1.8.0 へのアップグレードを支援します。バージョン 1.8.0 で変更されるのは master と survey-template パッケージのみです。マスターデータに対するオプトインのアクセス制御(controllerAuth ガードとシステム単位のアクセスリゾルバー)を追加し、master パッケージを使用するすべてのアプリケーションに対して、キーの検証、マスターコピー、統合バルクエンドポイント、タスク親ルートの動作を一部変更します。
リリース日
2026-11-15
変更の概要
| 変更内容 | 影響 | 必要なアクション |
|---|---|---|
すべてのキーセグメントで # と @ を拒否 | すべてのアプリ。そのようなコード、ユーザー ID、グループ ID を含むリクエストは 400 で失敗します。キーに @ を含む既存の行には API から到達できなくなります | 連携処理を確認し、影響を受ける行を見つけて再作成する |
| 設定行とデータ行はそれぞれ専用のルートでのみ変更 | pk/sk で行を更新または削除するすべてのアプリ | 設定行には /api/master-setting、データ行には /api/master-data を使用する |
| マスターコピーがコピー元テナントを読み取り、シーケンスもコピー | マスターコピーを使用するすべてのアプリ | コピー前にコピー先のシーケンスを確認する |
マスターコピーに system_admin が必要 | controllerAuth を設定しているか、リゾルバーを登録しているアプリ | コピーを行うユーザーの custom:roles クレームに system_admin を付与する |
POST /api/master-bulk は設定をデータより先に upsert | 統合バルクエンドポイントを使用するすべてのアプリ | リクエストがアトミックであることを前提にしない |
GET /api/tasks/sfn-task-parent は custom:tenant クレームを優先 | x-tenant-code で別のテナントを送信していたクライアント | 呼び出し元自身のテナントに対してリクエストを送信する |
settingValue、name、seq を省略した更新 | すべて のアプリ | なし。省略したフィールドは保持されるようになりました |
MySQL の検索修正と databaseProvider オプション | MySQL を使用するアプリ | ローカルのパッチを削除し、検出に失敗する場合は databaseProvider を設定する |
controllerAuth、systemId、@MasterAccessResolver() (オプトイン) | 有効にしない限りなし | 任意: アクセス制御の導入 に従う |
プロジェクトテンプレート: 空の controllerAuth オブジェクト | 新規プロジェクトのみ | マスターの書き込みに必要なロールを設定する |
移行前チェックリスト
- プロジェクトがすでに v1.7.x と Node.js 22 で動作している(v1.7.0 移行ガイド を参照)
- マスター設定、マスターデータ、ユーザー設定・グループ設定を作成する連携処理と、それらがコード、ユーザー ID、グループ ID として使用する値を把握している
- アプリケーションがマスターコピーまたは
POST /api/master-bulkを呼び出しているかを把握している
ステップ1:依存関係の更新
npm install \
@mbc-cqrs-serverless/core@^1.8.0 \
@mbc-cqrs-serverless/tenant@^1.8.0 \
@mbc-cqrs-serverless/master@^1.8.0 \
@mbc-cqrs-serverless/sequence@^1.8.0 \
@mbc-cqrs-serverless/task@^1.8.0 \
@mbc-cqrs-serverless/cli@^1.8.0
サーベイテンプレートパッケージを使用している場合は、@mbc-cqrs-serverless/survey-template も ^1.8.0 に更新してください。