Skip to content

Changelog

1.17.2

Updated

  • Enable parallelism in tests and avoid non-deterministic outcomes.

Fixed

  • Fixed race condition when concurrently populating the same group by tags, which caused intermittent UniqueViolation and IndexError 500s. Credential-group links are now inserted idempotently (ON CONFLICT DO NOTHING), and group population no longer crashes if a concurrent request has already linked the remaining candidate credentials.
    • When two concurrent requests try to link the same credential to the same group, the second one now fails fast with a new 409 Conflict error instead of waiting indefinitely.
  • Fixed concurrent requests to the same tenant crashing with Milvus connection errors (Cannot invoke RPC on closed channel!, ConnectionNotExistException).
    • Milvus connections are now reused per tenant instead of being closed after each request, since pymilvus shares one gRPC connection across every VectorDatabaseDAO instance for the same tenant.
    • Deleting a collection now also discards the schema that pymilvus caches for it, so recreating a group under the same name for a credential configuration of another domain (or with another embedding dimension) no longer rejects every write with DataNotMatchException until the process is restarted.
  • Fixed batch enrollment in GCP hosted solution.
  • Fixed memory inefficient data queries to vector database.
  • Fixed IDOR in credential endpoints (GET/PATCH /accounts/{subject_id}/credentials/{credential_id}[/sample|/rbr|/tags]) that allowed retrieving or modifying a credential belonging to a different account, as long as its credential_id was known. The credential lookup is now scoped by both credential_id and the account resolved from subject_id, returning 404 Not Found when they don't match.

1.17.1

Fixed

  • Fixed inefficient implementation in background groups synchronization task.

1.17.0 2026.5

Updated

  • Update python version to 3.14.
  • batch_enrollment_completed event updated with parameters: total_enrollments, successful_enrollments, failed_enrollments, elapsed.

Added

  • Code instrumented by using Opentelemetry.
    • New VCSP_TELEMETRY__ENABLED boolean environment variable to enable/disable telemetry within VCSP.
    • New VCSP_TELEMETRY__COLLECTOR__ENDPOINT environment variable to specify OpenTelemtry collector URL.

Fixed

  • Fixed unhandled dasFoo errors.
  • Refactored Milvus client to use pymilvus MilvusClient for isolated and thread-safe multi-tenant operations.
    • Fixed concurrency bugs and unexpected crashes when executing parallel tenant operations.

1.16.4

Added

  • credential_configuration_urn parameter added to enrollment_created and request served logs for enrollments and also added to matching_performed and request served logs for 1:N matchings.

1.16.3

Added

  • sample_size parameter bound to enrollment and matching event logs.
  • Retry mechanism added to trying to avoid race condition Milvus exceptions in production.
  • post_request_logs handler added to add logs at request served log.
    • matching info added to request served log (including matching_type and group_size).

Fixed

  • sample.analysis.authenticity parameter set as (float | None) so not_computed str value is replaced by null.
  • product_name and product_version variables bound to logger at Celery task initialization so they're always logged.

1.16.2

Updated

  • matching_performed log event updated with claimant information and hit_count (number of HIT results in a matching operation).

Removed

  • Following log events removed:
    • matching_operation_accepted
    • validated_media_sample
    • generated_sample_info
    • built_matching_response
    • completed_matching_log
    • got_reference_rbr
    • got_matching_response_result
    • got_model_to_generate_rbr

1.16.1

Added

  • New asynchronous boto3 client class added.
  • New VCSP_S3__ASYNC_MAX_POOL_CONNECTIONS to set the maximum pool of connections for the asynchronous boto3 client.

Fixed

  • Fixed bug that causes 500 errors when performing enrollment with invalid tags.

Updated

  • Improved credential migration concurrency.

1.16.0

Updated

  • Refactor batch credential deletion to improve performance.
  • New env variable VCSP_BULK_OPERATION_BATCH_SIZE to control batch size for bulk operations and avoid memory issues.
  • Added acceptance tests for storage in Google Cloud Storage platform.

1.15.2

Fixed

  • Fixed bug while uploading samples to S3 when endpoint url is None.

1.15.1

Fixed

  • Fixed bug while uploading samples to GCS via boto3. s3 v2 signature added for GCS clients.

Added

  • Added 512-character limit to group description field.

v1.15.0 2025.8

Added

  • Optional filter parameter added to 1:N matching operation in order to pre-filter a matching based on tags. See the api definition for more details.

v1.14.0 2025.7

Added

  • Improved internal biometric algorithm for better accuracy and performance.
  • Support for using VSS resources as input in enrollments and matchings operations. See the api definition for more details.
  • Improved batch enrollment validation to detect and reject invalid batch files during enrollment.

Fixed

  • Internal improvements and bug fixes to enhance overall stability and performance.

v1.13.0 2025.6

