Skip to content

SK-3075: add Detect V2 to flowvault and skyvault SDKs - #286

Open
saileshwar-skyflow wants to merge 3 commits into
flowvault-release/26.10.0from
saileshwar/SK-3075-add-detect-v2-skyvault-flowvault
Open

saileshwar-skyflow wants to merge 3 commits into
flowvault-release/26.10.0from
saileshwar/SK-3075-add-detect-v2-skyvault-flowvault

Conversation

@saileshwar-skyflow

Copy link
Copy Markdown
Collaborator

Summary

Adds Detect V2 (deidentify_string, deidentify_file, get_run, reidentify_string, reidentify_file, check_guardrails) to the Python SDKs. The implementation lives in the shared common package and is re-exported from both flowvault and skyvault, with behaviour ported from the Java flowvault SDK (flowvault-release/26.10.1).

Jira: SK-3075

What's included

common (common/vault/detect, common/utils/enums/detect.py)

  • Detect models, controller, request/response mappers, run polling, file-output writer, validations, and V2 enums; V2 messages in SkyflowMessages.
  • Ported from Java: exponential poll backoff (1→2→4→8→16→32, capped), submit-only status=None, minimal client-side validation (server enforces the rest), auto-write of processed files for local-file inputs.

flowvault

  • make_skyflow_class(detect_cls=DetectController) activates client.detect().
  • VaultClient builds the common detect REST client and exposes get_strings_v2_api / get_files_v2_api / get_guardrails_v2_api.
  • Re-exports skyflow.vault.detect and the V2 enums; adds samples/detect_api/, a README section, and unit tests.

skyvault

  • Replaces the removed V1 detect API with V2 (same method/class names, per the migration doc).
  • Migrates the hand-written layer to the regenerated client names (drop V1 prefix, Skyflow→SkyflowAuth) and updates tests.
  • Includes the regenerated skyvault REST client that the above depends on.

Testing

  • common 102 ✓, flowvault 344 ✓, skyvault 520 ✓; ruff clean.
  • Live smoke-tested all six methods against a DEV vault from both flowvault and skyvault.

🤖 Generated with Claude Code

saileshwar-skyflow and others added 2 commits October 26, 2026 17:40
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>
…lines

- 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>
@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..bb7df8b 100644
--- a/skyvault/api-report/skyflow.api.json
+++ b/skyvault/api-report/skyflow.api.json
@@ -32,6 +32,16 @@
   "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.DataSourceType": "class (Enum)",
+  "skyflow.utils.enums.DataSourceType.BASE64": "attr = 'BASE64'",
+  "skyflow.utils.enums.DataSourceType.PRESIGNED_URL": "attr = 'PRESIGNED_URL'",
+  "skyflow.utils.enums.DataSourceType.SKYFLOW_ID": "attr = 'SKYFLOW_ID'",
+  "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.DetectEntities": "class (Enum)",
   "skyflow.utils.enums.DetectEntities.ACCOUNT_NUMBER": "attr = 'account_number'",
   "skyflow.utils.enums.DetectEntities.AGE": "attr = 'age'",
@@ -109,6 +119,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 +207,34 @@
   "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.FileDataFormat": "class (Enum)",
+  "skyflow.utils.enums.FileDataFormat.BMP": "attr = 'bmp'",
+  "skyflow.utils.enums.FileDataFormat.CSV": "attr = 'csv'",
+  "skyflow.utils.enums.FileDataFormat.DCM": "attr = 'dcm'",
+  "skyflow.utils.enums.FileDataFormat.DOC": "attr = 'doc'",
+  "skyflow.utils.enums.FileDataFormat.DOCX": "attr = 'docx'",
+  "skyflow.utils.enums.FileDataFormat.GIF": "attr = 'gif'",
+  "skyflow.utils.enums.FileDataFormat.JPEG": "attr = 'jpeg'",
+  "skyflow.utils.enums.FileDataFormat.JPG": "attr = 'jpg'",
+  "skyflow.utils.enums.FileDataFormat.JSON": "attr = 'json'",
+  "skyflow.utils.enums.FileDataFormat.JSONL": "attr = 'jsonl'",
+  "skyflow.utils.enums.FileDataFormat.MP3": "attr = 'mp3'",
+  "skyflow.utils.enums.FileDataFormat.PDF": "attr = 'pdf'",
+  "skyflow.utils.enums.FileDataFormat.PNG": "attr = 'png'",
+  "skyflow.utils.enums.FileDataFormat.PPT": "attr = 'ppt'",
+  "skyflow.utils.enums.FileDataFormat.PPTX": "attr = 'pptx'",
+  "skyflow.utils.enums.FileDataFormat.TIF": "attr = 'tif'",
+  "skyflow.utils.enums.FileDataFormat.TIFF": "attr = 'tiff'",
+  "skyflow.utils.enums.FileDataFormat.TXT": "attr = 'txt'",
+  "skyflow.utils.enums.FileDataFormat.WAV": "attr = 'wav'",
+  "skyflow.utils.enums.FileDataFormat.XLS": "attr = 'xls'",
+  "skyflow.utils.enums.FileDataFormat.XLSX": "attr = 'xlsx'",
+  "skyflow.utils.enums.FileDataFormat.XML": "attr = 'xml'",
+  "skyflow.utils.enums.FileDataFormat.ZIP": "attr = 'zip'",
+  "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.LogLevel": "class (Enum)",
   "skyflow.utils.enums.LogLevel.DEBUG": "attr = 1",
   "skyflow.utils.enums.LogLevel.ERROR": "attr = 4",
