Skip to content

SK-2972: Implement get, update, delete, detokenize, tokenize for flowvault - #270

Merged
saileshwar-skyflow merged 4 commits into
saileshwar/SK-2954-flowdb-vaut-apis-supportfrom
saileshwar/SK-2972-implement-get-delete-tokenize-update-flow-interfaces
Sep 1, 2026
Merged

SK-2972: Implement get, update, delete, detokenize, tokenize for flowvault#270
saileshwar-skyflow merged 4 commits into
saileshwar/SK-2954-flowdb-vaut-apis-supportfrom
saileshwar/SK-2972-implement-get-delete-tokenize-update-flow-interfaces

Conversation

@saileshwar-skyflow

Copy link
Copy Markdown
Collaborator

Summary

  • Implements the remaining flowvault (FlowDB) vault operations — get, update, delete, detokenize, tokenize — following the pattern already established for insert (data classes, validators, controller methods, message catalog entries).
  • Extracts a shared validate_non_empty_string_list primitive into common/utils/validations and wires it into flowvault's get/delete/tokenize validators; insert's success/error splitter is generalized (with an explicit include_data opt-in) so get/update can 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)
  • 100% coverage on all new/changed code in flowvault's controller, data classes, and validators

saileshwar-skyflow and others added 4 commits July 16, 2026 01:08
…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
saileshwar-skyflow merged commit 43346ee into saileshwar/SK-2954-flowdb-vaut-apis-support Sep 1, 2026
0 of 2 checks passed
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