Commit 74fda38
feat(nav): the flow list is an ordinary index, and the editor is
* feat(nav): the flow list is an ordinary index, and the editor is `flow`
No custom page, and no page type of its own for the list half.
"type": "index", "config": { "entitySource": "flows", "app": "dossiq" }
"type": "flow", "config": { "app": "dossiq" }
WHY THIS IS NOW POSSIBLE. A flow definition is deliberately not an
OpenRegister object, so `type: "index"` had nothing to bind to and every
flow list needed either a bespoke `type: "custom"` page or a page type
of its own. Named index sources (@conduction/nextcloud-vue 2.20.0)
remove that: the manifest names a registered non-object collection and
the index loads it. `flows` and `flow-detail` remain registered as
deprecated aliases, so this is a migration rather than a flag day.
The bump to ^2.20.0 is required, not incidental: below it the runtime
does not register `flow` at all, and a manifest naming a page type the
runtime does not know renders nothing rather than failing. That failure
mode is why the types were checked against the shipped schema rather
than by eye - `type` against the page-type enum and `entitySource`
against its allowed values, both read out of the 2.20.0 tarball.
Control build against the regenerated lock: webpack compiles, 24
artifacts. A resolved lock is not a working tree.
* fix(manifest-check): the INSTALLED schema wins over the vendored copy
check:manifest rejected `type: "flow"` on a manifest that is correct.
The reason is the resolution order, not the manifest:
[validate-manifest] schema: tests/schemas/app-manifest-v2.schema.json
[validate-manifest] schema.version: 2.25.0
- /pages/51/type must be equal to one of the allowed values
The vendored copy was checked BEFORE node_modules, so it shadowed the
schema the shipped runtime actually enforces. It sat at 2.25.0 and
predates `flow`; the installed @conduction/nextcloud-vue 2.20.0 carries
schema 2.26.0, which accepts it and whose runtime registers the page
type. The check was reading last month's grammar and calling today's
manifest wrong.
That ordering is a drift machine rather than a one-off: a vendored copy
never fails, it just quietly keeps validating against a snapshot while
the rules move. The same shape cost this fleet a round of blocked PRs
earlier today, when a stale hydra-gates copy of this very schema
rejected thirteen app manifests.
So node_modules now wins. A manifest has to satisfy the schema its own
dependency ships - that is the version whose runtime will read it. The
vendored copy stays as a fallback for a tree with no node_modules (fresh
checkout, a CI leg that skips install) and is refreshed to 2.26.0 so the
fallback is not itself stale, but it no longer overrules what is
installed.
Verified both paths: default resolution picks node_modules and passes,
and forcing the vendored copy via APP_MANIFEST_SCHEMA also passes.
* chore(deps): bump @conduction/nextcloud-vue to ^2.21.0
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.
* fix(manifest): drop 15 inert action entries that render as blank rows
`config.actions` is for CUSTOM actions. These 15 entries across seven pages
tried to name BUILT-IN ones, in two spellings:
"create" (10x, bare string)
{ "key": "edit", "type": "handler" } (5x, object with no label)
Neither works, and neither is inert in the harmless sense. nextcloud-vue's
CnIndexPage documents this app by name: `config.actions: ["create", "edit",
"delete", {...}]` put three blank rows above the real ones on four different
index pages — a full-height, clickable, empty row in the overflow menu.
Nothing is lost by removing them. showViewAction / showEditAction /
showCopyAction / showDeleteAction all default to true, so the built-ins already
render from defaultActions; naming them here only ever added the blanks.
These were invisible to the manifest check until now because it preferred a
VENDORED schema copy stuck at 2.25.0 over the installed one. Reading the
installed 2.26.0 schema is what surfaced them — the schema has rejected this
shape since it was written.
Verified: the text edit was compared against the same change applied
structurally and the two agree exactly; the result validates against 2.26.0
with jsonschema; the diff is 30 deletions and no insertions.
* fix(manifest): the configuration wizard opens with welcome, then demo-data
ADR-111 rule 4, as corrected in ConductionNL/.github#614: step 1 is the
welcome/orientation step and step 2 is the demo-data offer. The first version of
that gate demanded demo-data at step 0, which inverted the wizard — this is the
CONFIGURATION wizard, where an orientation step earns its place, and the
demo-data offer is the second thing an administrator wants, not the first.
Only the order changes; no step is added, removed or edited. The text blocks
were moved and the result compared against the same reorder applied
structurally, so the two had to agree exactly.
---------
Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>flow (#1402)1 parent c96c5d0 commit 74fda38
5 files changed
Lines changed: 42 additions & 18 deletions
File tree
- src
- tests
- schemas
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
12 | 18 | | |
13 | 19 | | |
14 | 20 | | |
| |||
17 | 23 | | |
18 | 24 | | |
19 | 25 | | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
4558 | 4558 | | |
4559 | 4559 | | |
4560 | 4560 | | |
4561 | | - | |
| 4561 | + | |
4562 | 4562 | | |
4563 | | - | |
| 4563 | + | |
| 4564 | + | |
4564 | 4565 | | |
4565 | 4566 | | |
4566 | 4567 | | |
4567 | 4568 | | |
4568 | 4569 | | |
4569 | | - | |
| 4570 | + | |
4570 | 4571 | | |
4571 | 4572 | | |
4572 | 4573 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
2097 | 2097 | | |
2098 | 2098 | | |
2099 | 2099 | | |
2100 | | - | |
2101 | | - | |
| 2100 | + | |
| 2101 | + | |
2102 | 2102 | | |
2103 | 2103 | | |
2104 | 2104 | | |
| |||
2150 | 2150 | | |
2151 | 2151 | | |
2152 | 2152 | | |
| 2153 | + | |
| 2154 | + | |
| 2155 | + | |
| 2156 | + | |
| 2157 | + | |
| 2158 | + | |
| 2159 | + | |
| 2160 | + | |
| 2161 | + | |
2153 | 2162 | | |
2154 | 2163 | | |
2155 | 2164 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
36 | 50 | | |
37 | 51 | | |
38 | | - | |
39 | 52 | | |
40 | 53 | | |
41 | 54 | | |
| |||
45 | 58 | | |
46 | 59 | | |
47 | 60 | | |
| 61 | + | |
48 | 62 | | |
49 | 63 | | |
50 | 64 | | |
| |||
0 commit comments