Files
browser/openspec/changes/persist-runtime-profiles-and-server-bindings/proposal.md
T

29 lines
2.2 KiB
Markdown

## Why
Plugin manifests already describe runtime profiles, but platform registration discards those declarations and runtime bindings live only in an in-memory repository that is absent from durable snapshots. As a result, server creation cannot select a real profile or persist its logical bindings, and action gating incorrectly treats a server with no bindings as complete.
## What Changes
- Persist the complete safe runtime-profile contract from plugin manifest registration through domain, DTO, model, repositories, and durable file/MySQL snapshots.
- Add authorized server runtime-binding APIs and service operations for listing and updating one selected profile with validated logical values or secret references.
- Extend server creation to select a declared lifecycle profile and submit its initial logical bindings atomically with the instance workflow.
- Gate lifecycle and distribution actions on the selected profile and its required binding keys, returning only safe logical missing reasons.
- Add server creation and detail UI for choosing, reviewing, completing, and changing runtime bindings without displaying raw host paths, sockets, credentials, or secret storage details.
- Add plugin, platform, persistence, API, and frontend regression coverage for manifest projection, reload durability, invalid/missing binding rejection, action gating, and non-disclosure.
## Capabilities
### New Capabilities
- `runtime-profile-bindings`: Persist plugin-declared runtime profiles and provide server-scoped profile selection, logical binding management, secure projections, and action readiness.
### Modified Capabilities
## Impact
- `plugins/`: manifest/SDK validation and fixtures remain the source contract and gain persistence-oriented regression coverage where needed.
- `platform/`: runtime profile domain/DTO/model validation, store snapshots, server lifecycle creation, binding services/routes, authorization, and action gating.
- `platform_web/`: API contracts, create-server form, server-detail binding workflow, and focused tests.
- Public platform API requests and responses gain runtime profile and binding fields/routes; no raw machine location or credential data crosses into the web or plugin page boundary.