Uh oh!
There was an error while loading. Please reload this page.
feat(providers): add profile-backed policy composition - #1037
Conversation
🌿 Preview your docs:https://nvidia-preview-pr-1037.docs.buildwithfern.com/openshell |
89e8c63 to
68e6947CompareLabel |
johntmyers
commented
Apr 30, 2026
/ok to test 68e6947 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
68e6947 to
1255bb9Compare1255bb9 to
62bfdcfComparejohntmyers
commented
May 4, 2026
/ok to test 62bfdcf |
johntmyers
commented
May 5, 2026
/ok to test 8be0be6 |
johntmyers
commented
May 5, 2026
/ok to test a4af3b8 |
johntmyers
commented
May 5, 2026
/ok to test 4a0d593 |
johntmyers
commented
May 5, 2026
/ok to test 7b1d6ea |
Uh oh!
There was an error while loading. Please reload this page.
PR #1037 added include_str!("../../../providers/*.yaml") in crates/openshell-providers/src/profiles.rs, but the BUILD_FROM_SOURCE=1 path of Dockerfile.images only COPY's Cargo.toml/Cargo.lock, crates/, and proto/. With providers/ missing the cargo build inside the rust- builder stage fails to read the embedded YAML. The release path is unaffected because it copies pre-built binaries from deploy/docker/.build/prebuilt-binaries/. This breaks 'mise run e2e:helm:*' and any other workflow that builds images from source via this Dockerfile (e.g., the local helm-e2e harness). Add 'COPY providers/ providers/' alongside the other source inputs.
Summary
Add the first provider profile foundation: bundled YAML provider profiles, profile proto surfaces, CLI discovery for provider types, and JIT policy composition behind the opt-in
use_providers_v2gateway setting.Related Issue
Closes#947
UX Changes
openshell provider list-typesto browse built-in provider profiles exposed by the gateway.other,inference,agent,source_control,messaging,data, andknowledge.use_providers_v2=falseor unset, providers keep the existing credential discovery/injection behavior and profile-backed policy composition is not used.use_providers_v2=trueis enabled at the gateway, sandbox policy reads compose the sandbox-authored policy with provider profile policy layers JIT. Built-in profile YAML defines the provider policy defaults, and duplicate/overlapping user policy entries are preserved through layered composition instead of replacing the user's sandbox policy.Changes
provider list-typesdiscovery.use_providers_v2gateway setting for profile-backed policy composition.genericas a legacy provider type without a bundled v2 profile or automatic policy contribution.Testing
RUSTC_WRAPPER= cargo check -p openshell-core -p openshell-providers -p openshell-cli -p openshell-serverRUSTC_WRAPPER= cargo test -p openshell-providersRUSTC_WRAPPER= cargo test -p openshell-cli cli_provider_types_match_registryRUSTC_WRAPPER= cargo test -p openshell-server sandbox_config_RUSTC_WRAPPER= cargo test -p openshell-server provider_environment_resolution_is_unchanged_by_providers_v2_settingRUSTC_WRAPPER= cargo test -p openshell-server provider_profileRUSTC_WRAPPER= cargo test -p openshell-cli provider_list_types_cli_uses_profile_browsing_rpcmise run pre-commitpassesChecklist