You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
The local API on port 8018 can serve HTTPS. Set TLS_CERT_FILE and TLS_KEY_FILE to a
certificate and key, mount them into the container and use https in BASE_URL; see
"Serve the local API over HTTPS" in INSTALL.md. It is off by default. The app refuses to
start when only one is set or the pair does not load. The image now starts with python -m app.serve instead of fastapi run. (#116)
Changed
Release tags are signed: just release-publish signs the tag with the maintainer's key
and pushes it before drafting the release, instead of GitHub creating an unsigned tag. (#113)
The image and the install no longer pull in the deploy-only parts of fastapi[standard]
(the FastAPI Cloud CLI, email-validator, httpx2, pydantic-extra-types and their
dependencies). The app asks for what it uses: fastapi-cli, uvicorn[standard], jinja2
and python-multipart. The runtime image is about 15 MB smaller. (#112)
Fixed
A 2xx upload reply that is not JSON or lacks image_id or image_url now counts as
delivered, with a warning in the log. Before, the Pi retried the upload and the backend
stored the capture twice. (#108)
A 2xx upload reply with a valid image_id but a bad or missing image_url now keeps the
backend's id. Before, the Pi fell back to its own capture id and lost the backend's. (#111)
A capture whose requeue after pairing was cut off by a crash is no longer lost when the
camera restarts and drains its queue before the next pairing. The queue now finishes the
requeue instead of deleting the image. A full disk while finishing one such capture no
longer stops the rest of the requeue or the queue drain. (#109)
A camera start that is cancelled (for example by a request timeout) no longer leaves the
camera claimed until the app restarts. The close now waits for the start, or for opening
the camera, to finish, because picamera2 cannot release a camera that is still starting. (#109)
A capture that runs out of upload attempts while a new capture is being queued is no longer
lost. The queue check could delete its metadata between the two file moves into dead/.
A dead-letter move cut off by a crash or shutdown is now finished on the next pass. (#109)