Added

  • Improved performance of the v1/matchings endpoint under high load conditions.

Fixed

  • Bug that caused the service to return 500 errors when the client provided an unsupported assurance method for the operation. Now the service responds with a 422 AssuranceMethodNotAcceptedError. See the api definition for more details.

v1.12.2 2025.5

Added

  • Retrieve the sample of a credential: New endpoint GET /v1/accounts/{subject_id}/credentials/{credential_id}/sample to fetch the sample associated with a credential. See the api definition for more details.
  • Update credential tags: New endpoint PATCH /v1/accounts/{subject_id}/credentials/{credential_id}/tags to edit the tags associated with a credential. See the api definition for more details.

Fixed

  • Prevented potential desynchronization between credentials and groups.
  • Improved consistency checks during clustering operations.

VCSP 2025.4 - v1.11

Added

  • Support for stereo voice samples: New optional parameter sample_processing added to the enrollment and matching endpoints to indicate the sample processing to be used with the sample. See the api definition for more details.
  • New endpoint DELETE /v1/credentials: Allows you to delete credentials in batch from the system. See the api definition for more details.

Fixed

  • Fixed issues:
    • Deleted tags to remain associated with credentials.
    • Typo in error message returned enrolling a subject with an existing subject id for that domain.
    • Bug creating groups starting with a number.
    • Bug enrolling a subject without specifying the subject id.

VCSP 2025.3 - v1.10

Added

  • Credential listing endpoint: A new API endpoint (GET /v1/credentials) allows you to list credentials, with support for filtering by configuration (credential_configuration_urn) and tags.
    See the api definition for more details.
  • Task deletion endpoint: You can now delete specific tasks via the new API endpoint (DELETE /v1/tasks/{task_id}).
    See the api definition for more details.
  • Automatic task start timestamp: Tasks now automatically record their started_at time when they move to IN_PROGRESS. This timestamp is also included in the task report and in the response from GET /v1/tasks/{task_id}.
    See the api definition for more details.

Fixed

  • Fixed issues that caused:
    • Tasks to remain pending or be duplicated.
    • Empty accounts to be created after failed batch enrollments.

VCSP 2025.1 - v1.9

Added

  • New assurance methods that ignore spoof detection:
    • These new methods are named urn:vcsp:assurance_methods:enrollment:no_assurance:v1 and urn:vcsp:assurance_methods:matching:biometric_threshold:v1.
    • The old methods urn:vcsp:assurance_methods:enrollment:thresholds:v1 and urn:vcsp:assurance_methods:matching:thresholds:v1 are marked as deprecated. They are still available but will be replaced by the new methods urn:vcsp:assurance_methods:enrollment:authenticity_threshold:v1 and urn:vcsp:assurance_methods:matching:biometric_and_authenticity_thresholds:v1 respectively in the 2025.5 release.
  • API updates:
    • The endpoint /v1/groups/{group_name} now can respond asynchronously for group population and removal.
    • New endpoint /v1/groups/{group_name}/clustering for clustering feature.

      Please refer to the API definition for more information about these changes.

Fixed

  • Solved bug when inserting a lot of data at once to a group.
  • Fixed bug trying to delete unexisting tag.

VCSP 2024.8 - v1.8

Added

  • Automatic Task Expiration: Task results now include an expire_at property. This ensures they are automatically removed after expiration, improving data management and system performance.
  • Enhanced Error Feedback: Introducing a new error response: InvalidServiceConfigurationError. This error helps identify and address issues caused by incorrect service configurations when interacting with the system. API reference documentation has been updated to include this error.

Fixed

  • Consistent Response Structure: Removed valid_from and valid_until fields from matching responses to align with expected API outputs.
  • Data Integrity Improvements: Resolved an issue where deleted data could reappear unexpectedly. Collections are now properly flushed after deletion.

VCSP 1.7

Added

  • New GroupsLimitExceededError returned when a group creation request exceeds the maximum number of groups allowed for a tenant.
  • New SubjectsPerGroupLimitExceededError returned when a group population request exceeds the maximum number of subjects in a group allowed for a tenant.
  • New EnrollmentsLimitExceededError returned when an enrollment request exceeds the maximum number of enrollments allowed for a tenant.
  • New TagsLimitExceededError returned when a tag creation request exceeds the maximum number of tags allowed for a tenant.

VCSP 1.6

Added

  • Updated batch enrollment response to provide a report and a summary of the operation.
  • Endpoint /v1/groups/{group_name}/credentials to list credentials/subjects within a group.
  • Groups removal from the system when they expire.
  • Credentials expiration within groups.
  • Added response 503 if the system is temporarily out of service.

Fixed

  • Regex to validate the subject identifier in the enrollment process.
  • PATCH request to /v1/groups/{group_name} endpoint to update an already existing group.

VCSP 1.3

  • First release of VCSP.