@@ -126,8 +242,30 @@
   "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'",
@@ -139,6 +277,10 @@
   "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 +304,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 +380,39 @@
   "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",
-  "skyflow.vault.detect.ReidentifyTextRequest.redacted_entities": "attr",
-  "skyflow.vault.detect.ReidentifyTextRequest.text": "attr",
-  "skyflow.vault.detect.ReidentifyTextResponse": "class ()",
-  "skyflow.vault.detect.ReidentifyTextResponse.__init__": "def (self, processed_text: str, errors: Optional[list] = None)",
-  "skyflow.vault.detect.ReidentifyTextResponse.errors": "attr",
-  "skyflow.vault.detect.ReidentifyTextResponse.processed_text": "attr",
-  "skyflow.vault.detect.TextIndex": "class ()",
-  "skyflow.vault.detect.TextIndex.__init__": "def (self, start: int, end: int)",
-  "skyflow.vault.detect.TextIndex.end": "attr",
-  "skyflow.vault.detect.TextIndex.start": "attr",
-  "skyflow.vault.detect.TokenFormat": "class ()",
-  "skyflow.vault.detect.TokenFormat.__init__": "def (self, default: TokenType = TokenType.ENTITY_UNIQUE_COUNTER, vault_token: List[DetectEntities] = None, entity_unique_counter: List[DetectEntities] = None, entity_only: List[DetectEntities] = None)",
-  "skyflow.vault.detect.TokenFormat.default": "attr",
-  "skyflow.vault.detect.TokenFormat.entity_only": "attr",
-  "skyflow.vault.detect.TokenFormat.entity_unique_counter": "attr",
-  "skyflow.vault.detect.TokenFormat.vault_token": "attr",
-  "skyflow.vault.detect.Transformations": "class ()",
-  "skyflow.vault.detect.Transformations.__init__": "def (self, shift_dates: DateTransformation)",
-  "skyflow.vault.detect.Transformations.shift_dates": "attr",

@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 ecee35b..7d3f269 100644
--- a/flowvault/api-report/skyflow.api.json
+++ b/flowvault/api-report/skyflow.api.json
@@ -29,15 +29,165 @@
   "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.DataSourceType": "class (Enum)",
+  "skyflow.utils.enums.DataSourceType.BASE64": "attr = 'BASE64'",
+  "skyflow.utils.enums.DataSourceType.PRESIGNED_URL": "attr = 'PRESIGNED_URL'",
+  "skyflow.utils.enums.DataSourceType.SKYFLOW_ID": "attr = 'SKYFLOW_ID'",
+  "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.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.FileDataFormat": "class (Enum)",
+  "skyflow.utils.enums.FileDataFormat.BMP": "attr = 'bmp'",
+  "skyflow.utils.enums.FileDataFormat.CSV": "attr = 'csv'",
+  "skyflow.utils.enums.FileDataFormat.DCM": "attr = 'dcm'",
+  "skyflow.utils.enums.FileDataFormat.DOC": "attr = 'doc'",
+  "skyflow.utils.enums.FileDataFormat.DOCX": "attr = 'docx'",
+  "skyflow.utils.enums.FileDataFormat.GIF": "attr = 'gif'",
+  "skyflow.utils.enums.FileDataFormat.JPEG": "attr = 'jpeg'",
+  "skyflow.utils.enums.FileDataFormat.JPG": "attr = 'jpg'",
+  "skyflow.utils.enums.FileDataFormat.JSON": "attr = 'json'",
+  "skyflow.utils.enums.FileDataFormat.JSONL": "attr = 'jsonl'",
+  "skyflow.utils.enums.FileDataFormat.MP3": "attr = 'mp3'",
+  "skyflow.utils.enums.FileDataFormat.PDF": "attr = 'pdf'",
+  "skyflow.utils.enums.FileDataFormat.PNG": "attr = 'png'",
+  "skyflow.utils.enums.FileDataFormat.PPT": "attr = 'ppt'",
+  "skyflow.utils.enums.FileDataFormat.PPTX": "attr = 'pptx'",
+  "skyflow.utils.enums.FileDataFormat.TIF": "attr = 'tif'",
+  "skyflow.utils.enums.FileDataFormat.TIFF": "attr = 'tiff'",
+  "skyflow.utils.enums.FileDataFormat.TXT": "attr = 'txt'",
+  "skyflow.utils.enums.FileDataFormat.WAV": "attr = 'wav'",
+  "skyflow.utils.enums.FileDataFormat.XLS": "attr = 'xls'",
+  "skyflow.utils.enums.FileDataFormat.XLSX": "attr = 'xlsx'",
+  "skyflow.utils.enums.FileDataFormat.XML": "attr = 'xml'",
+  "skyflow.utils.enums.FileDataFormat.ZIP": "attr = 'zip'",
   "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.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.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'",

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>
@promptless

promptless Bot commented Oct 26, 2026

Copy link
Copy Markdown

Promptless documentation updates

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.

2 participants