Skip to content

replace: change test target to ApplyPatch#48

Draft
ivixvi wants to merge 2 commits intomainfrom
tmp/check-ApplyPatch-compatibility
Draft

replace: change test target to ApplyPatch#48
ivixvi wants to merge 2 commits intomainfrom
tmp/check-ApplyPatch-compatibility

Conversation

@ivixvi
Copy link
Copy Markdown
Owner

@ivixvi ivixvi commented Mar 29, 2026

概要

本家リポジトリでPatchの適用関数が追加される予定のため、互換性を確認するためのPR

Check compatibility with the upcoming ApplyPatch function in the upstream repository

参考

@ivixvi
Copy link
Copy Markdown
Owner Author

ivixvi commented Mar 29, 2026

  1. Dot notation 未対応(path未指定時)
    • 修正必要、すでに指摘済み
    • 対象
      • path_not_specified_add: dot notation ケース — "name.familyName" がそのままキーとして書き込まれる
      • path_not_specified_replace: dot notation 2ケース — 同上(replace/add両方)
  2. Extension属性のキー格納方式の違い(path指定時)
    • PRは extension 属性を "schemaURI:attrName" というフラットなキーで格納する
    • 現リポジトリは data["schemaURI"]["attrName"] とネストして格納する
    • 修正が必要、RFCではネストされた状態で保存されている
    • https://datatracker.ietf.org/doc/html/rfc7643#section-8.3
    • 対象
      • path_specified_add: Extension系 12ケース全滅
      • path_specified_remove: Extension系 7ケース失敗
      • path_specified_replace: Extension系 8ケース失敗
  3. MultiValued Add で既存値と同じ値を追加しようとすると invalidValue エラー
    • IdPを信用すれば、同じ値を追加しようとしてこないはずなので現実的にはどっちでもいいはず
    • また、仕様的にはscimのPR側が正しい
    • 対象
      • path_not_specified_add: 3ケース
      • path_specified_add: 1ケース(Add All no changed)
  4. externalId がスキーマに見つからない
    • EntraIDはexternalIdを変更するリクエストを送れるので要検討
    • 一応呼び出し側でmutableなexternalIdをCoreSchemaにAppendしてから呼び出せば利用はできるので暫定対処可能、ドキュメントに明示したほうがいいかも
    • 対象
      • path_specified_replace: externalId ケース — PRは externalId を暗黙的に認識しない
  5. Replace emails[expr] でマッチ要素の既存サブ属性が保持される(merge動作)
    • scimのPR側の処理が正しいので問題ないはず
    • 対象
      • path_specified_replace: Replace For Item — PRは既存の primary: true を保持したまま merge する。現リポジトリは完全置換する
  6. Add emails[expr].value で対象データが空の場合、新規要素が作られない
    • 修正必要、既に指摘済み
    • 対象
      • path_specified_add: Filter & Value addition — PRは空データに対して valueExpression 付き add で新規要素を作らない
  7. Replace emails[expr].value で対象データが空の場合、noTarget エラー
    • scimのPR側の処理のほうが正しいので問題ないはず
    • 対象
      • path_specified_replace: Filter & Value addition — PRは RFC 7644 に従い noTarget を返す(現リポジトリは空結果を返す)
  8. Extension MultiValued の path未指定 add で append ではなく replace
    • emails等では対応できていたはずなので、Extension対応が漏れているからかも?
    • →path未指定時だから別要因か、これも指摘いるわ……
    • 対象
      • path_not_specified_add: merge slice ケース

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant