feat(updateserver): adopt platform registry + feedless metadata platforms return N/A over default-joomla config [#367 #811] #830

Merged
jmiller merged 1 commits from feature/updateserver-adopt-registry into dev 2026-07-19 06:12:09 +00:00

1 Commits

Author SHA1 Message Date
Moko Consulting 5d0d543acc feat(updateserver): adopt platform registry + feedless metadata platforms return N/A over default-joomla config [#367 #811]
Universal: Auto Version Bump / Version Bump (push) Successful in 15s
Generic: Project CI / Lint & Validate (pull_request) Successful in 44s
Generic: Project CI / Tests (pull_request) Successful in 44s
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Universal: PR Check / Require Docs Update (pull_request) Has been cancelled
Universal: PR Check / Wiki Update Reminder (pull_request) Has been cancelled
Universal: PR Check / Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
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) Has been cancelled
RC Revert / Rename rc/ back to dev/ (pull_request) Has been cancelled
Rewire the update server's per-platform serve/NotFound gating onto the
platform registry (modules/setting) so the update-feed generator and
wire format for a platform are looked up from config instead of
hardcoded, and fix #811 where npm/mcp/go repos still served a Joomla
updates.xml.

- routers/web/repo/updateserver.go: ServeUpdatesXML and ServeDolibarrJSON
  now gate via services/updateserver.PlatformServesGenerator (registry
  update_generator lookup) plus the "both" compound platform. The other
  Serve* handlers gain a registry-driven IsFeedlessPlatform guard.
- models/updateserver/platform.go: IsFeedlessPlatform is now registry-
  driven (feed_format == "none" covers npm/mcp/go and any admin-configured
  feedless platform), with the static map kept as a fallback.
- #811 precedence fix in ResolvePlatform: a registry-recognized feedless
  metadata platform now overrides the update_stream_config.Platform row,
  including the `NOT NULL DEFAULT 'joomla'` row every licensing-enabled
  repo carries. Genuine Joomla repos (metadata.platform joomla/empty, not
  feedless) still let the config platform win and serve exactly as before;
  an explicit non-joomla config override is still honored for non-feedless
  metadata.

Not built/deployed: no Go toolchain available in this environment; changes
match existing signatures and gofmt style by hand. Requires forge rebuild
+ redeploy.

Authored-by: Moko Consulting <hello@mokoconsulting.tech>
2026-07-19 00:19:12 -05:00