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

2.2 KiB

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.