Skip to content

Commit 97148bb

Browse files
committed
docs(providers): remove architecture updates
1 parent 6f9dcfb commit 97148bb

1 file changed

Lines changed: 2 additions & 39 deletions

File tree

architecture/sandbox-providers.md

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -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
7471
gateway with the flag enabled routes all attached known provider types through the
7572
profile-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

9976
Sandbox 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
10784
policy revisions. Full policy replacement and incremental policy updates continue to
10885
mutate 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

11388
Provider-generated network rules use reserved `_provider_*` names derived from the
11489
provider 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
11792
rules, so allow decisions are the union of matching allows and deny rules continue to
11893
win 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-
12495
Gateway-global policy still overrides sandbox-authored policy. When `providers_v2_enabled`
12596
is true, provider layers compose JIT onto the effective policy source, whether that
12697
source 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

Comments
 (0)