変更履歴
MBC CQRS Serverlessのすべての注目すべき変更がここに記録されています。このプロジェクトはセマンティックバージョニングとConventional Commitsに従っています。
バージョン体系
x.y.z- 本番リリースx.y.z-beta.n- テスト用ベータリリースx.y.z-alpha.n- 早期アクセス用アルファリリース
安定版リリース (1.x)
1.1.2 (2026-02-25)
新機能
- master: マスター設定とデータのビルトインupsertメソッドを追加 (詳細を見る)
- MasterSettingService用の
upsertTenantSetting()、upsertSetting()、upsertBulk() - MasterDataService用の
upsert()、upsertSetting()、upsertBulk() - 新規レコードの作成、変更レコードの更新、未変更レコードのスキップを自動的に行う
- ソフト削除されたレコードの再作成をサポート
- MasterSettingService用の
- master: 統合バルクupsert API(
/api/master-bulk/)を追加 (詳細を見る)- 設定とデータの両方を処理する単一エンドポイント
settingCodeフィールドの有無でアイテムをルーティング- レスポンスで元の入力順序を保持
- テナントコードバリデーションを適用
- master: すべてのバルクDTOに
@ArrayMaxSize(100)バリデーションを追加 - master: 個別のバルクエンドポイント(
/api/master-setting/bulk、/api/master-data/bulk)にテナントコードバリデーションを追加
バグ修正
- core:
checkVersionのエラーメッセージが実際のcommandVersionではなくハードコードされた値を使用していた問題を修正 (PR #331) - master:
createSettingでseq === 0がfalsyとして扱われる問題をnullチェック(seq == null)に変更して修正 - master:
createSettingでseq変更前にattributesをクローンしてDTOミューテーションを修正
テスト
- MasterBulkControllerの包括的なユニットテストを追加(8テストケース)
- MasterDataServiceのupsertおよびupsertBulkメソッドのユニットテストを追加
- MasterSettingServiceのupsertTenantSettingおよびupsertBulkメソッドのユニットテストを追加
- マスターデータと設定のupsertシナリオの統合テストを追加
1.1.1 (2026-02-07)
バグ修正
- cli: 不足していた
import_tmp.jsonDynamoDBテーブルテンプレートを追加 (詳細を見る) (PR #323)- CLIテンプレートに
import_tmpテーブル定義が含まれておらず、npm run offline:slsが失敗していました serverless.ymlが参照するLOCAL_DDB_IMPORT_TMP_STREAM環境変数は、マイグレーション時にテーブルが作成される必要があります- 以前のバージョンを使用している場合の回避策はよくある問題を参照
- CLIテンプレートに
1.1.0 (2026-02-03)
破壊的変更
- tenant:
TENANT_COMMONのenum値を'COMMON'から'common'(小文字)に変更- この変更はパーティションキーのフォーマットに影響します:
TENANT#COMMON→TENANT#common - マイグレーション必須:
TENANT#COMMONパーティションキーを持つ既存データの移行が必要です - 詳細な手順はマイグレーションガイドを参照してください
- この変更はパーティションキーのフォーマットに影響します:
- core: 非推奨の
CommandService.publish()メソッドを削除 (詳細を見る)- 代わりに
CommandService.publishAsync()を使用してください
- 代わりに
- core: 非推奨の
CommandService.publishPartialUpdate()メソッドを削除- 代わりに
CommandService.publishPartialUpdateAsync()を使用してください
- 代わりに
- sequence: 非推奨の
SequencesService.genNewSequence()メソッドを削除- 代わりに
SequencesService.generateSequenceItem()を使用してください
- 代わりに
新機能
- core: 大文字小文字を区別しないマッチングのためのテナントコード正規化を追加 (詳細を見る)
- テナントコードは自動的に小文字に正規化されるようになりました
getUserContext()は正規化されたテナントコードを返します- すべてのDynamoDB操作は一貫性のため正規化されたテナントコードを使用します
- core: 明示的な正規化のための
normalizeTenantCode()ユーティリティ関数を追加 - core: 共通テナント検出のための
isCommonTenant()ユーティリティ関数を追加 - core: AWS SESメールのカテゴリ分けとフィルタリング用EmailTagsサポートを追加 (詳細を見る)
EmailNotificationインターフェースに新しいemailTagsオプション- タグはSESに渡されメールのカテゴリ分けとトラッキングに使用
- core: RolesGuardに拡張可能なテナント検証を追加 (詳細を見る)
isHeaderOverride(): ヘッダー ベースのテナントオーバーライドを検出canOverrideTenant(): クロステナントアクセスの権限をチェックgetCommonTenantCodes(): 設定可能な共通テナントリストgetCrossTenantRoles(): 設定可能なクロステナントロール(デフォルト: 'system_admin')
- cli: スキル更新用のnpmレジストリバージョンチェックを追加
- ローカルのpackage.jsonではなくnpmレジストリから最新バージョンを取得
- ネットワークリクエストを削減するための24時間キャッシュ
- オフライン時はキャッシュバージョンにフォールバック
セキュリティ
- core: テナントコードヘッダーオーバーライドをシステム管理者のみに制限
- 以前は
custom:tenantCognito属性のないユーザーがヘッダー経由で任意のテナントを指定可能でした - 現在はグローバル
system_adminロールを持つユーザーのみがx-tenant-codeヘッダーでテナントコードをオーバーライド可能 - 一般ユーザーはCognitoで
custom:tenantを設定する必要があります
- 以前は
バグ修正
- master: MasterSettingServiceとMasterDataServiceでの
TENANT_COMMON定数の使用を修正- 以前ハ ードコードされていた
'COMMON'文字列はSettingTypeEnum.TENANT_COMMONを使用するようになりました - フレームワーク全体で一貫したパーティションキー生成を保証
- 以前ハ ードコードされていた
テスト
- tenant: TenantServiceメソッドの包括的なテストを追加
getTenant(): 取得テストupdateTenant(): 更新と属性マージテストdeleteTenant(): ソフト削除テストaddTenantGroup(): グループ管理テストcustomizeSettingGroups(): 設定カスタマイズテストcreateTenantGroup(): テナントグループ作成テスト
- tenant: SettingTypeEnum検証テストを追加
TENANT_COMMON = 'common'(小文字)を検証- enumの完全性と一貫性を保証
- core: テナントコード正規化テストを追加(70件以上のテストケース)
- core: テナント正規化コマンドテストを追加(30件以上のテストケース)
- core: 包括的な依存関係統合テストを追加(3400以上のテスト)
- AWS SDK統合テスト(DynamoDB、S3、SNS、SQS、Step Functions、SES)
- NestJS動作テスト(デコレーター、設定、DI、Swagger)
- サードパーティライブラリテスト(class-transformer、class-validator、RxJS)
ドキュメント
- v1.1.0テナントコード変更のマイグレーションガイドを追加
1.0.26 (2026-01-26)
新機能
- cli: 環境変数によるローカルサービスポートの設定機能を追加 (詳細を見る) (PR #300)
LOCAL_HTTP_PORT、LOCAL_DYNAMODB_PORT、LOCAL_RDS_PORTなどのポート変数をサポート- 他のサービスとのポート競合を解決可能に
- 設定はDocker Compose、Serverless Offline、トリガースクリプトに自動的に適用
セキュリティ
- セキュリティ修正のため
diffパッケージを4.0.2から4.0.4に更新 (PR #297, PR #299) - プロトタイプ汚染修正のため
lodashパッケージを4.17.21から4.17.23に更新 (PR #298)
1.0.25 (2026-01-19)
新機能
- core: 高度な変数置換によるインラインテンプレートメールの機能強化 (詳細を見る)
- ネストプロパティアクセスのサポート(例:
{{user.profile.name}}) - テンプレート変数でのUnicode/日本語キーのサポート
- プレースホルダー内の空白トリミング(例:
{{ name }}は{{name}}と同等) - テンプレートコンパイルのローカル開発フォールバック機能の改善
- ネストプロパティアクセスのサポート(例:
1.0.24 (2026-01-17)
新機能
- mcp-server: ガイド付き開発支援のためのClaude Code Skillsを追加 (詳細を見る)
/mbc-generate: ボイラープレートコードを生成(モジュール、サービス、コントローラー、DTO、ハンドラー)/mbc-review: ベストプラクティスとアンチパターン(20パターン)のコードレビュー/mbc-migrate: バージョン移行と破壊的変更のガイド/mbc-debug: 一般的な問題のデバッグとトラブルシューティング- Skillsはnpmパッケージ経由で配布され、
~/.claude/skills/または.claude/skills/にインストール可能
- cli: 簡単なskillsインストールのための
mbc install-skillsコマンドを追加 (詳細を見る)- skillsを個人ディレクトリ(
~/.claude/skills/)またはプロジェクトディレクトリ(.claude/skills/)にインストール - オプション:
--project,--force,--list
- skillsを個人ディレクトリ(
バグ修正
- core: パラメータ名のタイポを修正:
skExpessionをskExpressionに- 影響するパッケージ: core, directory, master, task, ui-setting
- これは古いパラメータ名を参照していたTypeScriptユーザーにとっては破壊的変更でした
1.0.23 (2026-01-16)
新機能
- core: インラインテンプレートメールサポートと
sendInlineTemplateEmail()メソッドを追加 (詳細を見る)- EmailServiceに新しい
sendInlineTemplateEmail(msg: TemplatedEmailNotification)メソッド - 動的データ置換によるインラインHTML/テキストテンプレートのサポート
- SESが利用できない場合の手動テンプレートコンパイルによるローカル開発フォールバック
- 新しいインターフェース:
InlineTemplateContent,TemplatedEmailNotification
- EmailServiceに新しい
1.0.22 (2026-01-16)
新機能
- mcp-server: AI支援開発のためのコード分析ツールを追加 (詳細を見る)
mbc_check_anti_patterns: 重大度レベル付きでコード内の一般的なアンチパターンを検出mbc_health_check: プロジェクトヘルスチェック(依存関係、構造、設定)mbc_explain_code: MBC CQRSコンテキストでコードを分析・説明
バグ修正
- mcp-server: コード分析ツールの堅牢性を向上
- アンチパターンを連番で再採番(AP001-AP010)
- 誤検出を防ぐため正規表現のマッチ範囲を制限
- ファイル読み取りとJSON解析のエラーハンドリングを追加
- 分析ツールに18のユニットテストを追加
セキュリティ
- 依存関係のセキュリティ脆弱性を修正: qs, express, body-parser
依存関係
- qsを6.13.0から6.14.1に更新
- @nestjs/platform-expressを10.4.20から10.4.22に更新
- expressを4.21.2から4.22.1に更新
- body-parserを1.20.3から1.20.4に更新
1.0.21 (2026-01-15)
新機能
- import: ImportModuleにZIPファイナライゼーションフックのサポートを追加
- カスタムインポート後処理用の新しい
IZipFinalizationHookインターフェース ImportModule.register()のzipFinalizationHooksオプションでフックを登録- フックは結果、ステータス、実行入力を含む
ZipFinalizationContextを受け取る
- カスタムインポート後処理用の新しい
1.0.20 (2026-01-11)
バグ修正
- import: Step Functions CSVハンドラーが子ジョブの失敗に関わらず常にCOMPLETEDステータスを設定する問題を修正
CsvImportSfnEventHandler.finalizeParentJob()を修正し、子ジョブが失敗した場合に正しくFAILEDステータスを設定csv_loaderステートのCsvImportSfnEventHandlerを修正し、失敗を伴う早期終了時に正しくステータスを設定- 以前は三項演算子が両方のケースでCOMPLETEDを返していました:
failedRows > 0 ? COMPLETED : COMPLETED - failedRows > 0の場合、正しくFAILEDを返すように修正:
failedRows > 0 ? FAILED : COMPLETED - このバグにより、子インポートジョブが失敗してもStep FunctionsがSUCCESSを報告していました
- 詳細はCsvImportSfnEventHandlerを参照
1.0.19 (2026-01-11)
バグ修正
- import: 子インポートジョブが失敗した際にマスタージョブのステータスがFAILEDに更新されない問題を修正
- 以前は、子インポートジョブが
ConditionalCheckFailedExceptionなどのエラーで失敗した場合、マスタージョブのステータスが無期限にPROCESSINGのままでした incrementParentJobCountersを修正し、子ジョブが失敗した場合にマスタージョブのステータスを正しくFAILEDに設定(以前は常にCOMPLETEDを設定)ImportQueueEventHandler.handleImportがエラー時にincrementParentJobCountersを呼び出すように修正し、親カウンターが更新されることを保証- エラーハンドラーから
throw errorを削除し、Lambdaのクラッシュを防ぎ、適切なステータス伝播を可能に - この修正はv1.0.18で開始したStep Functionsエラーハンドリングを完成させ、
SendTaskFailureが適切にトリガーされることを保証 - 詳細はImportQueueEventHandlerエラーハンドリングを参照
- 以前は、子インポートジョブが
1.0.18 (2026-01-10)
バグ修正
- import: Step Functionsの適切なエラーハンドリングのため、
ImportStatusHandlerにSendTaskFailureサポートを追加- 以前は、インポートジョブが失敗した際、
SendTaskSuccessのみ実装されていたため、Step Functionが無期限に待機していました - ジョブが失敗した際にハンドラーが適切に
SendTaskFailureを送信し、Step Functionsがエラーを正しく処理できるようになりました SendTaskFailureCommandを送信するsendTaskFailure()メソッドを追加- ハンドラーがCSVインポートジョブの
COMPLETEDとFAILEDの両方のステータスを処理するようになりました - 詳細はImportStatusHandler APIを参照
- 以前は、インポートジョブが失敗した際、
1.0.17 (2026-01-08)
バグ修正
- master:
MasterDataService.search()のmasterTypeCode比較を修正 -settingCode検索パラメータを部分一致(contains)から完全一致に変更 (詳細を見る) - cli: setTimeoutを削除してAbstractRunnerテストを安定化し、CIの不安定なテスト失敗を修正
セキュリティ
- 依存関係のセキュリティ脆弱性を修正: jws (HMAC署名検証の問題), nodemailer (DoS脆弱性)
依存関係
- validatorを13.15.20から13.15.26に更新
- @modelcontextprotocol/sdkを1.25.1から1.25.2に更新
ドキュメント
- すべてのパッケージのREADMEファイルを包括的なAPIリファレンスと使用例で更新
- tenantパッケージのREADMEで
createTenantGroupパラメータ名を修正 - 日本語ガイドのリンクを公式ドキュメントに更新
1.0.16 (2025-12-31)
バグ修正
- cli: テスト生成ファイルのクリーンアップを追加し、.gitignoreを更新
- master, directory, task, cli: エラーメッセージを改善してわかりやすく
新機能
- インポート作成時のattributesに__s3Keyを含める
- Zipモードでテーブル名を提供
- CreateImportDtoにオプションのs3Keyを追加
1.0.15 (2025-12-31)
バグ修正
- ui-setting: エラーメッセージを改善してわかりやすく
- mcp-server: ERROR_CATALOG.mdの検索にMBC_PROJECT_PATHを使用
1.0.14 (2025-12-29)
新機能
- mcp-server: AIツール統合用のMCPサーバーパッケージを追加
ドキュメント
- 包括的なエラーメッセージカタログを追加
- コアインターフェースにJSDocコメントを追加
- 運用ドキュメント(FAQ、トラブルシューティング、セキュリティ)を追加
- AI対応ドキュメントファイルを追加
1.0.13 (2025-12-26)
新機能
- CreateZipImportDtoとZipImportQueueEventHandlerを強化