Skip to content

feat(ipa): Add IPA-130 Dynamic Content Fields#56

Open
AgustinBettati wants to merge 1 commit into
mainfrom
CLOUDP-412577-ipa-130-dynamic-content-fields
Open

feat(ipa): Add IPA-130 Dynamic Content Fields#56
AgustinBettati wants to merge 1 commit into
mainfrom
CLOUDP-412577-ipa-130-dynamic-content-fields

Conversation

@AgustinBettati

@AgustinBettati AgustinBettati commented Jun 12, 2026

Copy link
Copy Markdown
Member

Summary

Adds IPA-130: Dynamic Content Fields (experimental), requiring resource properties whose value is JSON to be modeled as JSON objects rather than as strings containing serialized JSON. String-serialized JSON forces clients to serialize/parse at the edges and produces round-trip drift when servers normalize the content (e.g. AuditLog.auditFilter).

Part of the CLOUDP-356095 epic. Resolves CLOUDP-412577.

@AgustinBettati AgustinBettati force-pushed the CLOUDP-412577-ipa-130-dynamic-content-fields branch from 5f58053 to a080925 Compare June 12, 2026 14:15
Adds IPA-130 requiring JSON-valued properties to be modeled as JSON
objects rather than strings holding serialized JSON, which forces
clients to serialize/parse at the edges and produces round-trip drift
when servers normalize the content.

CLOUDP-412577
@AgustinBettati AgustinBettati force-pushed the CLOUDP-412577-ipa-130-dynamic-content-fields branch from a080925 to a223df4 Compare June 12, 2026 14:33
@AgustinBettati AgustinBettati marked this pull request as ready for review June 12, 2026 14:36
@AgustinBettati AgustinBettati requested a review from a team as a code owner June 12, 2026 14:36
Comment thread ipa/general/0130.md
Comment on lines +22 to +23
- When the JSON is genuinely dynamic (arbitrary client-provided keys and
values), the property can be modeled as an object with dynamic keys.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- When the JSON is genuinely dynamic (arbitrary client-provided keys and
values), the property can be modeled as an object with dynamic keys.
- When the JSON is genuinely dynamic (arbitrary client-provided keys and values), the property **may** be modeled as an object with dynamic keys.

@wtrocki

wtrocki commented Jun 15, 2026

Copy link
Copy Markdown
Member

@AgustinBettati Great work! Do you see way we can enforce this rule via spectral?

Comment thread ipa/general/0130.md
@@ -0,0 +1,23 @@
---
id: 130
state: experimental

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mark this as experimental or adopt? The proposed behavior is well established: if a resource returns JSON, it must not encode nested JSON as a string.

Comment thread ipa/general/0130.md
state: experimental
---

# IPA-130: Dynamic Content Fields

@wtrocki wtrocki Jun 15, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The challenge we've seen is that String fields were used instead of object (any) fields. This means the IPA als clarifying how we handle unstructured data — using objects rather than strings. Focusing on that in summary instead of what not to use (strings) might lead to more clarity

@wtrocki wtrocki left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Great change. Made optional (future actions) comments that will help us to move this to adopt phase.

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.

3 participants