• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / sonde / 26252275071
82%

Build:
DEFAULT BRANCH: main
Ran 21 May 2026 08:58PM UTC
Jobs 1
Files 129
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 May 2026 08:49PM UTC coverage: 82.41% (-0.3%) from 82.664%
26252275071

push

github

web-flow
feat: implement gateway ACTUAL_STATE/DESIRED_STATE and PSK escrow (#1053)

* feat: implement gateway ACTUAL_STATE/DESIRED_STATE and PSK escrow (AZH-0600–AZH-0605, WEB-1001–WEB-1008)

Azure handler:
- Store gateway ACTUAL_STATE as singleton row (\g:\ partition prefix)
- Store node PSK escrow fields (\ncrypted_psk\, \key_hint\, \master_key_id\)
- Missing \key_hint\ recovery: match by \key_hint\ + \master_key_id\,
  emit \ecovered_psks\ in gateway DESIRED_STATE
- Rotation payload relay from SPA-written desired-state row, cleared
  after \master_key_epoch\ increment
- Salt management: include in DESIRED_STATE only when gateway reports
  \salt = null\
- Phone ACTUAL_STATE silently ignored (no escrow rows)
- 8 new tests (T-AZH-0600 through T-AZH-0605), 90 total

Web UI:
- Gateway status card on dashboard with locally-computed BIP-39
  fingerprint (SHA-256 of \x25519_public_key\ → 66 bits → 6 words)
- Rotation modal: Argon2id WASM (CDN), X25519, HKDF-SHA-256 +
  AES-256-GCM via Web Crypto, \RotationPayloadV1\ construction
- Dashboard/Desired State/Sensor Data tabs filter gateway rows from
  node table and dropdowns
- Key hygiene: no secrets in browser storage, best-effort variable
  zeroing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* fix: address review comments on web UI key rotation

- Add noble-curves CDN (esm.sh) for X25519 support (missing dependency)
- Fix BIP-39 fingerprint 11-bit extraction to read 24 bits (3-byte span)
- Pin BIP-39 wordlist fetch to specific commit hash
- Validate hex input in \hexToBytes()\ with regex
- Fix \master_key_id\ display when base64 decode fails (show dash)
- Remove unused \kdfParamsRaw\ variable
- Extend \hasRotationCrypto()\ to check argon2 and noble-curves
- Use unsigned right shifts (\>>>\) in CBOR uint encoder

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: allow clippy::too_many_arguments on test helpe... (continued)

620 of 894 new or added lines in 1 file covered. (69.35%)

2 existing lines in 1 file now uncovered.

37878 of 45963 relevant lines covered (82.41%)

247.05 hits per line

Uncovered Changes

Lines Coverage ∆ File
274
85.21
-6.55% crates/sonde-azure-handler/src/lib.rs

Coverage Regressions

Lines Coverage ∆ File
2
85.21
-6.55% crates/sonde-azure-handler/src/lib.rs
Jobs
ID Job ID Ran Files Coverage
1 26252275071.1 21 May 2026 08:58PM UTC 129
82.41
GitHub Action Run
Source Files on build 26252275071
  • Tree
  • List 129
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26252275071
  • fb245f43 on github
  • Prev Build on main (#26251168668)
  • Next Build on main (#26280319575)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc