Repository navigation
admin judges plugins under the root's one trust builder (harness key included) - #992
Merged
Merged
Conversation
… own builder is struck; RootInstall carries root::boot::trust_policy (harness key included) onto every App as plugin_trust, and catalog/install/inspect/rollback resolve through it RED: root::tests::boot — in a test-harness build with the harness key set, the admin catalog row for a plugin that key signed first-party reads valid/trusted (boot's verdict); without the feature the same plugin is refused. Unblocks GetBusbar/busbar-auth-oidc#30.
This was referenced Oct 14, 2026
Collaborator
Author
|
Rule 20 note from #1031 (row 155, draft): one disjoint line in root/linked.rs (hot_answer_inline's cap reads busbar_kernel::proxy::max_translate_body_bytes). A test merge is clean. |
…e refusal by value (TrustPolicy has no Debug), and name no plugin instance in the root crate (law0: the catalog row is found by its tarball, the doc cites no plugin repo)
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.
Bug. The admin side built its own plugin trust policy (
crates/busbar-core-admin/src/v1/service_operations.rstrust_policy) for the catalog, install, inspect and rollback. Boot built its policy separately (crates/busbar/src/root/boot.rstrust_policy), and only boot applied thetest-harnessfirst-party key override. So in a test-harness build the admin catalog reported a correctly test-signed plugin asREJECTED ... first-party plugin onlywhile boot admitted it. This keeps GetBusbar/busbar-auth-oidc#30's e2e red.Fix: one builder.
root::boot::trust_policy(harness override included) is now the only builder.busbar-kernelpreflight::RootInstallgainstrust_policy: Option<TrustPolicyBuild>. The root installsroot::boot::trust_policyinroot::linked::register_stores.appbuildcopies it onto everyAppasApp::plugin_trust. This uses the existing root-to-kernel channel (ARCHITECT Q8), so it adds no new static seam.busbar-core-admin, the local builder is deleted.trust_policy(app, version)warns about invalid floors, then delegates toapp.plugin_trust. With no builder installed it is refused. The 4 call sites now pass&self.app.test_support::trust_policy, adapted astrust_policy_stand_inonSTAND_IN.TestApp::plugin_trust(f)lets a test hand in the root's builder.TrustPolicy::from_configover the same inputs. Only atest-harnessbuild differs.RED (
crates/busbar/src/root/tests/boot.rs):a_test_harness_admin_catalog_reads_a_harness_signed_plugin_as_valid, test-harness builds only. The harness variable is set to a key that is not the kernel stand-in's. A plugin that key signed first-party getsvalid: true/trust: "trusted"fromGET /api/v1/admin/plugins?type=store. Before this fix it readrejected.an_admin_catalog_without_test_harness_refuses_a_harness_signed_plugin, builds without the feature: the same plugin is refused (valid: false,rejected).every_admin_trust_moment_resolves_through_the_snapshots_builderchecks that the admin uses the snapshot's builder and no other. The source pin now asserts the admin source holds 0TrustPolicy::from_config(.Draft #971 adds to
RootInstallandregister_storesas well and will need a rebase. All non-draft PRs touching these files merge clean.