Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

fix(scaffold): repair critical defaults — force:false, manifest alignment, nc-vue bump, repair-steps, seed RBAC#91

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/pr-a-scaffold-defaults
May 27, 2026
Merged

fix(scaffold): repair critical defaults — force:false, manifest alignment, nc-vue bump, repair-steps, seed RBAC#91
rubenvdlinde merged 1 commit into
developmentfrom
fix/pr-a-scaffold-defaults

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Test plan

  • Run npm run check:specs — manifest, register, and registry validators pass
  • On a fresh install: verify /apps/app-template/api/objects?register=app-template&schema=example returns 200 (not 404)
  • Verify GET /api/health and GET /api/metrics routes work (controllers exist)
  • Verify repair step does not overwrite operator-customised schema fields on NC upgrade
  • Verify @nextcloud/vue resolves to ^8.39.0 after npm install

…ment, nc-vue bump, repair-steps, seed RBAC

- #74: Change repair step to loadConfiguration(force: false) — prevents
  operator-customised schemas being silently overwritten on every NC upgrade;
  keep force:true in SettingsController::load() for explicit resets only
- #75: HealthController and MetricsController already exist (pre-solved)
- #76: Align manifest schema/route on 'example'/'examples' to match seed
  register JSON slug and DeepLinkRegistrationListener (was: 'item'/'items'),
  fixing 404 on every fresh-install API call
- #77: Bump @nextcloud/vue from ^8.16.0 to ^8.39.0 and add overrides entry
  to prevent NC34 nav-corner sliver regression in every scaffolded app
- #79: Add InitializeSettings to info.xml <repair-steps> install + post-
  migration blocks so it fires after peer app autoloaders are fully loaded
- #82: DeepLinkRegistrationListener already uses 'example'/'examples',
  consistent with manifest after #76 alignment (no code change needed)
- #84: Add explicit rbac:true, multitenancy:true to register x-openregister
  and publicRead:false, publicWrite:false per schema so access control
  defaults are documented and stable across OR version bumps

Closes #74, #75, #76, #77, #79, #82, #84
@rubenvdlinde rubenvdlinde merged commit 4047ed1 into development May 27, 2026
rubenvdlinde added a commit that referenced this pull request May 27, 2026
…d AbstractToolHandler, initial-state, docusaurus bump

- #78: Delete src/store/modules/object.js (bespoke Pinia store with no CSRF,
  no pagination, manual URL assembly). Replace with createObjectStore from
  @conduction/nextcloud-vue in store.js — fleet-standard store handling
  CSRF headers, pagination, and consistent error surfacing
- #80: Remove '|| echo skip' from psalm/phpstan/phpmd scripts so composer
  check:strict correctly propagates non-zero exit codes when quality tools
  actually fail; tools are all in require-dev so they are always installed
- #83: Refactor ExampleToolProvider to extend AbstractToolHandler so the
  fleet-standard requireWriteRole()/requireAdminUser() helpers are available;
  add AbstractToolHandler stub for standalone CI; update test constructor
- #85: Replace data-version DOM attribute in admin.php with
  IInitialStateService::provideInitialState() (NC-standard CSP-compliant
  initial-state API); read via loadState('app-template','version') in Vue
- #86: Bump @conduction/docusaurus-preset from ^3.4.0 to ^3.12.0 in
  docs/package.json — canonical fleet version auto-published from design-system

Also fix registry.js status-badge appliesTo schema: 'item' → 'example'
to align with the seed register slug corrected in PR #91.

Closes #78, #80, #83, #85, #86
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant