Skip to content

Commit 96da949

Browse files
adamtheturtlegithub-actions[bot]
authored andcommitted
Bump CHANGELOG
1 parent e2323ea commit 96da949

32 files changed

Lines changed: 72 additions & 38 deletions

CHANGELOG.rst

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,78 @@ Changelog
33

44
.. towncrier release notes start
55
6+
2026.08.14
7+
----------
8+
9+
- Give ``CloudDatabase`` a ``database_id``, and reject a reco counts report request whose path names a database which the request's server keys do not belong to, as real Vuforia does.
10+
11+
- Return a response, rather than raising an uncaught ``PIL.Image.DecompressionBombError``, when an image with a small file size but a huge number of pixels is given to ``POST /targets`` or ``POST /v1/query``.
12+
As real Vuforia does, ``POST /targets`` now returns the ``ImageTooLarge`` result code for an image with more than 37748736 pixels, and the Query API applies no pixel count limit.
13+
14+
- Return targets in a deterministic order from the Query API, ``GET /targets``
15+
and ``GET /duplicates/{target_id}``. Targets are ordered by upload date and
16+
then by target ID, so repeated runs agree with each other. This order is not
17+
Vuforia's match score order.
18+
19+
- Document the Docker containers' configuration with the environment variable names and values which the applications actually read, starting with ``TARGET_MANAGER_BASE_URL``.
20+
21+
- Build the Docker images from a committed ``uv.lock`` with a ``.dockerignore``, so that image contents are reproducible from a commit, source edits no longer invalidate the dependency layer, and repository files such as tests and documentation are no longer copied into the images.
22+
23+
- Store Model Target datasets in the target manager service rather than in the VWS application. In the Docker deployment, datasets now survive a restart of the VWS container, matching how cloud databases and their targets are stored. The VWS application also no longer imports the target manager module's state: it constructs its own request rate limiter and reco counts report store.
24+
25+
- Report the Docker containers as unhealthy without a traceback in the health check probe output while nothing is yet listening on the port.
26+
27+
- Support ``cadDataBlob`` and ``cadDataFormat`` in Model Target dataset creation requests, and require exactly one of ``cadDataUrl`` and ``cadDataBlob`` for each model.
28+
29+
- Reject Model Target Web API and OAuth2 token requests with a ``Content-Length`` header which is not an integer, matching the load balancer in front of real Vuforia.
30+
31+
- Reject Model Target dataset creation requests with wrongly typed ``name``, ``targetSdk`` or ``models`` entry values.
32+
33+
- Treat standard and advanced Model Target datasets as separate resources: status, download and delete requests made through the other dataset type's routes now return the unknown-dataset error rather than acting on the dataset.
34+
35+
- Reject Model Target dataset creation requests with values outside the documented enumerations for the ``automaticColoring``, ``motionHint``, ``optimizeTrackingFor``, ``realisticAppearance``, ``simplify`` and ``trackingMode`` model fields.
36+
37+
- Report the ``failed`` training status when downloading a Model Target dataset whose generation failed, rather than the ``not-started`` status which a still-processing dataset reports.
38+
39+
- Add configurable failed Model Target dataset status responses.
40+
41+
- Add configurable Model Target dataset generation warning responses.
42+
43+
- Reject Model Target dataset creation requests with ``guideViewPosition`` objects which are missing ``rotation`` or ``translation``, or which have ``rotation`` or ``translation`` values that are not JSON arrays.
44+
45+
- Reject Model Target dataset creation requests with ``guideViewPosition`` ``rotation`` or ``translation`` arrays which contain values that are not JSON numbers.
46+
47+
- Reject Model Target bearer tokens whose JWT payload is not a JSON object.
48+
49+
- Reject Model Target bearer tokens with empty or malformed JWT signatures.
50+
51+
- Reject Model Target dataset creation requests with models which are missing ``name``, or which have wrongly typed ``cadDataUrl``, ``name`` or ``views`` values.
52+
53+
- Reject Model Target dataset creation requests with a body which is valid JSON but not a JSON object, rather than raising an error in the mock.
54+
55+
- Accept State-Based Model Target configuration and validate per-view state selections against its declared states.
56+
57+
- Reject Model Target dataset creation requests with ``views`` entries which are not JSON objects, which are missing ``guideViewPosition`` or ``name``, or which have wrongly typed ``guideViewPosition`` or ``name`` values.
58+
59+
- Model VWS request rate limits per endpoint with the new
60+
``CloudDatabase.request_rate_limits`` setting, including the limits which
61+
Vuforia documents as ``mock_vws.request_rate_limits.DOCUMENTED_REQUEST_RATE_LIMITS``.
62+
No request rate limit is applied by default.
63+
64+
- Change the ``ProjectHasNoAPIAccess`` result code to ``ProjectHasNoApiAccess``, matching Vuforia's result codes table.
65+
66+
- Add the reco counts report endpoint, and a download URL for the generated CSV report.
67+
68+
- Preserve the recognition count fields, the reco rating and the reco threshold when dumping a ``CloudDatabase`` or an ``ImageTarget`` to a dictionary and loading it back.
69+
70+
- Rate an image of a single color as ``0`` rather than raising an uncaught ``ZeroDivisionError``.
71+
72+
- Return a 404 response from the Flask and Docker mock for a request to a path which it does not serve, and for a request to a served path with a method which that path does not serve, as real Vuforia does, rather than raising an error.
73+
74+
- Reject VuMark instance generation requests whose ``instance_id`` is not a string with a ``BadRequest`` result, as real Vuforia does, and move the ``instance_id`` checks into validators shared by both mock backends.
75+
76+
- Reject Model Target dataset creation requests with a body which cannot be decoded as UTF-8, rather than raising an error in the mock, and decode OAuth2 token request bodies leniently.
77+
678
2026.08.04.2
779
------------
880

newsfragments/cloud-database-id.change

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/decompression-bomb-image.change

Lines changed: 0 additions & 2 deletions
This file was deleted.

newsfragments/deterministic-target-order.change

Lines changed: 0 additions & 4 deletions
This file was deleted.

newsfragments/docker-documentation-target-manager-base-url.change

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/docker-image-lockfile.change

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/docker-model-target-dataset-state.change

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/healthcheck-connection-refused.change

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/model-target-cad-data-blob.change

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/model-target-content-length.change

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)