Repository navigation
row 74 F25: a lane base URL's userinfo is stripped, never dialled, sent or printed, as 1.5.5 did - #876
Merged
Conversation
…nt or printed, as 1.5.5 did 1.5.5 accepted `user:pass@` in a provider base_url and dialled, sent and signed the host after it (v1.5.5 crates/busbar/src/proxy/egress.rs:18 host_from_base; its test crates/busbar/src/proxy/tests/auth_style_tests.rs:70). No spec line signs the refusal 1.6.0 grew, so the 1.5.5 rule is restored where the base URL enters the served flow, and every other dial target keeps its refusal (split_url, the connector's carries_userinfo, a2a, oauth2 unchanged). - busbar-kernel-egress net: strip_userinfo, the narrowly-named entry (authority ends at / ? # \, userinfo is everything before its last @); redact_userinfo made public for the messages below. - busbar-kernel appbuild: the lane carrier's base_url is stripped, so the plane's lane row, its egress targets, its signed host, its health probe, the neutral lane tables (/stats readers) and the boot "model ... via" line read host[:port] only. - busbar root door_steps provider_routes: the provider route's base_url is stripped, so the member route, its sealed anchors/reach, its auth binding origin, the auth plugin's signed URL and the connector dial never carry userinfo (the connector refused it before). - busbar-kernel config sections destinations(): the provider carve-out keys on the stripped base (split_url read the userinfo spelling as no host, so the carve-out silently vanished). - busbar-kernel config_validate: the scheme, plaintext, metadata, base+path and base+path_base refusals repeat the base URL redacted (the message literals are unchanged). - busbar-kernel plane_host open_http: the fault's target url is the redacted copy. REDs: a userinfo base boots and its lane's probe dials the loopback far end at the stripped authority (busbar-llm health_tests); provider_routes strips it (root door_steps tests); a planted scan over every base_url validation refusal and over the egress fault finds neither half of `svcuser:hunter2-P4ss`; strip_userinfo's unit cases (kernel-egress net_tests).
This was referenced Oct 14, 2026
Collaborator
Author
|
FYI (queue rule 20): $ draft #870 also edits crates/busbar-kernel/src/config_validate/{mod.rs:1553 rate-refusal message, tests/tests.rs:4178-4216 rate test}; hunks are disjoint from yours and merge clean. |
This was referenced Oct 14, 2026
MattJackson
added a commit
that referenced
this pull request
Oct 15, 2026
…eld; clippy; the six Law 0 cells the merge grew; config-schema snapshot - busbar-core-connector dialled.rs (#837 over #893's Piece): the datagram leg's body piece states `fault: None` and `declared_len: None` (E0063). - busbar-kernel appbuild: build_app_from_config takes the root's rules as an eighth input (#1001); allowed too_many_arguments with that reason. plugin-loader secret_disk_tests: let-else for the refused declare (clippy err_expect). - Law 0 growth over the merge-base (gates log of 3598829 and the group measures): kernel x plane: the failover predicate's docs and test say verdict, not decision (#890); kernel x instance:secret: the two new SecretRef literals key on SECRET_MODULE_ENV (#863/#864); kernel x auth: the resolved provider's and the token endpoint's docs name the client-credentials style without spelling the module (#957, #876); connector x transport: spawn_env's doc says program members (#865); contract x plane: section.rs's trust_from doc names a plane's push trust (#1001); busbar x vendor: the health-probe cell's catalog entry is testing/root-fixtures data (#1039); busbar x instance:secret: the pinned-cells selftest builds its fixture citing the pinned file rather than re-keying it (#1006). - config-schema: the RAW carrier records each section as the map's value type; the snapshot gains DeployCfg.agent_push (serde_yaml::Value, #1001), ProviderLaneCaps (its Deserialize, round 2) and the `type ProviderTable` alias (#957). - qa/scripts-allowlist.toml: the three twilio conformance legs (#998), oracle-driver like their siblings.
MattJackson
added a commit
that referenced
this pull request
Oct 15, 2026
…onns wrapper follow the merged shapes From the full logs of 2382599: - root door_steps PresentingConns: bind_auth/auth_of take and hand on the registration `member` (the connector's per-member binding, DeclaredConns; E0050/E0061 x2 each). - root tests: the datagram cell's Got states fault/declared_len/end (#893 over #837); the two upgrade-row builds take the settings alone (HostWire build, #932 over #997); the two userinfo cells hand provider_routes a ResolvedProvider (#957 over #876/#936). - tests/plane_blackbox.rs: the step's (key, text) pairs are a type (clippy type_complexity). - config-schema snapshot: `type WakeTicket` is now an alias of ConnWake (#1018), recorded. - Law 0: busbar x instance:export 25 -> 24 (measure); kernel x plane: a test doc names a plane's own webhooks section, not the llm plane's (1050 measured against w2's 1049).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A provider (lane)
base_urlwritten ashttps://user:pass@host[:port]/...is ACCEPTED and its userinfo is STRIPPED where the base URL enters the served flow, so the host dialled, the certificate name, theHost/:authorityon the wire and any signed host are the strippedhost[:port]. The userinfo never reaches a connection, a log line, an error/fault message, or the lane tables/statsreads.Why
1.5.5 did exactly this: v1.5.5
crates/busbar/src/proxy/egress.rs:18(host_from_base), testcrates/busbar/src/proxy/tests/auth_style_tests.rs:70. 1.6.0 refused it (the connector'scarries_userinfo,split_url) with no spec line signing the change (ARCHITECT ruling, F25 row 74).Flow points fixed
busbar-kernel-egresstrust/net.rs: newstrip_userinfo(the narrowly-named entry;split_urlis unchanged, so connector / a2a / oauth2 dial targets keep refusing userinfo);redact_userinfomade public.busbar-kernelappbuild.rs: the lane carrier'sbase_urlis stripped. That covers the in-process lane row, egress targets, signed host, health probe, the neutral lane tables, and the bootmodel ... via (...)line.busbarroot/door_steps.rsprovider_routes: the door member route'sbase_urlis stripped. That covers the sealed anchors/reach, the auth binding origin, the URL the auth plugin signs, and the connector dial.busbar-kernelconfig/sections.rsdestinations(): the provider metadata carve-out now keys on the stripped base. Before,split_urlread the userinfo spelling as no host and the carve-out vanished.busbar-kernelconfig_validate: the scheme, plaintext, metadata, base+path and base+path_base refusals repeat the base redacted (message literals unchanged).busbar-kernelplane_host/egress.rsopen_http: the fault's target url is the redacted copy.open_httpkeeps refusing userinfo: it is reached by a2a and FFI planes, not by the provider lane flow.REDs
busbar-llmengine/tests/health_tests.rsa_userinfo_base_url_boots_and_its_lane_dials_the_stripped_host: real boot plus a real probe dial to a loopback far end. It checksHostis the stripped authority, no auth field carries the planted spelling or a Basic built from it, and the lane row, signed host and neutral lane view hold the stripped base.busbarroot/tests/door_steps.rsa_provider_base_url_with_userinfo_is_reached_at_its_stripped_authority.busbar-kernelconfig_validate/tests/tests.rsa_base_url_userinfo_is_accepted_and_no_validation_error_repeats_it: the userinfo base validates, and a planted scan over every base_url refusal finds nosvcuser/hunter2.busbar-kernelplane_host/egress_tests.rsa_guard_refusal_surfaces_class_refused_with_the_guards_own_reason: planted scan of the fault cause and target.busbar-kernel-egresstrust/tests/net_tests.rsa_base_url_userinfo_is_stripped_to_the_host_it_names.