Summary
Define the plugin marketplace data model (schema only — the marketplace itself is out of scope for plugin runtime, deferred to P6). The platform must commit to the slug -> version -> bundle_hash triple as the immutable name of a plugin release. Filing this now so other subsystems dont paint themselves into a corner.
Design reference
- docs/02-plugin-system.md §12
Acceptance criteria
Dependencies
db migration infra
Complexity
S
Summary
Define the plugin marketplace data model (schema only — the marketplace itself is out of scope for plugin runtime, deferred to P6). The platform must commit to the
slug -> version -> bundle_hashtriple as the immutable name of a plugin release. Filing this now so other subsystems dont paint themselves into a corner.Design reference
Acceptance criteria
plugin_listings,plugin_versions,plugin_compat_matrix,plugin_ratings,plugin_install_eventsmatching the SQL in §12plugin_versions(slug, version)is the PK;bundle_hash BYTEA UNIQUE(within slug)plugin_versions.slug->plugin_listings.slug(on delete cascade),plugin_ratings.slug->plugin_listings.slugplugin_listings.categoryGIN,plugin_versions.published_at DESC,plugin_install_events.tsplugin_versions.yanked BOOLEANallows publisher/operator to mark a release as withdrawn; install flow refuses yanked versions unless operator explicitly opts inplugin_listings.publisher_idchanges (security-sensitive)Dependencies
db migration infra
Complexity
S