release: npm/mcp metadata + platform registry + update-server + packaging hook (dev -> main) [#367] #828
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Promotes the four EPIC #367 forge features from
devtomain. All four merged todevand the dev deploy built + deployed successfully (deploy-dev run 4705, Verify Dev instance passed) — so this set compiles and runs on the dev forge.Bundles:
RepoMetadata+apiMetadata+ migration v373).[metadata] PLATFORM_REGISTRY+GET /api/v1/platforms+ updateserver registry helpers).Merging this to
maintriggers a PRODUCTION forge deploy — review + confirm before merge. Run the migration (v373) as part of deploy.Authored-by: Moko Consulting
Turn the flat admin [metadata] PLATFORM_OPTIONS key list into a structured platform registry where each key carries capability attributes (family, artifact, update_generator, feed_format, template_repo, manifest_based, publish_target, detect_globs, aliases), and expose it so CI / the update server / mokocli can read platform behavior from config instead of hardcoding. Storage: new [metadata] PLATFORM_REGISTRY key in app.ini — inline JSON array or a path to a JSON file (e.g. custom/platforms.json), parsed in modules/setting. No DB table (idiomatic: mirrors existing app.ini + file-path config patterns; non-secret capability config only). Built-in DEFAULT registry (joomla, dolibarr, go, npm, mcp, generic) keeps behavior unchanged when unconfigured, and reconciles with PLATFORM_OPTIONS. API: GET /api/v1/platforms (whole registry) and GET /api/v1/platforms/{key} (one), wired into the public misc group. Update server: additive registry-driven helpers in services/updateserver (GeneratorForPlatform / FeedFormatForPlatform / ContentTypeForPlatform / PlatformServesGenerator) that replace hardcoded per-platform generator/feed decisions with registry lookups. Handler bodies left untouched to avoid conflicting with PR #825 (feature/updateserver-npm-mcp), which is concurrently rewiring routers/web/repo/updateserver.go and adding models/updateserver/platform.go; helpers are drop-in for adoption once #825 lands. Admin UI: read-only resolved-registry table added to Admin -> Metadata; the textarea still edits the flat key list. Capabilities edited via config for now. Does NOT touch models/repo/repo_manifest.go or the per-repo apiMetadata struct (owned by a separate PR). Authored-by: Moko ConsultingWiki reminder: docs are wiki-first -- if this PR changes behavior, usage, config, or standards, please update the repo wiki before/after merge. (non-blocking)