Skip to content

v0.7.2

Latest

Choose a tag to compare

@simonvanlierde simonvanlierde released this 27 Oct 16:26
· 12 commits to main since this release
v0.7.2
f89df2a

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)