Features
StableBetaComing soon
app-icon-managementLets an operator brand each published OpenBuild virtual app with per-app SVG icons (light + dark) so the published app surfaces with its own identity in the Nextcloud top bar and in OpenBuild's own card grid. Adds top-level `icon` / `iconDark` ref fields to the `Application` schema (sibling to `slug`, `name`, `manifest`, `permissions`), thin icon-serving endpoints with a clear fallback chain, and the upload / preview / remove UX on the Application detail page — all routed through OR's existing files-attached-to-object mechanism (ADR-001) so no new openbuild-side file storage is introduced.app-nav-entries@e2e exclude mixed spec — INavigationManager registration, RBAC visibility closure, per-request re-evaluation and group-wildcard filtering are PHP boot-time contracts verified by PHPUnit/Newman; published app top-bar appearance requires a published app + boot-cycle which is not reproducible in isolation in Playwright without a lifecycle trigger that is itself part of the app; scenarios tested by playwright UI are covered in the openbuild-runtime spec testsapplication-creation-wizardReplaces the legacy single-form "Add Application" dialog with a four-step wizard that provisions the full ADR-002 chain in one atomic backend call: an `Application` row + N `ApplicationVersion` rows + N per-version registers (named `openbuild-{appSlug}-{versionSlug}`), each pre-seeded with the default `hello-message` schema and the default manifest. Supports `single | dev-prod | dev-staging-prod | custom` presets, enforces unique slugs per chain (leading-`_` reserved for openbuild system use), provides full rollback on any provisioning failure, sets the caller as sole owner, and retires install-time auto-seed (`SeedHelloWorld` does not return) — fresh installs are empty until the admin runs the wizard.application-detail-overviewReplaces the generic `CnDetailPage` main area on `/applications/:objectId` with a purpose-built maintainer cockpit registered as the `headerComponent` on the `VirtualAppDetail` page entry. Renders six stacked rows — hero strip (icon, name, description, status, role, production semver), version pill tabs (chain order, production starred, non-authorised hidden, Promote affordance on each non-terminal pill), a 7d/30d/90d window toggle, a four-card KPI grid (active users, object count, files count, audit events), an activity-graph card, and a five-card structural-widget grid (Register / Schemas / Groups / Pages / Menu) that deep-links into the existing builder views and OpenRegister. Consumes the insights endpoint owned by `application-insights` for KPI + activity data.application-insights@e2e exclude pure-backend API/aggregation spec — all scenarios are REST endpoint contracts and service-layer aggregation logic verified by Newman/PHPUnit; no UI surface in this specdeep-link-registration@e2e exclude pure-backend event-listener spec — listener registration, event wiring, URL template, and short-circuit guards verified by PHPUnit; no UI surface testable via Playwright (deep-link integration requires OR to dispatch events, not exercisable in isolation)green-field-migration@e2e exclude pure-backend migration spec — destructive repair step, idempotency guard, logging, and OR API calls verified by PHPUnit; no UI surface in this specopenbuild-schema-designerShips the visual Schema Designer that gives non-technical authors direct authoring power over the data model of their virtual app — replacing the deploy-time `lib/Settings/{app}_register.json` pattern. Scoped to the current virtual app's register namespace, the designer composes a JSON Schema body with declarative `x-openregister-*` extension blocks (lifecycle, aggregations, calculations, notifications, relations, widgets) through typed sub-editors. Every behaviour-shaping field is declarative — no free-text PHP, no JavaScript callbacks, no service-class references; the editor is code, but the product is declarative (canonical ADR-031 example). Persists via OR's runtime schema CRUD endpoint (chain spec `openregister-runtime-schema-api`), surfaces confirm-before-destructive flows for delete-field / delete-schema, and runs live client-side validation that disables Save until the staged change is valid.openbuild-template-catalogueShips the starter-template gallery that turns OpenBuild's competitor-parity "day-one templates" promise into a working surface. Declares an `ApplicationTemplate` schema, seeds four Conduction-curated templates (permit-tracker, stakeholder-consultation, employee-onboarding, incident-reporter) via an idempotent repair step, renders a filterable gallery view, and one-click clones a chosen template into a new draft Application — namespacing every cloned companion schema under the new Application's slug to avoid collisions, recording the source template + version on `templateOrigin` for traceability, and redirecting straight into the page editor for customisation. Clones are one-shot snapshots (no back-propagation); curated templates are read-only via UI; gallery and seed content are fully i18n'd (nl/en minimum).openbuild-version-snapshots@e2e exclude pure-backend spec — snapshot retirement, OR time-travel rollback, and diff endpoint contracts verified by Newman/PHPUnit; no independent UI surface (UI rollback/diff surface covered by version-routing-ui Playwright tests)version-promotion@e2e exclude mixed spec — backend promotion endpoint + strategy logic verified by Newman/PHPUnit; UI dialog scenarios (PromoteVersionDialog) covered by version-routing-ui spec Playwright testsversion-routing@e2e exclude mixed spec — server-side RBAC gate, ManifestResolverService, and store/composable contracts verified by Newman/PHPUnit + Vitest; UI-visible version routing behavior covered by version-routing-ui spec Playwright tests