Skip to content

SK-3075: flowvault public release (Detect V2 + new interfaces) - #292

Merged
saileshwar-skyflow merged 13 commits into
mainfrom
flowvault-release/26.10.0
Nov 11, 2026
Merged

saileshwar-skyflow merged 13 commits into
mainfrom
flowvault-release/26.10.0

Conversation

@saileshwar-skyflow

Copy link
Copy Markdown
Collaborator

What

Promotes the flowvault-release/26.10.0 work to main for the public skyflow-flowvault-python release.

Included

  • Detect V2 across flowvault and skyvault (SK-3075), implemented in shared common/ and re-exported from both SDKs, with the file-data-format split: DeidentifyFileDataFormat / ReidentifyFileDataFormat + ReidentifyFileOutput (matches the Java reference).
  • New flowvault interfaces (SK-3139): query, get_tokens, upload_files, delete_files; parallelized/streamed file uploads; duplicate-column rejection.
  • Detect docs & sample parity (SK-3289): READMEs, samples and the migration guide aligned across flowvault and skyvault.
  • Public API contract baselines (*/api-report/skyflow.api.json) regenerated for both modules.

Notes

  • flowvault/setup.py carries an internal dev version (1.0.1.dev0+…); the published version is set by the release tag (flowvault/v<semver>), not setup.py, so this is harmless on merge.
  • Merges cleanly into main (verified).
  • skyvault detect changes are present too (code, README, samples, api-report) for parity; the public artifact here is flowvault.

🤖 Generated with Claude Code

saileshwar-skyflow and others added 10 commits October 6, 2026 23:32
…e columns

- upload_files: upload per-column files concurrently (bounded pool of 5) and
  stream each file from disk, so large/many-file records finish inside the
  signed-URL window with flat memory
- client: dedicated no-retry httpx client for signed-URL PUTs so a streamed
  body is never replayed on a 5xx
- validations: reject duplicate column names within an upload/delete record
- tests: updated for streaming/parallel path, added duplicate-column +
  multi-column coverage

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- UploadFilesRequestColumn: remove content_type (it never reached the
  /v2/files/upload request; the PUT Content-Type is inferred from the file
  name). Updated contract baseline, README, and tests.
- README: correct the upload note (concurrent + streamed, not sequential)
- get(): remove dead error_count assignments

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* SK-3075: add Detect V2 to flowvault and skyvault SDKs

Implement Detect V2 (deidentify_string, deidentify_file, get_run,
reidentify_string, reidentify_file, check_guardrails) in the shared
`common` package and re-export it from both flowvault and skyvault.

common:
- detect models, controller, request/response mappers, run polling,
  file-output writer, and validations under common/vault/detect
- V2 detect enums under common/utils/enums/detect.py; V2 detect
  messages in common SkyflowMessages
- behaviour ported from the Java flowvault SDK @ flowvault-release/26.10.1
  (exponential poll backoff 1..32, submit-only status None, minimal
  client-side validation, auto-write of processed files)

flowvault:
- wire DetectController via make_skyflow_class(detect_cls=...)
- build the common detect REST client on VaultClient and expose
  get_strings_v2_api / get_files_v2_api / get_guardrails_v2_api
- re-export skyflow.vault.detect and the V2 enums
- detect_api samples, README section, and unit tests

skyvault:
- replace the removed V1 detect API with V2 (same method/class names)
- migrate the hand-written layer to the regenerated client (drop V1
  prefix, Skyflow -> SkyflowAuth) and update tests

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: fix generated version fallback and refresh API contract baselines

- common/skyvault generated rest version.py: guard metadata.version() with
  try/except PackageNotFoundError (matches flowvault), so importing the
  package never fails when the distribution metadata is absent.
- Refresh flowvault/skyvault public-API contract baselines for the Detect V2
  surface (flowvault adds the V2 enums; skyvault replaces V1 detect with V2).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: make common detect tests unittest-compatible

The common package CI runs tests with `python -m unittest` (no pytest
installed), so rewrite common/tests/vault/detect/test_detect.py as a
unittest.TestCase (self.assertRaises, tempfile instead of the pytest
tmp_path fixture). Runs green under both unittest and pytest.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: split detect DataSourceType into per-SDK DeidentifySourceType and ReidentifySourceType

Mirror the Java Detect V2 contract change: the single DataSourceType enum is split
into DeidentifySourceType (deidentify_file data_source and the output_type of
DeidentifyFileResponse / GetRunResponse) and ReidentifySourceType (reidentify_file
data_source and ReidentifyFileResponse output_type).

Like Java, the two source enums are defined per SDK rather than in common:
  - skyvault DeidentifySourceType: BASE64, SKYFLOW_ID, PRESIGNED_URL
  - flowvault DeidentifySourceType: BASE64, PRESIGNED_URL (no skyflow id)
  - ReidentifySourceType: BASE64, PRESIGNED_URL in both (re-identification never
    accepts a skyflow id)

common stays SDK-agnostic: the controller/mappers resolve the response output_type
through the per-SDK VaultClient (get_deidentify_source_type / get_reidentify_source_type),
and the file-output writer compares the output type by value. Updates both SDK enum
re-exports, the reidentify_file sample, and the unit/re-export tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: rename the Detect README section heading to "Detect"

