Debuglet v0.2.0-rc.2
Pre-release
Pre-release
·
339 commits
to main
since this release
Release-note correction: this release serves HTTP API contract 1.3, which adds GitHub browser-login routes. The original changelog prose below incorrectly says that rc.2 keeps contract 1.2; the embedded
api/openapi.yaml,GET /version, and client constant correctly report 1.3.
Added
- Add browser login with GitHub OAuth, including PKCE, short-lived login state,
and deployment-specific credentials stored outside version control. This adds
dispatcher database migration 00009; runmake deploy-upgrade-db DEPLOY_ENV=<env>before the full deployment. The target builds and installs
the candidate payload before it applies that payload's migration. debuglet-dispatcher -upgrade-database,debuglet-executor -upgrade-database
anddeploy/ansible/upgrade-database.ymlbring a deployed database forward to
the packaged schema, with a backup taken by the playbook. The upgrade is
supported for wallet-free TEST state only; local state directories still
require a new directory per package version.
Changed
- The HTTP contract stays at version
1.2while it changes in ways that its
rules otherwise reserve for a major version. Release candidates may do so
before the finalv0.2.0; from then on the rules bind without exception.
docs/API.md lists every such change of this
candidate, including the ones below. - Every route answers a body above 32 MiB with 413
payload_too_large. - An identical resubmission on
PUT /debugletanswers 200 with the runs already
recorded for the batch instead of admitting it again.PUT /payment/intent
refuses an empty batch and a repeatedorder_id. PUT /payment/intentprices a run by its timeout in milliseconds, rounded up,
instead of whole seconds truncated. Sub-second runs are no longer free, and a
client that computes prices itself must use the new formula.DELETE /debugletanswers an executor's refusal 400cancel_refusedwhatever
its gRPC code, and an Abort that may not have reached the executor 500
internal_error("cancellation not confirmed").dbl service statusexits 4 when the role is not ready, where it exited 0.- Setting a destination limit below the floors already admitted is refused with
409capacity_exhausted.
Fixed
- A refused resubmission of a batch whose orders already have runs no longer
refunds its transaction. - A datagram read into a buffer shorter than the datagram is charged for the
whole datagram.
Schema
- Dispatcher migration 00004 gained
DEFAULTclauses after v0.1.0, so that a
populated database at version 3 can be upgraded. A database already past
version 4 is unaffected and keeps the columns without defaults.
Known limitations
- SCION sockets cannot be marked, so their packets are not attributed to the
run by the eBPF tagger. The executor logs a warning once when it dials SCION. - The limitations of
v0.2.0-rc.1still apply, except that a deployed database
can now be upgraded: the web dashboard is not compatible, only Linux amd64
packages are published, a local state directory stays with its package version
and interrupted runs are not recovered.