Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions flowvault/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Skyflow FlowVault Java SDK

The `flowvault` module is a Skyflow Java SDK built for high-throughput vault operations. It shares its client, credentials, and configuration classes with the [skyvault SDK](../skyvault/README.md) (both depend on the `common` module) but exposes a different, narrower surface: **bulk** vault operations only.
The `flowvault` module is a Skyflow Java SDK built for high-throughput vault operations. It shares its client, credentials, and configuration classes with the [skyvault SDK](../skyvault/README.md) (both depend on the `common` module). Its surface is different and narrower: **bulk** vault operations, plus **unary** operations that each send a single API call.
Comment thread
promptless[bot] marked this conversation as resolved.
Resolved

> Meant for **Flow Vault**.

Expand Down Expand Up @@ -65,7 +65,7 @@ The `flowvault` module is a Skyflow Java SDK built for high-throughput vault ope

- Authenticate using a Skyflow service account, an API key, or a bearer token — see [Authenticate](#authenticate).
- Perform bulk Vault API operations — insert, tokenize, detokenize, and delete tokens — each with a synchronous and an async variant, built for high-throughput Flow Vault workloads.
- Perform unary Vault API operations — insert, detokenize, get, update, and delete — a single API call each, for when you want a plain request and response rather than the bulk batching machinery. See [VaultController — Unary operations](#vaultcontroller--unary-operations).
- Perform unary Vault API operations: insert, detokenize, get, update, delete, query, get tokens, upload files, and delete files. Each sends a single API call, for when you want a plain request and response rather than the bulk batching machinery. See [VaultController — Unary operations](#vaultcontroller--unary-operations).
Comment thread
promptless[bot] marked this conversation as resolved.
Resolved
- **Per-record reporting, not all-or-nothing.** A bulk call succeeds as a call even when individual records fail; every response reports a summary plus the outcome of each individual record or token. See [Error Handling](#error-handling).

# Install
Expand Down Expand Up @@ -1977,6 +1977,8 @@ The same pattern applies to every operation, via its corresponding options class
| `delete` | `DeleteOptions` |
| `query` | `QueryOptions` |
| `getTokens` | `GetTokensOptions` |
| `uploadFiles` | `UploadFilesOptions` |
Comment thread
promptless[bot] marked this conversation as resolved.
Resolved
| `deleteFiles` | `DeleteFilesOptions` |

# Error Handling

Expand Down
19 changes: 14 additions & 5 deletions flowvault/samples/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# FlowVault Java SDK samples

Runnable samples for the `flowvault` module (`com.skyflow:skyflow-flowvault-java`) — bulk vault
operations against Flow Vault, plus the shared service-account/bearer-token utilities.
Runnable samples for the `flowvault` module (`com.skyflow:skyflow-flowvault-java`) — bulk and unary
vault operations against Flow Vault, plus the shared service-account/bearer-token utilities.

See the [flowvault README](../README.md) for the full API reference these samples exercise.

Expand Down Expand Up @@ -65,11 +65,20 @@ manage their own bearer tokens rather than passing a credentials file/string str
| [BulkTokenizeSync.java](src/main/java/com/example/vault/BulkTokenizeSync.java) / [BulkTokenizeAsync.java](src/main/java/com/example/vault/BulkTokenizeAsync.java) | Tokenizing values against one or more token groups, reading the per-group outcome (a value can partially succeed), and retrying. |
| [BulkDetokenizeSync.java](src/main/java/com/example/vault/BulkDetokenizeSync.java) / [BulkDetokenizeAsync.java](src/main/java/com/example/vault/BulkDetokenizeAsync.java) | Detokenizing tokens with a per-token-group redaction override, reading per-token results, and retrying. |
| [BulkDeleteTokensSync.java](src/main/java/com/example/vault/BulkDeleteTokensSync.java) / [BulkDeleteTokensAsync.java](src/main/java/com/example/vault/BulkDeleteTokensAsync.java) | Deleting tokens, reading per-token results, and retrying. |
| [InsertExample.java](src/main/java/com/example/vault/InsertExample.java) | Inserting records in a single API call, the unary counterpart of `bulkInsert`. |
Comment thread
promptless[bot] marked this conversation as resolved.
Resolved
| [DetokenizeExample.java](src/main/java/com/example/vault/DetokenizeExample.java) | Detokenizing tokens in a single API call, the unary counterpart of `bulkDetokenize`. |
| [GetExample.java](src/main/java/com/example/vault/GetExample.java) | Reading records from one table by skyflow ID or unique value. |
| [UpdateExample.java](src/main/java/com/example/vault/UpdateExample.java) | Updating records by skyflow ID. |
| [DeleteExample.java](src/main/java/com/example/vault/DeleteExample.java) | Deleting records by skyflow ID or unique value. Unlike `bulkDeleteTokens`, this removes the record itself. |
| [QueryExample.java](src/main/java/com/example/vault/QueryExample.java) | Running a SQL `SELECT` against the vault. A call returns at most 25 records; page with SQL `OFFSET`. |
Comment thread
promptless[bot] marked this conversation as resolved.
Resolved
| [GetTokensExample.java](src/main/java/com/example/vault/GetTokensExample.java) | Looking up the existing deterministic token for each value, and reading per-record results. |
| [UploadFilesExample.java](src/main/java/com/example/vault/UploadFilesExample.java) | Uploading files into the file columns of new or existing records, and checking each column's upload status. |
| [DeleteFilesExample.java](src/main/java/com/example/vault/DeleteFilesExample.java) | Deleting the files in file columns of existing records, by skyflow ID or unique value. |
| [CustomHeaderExample.java](src/main/java/com/example/vault/CustomHeaderExample.java) | Attaching a custom HTTP header (e.g. a request id) to outgoing requests via a `RequestInterceptor` on the operation's options object. |
| [TimeoutAndRetryConfigExample.java](src/main/java/com/example/vault/TimeoutAndRetryConfigExample.java) | Configuring HTTP timeouts and transport-level retry behavior, per-vault and client-wide, and how the two levels resolve. |

Every `*Sync`/`*Async` pair above shows the same request-building and response-handling logic; the
`Async` variant just wraps it in `CompletableFuture` callbacks instead of a direct call. Response
handling follows the same shape everywhere: read `getSummary()` for totals, then walk `getRecords()`
checking `getError() == null` per entry — see [Error Handling](../README.md#error-handling) for the
`Async` variant just wraps it in `CompletableFuture` callbacks instead of a direct call. Every bulk
sample handles responses the same way. It reads `getSummary()` for totals, then walks `getRecords()`
checking `getError() == null` per entry. See [Error Handling](../README.md#error-handling) for the
full model these samples are built on.
Loading