Skip to content

Himanshupal/sk 3168 flowvault java parity fix - #440

Open
skyflow-himanshupal wants to merge 6 commits into
flowvault-release/26.10.3from
himanshupal/SK-3168-flowvault-Java-parity-fix
Open

skyflow-himanshupal wants to merge 6 commits into
flowvault-release/26.10.3from
himanshupal/SK-3168-flowvault-Java-parity-fix

Conversation

@skyflow-himanshupal

Copy link
Copy Markdown
Collaborator

Adds the four unary operations from the Java flowvault design doc — vault().query(), vault().getTokens(), vault().uploadFiles() and vault().deleteFiles() — and migrates the flowvault SDK to the regenerated Fern client.

Why

  • Brings the Java flowvault SDK to parity with the Python flowvault SDK for ExecuteQuery, GetTokens, UploadFiles and DeleteFiles (SK-3168).
  • The Fern client was regenerated (records, tokens, query and files resources replace flowservice and the V1* types), so the existing operations were migrated to it.

Goal

  • Query: runs a SQL SELECT and returns fields, metadata.columns and the call's requestId.
  • GetTokens: returns the deterministic token for each value and token group, one row per input in request order.
  • UploadFiles: requests a signed URL per column, then uploads each file's bytes to it with HTTP PUT. Each column reports UPLOADED, FAILED or SKIPPED. Accepts filePath, base64 or fileObject.
  • DeleteFiles: deletes files from file columns by skyflowId or uniqueValues, returning {column, status} per record.
  • All four are unary, take *Options for custom headers, and come with Base* classes in common, validation, README sections and samples.
  • Non-goals: bulk/async variants and E2E tests (separate PR in sdk-integration-tests).

Testing

  • Unit tests cover validation, request building, response formatting, typed API errors, custom headers and per-record errors for all four operations.
  • UploadFilesFormatsTests runs real uploads against a local HTTP server: 30 file formats × 3 sources, checking bytes, Content-Type, file name and method. It also covers a large file, an empty file, overrides, a storage-side rejection and an upload longer than the vault-call timeout.
  • Existing tests were migrated to the new generated types.
  • Full suite passes on JDK 11: common 184, skyvault 575, flowvault 941.

Tech debt

  • Upload content types now come from an SDK-owned extension table, so the same file gets the same type on every JDK version.

@codecov

codecov Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.39%. Comparing base (eecd06a) to head (b84ced4).

Additional details and impacted files
@@                       Coverage Diff                       @@
##             flowvault-release/26.10.3     #440      +/-   ##
===============================================================
+ Coverage                        90.99%   91.39%   +0.40%     
- Complexity                           0      605     +605     
===============================================================
  Files                              174      197      +23     
  Lines                             7350     8126     +776     
  Branches                          1013     1131     +118     
===============================================================
+ Hits                              6688     7427     +739     
- Misses                             437      449      +12     
- Partials                           225      250      +25     
Flag Coverage Δ
common 90.19% <100.00%> (+1.04%) ⬆️
flowvault 88.96% <100.00%> (+1.03%) ⬆️
skyvault 95.02% <ø> (+0.06%) ⬆️
unittests-flowvault 90.53% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
Module: common 90.19% <100.00%> (+1.04%) ⬆️
Module: skyvault 95.02% <ø> (+0.06%) ⬆️
Module: flowvault 88.96% <100.00%> (+1.03%) ⬆️
Service Account 87.36% <ø> (ø)
Vault Data 92.13% <100.00%> (+1.31%) ⬆️
Vault Tokens 99.03% <ø> (ø)
Vault Connection 100.00% <ø> (ø)
Vault Controller 83.32% <ø> (+0.56%) ⬆️
Detect 100.00% <ø> (ø)
Audit 100.00% <ø> (ø)
BIN Lookup 100.00% <ø> (ø)
Config 96.26% <ø> (ø)
Utils 90.94% <ø> (+0.57%) ⬆️
Errors 100.00% <100.00%> (ø)
Enums 100.00% <100.00%> (ø)
Logs 96.15% <100.00%> (+0.54%) ⬆️
Files with missing lines Coverage Δ
...src/main/java/com/skyflow/errors/ErrorMessage.java 100.00% <100.00%> (ø)
...mmon/src/main/java/com/skyflow/logs/ErrorLogs.java 100.00% <100.00%> (ø)
...ommon/src/main/java/com/skyflow/logs/InfoLogs.java 100.00% <100.00%> (ø)
...com/skyflow/vault/data/BaseDeleteFilesRequest.java 100.00% <100.00%> (ø)
...om/skyflow/vault/data/BaseDeleteFilesResponse.java 100.00% <100.00%> (ø)
...a/com/skyflow/vault/data/BaseGetTokensRequest.java 100.00% <100.00%> (ø)
.../com/skyflow/vault/data/BaseGetTokensResponse.java 100.00% <100.00%> (ø)
...com/skyflow/vault/data/BaseUploadFilesRequest.java 100.00% <100.00%> (ø)
...om/skyflow/vault/data/BaseUploadFilesResponse.java 100.00% <100.00%> (ø)
...owvault/src/main/java/com/skyflow/VaultClient.java 97.67% <100.00%> (+0.27%) ⬆️
... and 22 more

... and 2 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eecd06a...b84ced4. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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