Skip to content

feat(screens): versioniq screens - #116

Merged
rubenvdlinde merged 4 commits into
mainfrom
design/versioniq-screens
Oct 8, 2026
Merged

rubenvdlinde merged 4 commits into
mainfrom
design/versioniq-screens

Conversation

@rubenvdlinde

@rubenvdlinde rubenvdlinde commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Versioniq screens in the Zuiddrecht canon (decisions 112 to 116). Versioniq had no boards; these eleven cover every capability of its parity matrix that has a UI.

Screens

All eleven boards sit in the Nextcloud admin settings chrome (Beheerinstellingen / Versioniq), with one folder tab strip: Apps, Beveiligingsadviezen, Automatische updates, Historie, Bronnen, Tokens, Ontdekken, Instellingen.

Board What it shows Features (rows)
VqApps Apps tab as an index list: installed version and lag, update available, source and verified publisher, advisory badge, pin and drift banner, per-app policy with retry, disabled, deprecated, protected and developer-checkout apps, bulk update and bulk rollback, inventory download, environment selector app-inventory, version-pinning, auto-update-policies, rollback, lifecycle-signals, patch-compliance, admin-access (38 rows)
VqAppVersies One app opened: every version with date, compatibility, pre-release, withdrawn, minimum-age hold with early release, adoption, known issues, release notes with a Dutch translation, combined changelog, pin with range and skipped version, one-off source, promotion across environments version-facts, changelog-visibility, release-channels, minimum-release-age, install-any-version, multi-instance, version-pinning (31 rows)
VqInstalleren Install dialog over the Apps tab: preflight, backup, maintenance mode, signature and revocation, checksum, migrations, a failed finalize explained in plain words with recovery, debug output, earlier outcomes (checksum mismatch, unverified install, revoked certificate, re-enabled app) install-diagnostics, package-integrity, migration-safety (15 rows)
VqVersieTerugzetten Destructive rollback dialog: migrations left behind, dry-run preview, guard override, password, type-to-confirm rollback, migration-safety, admin-access (5 rows)
VqAutomatischeUpdates Scheduled, waiting, held and failed updates with approve/reject and retry, plus the policy: kill switch, default policy, security-only, LTS-only, window, days, per-type schedule, batch size, minimum age, approval and advance notice, patch policy, policy as code, dry run auto-update-policies, update-scheduling, update-approval, minimum-release-age, release-channels, patch-compliance (20 rows)
VqBeveiligingsadviezen Advisories from Nextcloud, GitHub, OSV and NCSC: severity, one-click fix, assign, dismiss with reason, unfixable reason, backports, malicious package alert, server advisories, remediation KPIs per severity security-advisory-correlation, advisory-prioritisation, advisory-triage, patch-compliance (15 rows)
VqHistorie Immutable audit list: installs, rollbacks, pins, source and policy changes, automatic vs manual, changes made outside Versioniq, export, security update report audit-trail, patch-compliance (9 rows)
VqBronnen Source binding per app (App Store, GitHub, GitLab, Forgejo, Gitea) with reachability, bind form, trusted-source allowlist, connection health from integriq external-sources, connections (8 rows)
VqTokens Stored tokens with scopes, owner, sharing, expiry warning, unattended use; add form with validation and the forge's create link access-tokens, external-sources (7 rows)
VqOntdekken Search across App Store, public GitHub and private repositories with routes to version picker, install or bind; upload an archive app-discovery, external-sources (6 rows)
VqInstellingen Server-wide settings: addresses and mirror, offline advisory feed, retention, activity stream and SIEM, artifact cache, notifications and webhook, SBOM and metrics, server upgrade readiness artifact-cache, alerts, audit-trail, sbom-and-metrics, upgrade-readiness, changelog-visibility (17 rows)

Counts

  • Boards new: 11
  • Rows linked to existing boards: 0 (Versioniq had none)
  • Rows linked to new boards: 170
  • Reasons given (no UI by nature): 10 rows (API, OpenAPI file, CLI commands, licence, self-hosting, free use, MCP assistant, user-deleted listener)
  • Specs placed with specScreens: 2 (pat-management, pending-updates)
  • Specs to features: 0, specs internal: 0 (every main spec was already under a feature)
  • Done-check: capabilities.py against the app branch reports versioniq onScreen 182, reason 13, missing 0.

Odd cases

  • The tab strip is a design proposal, fewer screens than today's ten tabs: automatic updates move out of the Apps tab into their own tab, Trusted sources is a card on Bronnen, Artifact cache sits in Instellingen, and the integriq connection health sits on Bronnen.
  • The boards were drawn with a small shared kit on top of one skeleton (copied from TqWissels) so the chrome is identical on all eleven. Only VqApps-style content is reused as the dimmed backdrop of the two dialog boards.
  • No helper agents: the session's subagent limit was reached, so one lane drew all eleven.

Only screens-src/zuiddrecht/Vq*.dc.html and screens-src/zuiddrecht/apps/versioniq.json change. Nothing under preview/ or heights.json.

App repo: ConductionNL/versioniq#519

@rubenvdlinde
rubenvdlinde merged commit e24509e into main Oct 8, 2026
5 of 6 checks passed
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/design-system @ 4d6d58b

Check PHP Vue Security License Tests
lint ⏭️
phpcs ⏭️
phpmd ⏭️
psalm ⏭️
phpstan ⏭️
phpmetrics ⏭️
eslint ⏭️
stylelint ⏭️
build ⏭️
composer ✅ ✅
npm ✅ ✅
app:check-code ⏭️
info.xml ⏭️
REUSE ❌
lockfile sync ⏭️
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️
Hydra gates ⏭️

Quality workflow — 2026-10-08 15:20 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant