Repository navigation
[CXH-2723] - Add Unity Catalog table and volume sync - Databricks Connector - #73
Conversation
920df46 to
f9142b4
Compare
0ee9040 to
38e403e
Compare
f9142b4 to
29274ee
Compare
38e403e to
7c8e7a3
Compare
29274ee to
e74210e
Compare
7c8e7a3 to
a3bd512
Compare
e74210e to
7deff05
Compare
a3bd512 to
5dce9b1
Compare
7deff05 to
1253d7e
Compare
5dce9b1 to
5effb3f
Compare
FeliLucero1
left a comment
There was a problem hiding this comment.
Did a pass on this one. Main things: the per-table perf (the stack-wide one actually bites here), the List/Revoke 404 handling copied from #72, and the table_type mapping dropping REFRESH / ALL_PRIVILEGES grants from the sync. The rest are nits.
Comments tagged (out of scope) are inherited or stack-wide, so treat them as FYI, not blocking for this PR. Build/vet/tests pass locally.
Co-authored-by: Cursor <cursoragent@cursor.com>
…fixes to tables and volumes Completes the stack: the Revoke pre-read on both securables bypasses the uhttp response cache so a page cached before the last change cannot make it skip the PATCH, and a revoke whose catalog is gone reports GrantAlreadyRevoked rather than failing the task forever. Co-authored-by: Cursor <cursoragent@cursor.com>
1253d7e to
527fd89
Compare
5effb3f to
5267eb8
Compare
…Hernandez123/unity-catalog-table-and-volume-sync Co-authored-by: Cursor <cursoragent@cursor.com>
…le list 404s Co-authored-by: Cursor <cursoragent@cursor.com>
FeliLucero1
left a comment
There was a problem hiding this comment.
Round 2. Thanks for the fixes, most threads look good. I double-checked the List 404: it keeps codes.NotFound through the wrap, so the SDK warns and skips instead of failing the sync. 👍
New: the view ALL_PRIVILEGES entitlement is grantable but always fails (:136), plus a couple of small ones. I replied on the perf, revoke and streaming threads too.
…Hernandez123/unity-catalog-table-and-volume-sync
…olume grants Co-authored-by: Cursor <cursoragent@cursor.com>
sergiocorral-conductorone
left a comment
There was a problem hiding this comment.
Automated review
drafted 2 → confirmed 1, dropped 1, added 0 (verifier: gpt-5.3-codex-high)
FeliLucero1
left a comment
There was a problem hiding this comment.
Round 3. The perf change looks good overall; one regression in the new owner lookup below. The round-2 comments (view ALL_PRIVILEGES, parent codes, default branch, EqualFold, streaming MODIFY) are still open.
… api rejects Views keep ALL_PRIVILEGES as a reported grant that cannot be requested, an unrecognised table_type uses the union, and a dropped schema or catalog revokes as already gone. Co-authored-by: Cursor <cursoragent@cursor.com>
…nd volumes Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>




Description
Last of four stacked PRs for Unity Catalog (CXH-2723). Tables and volumes are the data assets an access review is about. They are siblings under a schema.
This PR delivers the blue nodes. #70, #71, then #72 merge first.
Sync:
table, NEW) — child ofschema. Unity Catalog uses onetablesecurable for tables, views, materialized views, metric views and streaming tables;table_typepicks the privilege set. Entitlements are per instance.volume, NEW) — child ofschema,GET /api/2.1/unity-catalog/volumes. Static privilege set plus a read-onlyowner.Provisioning:
table_type, so ConductorOne does not offer an entitlement the grants API rejects.ALL_PRIVILEGESis emitted when Databricks already has it and is not requestable. Grant rejects that write before any PATCH. Revoke still removes it.REFRESH.SELECT,READ_METADATA,APPLY_TAG,MANAGE,ALL_PRIVILEGES,REFRESHandMODIFY. Not the table DML trio (DELETE/INSERT/UPDATE).MANAGED/EXTERNAL: the table set, which does not includeREFRESH.table_type: union of every variant, so a heldREFRESHis not dropped.PATCHpath and echo-confirmed idempotency (GrantAlreadyExists/GrantAlreadyRevoked).TABLE_DOES_NOT_EXIST,VOLUME_DOES_NOT_EXIST,SCHEMA_DOES_NOT_EXIST,CATALOG_DOES_NOT_EXIST) isGrantAlreadyRevoked. Any other 404 still fails.Auth:
Unchanged from #71 and #72. A catalog without full grant visibility is skipped, and a schema is listed only when that listing is complete. Tables and volumes are listed through that same workspace.
information_schemais skipped.Architecture highlights:
omit_columnsandomit_properties.omit_usernameis not sent: it also dropsowner.max_resultsabove 50; the client clamps.Find*filters. A 400 on that filter leaves the owner unresolved and does not fail the sync.Useful links: