Files
Moko Consulting 38aa4de412
Universal: Auto Version Bump / Version Bump (push) Successful in 23s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 33s
Universal: PR Check / Validate PR (pull_request) Successful in 8s
Generic: Project CI / Tests (pull_request) Successful in 27s
Universal: PR Check / Secret Scan (pull_request) Successful in 50s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
feat(platform): structured platform registry + /api/v1/platforms; update server reads registry [#367]
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 Consulting
2026-07-18 21:29:07 -05:00
..