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

dangernoodle-io / breadboard / 30597555899
97%

Build:
DEFAULT BRANCH: main
Ran 31 Jul 2026 01:55AM UTC
Jobs 1
Files 208
Run time 1min
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

31 Jul 2026 01:54AM UTC coverage: 96.74% (+0.1%) from 96.602%
30597555899

push

github

web-flow
feat: wire the provisioning-mode route gate into HTTP dispatch (#1156)

Connects bb_http_prov_gate (PR-1, #1145) to the provisioning-active signal
(PR-2, #1146): during provisioning, only routes a consumer has explicitly
allowlisted via bb_http_prov_allow() are reachable; everything else 404s,
indistinguishable from a nonexistent route. Default-deny is structural --
there is no runtime "allow all" bit, and prov_active covers both WP_ACTIVE
and the WP_CLOSING settle window.

The gate needs three insertion points, not one, because a request can reach
a handler three different ways in platform/espidf/bb_http_server/bb_http.c:
  1. api_dispatch_handler -- /api/* requests dispatched via bb_dispatch_api
  2. bb_shim_handler -- non-/api imperative routes (e.g. /ping, /save)
     registered via bb_http_register_route
  3. asset_wildcard_handler -- GET /* asset + captive-portal-fallback
     serving, registered directly and bypassing bb_shim_handler entirely
Gating only the first would have left non-/api routes and every asset
request open during provisioning. A fourth spot, method_not_allowed_err_handler,
also now gates: left alone, a wrong-method request to a registered-but-
denied route would still 405 (leaking "this URI exists") even though the
correct-method request already 404s via its own handler.

bb_http_prov_gate gains an injected "is provisioning active" function
pointer (bb_http_prov_gate_set_active_fn) plus bb_http_prov_gate_check(),
the one decision function every insertion point calls -- this keeps
bb_http_server from REQUIRES-ing bb_wifi_prov (which itself REQUIRES
bb_http_server; a direct dependency the other way would cycle). No active
fn registered (the default) means zero gating, so an app that never
composes provisioning is unaffected.

## The asset gate fires on a table hit, not on entry

Checking the gate at the top of asset_wildcard_handler would have broken
captive-portal auto-detection. Client OSes probe unpredictable paths
(/generate... (continued)

8058 of 8634 branches covered (93.33%)

Branch coverage included in aggregate %.

64 of 64 new or added lines in 2 files covered. (100.0%)

13631 of 13786 relevant lines covered (98.88%)

2606.89 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30597555899.1 31 Jul 2026 01:55AM UTC 208
96.74
GitHub Action Run
Source Files on build 30597555899
  • Tree
  • List 208
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30597555899
  • 313ea357 on github
  • Prev Build on main (#30592839699)
  • Next Build on main (#30598926009)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc