Skip to content

Add VuMark support and refresh Vuforia secrets#2965

Closed
adamtheturtle wants to merge 3 commits intomainfrom
adamtheturtle/add-vumark-update-endpoint-v1
Closed

Add VuMark support and refresh Vuforia secrets#2965
adamtheturtle wants to merge 3 commits intomainfrom
adamtheturtle/add-vumark-update-endpoint-v1

Conversation

@adamtheturtle
Copy link
Member

@adamtheturtle adamtheturtle commented Feb 20, 2026

Summary

Adds comprehensive VuMark database and target type support to the mock, optimizes the secrets creation script, and refreshes the encrypted secrets archive with 100 new cloud database credentials to replace the suspended license.

Key Changes

  • New DatabaseType and TargetType enums supporting cloud and VuMark databases
  • VuMark endpoint implementation for both Flask and requests-mock servers
  • Target type validation in endpoints and database layer
  • Simplified admin script: creates only new cloud databases, reuses VuMark/inactive databases
  • Updated secrets.tar.gpg with fresh 2026-02-20 licenses via vws-web-tools 2026.2.20

Test Coverage

VuMark generation API tests updated to verify database type handling. All existing tests passing with new credentials.

🤖 Generated with Claude Code


Note

Medium Risk
Touches core mock API request paths and persistence (VuforiaDatabase/target models), so type-handling regressions could affect multiple endpoints; changes are contained to mock behavior and are covered by updated tests.

Overview
Adds first-class VuMark support by introducing DatabaseType and splitting targets into ImageTarget (renamed from Target) and a new VuMarkTarget, with VuforiaDatabase serialization/deserialization updated to persist mixed target types and a database type.

Updates both the Flask and requests-mock VWS/Target Manager implementations to handle creating/updating/deleting VuMark vs image targets, gate /targets/<id>/instances to DatabaseType.VUMARK, and return sensible placeholder fields for non-image targets; also restricts query/duplicate matching to ImageTarget only.

Simplifies admin/create_secrets_files.py to only provision new cloud databases while reusing existing inactive/VuMark secrets from env, bumps vws-web-tools version, refreshes docs/API reference, and extends tests to cover InvalidTargetType for VuMark generation on non-VuMark databases.

Written by Cursor Bugbot for commit 31a2332. This will update automatically on new commits. Configure here.

adamtheturtle and others added 3 commits February 19, 2026 10:33
Add DatabaseType enum (CLOUD_RECO, VUMARK) to distinguish database types and TargetType enum (IMAGE, VUMARK_TEMPLATE) for target classification. Implement InvalidTargetTypeError in VuMark generation endpoints to validate that VuMark instance generation only works on VUMARK-type databases. Update database and target serialization to include type information, and allow pre-population of VuMark targets in VuMark-type databases.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
… class

Add autoenum entries for DatabaseType and TargetType to the API reference
docs. Add a docstring note to Target clarifying that some attributes are
primarily meaningful for image targets rather than VuMark template targets.
Add vulture whitelist entries for the new TypedDict field and enum value.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
…resh Vuforia secrets

## Summary
- Add `DatabaseType` and `TargetType` enums to support cloud and VuMark databases
- Implement VuMark target validation, generation, and database operations
- Optimize secrets creation script to reuse VuMark/inactive credentials
- Bump vws-web-tools to 2026.2.20 for improved stability
- Refresh encrypted secrets archive with 100 new cloud database credentials

## Key Changes
- New `database_type.py` and enhanced `target.py` with TargetType support
- VuMark endpoint implementation in Flask and requests-mock servers
- Target type validation in endpoints and database
- Simplified admin script: creates only new cloud databases, reuses VuMark/inactive databases
- Updated secrets.tar.gpg with fresh 2026-02-20 licenses

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

name=name,
active_flag=active_flag,
last_modified_date=last_modified_date,
)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent application_metadata null validation for VuMark targets

Medium Severity

The application_metadata is None validation in the requests-mock update_target was moved inside the isinstance(target, ImageTarget) block, so it's skipped for VuMarkTarget. However, the Flask VWS update_target validates application_metadata is None for all target types (lines 686–696 of vws.py). This creates a behavioral difference between the two mock backends: sending {"application_metadata": null} when updating a VuMark target returns BAD_REQUEST on the Flask/Docker backend but OK on the requests-mock backend.

Additional Locations (1)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant