@@ -45,9 +45,6 @@ The gRPC surface is defined in `proto/openshell.proto`:
4545- ` GetProviderProfile `
4646- ` UpdateProvider `
4747- ` DeleteProvider `
48- - ` ImportProviderProfiles `
49- - ` LintProviderProfiles `
50- - ` DeleteProviderProfile `
5148
5249## Provider Type Profiles
5350
@@ -74,26 +71,6 @@ This keeps the compatibility boundary at the gateway. A gateway without
7471gateway with the flag enabled routes all attached known provider types through the
7572profile-backed policy path.
7673
77- ### Custom Provider Profiles
78-
79- Custom provider profiles use the same DTO shape as built-in YAML profiles. The CLI can
80- lint, import, export, and delete profiles as YAML or JSON, and the gRPC API carries the
81- same proto-backed profile payloads.
82-
83- Custom profiles are persisted in the existing object store with
84- ` object_type = "provider_profile" ` . No dedicated provider profile table is used. Built-in
85- profiles remain file-backed and read-only; attempts to import over a built-in id or
86- delete a built-in profile fail. ` ListProviderProfiles ` and ` GetProviderProfile ` merge the
87- built-in YAML catalog with custom profiles from the object store, with built-ins taking
88- precedence for reserved ids. Custom profile ids also cannot reuse legacy provider type
89- ids or aliases such as ` generic ` , ` github ` , or ` gh ` ; those ids remain reserved for
90- provider records even when no built-in profile exists for that type.
91-
92- Deletion is limited to custom profiles that are not in use. Because sandbox specs attach
93- provider names, the gateway checks every sandbox's attached providers, resolves each
94- provider record, and blocks deletion when any provider's ` type ` matches the target
95- profile id. Deleting a profile never cascades to provider records or sandboxes.
96-
9774### Provider Policy Composition
9875
9976Sandbox policy fetch uses just-in-time composition:
@@ -106,9 +83,7 @@ The composed policy is derived data. The sandbox still receives one normal
10683` SandboxPolicy ` , but provider-generated entries are not persisted as user-authored
10784policy revisions. Full policy replacement and incremental policy updates continue to
10885mutate the user-authored policy layer. Provider-generated rules are re-added during
109- composition for each attached provider whose type has a built-in or custom profile.
110- Known legacy provider types without built-in profiles, such as ` generic ` , are skipped
111- rather than resolving to a custom profile with the same id.
86+ composition for each attached provider whose type has a built-in profile.
11287
11388Provider-generated network rules use reserved ` _provider_* ` names derived from the
11489provider record name. If a user or global policy already has the same key, composition
@@ -117,10 +92,6 @@ host/port endpoints across policy and provider rules are valid; OPA evaluates al
11792rules, so allow decisions are the union of matching allows and deny rules continue to
11893win globally.
11994
120- When a provider is detached from a sandbox, the next JIT composition naturally omits that
121- provider's profile-generated layer because composition reads current sandbox provider
122- attachments from the database each time.
123-
12495Gateway-global policy still overrides sandbox-authored policy. When ` providers_v2_enabled `
12596is true, provider layers compose JIT onto the effective policy source, whether that
12697source is sandbox-scoped or global. The composed payload is derived data and is not
@@ -138,9 +109,8 @@ persisted as a policy revision.
138109 - sandbox provider requirement resolution in ` sandbox create ` .
139110- ` crates/openshell-server ` (gateway)
140111 - provider CRUD gRPC handlers,
141- - provider profile registry handlers,
142112 - ` GetSandboxProviderEnvironment ` handler resolves credentials at runtime,
143- - persistence using ` object_type = "provider" ` and ` object_type = "provider_profile" ` .
113+ - persistence using ` object_type = "provider" ` .
144114- ` crates/openshell-sandbox `
145115 - sandbox supervisor fetches provider credentials via gRPC at startup,
146116 - injects placeholder env vars into entrypoint and SSH child processes,
@@ -259,13 +229,6 @@ Also supported:
259229- ` openshell provider get <name> `
260230- ` openshell provider list `
261231- ` openshell provider list-profiles `
262- - ` openshell provider list-profiles -o yaml|json `
263- - ` openshell provider profile export <id> -o yaml|json `
264- - ` openshell provider profile import -f <file> `
265- - ` openshell provider profile import --from <directory> `
266- - ` openshell provider profile lint -f <file> `
267- - ` openshell provider profile lint --from <directory> `
268- - ` openshell provider profile delete <id> `
269232- ` openshell provider update <name> ... `
270233- ` openshell provider delete <name> [<name>...] `
271234
0 commit comments