lablink-allocator-service Changelog¶
All notable changes to lablink-allocator-service will be documented here.
The format is based on Keep a Changelog.
0.4.0¶
Bug Fixes¶
- fix(allocator): retry assign_vm when SKIP LOCKED hides a transiently locked seat (#499)
Chores¶
- chore: bump allocator/client to 0.4.0 and CLI to 0.3.0 (#501)
Documentation¶
- docs: demo videos for the Bring-Your-Own clients page (#486)
Features¶
- feat: default the client AMI to a per-region Deep Learning Base AMI (#489)
0.3.0¶
Bug Fixes¶
- fix: render BYO register command on one line in admin onboarding page (#480)
- fix(allocator+client): stop the viewer's 20-min idle kill and let H.264 streaming engage (#478)
- fix(client+allocator): remove xscreensaver and raise viewer default stream quality (#476)
- fix(allocator): auto-reconnect the noVNC viewer + document expected tunnel churn (#475)
- fix(client+allocator): find tutorial-subfolder projects and heal a lost session anchor (#471)
Chores¶
- chore: bump allocator/client to 0.3.0 and CLI to 0.2.0 (#481)
Documentation¶
- docs: refresh architecture/workflows pages and generate API endpoints from route docstrings (#470)
Features¶
- feat: KasmVNC 1.5.0 with H.264 video streaming (NVENC-capable) (#477)
- feat: add Back to Admin Panel link on the allocator logs page (#469)
Refactoring¶
- refactor(allocator): dict rows for operations/schedules/metrics — delete the positional-column contracts (#468)
0.2.1¶
Bug Fixes¶
- fix: two errors-view gaps found by live-testing a failing startup script (#460)
- fix(allocator): stop shipping the string "None" as the tutorial repository (#459)
Chores¶
- chore(release): allocator/client v0.2.1, cli v0.1.0 (#465)
Features¶
- feat(allocator): add an errors-only filter to the log pages (#457)
Refactoring¶
- refactor(allocator): fix database identity, leaving only db.password configurable (#461)
0.2.0¶
Bug Fixes¶
- fix(allocator): refuse to start on an unsubstituted placeholder credential (#443)
- fix: bump Terraform to 1.9.8 to stop S3 backend state corruption (#437)
- fix(allocator): branch BYO onboarding command on manual.connectivity (#421)
- fix(allocator): stop one rotation timeout from permanently wedging a client (#415)
- fix(client+allocator): report the overlay hostname Tailscale actually assigned (#412)
- fix(allocator): stop library modules configuring logging at import time (#410)
- fix(allocator+cli): clone the configured repository on BYO clients (#405) (#408)
- fix(allocator+cli): report the real public URL behind Tailscale Funnel (#396) (#403)
- fix: copy button on BYO onboarding page fails without a secure context (#388)
- fix(allocator): relieve DB pool pressure under client-VM scale (#370)
- fix(allocator): make VM assignment atomic to stop double-booking under load (#372)
- fix(security): prevent command injection via crd_command (#329)
- fix: defer VM status='running' until container startup completes (#321)
- fix: clear VM assignment on auto-reboot so VMs become available for reassignment (#312)
Chores¶
- chore: bump package versions for the OpenTofu release (#448)
- chore: retire Dependabot, bump lagging actions, fix broken README install commands (#425)
- chore(allocator): rename admin button to "Delete VMs" (#367)
Documentation¶
- docs: correct stale and nonexistent references across READMEs and guides (#426)
Features¶
- feat(allocator): report Postgres connection usage on /api/health/connections and /admin (#434)
- feat(allocator): serve the allocator's own logs at /admin/allocator-logs (#422)
- feat: publish the allocator at an admin-chosen hostname via Cloudflare Tunnel (#420)
- feat: reverse_tunnel connectivity — client dials out over the allocator's existing HTTPS address (#419)
- feat(allocator+cli): real-time progress tracking for launch/destroy operations (#398)
- feat(allocator): rework /admin/instances dashboard (issue #377) (#397)
- feat: expose self-hosted allocator to participants via Tailscale Funnel (#390)
- feat: retry client startup script with backoff + success check (#392)
- feat: add mesh-overlay connectivity for off-LAN manual clients (#387)
- feat(allocator): add "Back to Admin Dashboard" link to /admin/instances (#386)
- feat(allocator): wire POST /destroy to OperationsWorker (PR 2/6) (#384)
- feat(allocator): async operations worker — core infra (PR 1/6) (#383)
- feat(allocator): admin VNC access (peek/connect/release) (#382)
- feat: wizard monitoring toggle + sync lablink stats with admin UI (#368)
- feat: Tier 1 monitoring & stats (opt-in, disabled by default) (#366)
- feat: heartbeat liveness signal for silent-failure detection (#323)
- feat: warm reboot for assigned VMs to preserve container state (#322)
- feat: add VM metrics export endpoint and CLI command (CSV + JSON) (#319)
- feat: dynamic health checks with adaptive polling for deployment metrics (#318)
Other Changes¶
- Refactor: Cleanup dead/duplicate code (#395)
- ship startup script to manual/BYO clients via register response (#364)
- PR D5: Provisioning rewire + admin button-gating (#363)
- cli: ship manual BYO docker container logs to allocator (#362)
- client: emit chronological tagged stream to docker logs (#361)
- PR D4: retire API_TOKEN (unify M2M auth on client_secret) (#358)
- PR D3: operator-side manual mode (configure wizard + compose deploy) (#357)
- PR D2: lablink register CLI for manual BYO clients (#354)
- PR D1: manual provider + LAN-direct browser connectivity (#353)
- PR C: registration API + per-client credentials (AWS-only) (#352)
- PR B: provider abstraction seam (behavior-preserving AWS extraction) (#351)
- PR A: swap CRD → KasmVNC on the AWS path (nginx-fronted, allocator-proxied WS) (#344)
Refactoring¶
- refactor: switch the AWS provisioning path from Terraform to OpenTofu (#446)
- refactor: cut duplicated caches, HTTP plumbing, and command-file prose (#441)
- refactor(allocator): split main.py into route blueprints (#406)
- refactor(allocator): split database.py into a db/ package (#401)
- refactor: remove monitoring feature (schema, CLI cost branch, docs) (#346)
- refactor(allocator): replace shared DB conn + RLock with ThreadedConnectionPool (#327)
0.1.2¶
Bug Fixes¶
- fix: increase destroy timeout and handle missing tfvars gracefully (#305)
- fix: resolve VM log shipping data loss from Docker json-file driver stall (#304)
- fix: use terraform destroy for client VMs and read deploy config on destroy (#301)
- fix: prevent injection using scp (#300)
Chores¶
- chore: bump version (#307)
Features¶
- feat: add log viewer TUI and reduce allocator log noise (#302)
- feat: add launch-client CLI command for client VM creation (#299)
- feat: standardize resource naming with deployment_name and environment (#296)
- feat: add lablink CLI tool to replace template repo deployment (#284)
Refactoring¶
- refactor: remove code redundancy across packages (#306)
0.1.1¶
Bug Fixes¶
- fix: GPU health sets to NULL after assignment (#291)
- fix: gzip client VM user_data to stay within AWS 16KB limit (#290)
- fix: replace shared cursor with scoped cursors in database class (#289)
- fix: add missing auth header to client container metrics POST (#287)
Chores¶
- chore: bump allocator package to version 0.1.1 (#292)
Documentation¶
- docs: add configuration examples and fix project docs (#288)
0.1.0¶
Bug Fixes¶
- fix: removes default values for admin user name and password for security (#281)
- fix: pin all dependencies and fix Dependabot security alerts (#270)
- fix: correct total startup duration calculation (#269)
- fix(allocator): Fix VM startup race condition and organize logging (#262)
- fix(terraform): Preserve bash variables in custom startup scripts (#259)
- fix(docs): Correct module names for API reference generation (#255)
Chores¶
- chore: bump allocator and client to 0.1.0 (#285)
- chore: update uv lock according to the new pyproject (#278)
- chore(deps): consolidate Dependabot dependency updates (#277)
- chore: add standardized name for client resources (#271)
Documentation¶
- docs: Sync configuration reference with current allocator schema (#261)
Features¶
- feat: replace CloudWatch logging with self-hosted log shipper (#279)
- feat: add bearer token auth to API endpoints (#282)
- feat: add auto-reboot system with SSH and stop/start fallback (#272)
- feat: Add ci-test environment support (#227)
- feat: Add config validation CLI for allocator service (#204)
Other Changes¶
- Optimize Docker images: lighter base, cleanup, and dockerignore (#263)
- Feat: Add Destruction Scheduler for Client VMs (#249)
- Simplify domain and SSL configuration (#230)
- Add Configs for Monitoring (#238)
- Bug: Timing Data not Updated When Numerous VMs Running (#243)
- Change uv Installation Methods and Add More Packages to the Client (#236)
- fix ui for admin (#237)
- Remove Credentials Features for Better UX (#234)
- New Timing Measurement Methods for Client VMs (#229)
- configurable region for backend (#228)
- Add Coverage Requirement in the CI and Add More Tests (#226)
- Fix: remote-exec provisioner timeout during client VM creation (#220)
- Add Unset AWS Credentials Functionality for Admin Users (#219)
- Add Tests for
database.py(#223) - Add a Custom Startup Script Feature without Affecting the Core Startup script (#211)
- add ci-test backend for terraform in allocator (#214)
- Fix Bugs in Allocator Logging and Configs (#210)
- Remove remaining infrastructure code migrated to lablink-template (#208)
0.0.3a2¶
Bug Fixes¶
- fix: Sanitize URLs to remove prepended dots in allocator and client services (#199)
0.0.3a1¶
Bug Fixes¶
- fix: Add safety check for leading dots in hostname and bump version (#197)
- fix: Handle empty subdomains in get_allocator_url (#196)
- fix: update module path in Dockerfile to lablink_allocator_service (#194)
0.0.3a0¶
Other Changes¶
- Fix: Skip Terraform tests in publish workflow (#193)
- Restructure packages and create infrastructure template (#189)
0.0.2a0¶
Initial release.
For more details, see the GitHub Releases page.