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
UniqueViolationandIndexError500s. 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 Conflicterror instead of waiting indefinitely.
- When two concurrent requests try to link the same credential to the same group, the second one now fails fast with a new
- 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
VectorDatabaseDAOinstance 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
DataNotMatchExceptionuntil the process is restarted.
- Milvus connections are now reused per tenant instead of being closed after each request, since pymilvus shares one gRPC connection across every
- 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 itscredential_idwas known. The credential lookup is now scoped by bothcredential_idand the account resolved fromsubject_id, returning404 Not Foundwhen 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_completedevent updated with parameters:total_enrollments,successful_enrollments,failed_enrollments,elapsed.
Added¶
- Code instrumented by using Opentelemetry.
- New
VCSP_TELEMETRY__ENABLEDboolean environment variable to enable/disable telemetry within VCSP. - New
VCSP_TELEMETRY__COLLECTOR__ENDPOINTenvironment variable to specify OpenTelemtry collector URL.
- New
Fixed¶
- Fixed unhandled dasFoo errors.
- Refactored Milvus client to use pymilvus
MilvusClientfor isolated and thread-safe multi-tenant operations.- Fixed concurrency bugs and unexpected crashes when executing parallel tenant operations.
1.16.4¶
Added¶
credential_configuration_urnparameter added toenrollment_createdandrequest servedlogs for enrollments and also added tomatching_performedandrequest servedlogs for 1:N matchings.
1.16.3¶
Added¶
sample_sizeparameter 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 servedlog.- matching info added to
request servedlog (includingmatching_typeandgroup_size).
- matching info added to
Fixed¶
sample.analysis.authenticityparameter set as (float | None) sonot_computedstr value is replaced by null.product_nameandproduct_versionvariables bound to logger at Celery task initialization so they're always logged.
1.16.2¶
Updated¶
matching_performedlog event updated withclaimantinformation andhit_count(number ofHITresults in a matching operation).
Removed¶
- Following log events removed:
matching_operation_acceptedvalidated_media_samplegenerated_sample_infobuilt_matching_responsecompleted_matching_loggot_reference_rbrgot_matching_response_resultgot_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_SIZEto 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
filterparameter 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/matchingsendpoint 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}/sampleto 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}/tagsto 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_processingadded 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_attime when they move toIN_PROGRESS. This timestamp is also included in the task report and in the response fromGET /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:v1andurn:vcsp:assurance_methods:matching:biometric_threshold:v1. - The old methods
urn:vcsp:assurance_methods:enrollment:thresholds:v1andurn:vcsp:assurance_methods:matching:thresholds:v1are marked as deprecated. They are still available but will be replaced by the new methodsurn:vcsp:assurance_methods:enrollment:authenticity_threshold:v1andurn:vcsp:assurance_methods:matching:biometric_and_authenticity_thresholds:v1respectively in the 2025.5 release.
- These new methods are named
- API updates:
- The endpoint
/v1/groups/{group_name}now can respond asynchronously for group population and removal. -
New endpoint
/v1/groups/{group_name}/clusteringfor clustering feature.Please refer to the API definition for more information about these changes.
- The endpoint
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_atproperty. 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_fromandvalid_untilfields 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
GroupsLimitExceededErrorreturned when a group creation request exceeds the maximum number of groups allowed for a tenant. - New
SubjectsPerGroupLimitExceededErrorreturned when a group population request exceeds the maximum number of subjects in a group allowed for a tenant. - New
EnrollmentsLimitExceededErrorreturned when an enrollment request exceeds the maximum number of enrollments allowed for a tenant. - New
TagsLimitExceededErrorreturned 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
reportand asummaryof the operation. - Endpoint
/v1/groups/{group_name}/credentialsto 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.