Skip to content

protocol: Query Table refresh tokens and EndStreamAction - #110

Draft
littlegrasscao wants to merge 1 commit into
server/split2/19-protocol-query-tablefrom
server/split2/20-protocol-query-refresh
Draft

littlegrasscao wants to merge 1 commit into
server/split2/19-protocol-query-tablefrom
server/split2/20-protocol-query-refresh

Conversation

@littlegrasscao

@littlegrasscao littlegrasscao commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Query Table ends with an endStreamAction when the body sets includeRefreshToken or the delta-sharing-capabilities header sets includeendstreamaction=true; only the latter is echoed in the response header
  • endStreamAction carries the refresh token, if asked for, and minUrlExpirationTimestamp, the earliest presigned URL expiry
  • a refresh token pins the table and version of a latest-snapshot query; passing it back re-signs that version without making the response historical
  • tokens expire with the URLs; an expired, undecodable, or other-table token, or either option with version/timestamp, is INVALID_PARAMETER_VALUE
  • endStreamAction has no nextPageToken, since Query Table responses are not paged

Testing

  • mvn clean install: 189 tests passed
  • ProtocolTableRefreshTest: token issue and round trip, includeendstreamaction echo, and the invalid combinations, on a local Delta log
  • ProtocolTableRefreshIntegrationTest: the round trip with signed S3, Azure, and GCS files; each case is skipped without credentials
  • RefreshTokensTest, TableActionsTest, DeltaSharingCapabilitiesTest

Stacked on #109.

@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 48968da to 299af3a Compare October 1, 2026 18:34
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 429f178 to 8c29920 Compare October 1, 2026 18:35
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 299af3a to 0a286e9 Compare October 1, 2026 18:39
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 8c29920 to 6ef0577 Compare October 1, 2026 18:40
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 0a286e9 to d37ee92 Compare October 1, 2026 18:44
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 6ef0577 to 5866f20 Compare October 1, 2026 19:11
@littlegrasscao
littlegrasscao marked this pull request as ready for review October 1, 2026 22:17
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch 2 times, most recently from 8d9acdb to f9fd14c Compare October 7, 2026 01:56
@littlegrasscao
littlegrasscao marked this pull request as draft October 7, 2026 01:57
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from f9fd14c to 27f5e9b Compare October 7, 2026 17:27
@littlegrasscao littlegrasscao changed the title Query Table refresh tokens and EndStreamAction protocol: Query Table refresh tokens and EndStreamAction Oct 9, 2026
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from c406d81 to 2754a65 Compare October 14, 2026 02:07
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 27f5e9b to 87d4ec5 Compare October 14, 2026 17:26
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 2754a65 to c166868 Compare October 14, 2026 19:25
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 87d4ec5 to 4df052f Compare October 14, 2026 19:25
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from c166868 to 0bc72a0 Compare October 15, 2026 16:47
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 4df052f to 1f0f218 Compare October 15, 2026 16:47
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 0bc72a0 to ad07dee Compare October 15, 2026 18:14
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 1f0f218 to b35ac17 Compare October 15, 2026 18:14
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from ad07dee to 8291661 Compare October 15, 2026 18:29
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from b35ac17 to 0b6b7d4 Compare October 15, 2026 18:29
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 8291661 to a2d25cf Compare October 15, 2026 23:35
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 0b6b7d4 to 2471df2 Compare October 15, 2026 23:35
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from a2d25cf to 46c4a62 Compare October 15, 2026 23:38
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 2471df2 to a6e5aa5 Compare October 15, 2026 23:38
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 46c4a62 to bd83be7 Compare October 15, 2026 23:54
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from a6e5aa5 to f592d4b Compare October 15, 2026 23:54
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from bd83be7 to 71df129 Compare October 16, 2026 00:18
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from f592d4b to 40ea5dd Compare October 16, 2026 00:18
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 71df129 to 3c55ec1 Compare October 16, 2026 00:41
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 40ea5dd to 59f23fe Compare October 16, 2026 00:41
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 3c55ec1 to e4b6281 Compare October 19, 2026 17:13
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 59f23fe to 3185340 Compare October 19, 2026 17:13
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from e4b6281 to ccd3766 Compare October 19, 2026 21:44
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 3185340 to 1719cf1 Compare October 19, 2026 21:44
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from ccd3766 to ccf0219 Compare October 19, 2026 22:35
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 1719cf1 to 535b1a8 Compare October 19, 2026 22:35
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from ccf0219 to 137a1b5 Compare October 19, 2026 22:37
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 535b1a8 to 8f1537f Compare October 19, 2026 22:37
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 137a1b5 to aadc709 Compare October 20, 2026 00:31
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from 8f1537f to afb8502 Compare October 20, 2026 00:31
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from aadc709 to 7283772 Compare October 21, 2026 19:19
@littlegrasscao
littlegrasscao force-pushed the server/split2/20-protocol-query-refresh branch from afb8502 to a874165 Compare October 21, 2026 19:21
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.

1 participant