Skip to content

Runtime-manifest (GET /api/manifest) output fails v2 validation against the pinned lib schema — silent fallback to the bundled stub #319

Description

@rubenvdlinde

Found in the 2026-07-06 manifest fleet audit (e2e T4): [useAppManifest] Resolved manifest failed schema validation; keeping the unresolved bundled manifest. The per-user manifest assembled by lib/Controller/ManifestController.php::buildManifest() never actually replaces the stub — mydash/OpenBuild introspection consumers see the stub, not the user's dashboards.

Two causes:

  1. Pinned @conduction/nextcloud-vue is beta.102 — its bundled v2 schema predates the top-level runtime key the controller emits (additionalProperties:false → reject). Fleet-wide pin refresh is audit item 21; launchpad needs it for this feature to work at all.
  2. Widget-entry shape: pages[].widgets is filled from the dashboard store's placement rows (widgetId/gridX/…); the v2 widgetEntry requires widgetKey (+ slot). buildManifest() needs a mapping when the pin is bumped, or the resolved manifest will keep failing on entry shape.

Also: SCHEMA_URL in the controller still points at raw.githubusercontent.com — switch to the pinned Codeberg URL (audit item 7).

Bundled-stub v2 migration landed separately in PR #127. Ref: apps-extra/MANIFEST-AUDIT-2026-07-06.md items 3/7/21.


Gemigreerd van Codeberg — oorspronkelijk Conduction/launchpad#128, geopend door rubenvdlinde op 2026-07-06.

Metadata

Metadata

Assignees

Labels

triageAwaiting triage

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions