[EPIC] Build metadata undelete foundations and the table reference flow
- Dominant language
- Java
- Stars
- 3.2k
- Forks
- 935
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 298
Description
### Describe the proposal
Child of #12187.
Linear tracking: [DAT-320](https://linear.app/datastrato/issue/DAT-320/build-metadata-undelete-foundations-and-the-table-reference-flow)
Build the shared metadata-only undelete foundation and prove it end to end for tables. This covers high-level API/storage alignment, relational safety hardening, the conditional REST contract, deletion-generation persistence, the transactional recovery engine, and the table reference implementation across the server, Java client, and OpenAPI.
Recovery changes only Gravitino metadata. It does not call catalogs, authorization plugins, or downstream systems.
This sub-epic blocks the implementation fan-outs. Object-specific and connector-specific semantics remain in their owning tickets.
### Task list
- [ ] **TBD** — Align the shared metadata undelete API and storage contract ([DAT-324](https://linear.app/datastrato/issue/DAT-324/align-the-shared-metadata-undelete-api-and-storage-contract))
- [ ] **TBD** — Define deleted-entity DTOs, ETags, conditional PATCH semantics, typed errors, and Java transport
- [ ] **TBD** — Persist deletion generations and add H2, MySQL, and PostgreSQL migrations
- [ ] **TBD** — Execute relational upgrades in tests and guard GC against restored rows
- [ ] **TBD** — Implement the transactional recovery engine and table reference flow
- [ ] **TBD** — Add table REST, Java client, OpenAPI, concurrency, and migration coverage
Contributor guide
Assessment
This issue has not been assessed yet.