SK-2972: Implement get, update, delete, detokenize, tokenize for flowvault - #270
Merged
Conversation
…vault Adds the remaining vault operations for the FlowDB SDK variant, following insert's established controller/validator/data-class pattern, and extracts a shared non-empty-string-list check into common/utils/validations for flowvault and v2 to reuse.
Rename the v2/ Privacy DB module to skyvault/ (the published `skyflow` package) and update the build tooling for the segregated multi-module layout: - ci-scripts: make bump_version.sh module-aware, add current_module_version.sh. - .github/workflows: add pr.yml and pr-flowvault.yml, drop the retired beta-release.yml/ci.yml, update main/internal-release/release/semgrep and the shared build/deploy/test workflows for per-module builds. - tests/contract: point the adapter loader PYTHONPATH at skyvault. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Align the flowvault controller with the regenerated Fern client (V1 prefixes dropped, flowservice split into records/tokens/query) and build out the operation surface: - Unary ops (insert/get/update/delete/detokenize/query) return a unified `records` list with normalized tokens/hashed_data/metadata; get supports single-table and multi-table request modes. - Bulk ops (bulk_insert/bulk_detokenize, sync + async) with env-var-driven batching and concurrency, order-preserving indexing, and retry helpers. - Typed request/response data classes (InsertRequestRecord, UpsertOptions, ColumnRedaction, bulk request/response/summary types); remove getTokens and tokenize; drop `data` from the insert response. - Validations, messages, batching and response-parsing utils, async vault client, and unit tests (incl. large-payload indexing) to match. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restructure docs and samples to mirror the Java SDK's multi-module layout so each published package gets its own PyPI long_description and sample tree: - README.md (root): thin router with a "which package?" table pointing at the module READMEs. - skyvault/README.md: the former root monolith (docs links repointed to ../docs/); flowvault/README.md: new comprehensive flowvault guide. - setup.py (both modules): read the module's own README for long_description instead of the shared root file. - Move samples into per-module trees (skyvault/samples, flowvault/samples); add the missing flowvault samples (query, bulk insert/detokenize sync + async) and sample indexes; replace real credentials with placeholders. - MANIFEST.in `prune samples` in both modules so samples stay out of the sdist (already excluded from the wheel). - flowvault/CONTRACT_SHAPES.md: request/response JSON reference. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
saileshwar-skyflow
merged commit Sep 1, 2026
43346ee
into
saileshwar/SK-2954-flowdb-vaut-apis-support
0 of 2 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
get,update,delete,detokenize,tokenize— following the pattern already established forinsert(data classes, validators, controller methods, message catalog entries).validate_non_empty_string_listprimitive intocommon/utils/validationsand wires it into flowvault'sget/delete/tokenizevalidators;insert's success/error splitter is generalized (with an explicitinclude_dataopt-in) soget/updatecan reuse it without insert regressing.Stacked on #269 (SK-2954) — this PR's diff is only the new commit on top of that branch's tip.
Test plan
flowvault/tests/full suite passes (includes new get/update/delete/detokenize/tokenize + validation tests)common/tests/full suite passes (new shared validator + tests)v2/tests/full suite passes unchanged (confirms no regression from the shared validation extraction)