fix(apps): ignore unknown fields when reading app extension rows#30432
fix(apps): ignore unknown fields when reading app extension rows#30432Vishnuujain wants to merge 4 commits into
Conversation
✅ PR checks passedThe linked issue has a description and all required Shipping project fields set. Thanks! |
✅ Playwright Results — workflow succeededValidated commit ✅ 536 passed · ❌ 0 failed · 🟡 1 flaky · ⏭️ 5 skipped · 🧰 0 lifecycle flaky PerformanceBlocking targets: ✅ met · Optimization targets: 🟡 in progress Shard-job maxima below are not the full workflow wall time; the linked run includes build, fixture, planning, and reporting. 🕒 Full workflow signal wall (to summary) 50m 42s ⏱️ Max setup 3m 10s · max shard execution 15m 54s · max shard-job elapsed before upload 19m 35s · reporting 5s 🌐 202.56 requests/attempt · 2.87 app boots/UI scenario · 9.54% common-shard skew Optimization targets still in progress:
🟡 1 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
|
Code Review ✅ Approved 1 resolved / 1 findingsUpdates AppRepository bulk extension reads to ignore unknown fields via a shared helper, addressing the getLatestExtension* strict read finding and ensuring forward compatibility. ✅ 1 resolved✅ Bug: getLatestExtension* still use strict read, same root cause unfixed
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |



Describe your changes:
Fixes #30431
Related to https://github.com/open-metadata/openmetadata-collate/pull/5207
App run/usage rows are saved as JSON and read back later. If a newer build adds a field to that JSON and you then run older code (a rollback, or an older branch on the same DB), the old code hits a field it doesn't know. The reader was strict, so it threw — and since these rows are read in bulk, one bad row broke the entire read. For metered apps that meant credits couldn't be totalled and chat/agent runs were blocked until the row was deleted by hand.
Fix: read these rows leniently so unknown fields are ignored.
Changes:
AppRepositorynow ignore unknown fields (via a sharedreadExtension()helper).Appentity read stays strict — unchanged.AppRepositoryExtensionCompatibilityTest(fails without the fix).Type of change:
Tests:
AppRepositoryExtensionCompatibilityTest— old code reads a newer row fine; strict read still rejects it (proves the test isn't tautological). Both pass.Greptile Summary
Fixes backward-compatible app-extension reads.
Appentity deserialization strict.Confidence Score: 5/5
The PR appears safe to merge.
No blocking failures remain.
Important Files Changed
Reviews (3): Last reviewed commit: "Merge branch 'main' into fix/app-extensi..." | Re-trigger Greptile
Context used: