Use timestamp expiry for data access requests#30099
Conversation
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
🟡 Playwright Results — all passed (38 flaky)✅ 4533 passed · ❌ 0 failed · 🟡 38 flaky · ⏭️ 95 skipped
🟡 38 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 |
Fixes 11 CI failures in openmetadata-integration-tests: - DataAccessRequestValidationIT: 10 tests failing with "Invalid task payload: required property 'expirationDate' not found" - TaskResourceIT#testTaskCountsBucket: same rejection Both were still building payloads with the removed "duration" field. The DAR TaskFormSchema now requires "expirationDate" (epoch millis) — switch the shared helper + the bucket-count test payload to send a 14-day future timestamp instead. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| Long expirationDate = payload.getExpirationDate(); | ||
| if (expirationDate == null) { | ||
| throw new IllegalArgumentException( | ||
| "A Data Access Request requires an access duration (ISO 8601, e.g. 'P14D')."); | ||
| "A Data Access Request requires an access expirationDate timestamp."); | ||
| } |
| "expirationDate": { | ||
| "ui:widget": "dateTimePicker" | ||
| }, |
|
|
Code Review ✅ Approved 4 resolved / 4 findingsTransitions data access requests to absolute timestamp-based expiry and updates the form schema to require a future ✅ 4 resolved✅ Bug: Seeded schema requires expirationDate, breaking legacy duration fallback
✅ Edge Case: DAR expiry timer may be unschedulable when only expirationDate is set
✅ Quality: Method name validateDataAccessRequestDuration no longer validates duration
✅ Quality: Seed refresh failure can abort service startup
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |



Summary
Companion Collate PR: https://github.com/open-metadata/openmetadata-collate/pull/5075
Test Plan
Summary by Gitar
dateVariablesupport toexpiryTimerinUserApprovalTask, allowing absolute timestamp-based boundary timers.userApprovalTask.jsonschema to enforce exactly one ofdurationVariableordateVariable.UserApprovalTaskTestto verify thatexpiryTimercorrectly mapsdateVariableto the workflow process model.This will update automatically on new commits.
Greptile Summary
This PR moves Data Access Request expiry to an absolute timestamp. The main changes are:
expirationDatein request payloads and form schemas.Confidence Score: 5/5
No additional blocking issue was found in the latest changes.
Important Files Changed
Reviews (13): Last reviewed commit: "Merge branch 'main' into policy-agent-da..." | Re-trigger Greptile
Context used (3)