"# DetectController — Detect V2" produced an awkward anchor
(#detectcontroller--detect-v2) and didn't match the cross-SDK convention; the
Go flowvault README uses "Detect". Renamed to "# Detect" (anchor #detect); the
section intro already states it is Detect V2 and how to get the controller.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3076 add v1-deprecation warning (#288)

* SK-3076 add v1-deprecation warning

* SK-3076 fix ci-check

* SK-3075: fix auth, version, and skyvault data-plane after codegen regen

The 865a4f5 regeneration renamed generated REST client methods but the
consuming code was not fully updated, breaking bearer-token auth (every
e2e failed with "Failed to generate bearer token") and the skyvault
data-plane:

- common/service_account/_utils.py: call get_bearer_token() (renamed from
  authentication_service_get_auth_token).
- common/utils/_skyflow_messages.py: resolve the host SDK version via an
  importlib.metadata fallback so messages/metrics report the real version
  instead of 0.0.0.
- skyvault/skyflow/service_account/__init__.py: re-export from
  common.service_account (skyvault's generated authentication client was
  removed by the regen), matching flowvault.
- skyvault/skyflow/vault/controller/_vault.py: rewire record/token/query
  calls to the new generated method names; move file upload to the files
  client (upload_file_v2).
- skyvault/skyflow/vault/client/client.py: add get_files_api().

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: refresh API contract baselines for DeidentifySourceType/ReidentifySourceType split

The detect DataSourceType enum was split into per-SDK DeidentifySourceType
and ReidentifySourceType, but the committed griffe baselines were not
regenerated, so Contract Tests failed on public API drift. Regenerate both
skyvault and flowvault baselines to record the intended enum change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: update skyvault unit tests for the new-codegen data-plane and common auth

Mirror the controller/auth migration in the unit tests so they exercise the
methods the code now calls:

- test__vault.py: rename the mocked generated methods to the new names
  (batch_operation/insert_records/update_record/delete_records/get_records/
  execute_query/detokenize/tokenize), point file-upload at the files client
  (get_files_api + upload_file_v2), and drop byot from the batch_operation
  expectation (batch_operation no longer takes it; BYOT rides on per-record
  tokens).
- service_account/test__utils.py and utils/test__utils.py: the public
  skyflow.service_account now routes through common, so patch
  common.service_account._utils.* and assert get_bearer_token on the mocked
  auth client instead of the removed authentication_service_get_auth_token.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: split detect RedactionLevel into a per-SDK rule (match Java)

Mirror skyflow-java's SK-3175 change. RedactionLevel was one common class
carrying all four wire fields for every vault type. Replace it with an
abstract RedactionRule base in common (exposing the four wire accessors)
and a per-SDK RedactionLevel:

- skyvault RedactionLevel carries entity_name + redaction_type
- flowvault RedactionLevel carries token_group_name + redaction_pattern

The reidentify mapper reads the wire fields through the rule's accessors,
so each vault type only sends the fields its API supports. Refreshed the
skyvault API contract baseline for the new class.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: fix common detect test for the RedactionLevel split

common.vault.detect no longer exports a concrete RedactionLevel (it exports
the RedactionRule base), so the reidentify mapping test uses a small concrete
RedactionRule double instead of importing RedactionLevel.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: make the skyvault sdist self-contained

The skyvault sdist omitted common/, so rebuilding a wheel from it (the release
smoke test) failed looking for a sibling common/ that only exists in the repo
checkout. Mirror flowvault: vendor common/ into the sdist via a CustomSdist
command plus graft common, and fall back to the vendored copy when the sibling
checkout is absent, so sdist-to-wheel builds and installs cleanly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: regenerate skyvault files client for multipart file upload

UploadFileRequestV2.file now carries format:binary in the spec, so the
regenerated upload_file_v2 sends file as a multipart part
(files={"file": file}) instead of a string form field, fixing the 500
"Expected primitive type, got <class 'list'>" from data-plane file upload.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: restore working skyvault generated version.py

The files-client regen also rewrote generated/rest/version.py to look up
metadata.version("skyflow.generated.rest"), a distribution that is never
installed (the module ships inside the "skyflow" dist), so it raised
PackageNotFoundError. unittest discover enumerates the package __all__
(which includes __version__), tripping the lazy import and failing
test/run-tests. Restore the metadata.version("skyflow") lookup with the
0.0.0 fallback. Durable fix belongs in the fern generator config.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: re-trigger PR CI on the restored generated version.py

No code change (empty commit). The previous push updated the PR head and
the release branch to the same SHA in one step, so GitHub created only the
push-triggered release run and never fired the pull_request PR CI. This
empty commit fires pull_request:synchronize so test/run-tests re-runs on
the restored version.py. The published 2.1.3.dev0+deaa724 wheel is built
from the identical code and stays valid.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3284: add detect V1 to V2 migration guide for skyvault python sdk

Mirrors the Java migration doc as a repo reference: method and class
mapping, request field mapping, per-method V1/V2 examples, file
behaviour differences, and a migration checklist. Confirmed against the
V2 detect implementation and the V1 API on main.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: document Detect V2 in skyvault and flowvault READMEs and samples

Rewrite the skyvault README Detect section from the removed V1 API to V2
(method table, configuration contract, Detect configuration reference,
file run status and output handling) and replace the V1 detect samples
with V2 equivalents. Mirror the same V2 Detect structure into the
flowvault README with flowvault semantics (token-group destination,
token_group_name / redaction_pattern) and enhance the flowvault samples
to cover inline configuration, submit-only / poll / presigned, and the
failure branches.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: align flowvault Detect V2 with Java and add detect to flowvault API contract

Cross-SDK parity review flagged four Detect V2 gaps in the Python flowvault
path versus the Java reference. All fixes live in shared common/ code and so
apply to both vaults.

- deidentify_file source rule now counts exactly one of file_path, file, value;
  a missing source and multiple sources raise distinct errors (adds the
  missing-source message).
- Shared deidentify/reidentify-file validation messages are vault-neutral and no
  longer name SKYFLOW_ID, which flowvault does not offer.
- With neither configuration_id nor configuration set, a configuration carrying
  only the vault id is sent, matching the Java behaviour.
- processed_file_extension resolves case-insensitively.

Also add skyflow.vault.detect to the flowvault public API contract and
regenerate both api-report baselines; skyvault is unchanged, flowvault gains the
detect surface.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3075: expose includePrefix / prefixOverride on Detect Entity and CustomType

The generated wire types already carry these fields; surface them on the public
Detect config so callers can control VAULT_TOKEN tokenization, matching the Java
design doc.

- Add the IncludePrefix enum (YES / NO) and re-export it from both vaults'
  skyflow.utils.enums.
- Entity gains include_prefix and prefix_override.
- CustomType gains deidentification_type, destination, include_prefix and
  prefix_override.
- The request mapper sends all of them when set; omitted fields fall through to
  the server defaults.
- Regenerate both api-report baselines (the new public surface is the
  IncludePrefix enum; Entity / CustomType are re-export aliases).
* SK-3289: address Detect docs and sample parity feedback (Python)

Fix the Detect README and sample gaps raised in the final Detect feedback, for
both the flowvault and skyvault Python SDKs.

flowvault README:
- drop the unsupported SKYFLOW_ID file source (the enum is BASE64/PRESIGNED_URL only)
- document Entity/CustomType include_prefix and prefix_override, and CustomType
  deidentification_type and destination
- add where-to-create pointers for the configuration id, token groups and redaction patterns
- add response examples and a common-errors section
- make the re-identify example a round trip; branch re-identify file on output_type

skyvault README:
- make the re-identify example a round trip that stores tokens in a table.column;
  branch re-identify file on output_type
- add a bold warning that deidentify_file no longer waits by default
- note the server's default toxicity check; fix the stale v1 EOL banner

samples (both SDKs): print request_id in Detect error handlers.

Nomenclature: drop the "Detect V2" label from both READMEs and the samples README;
rename the migration guide to docs/migrate_detect.md, retitle it, cite skyflow 3.0.0,
and promote the deidentify_file behaviour change.

setup.py version is managed by release automation and left unchanged; the guide now
names 3.0.0 as the target.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3289: fix internal parity-gap issues in Python SDK

flowvault:
- Disable the generated client's hidden retry layer so the SDK's
  configured max_retries (default 0) is honored and POSTs are not
  silently auto-retried.
- Pass the bearer token as None when absent so no empty
  "Authorization: Bearer " header is sent.
- Build insert/get wire objects inside the try block so pydantic
  ValidationError surfaces as a SkyflowError.
- Rewind a caller-supplied file_object to the start before upload
  (without closing the caller's handle).
- Guard client re-init and close with a lock.

common (shared by flowvault and skyvault):
- Validate env with isinstance instead of enum membership to avoid a
  TypeError on Python 3.9-3.11 for non-Env values.
- Attach the skyflow-python log handler once instead of clearing and
  re-adding it on every log call.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* SK-3289: split file data format into deidentify and reidentify (Python)

Mirror the Java flowvault change: reidentify_file only supports the file
formats that carry VAULT_TOKEN, so the single FileDataFormat enum is split
into separate types.

- enums: rename FileDataFormat -> DeidentifyFileDataFormat, add
  ReidentifyFileDataFormat (csv, docx, json, jsonl, pptx, txt, xlsx, xml)
- models: FileOutput uses DeidentifyFileDataFormat; add ReidentifyFileOutput;
  ReidentifyFileResponse.output is now a list of ReidentifyFileOutput
- mappers: separate deidentify/reidentify format resolvers; an unknown
  reidentify format maps to None
- re-exports, samples, READMEs and tests updated across flowvault and skyvault
- regenerate the public API contract baselines
@promptless

promptless Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Promptless documentation updates

@github-actions

Copy link
Copy Markdown

🔐 Gitleaks Findings: 4 issue(s) detected

🔸 Rule: generic-api-key
📄 File: skyvault/skyflow/generated/rest/tokens/client.py:null
📝 Description: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
🔑 Secret: **********
🔗 Path: skyvault/skyflow/generated/rest/tokens/client.py:null

🔸 Rule: generic-api-key
📄 File: skyvault/skyflow/generated/rest/tokens/client.py:null
📝 Description: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
🔑 Secret: **********
🔗 Path: skyvault/skyflow/generated/rest/tokens/client.py:null

🔸 Rule: generic-api-key
📄 File: skyvault/skyflow/generated/rest/tokens/client.py:null
📝 Description: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
🔑 Secret: **********
🔗 Path: skyvault/skyflow/generated/rest/tokens/client.py:null

🔸 Rule: generic-api-key
📄 File: skyvault/skyflow/generated/rest/tokens/client.py:null
📝 Description: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
🔑 Secret: **********
🔗 Path: skyvault/skyflow/generated/rest/tokens/client.py:null

@github-actions

Copy link
Copy Markdown

Public API contract change (flowvault)

This PR changes flowvault/api-report/skyflow.api.json (the approved public API contract for skyflow). Review the surface change below:

diff --git a/flowvault/api-report/skyflow.api.json b/flowvault/api-report/skyflow.api.json
index 984c4b3..335f827 100644
--- a/flowvault/api-report/skyflow.api.json
+++ b/flowvault/api-report/skyflow.api.json
@@ -29,21 +29,193 @@
   "skyflow.utils.enums.CustomHeaderKey.REQUEST_ID_HEADER": "attr = 'x-request-id'",
   "skyflow.utils.enums.CustomHeaderKey.SKYFLOW_ACCOUNT_ID": "attr = 'x-skyflow-account-id'",
   "skyflow.utils.enums.CustomHeaderKey.SKYFLOW_ACCOUNT_NAME": "attr = 'x-skyflow-account-name'",
+  "skyflow.utils.enums.DeidentificationType": "class (Enum)",
+  "skyflow.utils.enums.DeidentificationType.ENTITY_ONLY": "attr = 'ENTITY_ONLY'",
+  "skyflow.utils.enums.DeidentificationType.ENTITY_UNIQUE_COUNTER": "attr = 'ENTITY_UNIQUE_COUNTER'",
+  "skyflow.utils.enums.DeidentificationType.MASK": "attr = 'MASK'",
+  "skyflow.utils.enums.DeidentificationType.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.DeidentificationType.VAULT_TOKEN": "attr = 'VAULT_TOKEN'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat": "class (Enum)",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.BMP": "attr = 'bmp'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.CSV": "attr = 'csv'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.DCM": "attr = 'dcm'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.DOC": "attr = 'doc'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.DOCX": "attr = 'docx'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.GIF": "attr = 'gif'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JPEG": "attr = 'jpeg'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JPG": "attr = 'jpg'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JSON": "attr = 'json'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JSONL": "attr = 'jsonl'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.MP3": "attr = 'mp3'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PDF": "attr = 'pdf'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PNG": "attr = 'png'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PPT": "attr = 'ppt'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PPTX": "attr = 'pptx'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.TIF": "attr = 'tif'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.TIFF": "attr = 'tiff'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.TXT": "attr = 'txt'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.WAV": "attr = 'wav'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.XLS": "attr = 'xls'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.XLSX": "attr = 'xlsx'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.XML": "attr = 'xml'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.ZIP": "attr = 'zip'",
+  "skyflow.utils.enums.DeidentifySourceType": "class (Enum)",
+  "skyflow.utils.enums.DeidentifySourceType.BASE64": "attr = 'BASE64'",
+  "skyflow.utils.enums.DeidentifySourceType.PRESIGNED_URL": "attr = 'PRESIGNED_URL'",
+  "skyflow.utils.enums.DetectRunStatus": "class (Enum)",
+  "skyflow.utils.enums.DetectRunStatus.FAILED": "attr = 'FAILED'",
+  "skyflow.utils.enums.DetectRunStatus.IN_PROGRESS": "attr = 'IN_PROGRESS'",
+  "skyflow.utils.enums.DetectRunStatus.QUEUED": "attr = 'QUEUED'",
+  "skyflow.utils.enums.DetectRunStatus.SUCCESS": "attr = 'SUCCESS'",
+  "skyflow.utils.enums.DetectRunStatus.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.EntityType": "class (Enum)",
+  "skyflow.utils.enums.EntityType.ACCOUNT_NUMBER": "attr = 'ACCOUNT_NUMBER'",
+  "skyflow.utils.enums.EntityType.AGE": "attr = 'AGE'",
+  "skyflow.utils.enums.EntityType.ALL": "attr = 'ALL'",
+  "skyflow.utils.enums.EntityType.BANK_ACCOUNT": "attr = 'BANK_ACCOUNT'",
+  "skyflow.utils.enums.EntityType.BLOOD_TYPE": "attr = 'BLOOD_TYPE'",
+  "skyflow.utils.enums.EntityType.CONDITION": "attr = 'CONDITION'",
+  "skyflow.utils.enums.EntityType.CORPORATE_ACTION": "attr = 'CORPORATE_ACTION'",
+  "skyflow.utils.enums.EntityType.CREDIT_CARD": "attr = 'CREDIT_CARD'",
+  "skyflow.utils.enums.EntityType.CREDIT_CARD_EXPIRATION": "attr = 'CREDIT_CARD_EXPIRATION'",
+  "skyflow.utils.enums.EntityType.CVV": "attr = 'CVV'",
+  "skyflow.utils.enums.EntityType.DATE": "attr = 'DATE'",
+  "skyflow.utils.enums.EntityType.DATE_INTERVAL": "attr = 'DATE_INTERVAL'",
+  "skyflow.utils.enums.EntityType.DAY": "attr = 'DAY'",
+  "skyflow.utils.enums.EntityType.DOB": "attr = 'DOB'",
+  "skyflow.utils.enums.EntityType.DOSE": "attr = 'DOSE'",
+  "skyflow.utils.enums.EntityType.DRIVER_LICENSE": "attr = 'DRIVER_LICENSE'",
+  "skyflow.utils.enums.EntityType.DRUG": "attr = 'DRUG'",
+  "skyflow.utils.enums.EntityType.DURATION": "attr = 'DURATION'",
+  "skyflow.utils.enums.EntityType.EFFECT": "attr = 'EFFECT'",
+  "skyflow.utils.enums.EntityType.EMAIL_ADDRESS": "attr = 'EMAIL_ADDRESS'",
+  "skyflow.utils.enums.EntityType.EVENT": "attr = 'EVENT'",
+  "skyflow.utils.enums.EntityType.FILENAME": "attr = 'FILENAME'",
+  "skyflow.utils.enums.EntityType.FINANCIAL_METRIC": "attr = 'FINANCIAL_METRIC'",
+  "skyflow.utils.enums.EntityType.GENDER": "attr = 'GENDER'",
+  "skyflow.utils.enums.EntityType.HEALTHCARE_NUMBER": "attr = 'HEALTHCARE_NUMBER'",
+  "skyflow.utils.enums.EntityType.INJURY": "attr = 'INJURY'",
+  "skyflow.utils.enums.EntityType.IP_ADDRESS": "attr = 'IP_ADDRESS'",
+  "skyflow.utils.enums.EntityType.LANGUAGE": "attr = 'LANGUAGE'",
+  "skyflow.utils.enums.EntityType.LOCATION": "attr = 'LOCATION'",
+  "skyflow.utils.enums.EntityType.LOCATION_ADDRESS": "attr = 'LOCATION_ADDRESS'",
+  "skyflow.utils.enums.EntityType.LOCATION_ADDRESS_STREET": "attr = 'LOCATION_ADDRESS_STREET'",
+  "skyflow.utils.enums.EntityType.LOCATION_CITY": "attr = 'LOCATION_CITY'",
+  "skyflow.utils.enums.EntityType.LOCATION_COORDINATE": "attr = 'LOCATION_COORDINATE'",
+  "skyflow.utils.enums.EntityType.LOCATION_COUNTRY": "attr = 'LOCATION_COUNTRY'",
+  "skyflow.utils.enums.EntityType.LOCATION_STATE": "attr = 'LOCATION_STATE'",
+  "skyflow.utils.enums.EntityType.LOCATION_ZIP": "attr = 'LOCATION_ZIP'",
+  "skyflow.utils.enums.EntityType.MARITAL_STATUS": "attr = 'MARITAL_STATUS'",
+  "skyflow.utils.enums.EntityType.MEDICAL_CODE": "attr = 'MEDICAL_CODE'",
+  "skyflow.utils.enums.EntityType.MEDICAL_PROCESS": "attr = 'MEDICAL_PROCESS'",
+  "skyflow.utils.enums.EntityType.MONEY": "attr = 'MONEY'",
+  "skyflow.utils.enums.EntityType.MONTH": "attr = 'MONTH'",
+  "skyflow.utils.enums.EntityType.NAME": "attr = 'NAME'",
+  "skyflow.utils.enums.EntityType.NAME_FAMILY": "attr = 'NAME_FAMILY'",
+  "skyflow.utils.enums.EntityType.NAME_GIVEN": "attr = 'NAME_GIVEN'",
+  "skyflow.utils.enums.EntityType.NAME_MEDICAL_PROFESSIONAL": "attr = 'NAME_MEDICAL_PROFESSIONAL'",
+  "skyflow.utils.enums.EntityType.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.EntityType.NUMERICAL_PII": "attr = 'NUMERICAL_PII'",
+  "skyflow.utils.enums.EntityType.OCCUPATION": "attr = 'OCCUPATION'",
+  "skyflow.utils.enums.EntityType.ORGANIZATION": "attr = 'ORGANIZATION'",
+  "skyflow.utils.enums.EntityType.ORGANIZATION_ID": "attr = 'ORGANIZATION_ID'",
+  "skyflow.utils.enums.EntityType.ORGANIZATION_MEDICAL_FACILITY": "attr = 'ORGANIZATION_MEDICAL_FACILITY'",
+  "skyflow.utils.enums.EntityType.ORIGIN": "attr = 'ORIGIN'",
+  "skyflow.utils.enums.EntityType.PASSPORT_NUMBER": "attr = 'PASSPORT_NUMBER'",
+  "skyflow.utils.enums.EntityType.PASSWORD": "attr = 'PASSWORD'",
+  "skyflow.utils.enums.EntityType.PHONE_NUMBER": "attr = 'PHONE_NUMBER'",
+  "skyflow.utils.enums.EntityType.PHYSICAL_ATTRIBUTE": "attr = 'PHYSICAL_ATTRIBUTE'",
+  "skyflow.utils.enums.EntityType.POLITICAL_AFFILIATION": "attr = 'POLITICAL_AFFILIATION'",
+  "skyflow.utils.enums.EntityType.PRODUCT": "attr = 'PRODUCT'",
+  "skyflow.utils.enums.EntityType.PROJECT": "attr = 'PROJECT'",
+  "skyflow.utils.enums.EntityType.RELIGION": "attr = 'RELIGION'",
+  "skyflow.utils.enums.EntityType.ROUTING_NUMBER": "attr = 'ROUTING_NUMBER'",
+  "skyflow.utils.enums.EntityType.SEXUALITY": "attr = 'SEXUALITY'",
+  "skyflow.utils.enums.EntityType.SSN": "attr = 'SSN'",
+  "skyflow.utils.enums.EntityType.STATISTICS": "attr = 'STATISTICS'",
+  "skyflow.utils.enums.EntityType.TIME": "attr = 'TIME'",
+  "skyflow.utils.enums.EntityType.TREND": "attr = 'TREND'",
+  "skyflow.utils.enums.EntityType.URL": "attr = 'URL'",
+  "skyflow.utils.enums.EntityType.USERNAME": "attr = 'USERNAME'",
+  "skyflow.utils.enums.EntityType.VEHICLE_ID": "attr = 'VEHICLE_ID'",
+  "skyflow.utils.enums.EntityType.YEAR": "attr = 'YEAR'",
+  "skyflow.utils.enums.EntityType.ZODIAC_SIGN": "attr = 'ZODIAC_SIGN'",
   "skyflow.utils.enums.EnvUrls": "class (Enum)",
   "skyflow.utils.enums.EnvUrls.DEV": "attr = 'skyvault.skyflowapis.dev'",
   "skyflow.utils.enums.EnvUrls.PROD": "attr = 'skyvault.skyflowapis.com'",
   "skyflow.utils.enums.EnvUrls.SANDBOX": "attr = 'skyvault.skyflowapis-preview.com'",
   "skyflow.utils.enums.EnvUrls.STAGE": "attr = 'skyvault.skyflowapis.tech'",
+  "skyflow.utils.enums.FileUploadStatus": "class (Enum)",
+  "skyflow.utils.enums.FileUploadStatus.FAILED": "attr = 'FAILED'",
+  "skyflow.utils.enums.FileUploadStatus.SKIPPED": "attr = 'SKIPPED'",
+  "skyflow.utils.enums.FileUploadStatus.UPLOADED": "attr = 'UPLOADED'",
+  "skyflow.utils.enums.GuardrailsValidation": "class (Enum)",
+  "skyflow.utils.enums.GuardrailsValidation.FAILED": "attr = 'FAILED'",
+  "skyflow.utils.enums.GuardrailsValidation.PASSED": "attr = 'PASSED'",
+  "skyflow.utils.enums.GuardrailsValidation.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.IncludePrefix": "class (Enum)",
+  "skyflow.utils.enums.IncludePrefix.NO": "attr = 'NO'",
+  "skyflow.utils.enums.IncludePrefix.YES": "attr = 'YES'",
+  "skyflow.utils.enums.MaskingMethod": "class (Enum)",
+  "skyflow.utils.enums.MaskingMethod.BLACKBOX": "attr = 'BLACKBOX'",
+  "skyflow.utils.enums.MaskingMethod.BLUR": "attr = 'BLUR'",
+  "skyflow.utils.enums.MaskingMethod.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.ObjectDeidentificationType": "class (Enum)",
+  "skyflow.utils.enums.ObjectDeidentificationType.REDACT": "attr = 'REDACT'",
+  "skyflow.utils.enums.ObjectDeidentificationType.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.ObjectDeidentificationType.UNREDACT": "attr = 'UNREDACT'",
+  "skyflow.utils.enums.ObjectEntityType": "class (Enum)",
+  "skyflow.utils.enums.ObjectEntityType.ALL": "attr = 'ALL'",
+  "skyflow.utils.enums.ObjectEntityType.FACE": "attr = 'FACE'",
+  "skyflow.utils.enums.ObjectEntityType.LICENSE_PLATE": "attr = 'LICENSE_PLATE'",
+  "skyflow.utils.enums.ObjectEntityType.LOGO": "attr = 'LOGO'",
+  "skyflow.utils.enums.ObjectEntityType.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.ObjectEntityType.SIGNATURE": "attr = 'SIGNATURE'",
+  "skyflow.utils.enums.OutputTranscriptionType": "class (Enum)",
+  "skyflow.utils.enums.OutputTranscriptionType.DIARIZED_TRANSCRIPTION": "attr = 'DIARIZED_TRANSCRIPTION'",
+  "skyflow.utils.enums.OutputTranscriptionType.MEDICAL_DIARIZED_TRANSCRIPTION": "attr = 'MEDICAL_DIARIZED_TRANSCRIPTION'",
+  "skyflow.utils.enums.OutputTranscriptionType.MEDICAL_TRANSCRIPTION": "attr = 'MEDICAL_TRANSCRIPTION'",
+  "skyflow.utils.enums.OutputTranscriptionType.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.OutputTranscriptionType.TRANSCRIPTION": "attr = 'TRANSCRIPTION'",
+  "skyflow.utils.enums.PdfProcessingMode": "class (Enum)",
+  "skyflow.utils.enums.PdfProcessingMode.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.PdfProcessingMode.OCR": "attr = 'OCR'",
+  "skyflow.utils.enums.PdfProcessingMode.TEXT_LAYER": "attr = 'TEXT_LAYER'",
+  "skyflow.utils.enums.RedactionType": "class (Enum)",
+  "skyflow.utils.enums.RedactionType.DEFAULT": "attr = 'DEFAULT'",
+  "skyflow.utils.enums.RedactionType.MASKED": "attr = 'MASKED'",
+  "skyflow.utils.enums.RedactionType.PLAIN_TEXT": "attr = 'PLAIN_TEXT'",
+  "skyflow.utils.enums.RedactionType.REDACTED": "attr = 'REDACTED'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat": "class (Enum)",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.CSV": "attr = 'csv'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.DOCX": "attr = 'docx'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.JSON": "attr = 'json'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.JSONL": "attr = 'jsonl'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.PPTX": "attr = 'pptx'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.TXT": "attr = 'txt'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.XLSX": "attr = 'xlsx'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.XML": "attr = 'xml'",
+  "skyflow.utils.enums.ReidentifySourceType": "class (Enum)",
+  "skyflow.utils.enums.ReidentifySourceType.BASE64": "attr = 'BASE64'",
+  "skyflow.utils.enums.ReidentifySourceType.PRESIGNED_URL": "attr = 'PRESIGNED_URL'",
+  "skyflow.utils.enums.ReturnEntitiesType": "class (Enum)",
+  "skyflow.utils.enums.ReturnEntitiesType.ALL": "attr = 'ALL'",
+  "skyflow.utils.enums.ReturnEntitiesType.EXCLUDE_SENSITIVE_DATA": "attr = 'EXCLUDE_SENSITIVE_DATA'",
+  "skyflow.utils.enums.ReturnEntitiesType.NONE": "attr = 'NONE'",
   "skyflow.utils.enums.UpsertType": "class (Enum)",
   "skyflow.utils.enums.UpsertType.REPLACE": "attr = 'REPLACE'",
   "skyflow.utils.enums.UpsertType.UPDATE": "attr = 'UPDATE'",
   "skyflow.vault.controller.VaultController": "class (BaseVaultController)",
   "skyflow.vault.controller.VaultController.__init__": "def (self, vault_client)",
   "skyflow.vault.controller.VaultController.delete": "def (self, request: DeleteRequest, options: DeleteOptions = None) -> DeleteResponse",
+  "skyflow.vault.controller.VaultController.delete_files": "def (self, request: DeleteFilesRequest, options: DeleteFilesOptions = None) -> DeleteFilesResponse",
   "skyflow.vault.controller.VaultController.detokenize": "def (self, request: DetokenizeRequest, options: DetokenizeOptions = None) -> DetokenizeResponse",
   "skyflow.vault.controller.VaultController.get": "def (self, request: GetRequest, options: GetOptions = None) -> GetResponse",
+  "skyflow.vault.controller.VaultController.get_tokens": "def (self, request: GetTokensRequest, options: GetTokensOptions = None) -> GetTokensResponse",
   "skyflow.vault.controller.VaultController.insert": "def (self, request: InsertRequest, options: InsertOptions = None) -> InsertResponse",
+  "skyflow.vault.controller.VaultController.query": "def (self, request: QueryRequest, options: QueryOptions = None) -> QueryResponse",
   "skyflow.vault.controller.VaultController.update": "def (self, request: UpdateRequest, options: UpdateOptions = None) -> UpdateResponse",
+  "skyflow.vault.controller.VaultController.upload_files": "def (self, request: UploadFilesRequest, options: UploadFilesOptions = None) -> UploadFilesResponse",
   "skyflow.vault.data.ColumnRedactions": "class ()",
   "skyflow.vault.data.ColumnRedactions.__init__": "def (self, column_name: str, redaction: str = None)",
   "skyflow.vault.data.ColumnRedactions.column_name": "attr",
@@ -52,6 +224,31 @@
   "skyflow.vault.data.CustomHeaderKey.REQUEST_ID_HEADER": "attr = 'x-request-id'",
   "skyflow.vault.data.CustomHeaderKey.SKYFLOW_ACCOUNT_ID": "attr = 'x-skyflow-account-id'",
   "skyflow.vault.data.CustomHeaderKey.SKYFLOW_ACCOUNT_NAME": "attr = 'x-skyflow-account-name'",
+  "skyflow.vault.data.DeleteFilesColumnResult": "class ()",
+  "skyflow.vault.data.DeleteFilesColumnResult.__init__": "def (self, column: str, status: str = None)",
+  "skyflow.vault.data.DeleteFilesColumnResult.column": "attr",
+  "skyflow.vault.data.DeleteFilesColumnResult.status": "attr",
+  "skyflow.vault.data.DeleteFilesOptions": "class ()",
+  "skyflow.vault.data.DeleteFilesOptions.__init__": "def (self, interceptor: Optional[Callable[[RequestContext], None]] = None)",
+  "skyflow.vault.data.DeleteFilesOptions.interceptor": "attr",
+  "skyflow.vault.data.DeleteFilesRequest": "class (BaseDeleteFilesRequest)",
+  "skyflow.vault.data.DeleteFilesRequest.__init__": "def (self, records: List[DeleteFilesRequestRecord])",
+  "skyflow.vault.data.DeleteFilesRequestRecord": "class ()",
+  "skyflow.vault.data.DeleteFilesRequestRecord.__init__": "def (self, table_name: str, columns: List[str], skyflow_id: str = None, unique_values: List[dict] = None)",
+  "skyflow.vault.data.DeleteFilesRequestRecord.columns": "attr",
+  "skyflow.vault.data.DeleteFilesRequestRecord.skyflow_id": "attr",
+  "skyflow.vault.data.DeleteFilesRequestRecord.table_name": "attr",
+  "skyflow.vault.data.DeleteFilesRequestRecord.unique_values": "attr",
+  "skyflow.vault.data.DeleteFilesResponse": "class (BaseDeleteFilesResponse)",
+  "skyflow.vault.data.DeleteFilesResponse.__init__": "def (self, records = None)",
+  "skyflow.vault.data.DeleteFilesResponseRecord": "class ()",
+  "skyflow.vault.data.DeleteFilesResponseRecord.__init__": "def (self, skyflow_id: str = None, table_name: str = None, columns = None, http_code: int = None, error: str = None, request_id: str = None)",
+  "skyflow.vault.data.DeleteFilesResponseRecord.columns": "attr",
+  "skyflow.vault.data.DeleteFilesResponseRecord.error": "attr",
+  "skyflow.vault.data.DeleteFilesResponseRecord.http_code": "attr",
+  "skyflow.vault.data.DeleteFilesResponseRecord.request_id": "attr",
+  "skyflow.vault.data.DeleteFilesResponseRecord.skyflow_id": "attr",
+  "skyflow.vault.data.DeleteFilesResponseRecord.table_name": "attr",
   "skyflow.vault.data.DeleteOptions": "class ()",
   "skyflow.vault.data.DeleteOptions.__init__": "def (self, interceptor: Optional[Callable[[RequestContext], None]] = None)",
   "skyflow.vault.data.DeleteOptions.interceptor": "attr",
@@ -125,6 +322,25 @@
   "skyflow.vault.data.GetResponseRecord.skyflow_id": "attr",
   "skyflow.vault.data.GetResponseRecord.table_name": "attr",
   "skyflow.vault.data.GetResponseRecord.tokens": "attr",
+  "skyflow.vault.data.GetTokensOptions": "class ()",
+  "skyflow.vault.data.GetTokensOptions.__init__": "def (self, interceptor: Optional[Callable[[RequestContext], None]] = None)",
+  "skyflow.vault.data.GetTokensOptions.interceptor": "attr",
+  "skyflow.vault.data.GetTokensRequest": "class (BaseGetTokensRequest)",
+  "skyflow.vault.data.GetTokensRequest.__init__": "def (self, records: List[GetTokensRequestRecord])",
+  "skyflow.vault.data.GetTokensRequestRecord": "class ()",
+  "skyflow.vault.data.GetTokensRequestRecord.__init__": "def (self, value, token_group_name: str)",
+  "skyflow.vault.data.GetTokensRequestRecord.token_group_name": "attr",
+  "skyflow.vault.data.GetTokensRequestRecord.value": "attr",
+  "skyflow.vault.data.GetTokensResponse": "class (BaseGetTokensResponse)",
+  "skyflow.vault.data.GetTokensResponse.__init__": "def (self, records = None)",
+  "skyflow.vault.data.GetTokensResponseRecord": "class ()",
+  "skyflow.vault.data.GetTokensResponseRecord.__init__": "def (self, value = None, token_group_name = None, token = None, http_code = None, error = None, request_id = None)",
+  "skyflow.vault.data.GetTokensResponseRecord.error": "attr",
+  "skyflow.vault.data.GetTokensResponseRecord.http_code": "attr",
+  "skyflow.vault.data.GetTokensResponseRecord.request_id": "attr",
+  "skyflow.vault.data.GetTokensResponseRecord.token": "attr",
+  "skyflow.vault.data.GetTokensResponseRecord.token_group_name": "attr",
+  "skyflow.vault.data.GetTokensResponseRecord.value": "attr",
   "skyflow.vault.data.InsertOptions": "class ()",
   "skyflow.vault.data.InsertOptions.__init__": "def (self, interceptor: Optional[Callable[[RequestContext], None]] = None)",
   "skyflow.vault.data.InsertOptions.interceptor": "attr",
@@ -152,6 +368,21 @@
   "skyflow.vault.data.InsertResponseRecord.skyflow_id": "attr",
   "skyflow.vault.data.InsertResponseRecord.table_name": "attr",
   "skyflow.vault.data.InsertResponseRecord.tokens": "attr",
+  "skyflow.vault.data.QueryOptions": "class ()",
+  "skyflow.vault.data.QueryOptions.__init__": "def (self, interceptor: Optional[Callable[[RequestContext], None]] = None)",
+  "skyflow.vault.data.QueryOptions.interceptor": "attr",
+  "skyflow.vault.data.QueryRequest": "class (BaseQueryRequest)",
+  "skyflow.vault.data.QueryRequest.__init__": "def (self, query: str)",
+  "skyflow.vault.data.QueryResponse": "class (BaseQueryResponse)",
+  "skyflow.vault.data.QueryResponse.__init__": "def (self, records = None, metadata = None, request_id = None)",
+  "skyflow.vault.data.QueryResponse.metadata": "attr",
+  "skyflow.vault.data.QueryResponse.request_id": "attr",
+  "skyflow.vault.data.QueryResponseMetadata": "class ()",
+  "skyflow.vault.data.QueryResponseMetadata.__init__": "def (self, columns: list = None)",
+  "skyflow.vault.data.QueryResponseMetadata.columns": "attr",
+  "skyflow.vault.data.QueryResponseRecord": "class ()",
+  "skyflow.vault.data.QueryResponseRecord.__init__": "def (self, data: dict = None)",
+  "skyflow.vault.data.QueryResponseRecord.data": "attr",
   "skyflow.vault.data.RequestContext": "class ()",
   "skyflow.vault.data.RequestContext.__init__": "def (self, operation, batch_index = NOT_BATCHED, total_batches = NOT_BATCHED)",
   "skyflow.vault.data.RequestContext.add_header": "def (self, key, value)",
@@ -195,8 +426,78 @@
   "skyflow.vault.data.UpdateResponseRecord.skyflow_id": "attr",
   "skyflow.vault.data.UpdateResponseRecord.table_name": "attr",
   "skyflow.vault.data.UpdateResponseRecord.tokens": "attr",
+  "skyflow.vault.data.UploadFilesColumnResult": "class ()",
+  "skyflow.vault.data.UploadFilesColumnResult.__init__": "def (self, column: str, file_name: str = None, upload_status: str = None, error: str = None)",
+  "skyflow.vault.data.UploadFilesColumnResult.column": "attr",
+  "skyflow.vault.data.UploadFilesColumnResult.error": "attr",
+  "skyflow.vault.data.UploadFilesColumnResult.file_name": "attr",
+  "skyflow.vault.data.UploadFilesColumnResult.upload_status": "attr",
+  "skyflow.vault.data.UploadFilesOptions": "class ()",
+  "skyflow.vault.data.UploadFilesOptions.__init__": "def (self, interceptor: Optional[Callable[[RequestContext], None]] = None)",
+  "skyflow.vault.data.UploadFilesOptions.interceptor": "attr",
+  "skyflow.vault.data.UploadFilesRequest": "class (BaseUploadFilesRequest)",
+  "skyflow.vault.data.UploadFilesRequest.__init__": "def (self, records: List[UploadFilesRequestRecord])",
+  "skyflow.vault.data.UploadFilesRequestColumn": "class ()",
+  "skyflow.vault.data.UploadFilesRequestColumn.__init__": "def (self, column: str, file_path: str = None, base64: str = None, file_object: BinaryIO = None, file_name: str = None)",
+  "skyflow.vault.data.UploadFilesRequestColumn.base64": "attr",
+  "skyflow.vault.data.UploadFilesRequestColumn.column": "attr",
+  "skyflow.vault.data.UploadFilesRequestColumn.file_name": "attr",
+  "skyflow.vault.data.UploadFilesRequestColumn.file_object": "attr",
+  "skyflow.vault.data.UploadFilesRequestColumn.file_path": "attr",

@github-actions

Copy link
Copy Markdown

Public API contract change (skyvault)

This PR changes skyvault/api-report/skyflow.api.json (the approved public API contract for skyflow). Review the surface change below:

diff --git a/skyvault/api-report/skyflow.api.json b/skyvault/api-report/skyflow.api.json
index 0f28168..99d845c 100644
--- a/skyvault/api-report/skyflow.api.json
+++ b/skyvault/api-report/skyflow.api.json
@@ -32,6 +32,40 @@
   "skyflow.utils.enums.ContentType.PLAINTEXT": "attr = 'text/plain'",
   "skyflow.utils.enums.ContentType.URLENCODED": "attr = 'application/x-www-form-urlencoded'",
   "skyflow.utils.enums.ContentType.XML": "attr = 'text/xml'",
+  "skyflow.utils.enums.DeidentificationType": "class (Enum)",
+  "skyflow.utils.enums.DeidentificationType.ENTITY_ONLY": "attr = 'ENTITY_ONLY'",
+  "skyflow.utils.enums.DeidentificationType.ENTITY_UNIQUE_COUNTER": "attr = 'ENTITY_UNIQUE_COUNTER'",
+  "skyflow.utils.enums.DeidentificationType.MASK": "attr = 'MASK'",
+  "skyflow.utils.enums.DeidentificationType.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.DeidentificationType.VAULT_TOKEN": "attr = 'VAULT_TOKEN'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat": "class (Enum)",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.BMP": "attr = 'bmp'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.CSV": "attr = 'csv'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.DCM": "attr = 'dcm'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.DOC": "attr = 'doc'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.DOCX": "attr = 'docx'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.GIF": "attr = 'gif'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JPEG": "attr = 'jpeg'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JPG": "attr = 'jpg'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JSON": "attr = 'json'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.JSONL": "attr = 'jsonl'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.MP3": "attr = 'mp3'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PDF": "attr = 'pdf'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PNG": "attr = 'png'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PPT": "attr = 'ppt'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.PPTX": "attr = 'pptx'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.TIF": "attr = 'tif'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.TIFF": "attr = 'tiff'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.TXT": "attr = 'txt'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.WAV": "attr = 'wav'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.XLS": "attr = 'xls'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.XLSX": "attr = 'xlsx'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.XML": "attr = 'xml'",
+  "skyflow.utils.enums.DeidentifyFileDataFormat.ZIP": "attr = 'zip'",
+  "skyflow.utils.enums.DeidentifySourceType": "class (Enum)",
+  "skyflow.utils.enums.DeidentifySourceType.BASE64": "attr = 'BASE64'",
+  "skyflow.utils.enums.DeidentifySourceType.PRESIGNED_URL": "attr = 'PRESIGNED_URL'",
+  "skyflow.utils.enums.DeidentifySourceType.SKYFLOW_ID": "attr = 'SKYFLOW_ID'",
   "skyflow.utils.enums.DetectEntities": "class (Enum)",
   "skyflow.utils.enums.DetectEntities.ACCOUNT_NUMBER": "attr = 'account_number'",
   "skyflow.utils.enums.DetectEntities.AGE": "attr = 'age'",
@@ -109,6 +143,84 @@
   "skyflow.utils.enums.DetectOutputTranscriptions.MEDICAL_TRANSCRIPTION": "attr = 'medical_transcription'",
   "skyflow.utils.enums.DetectOutputTranscriptions.PLAINTEXT_TRANSCRIPTION": "attr = 'plaintext_transcription'",
   "skyflow.utils.enums.DetectOutputTranscriptions.TRANSCRIPTION": "attr = 'transcription'",
+  "skyflow.utils.enums.DetectRunStatus": "class (Enum)",
+  "skyflow.utils.enums.DetectRunStatus.FAILED": "attr = 'FAILED'",
+  "skyflow.utils.enums.DetectRunStatus.IN_PROGRESS": "attr = 'IN_PROGRESS'",
+  "skyflow.utils.enums.DetectRunStatus.QUEUED": "attr = 'QUEUED'",
+  "skyflow.utils.enums.DetectRunStatus.SUCCESS": "attr = 'SUCCESS'",
+  "skyflow.utils.enums.DetectRunStatus.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.EntityType": "class (Enum)",
+  "skyflow.utils.enums.EntityType.ACCOUNT_NUMBER": "attr = 'ACCOUNT_NUMBER'",
+  "skyflow.utils.enums.EntityType.AGE": "attr = 'AGE'",
+  "skyflow.utils.enums.EntityType.ALL": "attr = 'ALL'",
+  "skyflow.utils.enums.EntityType.BANK_ACCOUNT": "attr = 'BANK_ACCOUNT'",
+  "skyflow.utils.enums.EntityType.BLOOD_TYPE": "attr = 'BLOOD_TYPE'",
+  "skyflow.utils.enums.EntityType.CONDITION": "attr = 'CONDITION'",
+  "skyflow.utils.enums.EntityType.CORPORATE_ACTION": "attr = 'CORPORATE_ACTION'",
+  "skyflow.utils.enums.EntityType.CREDIT_CARD": "attr = 'CREDIT_CARD'",
+  "skyflow.utils.enums.EntityType.CREDIT_CARD_EXPIRATION": "attr = 'CREDIT_CARD_EXPIRATION'",
+  "skyflow.utils.enums.EntityType.CVV": "attr = 'CVV'",
+  "skyflow.utils.enums.EntityType.DATE": "attr = 'DATE'",
+  "skyflow.utils.enums.EntityType.DATE_INTERVAL": "attr = 'DATE_INTERVAL'",
+  "skyflow.utils.enums.EntityType.DAY": "attr = 'DAY'",
+  "skyflow.utils.enums.EntityType.DOB": "attr = 'DOB'",
+  "skyflow.utils.enums.EntityType.DOSE": "attr = 'DOSE'",
+  "skyflow.utils.enums.EntityType.DRIVER_LICENSE": "attr = 'DRIVER_LICENSE'",
+  "skyflow.utils.enums.EntityType.DRUG": "attr = 'DRUG'",
+  "skyflow.utils.enums.EntityType.DURATION": "attr = 'DURATION'",
+  "skyflow.utils.enums.EntityType.EFFECT": "attr = 'EFFECT'",
+  "skyflow.utils.enums.EntityType.EMAIL_ADDRESS": "attr = 'EMAIL_ADDRESS'",
+  "skyflow.utils.enums.EntityType.EVENT": "attr = 'EVENT'",
+  "skyflow.utils.enums.EntityType.FILENAME": "attr = 'FILENAME'",
+  "skyflow.utils.enums.EntityType.FINANCIAL_METRIC": "attr = 'FINANCIAL_METRIC'",
+  "skyflow.utils.enums.EntityType.GENDER": "attr = 'GENDER'",
+  "skyflow.utils.enums.EntityType.HEALTHCARE_NUMBER": "attr = 'HEALTHCARE_NUMBER'",
+  "skyflow.utils.enums.EntityType.INJURY": "attr = 'INJURY'",
+  "skyflow.utils.enums.EntityType.IP_ADDRESS": "attr = 'IP_ADDRESS'",
+  "skyflow.utils.enums.EntityType.LANGUAGE": "attr = 'LANGUAGE'",
+  "skyflow.utils.enums.EntityType.LOCATION": "attr = 'LOCATION'",
+  "skyflow.utils.enums.EntityType.LOCATION_ADDRESS": "attr = 'LOCATION_ADDRESS'",
+  "skyflow.utils.enums.EntityType.LOCATION_ADDRESS_STREET": "attr = 'LOCATION_ADDRESS_STREET'",
+  "skyflow.utils.enums.EntityType.LOCATION_CITY": "attr = 'LOCATION_CITY'",
+  "skyflow.utils.enums.EntityType.LOCATION_COORDINATE": "attr = 'LOCATION_COORDINATE'",
+  "skyflow.utils.enums.EntityType.LOCATION_COUNTRY": "attr = 'LOCATION_COUNTRY'",
+  "skyflow.utils.enums.EntityType.LOCATION_STATE": "attr = 'LOCATION_STATE'",
+  "skyflow.utils.enums.EntityType.LOCATION_ZIP": "attr = 'LOCATION_ZIP'",
+  "skyflow.utils.enums.EntityType.MARITAL_STATUS": "attr = 'MARITAL_STATUS'",
+  "skyflow.utils.enums.EntityType.MEDICAL_CODE": "attr = 'MEDICAL_CODE'",
+  "skyflow.utils.enums.EntityType.MEDICAL_PROCESS": "attr = 'MEDICAL_PROCESS'",
+  "skyflow.utils.enums.EntityType.MONEY": "attr = 'MONEY'",
+  "skyflow.utils.enums.EntityType.MONTH": "attr = 'MONTH'",
+  "skyflow.utils.enums.EntityType.NAME": "attr = 'NAME'",
+  "skyflow.utils.enums.EntityType.NAME_FAMILY": "attr = 'NAME_FAMILY'",
+  "skyflow.utils.enums.EntityType.NAME_GIVEN": "attr = 'NAME_GIVEN'",
+  "skyflow.utils.enums.EntityType.NAME_MEDICAL_PROFESSIONAL": "attr = 'NAME_MEDICAL_PROFESSIONAL'",
+  "skyflow.utils.enums.EntityType.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.EntityType.NUMERICAL_PII": "attr = 'NUMERICAL_PII'",
+  "skyflow.utils.enums.EntityType.OCCUPATION": "attr = 'OCCUPATION'",
+  "skyflow.utils.enums.EntityType.ORGANIZATION": "attr = 'ORGANIZATION'",
+  "skyflow.utils.enums.EntityType.ORGANIZATION_ID": "attr = 'ORGANIZATION_ID'",
+  "skyflow.utils.enums.EntityType.ORGANIZATION_MEDICAL_FACILITY": "attr = 'ORGANIZATION_MEDICAL_FACILITY'",
+  "skyflow.utils.enums.EntityType.ORIGIN": "attr = 'ORIGIN'",
+  "skyflow.utils.enums.EntityType.PASSPORT_NUMBER": "attr = 'PASSPORT_NUMBER'",
+  "skyflow.utils.enums.EntityType.PASSWORD": "attr = 'PASSWORD'",
+  "skyflow.utils.enums.EntityType.PHONE_NUMBER": "attr = 'PHONE_NUMBER'",
+  "skyflow.utils.enums.EntityType.PHYSICAL_ATTRIBUTE": "attr = 'PHYSICAL_ATTRIBUTE'",
+  "skyflow.utils.enums.EntityType.POLITICAL_AFFILIATION": "attr = 'POLITICAL_AFFILIATION'",
+  "skyflow.utils.enums.EntityType.PRODUCT": "attr = 'PRODUCT'",
+  "skyflow.utils.enums.EntityType.PROJECT": "attr = 'PROJECT'",
+  "skyflow.utils.enums.EntityType.RELIGION": "attr = 'RELIGION'",
+  "skyflow.utils.enums.EntityType.ROUTING_NUMBER": "attr = 'ROUTING_NUMBER'",
+  "skyflow.utils.enums.EntityType.SEXUALITY": "attr = 'SEXUALITY'",
+  "skyflow.utils.enums.EntityType.SSN": "attr = 'SSN'",
+  "skyflow.utils.enums.EntityType.STATISTICS": "attr = 'STATISTICS'",
+  "skyflow.utils.enums.EntityType.TIME": "attr = 'TIME'",
+  "skyflow.utils.enums.EntityType.TREND": "attr = 'TREND'",
+  "skyflow.utils.enums.EntityType.URL": "attr = 'URL'",
+  "skyflow.utils.enums.EntityType.USERNAME": "attr = 'USERNAME'",
+  "skyflow.utils.enums.EntityType.VEHICLE_ID": "attr = 'VEHICLE_ID'",
+  "skyflow.utils.enums.EntityType.YEAR": "attr = 'YEAR'",
+  "skyflow.utils.enums.EntityType.ZODIAC_SIGN": "attr = 'ZODIAC_SIGN'",
   "skyflow.utils.enums.Env": "class (Enum)",
   "skyflow.utils.enums.Env.DEV": "attr = 'DEV'",
   "skyflow.utils.enums.Env.PROD": "attr = 'PROD'",
@@ -119,6 +231,13 @@
   "skyflow.utils.enums.EnvUrls.PROD": "attr = 'vault.skyflowapis.com'",
   "skyflow.utils.enums.EnvUrls.SANDBOX": "attr = 'vault.skyflowapis-preview.com'",
   "skyflow.utils.enums.EnvUrls.STAGE": "attr = 'vault.skyflowapis.tech'",
+  "skyflow.utils.enums.GuardrailsValidation": "class (Enum)",
+  "skyflow.utils.enums.GuardrailsValidation.FAILED": "attr = 'FAILED'",
+  "skyflow.utils.enums.GuardrailsValidation.PASSED": "attr = 'PASSED'",
+  "skyflow.utils.enums.GuardrailsValidation.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.IncludePrefix": "class (Enum)",
+  "skyflow.utils.enums.IncludePrefix.NO": "attr = 'NO'",
+  "skyflow.utils.enums.IncludePrefix.YES": "attr = 'YES'",
   "skyflow.utils.enums.LogLevel": "class (Enum)",
   "skyflow.utils.enums.LogLevel.DEBUG": "attr = 1",
   "skyflow.utils.enums.LogLevel.ERROR": "attr = 4",
@@ -126,19 +245,57 @@
   "skyflow.utils.enums.LogLevel.OFF": "attr = 5",
   "skyflow.utils.enums.LogLevel.WARN": "attr = 3",
   "skyflow.utils.enums.MaskingMethod": "class (Enum)",
-  "skyflow.utils.enums.MaskingMethod.BLACKBOX": "attr = 'blackbox'",
-  "skyflow.utils.enums.MaskingMethod.BLUR": "attr = 'blur'",
+  "skyflow.utils.enums.MaskingMethod.BLACKBOX": "attr = 'BLACKBOX'",
+  "skyflow.utils.enums.MaskingMethod.BLUR": "attr = 'BLUR'",
+  "skyflow.utils.enums.MaskingMethod.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.ObjectDeidentificationType": "class (Enum)",
+  "skyflow.utils.enums.ObjectDeidentificationType.REDACT": "attr = 'REDACT'",
+  "skyflow.utils.enums.ObjectDeidentificationType.UNKNOWN": "attr = 'UNKNOWN'",
+  "skyflow.utils.enums.ObjectDeidentificationType.UNREDACT": "attr = 'UNREDACT'",
+  "skyflow.utils.enums.ObjectEntityType": "class (Enum)",
+  "skyflow.utils.enums.ObjectEntityType.ALL": "attr = 'ALL'",
+  "skyflow.utils.enums.ObjectEntityType.FACE": "attr = 'FACE'",
+  "skyflow.utils.enums.ObjectEntityType.LICENSE_PLATE": "attr = 'LICENSE_PLATE'",
+  "skyflow.utils.enums.ObjectEntityType.LOGO": "attr = 'LOGO'",
+  "skyflow.utils.enums.ObjectEntityType.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.ObjectEntityType.SIGNATURE": "attr = 'SIGNATURE'",
+  "skyflow.utils.enums.OutputTranscriptionType": "class (Enum)",
+  "skyflow.utils.enums.OutputTranscriptionType.DIARIZED_TRANSCRIPTION": "attr = 'DIARIZED_TRANSCRIPTION'",
+  "skyflow.utils.enums.OutputTranscriptionType.MEDICAL_DIARIZED_TRANSCRIPTION": "attr = 'MEDICAL_DIARIZED_TRANSCRIPTION'",
+  "skyflow.utils.enums.OutputTranscriptionType.MEDICAL_TRANSCRIPTION": "attr = 'MEDICAL_TRANSCRIPTION'",
+  "skyflow.utils.enums.OutputTranscriptionType.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.OutputTranscriptionType.TRANSCRIPTION": "attr = 'TRANSCRIPTION'",
+  "skyflow.utils.enums.PdfProcessingMode": "class (Enum)",
+  "skyflow.utils.enums.PdfProcessingMode.NONE": "attr = 'NONE'",
+  "skyflow.utils.enums.PdfProcessingMode.OCR": "attr = 'OCR'",
+  "skyflow.utils.enums.PdfProcessingMode.TEXT_LAYER": "attr = 'TEXT_LAYER'",
   "skyflow.utils.enums.RedactionType": "class (Enum)",
   "skyflow.utils.enums.RedactionType.DEFAULT": "attr = 'DEFAULT'",
   "skyflow.utils.enums.RedactionType.MASKED": "attr = 'MASKED'",
   "skyflow.utils.enums.RedactionType.PLAIN_TEXT": "attr = 'PLAIN_TEXT'",
   "skyflow.utils.enums.RedactionType.REDACTED": "attr = 'REDACTED'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat": "class (Enum)",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.CSV": "attr = 'csv'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.DOCX": "attr = 'docx'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.JSON": "attr = 'json'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.JSONL": "attr = 'jsonl'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.PPTX": "attr = 'pptx'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.TXT": "attr = 'txt'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.XLSX": "attr = 'xlsx'",
+  "skyflow.utils.enums.ReidentifyFileDataFormat.XML": "attr = 'xml'",
+  "skyflow.utils.enums.ReidentifySourceType": "class (Enum)",
+  "skyflow.utils.enums.ReidentifySourceType.BASE64": "attr = 'BASE64'",
+  "skyflow.utils.enums.ReidentifySourceType.PRESIGNED_URL": "attr = 'PRESIGNED_URL'",
   "skyflow.utils.enums.RequestMethod": "class (Enum)",
   "skyflow.utils.enums.RequestMethod.DELETE": "attr = 'DELETE'",
   "skyflow.utils.enums.RequestMethod.GET": "attr = 'GET'",
   "skyflow.utils.enums.RequestMethod.NONE": "attr = 'NONE'",
   "skyflow.utils.enums.RequestMethod.POST": "attr = 'POST'",
   "skyflow.utils.enums.RequestMethod.PUT": "attr = 'PUT'",
+  "skyflow.utils.enums.ReturnEntitiesType": "class (Enum)",
+  "skyflow.utils.enums.ReturnEntitiesType.ALL": "attr = 'ALL'",
+  "skyflow.utils.enums.ReturnEntitiesType.EXCLUDE_SENSITIVE_DATA": "attr = 'EXCLUDE_SENSITIVE_DATA'",
+  "skyflow.utils.enums.ReturnEntitiesType.NONE": "attr = 'NONE'",
   "skyflow.utils.enums.TokenMode": "class (Enum)",
   "skyflow.utils.enums.TokenMode.DISABLE": "attr = 'DISABLE'",
   "skyflow.utils.enums.TokenMode.ENABLE": "attr = 'ENABLE'",
@@ -162,12 +319,6 @@
   "skyflow.vault.controller.Connection": "class ()",
   "skyflow.vault.controller.Connection.__init__": "def (self, vault_client)",
   "skyflow.vault.controller.Connection.invoke": "def (self, request: InvokeConnectionRequest)",
-  "skyflow.vault.controller.Detect": "class ()",
-  "skyflow.vault.controller.Detect.__init__": "def (self, vault_client)",
-  "skyflow.vault.controller.Detect.deidentify_file": "def (self, request: DeidentifyFileRequest)",
-  "skyflow.vault.controller.Detect.deidentify_text": "def (self, request: DeidentifyTextRequest) -> DeidentifyTextResponse",
-  "skyflow.vault.controller.Detect.get_detect_run": "def (self, request: GetDetectRunRequest)",
-  "skyflow.vault.controller.Detect.reidentify_text": "def (self, request: ReidentifyTextRequest) -> ReidentifyTextResponse",
   "skyflow.vault.controller.Vault": "attr",
   "skyflow.vault.controller.VaultController": "class (BaseVaultController)",
   "skyflow.vault.controller.VaultController.__init__": "def (self, vault_client)",
@@ -244,104 +395,43 @@
   "skyflow.vault.data.UpdateResponse.updated_field": "attr",
   "skyflow.vault.data.UploadFileRequest": "class ()",
   "skyflow.vault.data.UploadFileRequest.__init__": "def (self)",
-  "skyflow.vault.detect.Bleep": "class ()",
-  "skyflow.vault.detect.Bleep.__init__": "def (self, gain: Optional[float] = None, frequency: Optional[float] = None, start_padding: Optional[float] = None, stop_padding: Optional[float] = None)",
-  "skyflow.vault.detect.Bleep.frequency": "attr",
-  "skyflow.vault.detect.Bleep.gain": "attr",
-  "skyflow.vault.detect.Bleep.start_padding": "attr",
-  "skyflow.vault.detect.Bleep.stop_padding": "attr",
-  "skyflow.vault.detect.DateTransformation": "class ()",
-  "skyflow.vault.detect.DateTransformation.__init__": "def (self, max_days: int, min_days: int, entities: List[DetectEntities])",
-  "skyflow.vault.detect.DateTransformation.entities": "attr",
-  "skyflow.vault.detect.DateTransformation.max": "attr",
-  "skyflow.vault.detect.DateTransformation.min": "attr",
-  "skyflow.vault.detect.DeidentifyFileRequest": "class ()",
-  "skyflow.vault.detect.DeidentifyFileRequest.__init__": "def (self, file = None, entities: Optional[List[DetectEntities]] = None, allow_regex_list: Optional[List[str]] = None, restrict_regex_list: Optional[List[str]] = None, token_format: Optional[TokenFormat] = None, transformations: Optional[Transformations] = None, output_processed_image: Optional[bool] = None, output_ocr_text: Optional[bool] = None, masking_method: Optional[MaskingMethod] = None, pixel_density: Optional[Union[int, float]] = None, max_resolution: Optional[Union[int, float]] = None, output_processed_audio: Optional[bool] = None, output_transcription: Optional[DetectOutputTranscriptions] = None, bleep: Optional[Bleep] = None, output_directory: Optional[str] = None, wait_time: Optional[Union[int, float]] = None)",
-  "skyflow.vault.detect.DeidentifyFileRequest.allow_regex_list": "attr: Optional[List[str]]",
-  "skyflow.vault.detect.DeidentifyFileRequest.bleep": "attr: Optional[Bleep]",
-  "skyflow.vault.detect.DeidentifyFileRequest.entities": "attr: Optional[List[DetectEntities]]",
-  "skyflow.vault.detect.DeidentifyFileRequest.file": "attr: FileInput",
-  "skyflow.vault.detect.DeidentifyFileRequest.masking_method": "attr: Optional[MaskingMethod]",
-  "skyflow.vault.detect.DeidentifyFileRequest.max_resolution": "attr: Optional[Union[int, float]]",
-  "skyflow.vault.detect.DeidentifyFileRequest.output_directory": "attr: Optional[str]",
-  "skyflow.vault.detect.DeidentifyFileRequest.output_ocr_text": "attr: Optional[bool]",
-  "skyflow.vault.detect.DeidentifyFileRequest.output_processed_audio": "attr: Optional[bool]",
-  "skyflow.vault.detect.DeidentifyFileRequest.output_processed_image": "attr: Optional[bool]",
-  "skyflow.vault.detect.DeidentifyFileRequest.output_transcription": "attr: Optional[DetectOutputTranscriptions]",
-  "skyflow.vault.detect.DeidentifyFileRequest.pixel_density": "attr: Optional[Union[int, float]]",
-  "skyflow.vault.detect.DeidentifyFileRequest.restrict_regex_list": "attr: Optional[List[str]]",
-  "skyflow.vault.detect.DeidentifyFileRequest.token_format": "attr: Optional[TokenFormat]",
-  "skyflow.vault.detect.DeidentifyFileRequest.transformations": "attr: Optional[Transformations]",
-  "skyflow.vault.detect.DeidentifyFileRequest.wait_time": "attr: Optional[Union[int, float]]",
-  "skyflow.vault.detect.DeidentifyFileResponse": "class ()",
-  "skyflow.vault.detect.DeidentifyFileResponse.__init__": "def (self, file_base64: Optional[str] = None, file: Optional[io.BytesIO] = None, type: Optional[str] = None, extension: Optional[str] = None, word_count: Optional[int] = None, char_count: Optional[int] = None, size_in_kb: Optional[float] = None, duration_in_seconds: Optional[float] = None, page_count: Optional[int] = None, slide_count: Optional[int] = None, entities: Optional[list] = None, run_id: Optional[str] = None, status: Optional[str] = None, errors: Optional[list] = None)",
-  "skyflow.vault.detect.DeidentifyFileResponse.char_count": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.duration_in_seconds": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.entities": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.errors": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.extension": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.file": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.file_base64": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.page_count": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.run_id": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.size_in_kb": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.slide_count": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.status": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.type": "attr",
-  "skyflow.vault.detect.DeidentifyFileResponse.word_count": "attr",
-  "skyflow.vault.detect.DeidentifyTextRequest": "class ()",
-  "skyflow.vault.detect.DeidentifyTextRequest.__init__": "def (self, text: str, entities: Optional[List[DetectEntities]] = None, allow_regex_list: Optional[List[str]] = None, restrict_regex_list: Optional[List[str]] = None, token_format: Optional[TokenFormat] = None, transformations: Optional[Transformations] = None)",
-  "skyflow.vault.detect.DeidentifyTextRequest.allow_regex_list": "attr",
-  "skyflow.vault.detect.DeidentifyTextRequest.entities": "attr",
-  "skyflow.vault.detect.DeidentifyTextRequest.restrict_regex_list": "attr",
-  "skyflow.vault.detect.DeidentifyTextRequest.text": "attr",
-  "skyflow.vault.detect.DeidentifyTextRequest.token_format": "attr",
-  "skyflow.vault.detect.DeidentifyTextRequest.transformations": "attr",
-  "skyflow.vault.detect.DeidentifyTextResponse": "class ()",
-  "skyflow.vault.detect.DeidentifyTextResponse.__init__": "def (self, processed_text: str, entities: List[EntityInfo], word_count: int, char_count: int, errors: Optional[list] = None)",
-  "skyflow.vault.detect.DeidentifyTextResponse.char_count": "attr",
-  "skyflow.vault.detect.DeidentifyTextResponse.entities": "attr",
-  "skyflow.vault.detect.DeidentifyTextResponse.errors": "attr",
-  "skyflow.vault.detect.DeidentifyTextResponse.processed_text": "attr",
-  "skyflow.vault.detect.DeidentifyTextResponse.word_count": "attr",
-  "skyflow.vault.detect.EntityInfo": "class ()",
-  "skyflow.vault.detect.EntityInfo.__init__": "def (self, token: str, value: str, text_index: TextIndex, processed_index: TextIndex, entity: str, scores: Dict[str, float])",
-  "skyflow.vault.detect.EntityInfo.entity": "attr",
-  "skyflow.vault.detect.EntityInfo.processed_index": "attr",
-  "skyflow.vault.detect.EntityInfo.scores": "attr",
-  "skyflow.vault.detect.EntityInfo.text_index": "attr",
-  "skyflow.vault.detect.EntityInfo.token": "attr",
-  "skyflow.vault.detect.EntityInfo.value": "attr",
-  "skyflow.vault.detect.FileInput": "class ()",
-  "skyflow.vault.detect.FileInput.__init__": "def (self, file: BufferedReader = None, file_path: str = None)",
-  "skyflow.vault.detect.FileInput.file": "attr",
-  "skyflow.vault.detect.FileInput.file_path": "attr",
-  "skyflow.vault.detect.GetDetectRunRequest": "class ()",
-  "skyflow.vault.detect.GetDetectRunRequest.__init__": "def (self, run_id: str)",
-  "skyflow.vault.detect.GetDetectRunRequest.run_id": "attr: str",
-  "skyflow.vault.detect.ReidentifyTextRequest": "class ()",
-  "skyflow.vault.detect.ReidentifyTextRequest.__init__": "def (self, text: str, redacted_entities: Optional[List[DetectEntities]] = None, masked_entities: Optional[List[DetectEntities]] = None, plain_text_entities: Optional[List[DetectEntities]] = None)",
-  "skyflow.vault.detect.ReidentifyTextRequest.masked_entities": "attr",
-  "skyflow.vault.detect.ReidentifyTextRequest.plain_text_entities": "attr",

@saileshwar-skyflow saileshwar-skyflow changed the title flowvault 26.10.0: Detect V2 + new flowvault interfaces (public release) SK-3075: flowvault public release (Detect V2 + new interfaces) Nov 11, 2026
The generated REST clients embed spec-derived example token values in
docstrings (not real secrets). Add common/*/generated paths to the
gitleaks allowlist so the PR scan stops flagging them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

✅ Gitleaks Findings: No secrets detected. Safe to proceed!

@github-actions

Copy link
Copy Markdown

✅ Gitleaks Findings: No secrets detected. Safe to proceed!

@saileshwar-skyflow
saileshwar-skyflow merged commit 1c07be8 into main Nov 11, 2026
17 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.

3 participants