Skip to content

refactor(manifest): the flow pages are an index and a flow - #471

Merged
rubenvdlinde merged 2 commits into
developmentfrom
feat/flow-pages-are-index-and-flow
Aug 28, 2026
Merged

refactor(manifest): the flow pages are an index and a flow#471
rubenvdlinde merged 2 commits into
developmentfrom
feat/flow-pages-are-index-and-flow

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Moves this app's flow pages off the two deprecated page types. Part of the fleet-wide sweep that
removes the last custom/aliased flow surfaces (openregister#2937, dossiq#1402, integriq#1622).

Page Before After
Flows type: "flows" type: "index" + config.entitySource: "flows"
FlowDetail type: "flow-detail" type: "flow"

Why

flows predates named index sources. A flow lives in OpenRegister's native flow table rather than a
register/schema pair, so an object-backed index had nothing to bind to and a flow list needed a page
type of its own. config.entitySource closes that gap: the index names the collection and loads it.
So the list is now an ordinary index, and only the editor still needs a type of its own — now
called flow rather than flow-detail.

Both old names still resolve as deprecated aliases, so this is not a fix for a broken page. It moves
the manifest onto the names that are not deprecated, and it is what lets those aliases eventually be
removed.

The _note is updated in the same commit

The list page's note asserted the old rationale — that a flow "cannot be addressed" by an index, or
that this had to be a custom page. This change disproves it. A note that survives the change it
describes is worse than no note: it is documentation that actively argues against the current code.

config.app is untouched

Deliberately. It is not a label — the editor stamps it onto a flow created there, and the index
filters on it. Verified before pushing that it is byte-identical to development.

Verification

Every app in this sweep was checked mechanically before push:

  • the text edit was compared against the same change applied structurally, and the two had to
    agree exactly — this caught two real bugs in the first attempt, where the naive edit matched a
    different page's config line
  • the result validates against the v2 manifest schema (2.26.0) with jsonschema
  • config.app unchanged, page count unchanged, no CnFlowsPage reference left in the note
  • no test in any of the 13 apps pins these page types (checked across all tests/**/*.{ts,js})

Blocked on

  • @conduction/nextcloud-vue 2.21 — 2.20 declares a named source's columns and create button but
    does not read them (nextcloud-vue#810, #818). The dependency bump follows the release.
  • ConductionNL/.github#602 — hydra-gates validates against its own vendored schema copy, still at
    2.25.0, which has neither flow nor entitySource.

`flows` and `flow-detail` are deprecated aliases. `flows` predates named index
sources: a flow lives in OpenRegister's native flow table rather than a
register/schema pair, so an object-backed index had nothing to bind to and the
list needed a page type of its own. `config.entitySource` closes that, so the
list is an ordinary `index` and only the EDITOR still needs its own type, now
named `flow`.

Behaviour is unchanged - both aliases resolve to the same components. The list
page's `_note` is updated in the same commit: it asserted the old rationale
(that an index "cannot address" a flow), which this change disproves.

`config.app` is untouched and is load-bearing: the editor stamps it on a flow
created there and the index filters on it.

Requires @conduction/nextcloud-vue 2.21, where a named source's columns and
create button are actually read.
@rubenvdlinde

Copy link
Copy Markdown
Contributor Author

CI intentionally cancelled — this is not a failure, and not a verdict.

This PR cannot merge until @conduction/nextcloud-vue 2.21 is published: 2.20 declares a named
source's columns, addLabel and rowActions without reading them, so on 2.20 this page renders a
columnless table with no working create button.

Its queued jobs were competing for org runners with nextcloud-vue#818 and #812 — the release that
unblocks it — which had sat with zero runners for three hours. Cancelling here is what lets that
release through.

Before merging: bump the dependency to ^2.21, then re-run CI. Do not read the cancelled run as
a pass or a fail — a cancelled check is neither, and there is no verdict on this commit yet.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/keepiq @ f3f356a

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
test-l10n
format
check-l10n-js
check-schema-l10n
composer ✅ 111/111
npm ✅ 550/550
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman
Playwright
Hydra gates

Quality workflow — 2026-08-27 21:09 UTC

Download the full PDF report from the workflow artifacts.

The flow pages need 2.21.0: earlier releases DECLARE a named index source's
columns, create button and row actions without reading them, so the migrated
page renders a columnless table with no working create action.

The lock is the part that matters. CI installs with `npm ci`, which honours
package-lock.json and ignores how permissive the caret is — bumping the range
alone would change nothing about what actually installs.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/keepiq @ ab57fa6

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
test-l10n
format
check-l10n-js
check-schema-l10n
composer ✅ 111/111
npm ✅ 550/550
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman
Playwright
Hydra gates

Quality workflow — 2026-08-28 08:07 UTC

Download the full PDF report from the workflow artifacts.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/keepiq @ ab57fa6

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
test-l10n
format
check-l10n-js
check-schema-l10n
composer ✅ 111/111
npm ✅ 550/550
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman
Playwright
Hydra gates

Quality workflow — 2026-08-28 10:00 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 7694771 into development Aug 28, 2026
76 of 78 checks passed
@rubenvdlinde
rubenvdlinde deleted the feat/flow-pages-are-index-and-flow branch August 28, 2026 10:03
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