Skip to content

Commit 902385c

Browse files
authored
Merge pull request #711 from ConductionNL/feat/docs-host-to-stackiq
feat(docs): move the docs host softwarecatalog.conduction.nl -> stackiq.conduction.nl
2 parents fd400e1 + 95f4c99 commit 902385c

11 files changed

Lines changed: 42 additions & 40 deletions

File tree

.github/workflows/documentation.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ jobs:
3030
uses: ConductionNL/.github/.github/workflows/documentation.yml@main
3131
with:
3232
# FROZEN through the stackiq -> stackiq app-id rename.
33-
# `softwarecatalog.conduction.nl` answers 200 today; `stackiq.conduction.nl`
33+
# `stackiq.conduction.nl` answers 200 today; `stackiq.conduction.nl`
3434
# answers 000 (no DNS record). A CNAME is not a name we own in this repo —
3535
# it is a claim about a record that exists. Publishing docs at a host that
3636
# resolves to nothing takes the documentation site OFFLINE, which is a
3737
# regression, not a rename. Move this only after DNS + the Pages/Cloudflare
3838
# binding for the new host are live, in a change that verifies both.
39-
cname: softwarecatalog.conduction.nl
39+
cname: stackiq.conduction.nl
40+
41+
docs-hosts: softwarecatalog.conduction.nl,stackiq.conduction.nl

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<a href="https://github.com/ConductionNL/stackiq/releases"><img src="https://img.shields.io/github/v/release/ConductionNL/stackiq" alt="Latest release"></a>
1313
<a href="https://github.com/ConductionNL/stackiq/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-EUPL--1.2-blue" alt="License"></a>
1414
<a href="https://github.com/ConductionNL/stackiq/actions/workflows/code-quality.yml"><img src="https://github.com/ConductionNL/stackiq/actions/workflows/code-quality.yml/badge.svg" alt="Code quality"></a>
15-
<a href="https://softwarecatalog.conduction.nl"><img src="https://img.shields.io/badge/docs-softwarecatalog.conduction.nl-green" alt="Documentation"></a>
15+
<a href="https://stackiq.conduction.nl"><img src="https://img.shields.io/badge/docs-stackiq.conduction.nl-green" alt="Documentation"></a>
1616
</p>
1717

1818
---
@@ -104,7 +104,7 @@ stackiq/
104104
├── docs/ # Technical documentation
105105
├── img/ # App icons and screenshots
106106
├── l10n/ # Translations (en, nl)
107-
└── docusaurus/ # Product documentation site (softwarecatalog.conduction.nl)
107+
└── docusaurus/ # Product documentation site (stackiq.conduction.nl)
108108
```
109109

110110
## Requirements
@@ -180,7 +180,7 @@ npm run stylelint # CSS linting
180180

181181
## Documentation
182182

183-
Full documentation is available at **[softwarecatalog.conduction.nl](https://softwarecatalog.conduction.nl)**
183+
Full documentation is available at **[stackiq.conduction.nl](https://stackiq.conduction.nl)**
184184

185185
| Page | Description |
186186
|------|-------------|

docs/docusaurus.config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const BRAND_THEME = require.resolve('@conduction/docusaurus-preset/theme');
2121
const config = createConfig({
2222
title: 'Stackiq',
2323
tagline: 'IT-asset management on Nextcloud. Software inventory, licenses, contracts, dependencies. One register, every install.',
24-
url: 'https://softwarecatalog.conduction.nl',
24+
url: 'https://stackiq.conduction.nl',
2525
baseUrl: '/',
2626

2727
organizationName: 'ConductionNL',
@@ -57,7 +57,7 @@ const config = createConfig({
5757
plus the standard node_modules bucket. */
5858
exclude: ['**/node_modules/**', 'src/**'],
5959
sidebarPath: require.resolve('./sidebars.js'),
60-
editUrl: 'https://codeberg.org/Conduction/stackiq/src/branch/main/docs/',
60+
editUrl: 'https://github.com/ConductionNL/stackiq/tree/main/docs/',
6161
},
6262
blog: false,
6363
theme: {
@@ -81,7 +81,7 @@ const config = createConfig({
8181
label: 'Documentation',
8282
},
8383
{
84-
href: 'https://codeberg.org/Conduction/stackiq',
84+
href: 'https://github.com/ConductionNL/stackiq',
8585
label: 'GitHub',
8686
position: 'right',
8787
},

docs/i18n/nl/docusaurus-theme-classic/footer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
},
1414
"link.item.label.GitHub": {
1515
"message": "GitHub",
16-
"description": "The label of footer link with label=GitHub linking to https://codeberg.org/Conduction/stackiq"
16+
"description": "The label of footer link with label=GitHub linking to https://github.com/ConductionNL/stackiq"
1717
},
1818
"copyright": {
1919
"message": "Copyright © 2026 for <a href=\"https://openwebconcept.nl\">Open Webconcept</a> by <a href=\"https://conduction.nl\">Conduction B.V.</a>",

docs/static/CNAME

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
softwarecatalog.conduction.nl
1+
stackiq.conduction.nl

docs/static/llms.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ Stackiq is an open-source IT-asset-management app for the Nextcloud workspace. I
66

77
## Docs
88

9-
- [Documentation](https://softwarecatalog.conduction.nl/docs/intro): main entry, including tutorials, user guide, and admin guide.
10-
- [API reference](https://softwarecatalog.conduction.nl/api): OpenAPI documentation.
9+
- [Documentation](https://stackiq.conduction.nl/docs/intro): main entry, including tutorials, user guide, and admin guide.
10+
- [API reference](https://stackiq.conduction.nl/api): OpenAPI documentation.
1111

1212
## Optional
1313

1414
- [Install](https://www.conduction.nl/install): self-host on your Nextcloud instance.
15-
- [Source code](https://codeberg.org/Conduction/stackiq): repository and issue tracker.
15+
- [Source code](https://github.com/ConductionNL/stackiq): repository and issue tracker.
1616
- [App page](https://www.conduction.nl/apps/stackiq): product positioning on conduction.nl.
1717

1818
## Contact

openspec/changes/beta-surface-alignment/specs/beta-alignment/spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ status: proposed
66

77
## Purpose
88

9-
Stackiq's code metadata (`appinfo/info.xml`), product page (conduction.nl), and docs (softwarecatalog.conduction.nl) SHALL describe the same, code-verified feature set and licence, so the app is beta-release-ready.
9+
Stackiq's code metadata (`appinfo/info.xml`), product page (conduction.nl), and docs (stackiq.conduction.nl) SHALL describe the same, code-verified feature set and licence, so the app is beta-release-ready.
1010

1111
## Requirements
1212

openspec/changes/rename-app-id-to-stackiq/proposal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ record.
6161
certificate for the new id. `.nextcloud/certificates/stackiq.csr` is
6262
left as-is; a maintainer action is required before a stable release publishes
6363
under the new id.
64-
- Moving `softwarecatalog.conduction.nl` / `www.conduction.nl/apps/stackiq`
64+
- Moving `stackiq.conduction.nl` / `www.conduction.nl/apps/stackiq`
6565
or the `stackiq-docs` Cloudflare Pages project. Those move when DNS and
6666
the Pages binding move, in a change that verifies both.
6767
- Renaming `openspec/specs/*` capability directories. They are referenced from

openspec/changes/rename-app-id-to-stackiq/specs/app-id-rename/spec.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ app. Specifically it SHALL leave unchanged: the Nextcloud group ids
126126
`stackiq_concept_organisaties_widget`; the appId this app passes to
127127
OpenRegister's configuration importer and the `sourceUrl` /
128128
`lib/Settings/softwarecatalogus_register.json` filename that accompanies it; the
129-
live hosts `softwarecatalog.conduction.nl` and
129+
live hosts `stackiq.conduction.nl` and
130130
`www.conduction.nl/apps/stackiq`; the Cloudflare Pages project
131131
`stackiq-docs`; VNG's own `softwarecatalogus.nl` identifiers; and every
132132
other Conduction app's id and namespace.
@@ -147,7 +147,7 @@ other Conduction app's id and namespace.
147147

148148
#### Scenario: Documentation still publishes to a host that resolves
149149

150-
- **GIVEN** `softwarecatalog.conduction.nl` answers HTTP 200 and `stackiq.conduction.nl` does not resolve
150+
- **GIVEN** `stackiq.conduction.nl` answers HTTP 200 and `stackiq.conduction.nl` does not resolve
151151
- **WHEN** the documentation workflow deploys
152-
- **THEN** the `cname` input MUST remain `softwarecatalog.conduction.nl`, because publishing at a host with no DNS record takes the documentation site offline — a regression, not a rename
152+
- **THEN** the `cname` input MUST remain `stackiq.conduction.nl`, because publishing at a host with no DNS record takes the documentation site offline — a regression, not a rename
153153
- @e2e exclude CI workflow input; verified by probing both hosts, not by a browser test.

src/manifest.json

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
"id": "Documentation",
147147
"label": "Documentation",
148148
"icon": "BookOpenVariantOutline",
149-
"href": "https://softwarecatalog.conduction.nl",
149+
"href": "https://stackiq.conduction.nl",
150150
"section": "footer",
151151
"order": 90
152152
},
@@ -181,7 +181,7 @@
181181
"columns": ["name", "type", "status", "website"],
182182
"filter": { "status": ["Draft", "Active", "Inactive"] },
183183
"sidebar": { "enabled": true, "showMetadata": true },
184-
"documentationUrl": "https://softwarecatalog.conduction.nl"
184+
"documentationUrl": "https://stackiq.conduction.nl"
185185
},
186186
"_note": "Decomposed from the bespoke OrganisatieIndexView to a standard type:index (Phase 8): renders organisatie OR objects as a card grid via config.cardComponent=OrganisatieCard. The card keeps its inline contactpersoon toggle internally; CnIndexPage provides the toolbar, search, view-toggle and create/edit/delete dialogs. config.filter excludes organisation-merge tombstones (status='merged') from the default listing per the organisation-merge spec — a merged-away source stays readable by direct UUID lookup (OrganisatieDetail route) but never appears in this index. 🔴 THIS FILTER IS COUPLED TO THE SCHEMA'S status ENUM AND WENT STALE: #520 translated the stored enum values and migrated the rows (Concept/Actief/Deactief/samengevoegd -> Draft/Active/Inactive/merged) but did NOT translate this list, so the index filtered on three values no row can hold any more. A value filter that matches nothing is not an error — OpenRegister answers 200 with total=0 — so the Organisations index rendered 'No items found' for every user and read as an empty catalogue. Measured on the running instance: ?status[]=Draft&status[]=Active returns the seeded row, ?status[]=Concept&status[]=Actief&status[]=Deactief returns total=0. Any future enum rename must move this list in the same commit."
187187
},
@@ -222,7 +222,7 @@
222222
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
223223
]
224224
},
225-
"documentationUrl": "https://softwarecatalog.conduction.nl"
225+
"documentationUrl": "https://stackiq.conduction.nl"
226226
}
227227
},
228228
{
@@ -243,7 +243,7 @@
243243
"enabled": true,
244244
"showMetadata": true
245245
},
246-
"documentationUrl": "https://softwarecatalog.conduction.nl"
246+
"documentationUrl": "https://stackiq.conduction.nl"
247247
}
248248
},
249249
{
@@ -270,7 +270,7 @@
270270
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
271271
]
272272
},
273-
"documentationUrl": "https://softwarecatalog.conduction.nl"
273+
"documentationUrl": "https://stackiq.conduction.nl"
274274
}
275275
},
276276
{
@@ -306,7 +306,7 @@
306306
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
307307
]
308308
},
309-
"documentationUrl": "https://softwarecatalog.conduction.nl"
309+
"documentationUrl": "https://stackiq.conduction.nl"
310310
}
311311
},
312312
{
@@ -335,7 +335,7 @@
335335
"enabled": true,
336336
"showMetadata": true
337337
},
338-
"documentationUrl": "https://softwarecatalog.conduction.nl"
338+
"documentationUrl": "https://stackiq.conduction.nl"
339339
}
340340
},
341341
{
@@ -371,7 +371,7 @@
371371
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
372372
]
373373
},
374-
"documentationUrl": "https://softwarecatalog.conduction.nl"
374+
"documentationUrl": "https://stackiq.conduction.nl"
375375
}
376376
},
377377
{
@@ -480,7 +480,7 @@
480480
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
481481
]
482482
},
483-
"documentationUrl": "https://softwarecatalog.conduction.nl"
483+
"documentationUrl": "https://stackiq.conduction.nl"
484484
}
485485
},
486486
{
@@ -502,7 +502,7 @@
502502
"enabled": true,
503503
"showMetadata": true
504504
},
505-
"documentationUrl": "https://softwarecatalog.conduction.nl"
505+
"documentationUrl": "https://stackiq.conduction.nl"
506506
},
507507
"_note": "The register has NO dedicated 'standard' schema — GEMMA standards are `element` objects (the generic ArchiMate/GEMMA model-element schema, shared with referentiecomponenten, applications, capabilities, …) discriminated by `gemmaType`. Fixed a pre-existing bug: this page previously pointed at a non-existent `schema: \"standaard\"`, which would 404 on every fetch. Scoped with `filter.gemmaType: \"standaard\"` (see lib/Service/ArchiMateImportService.php's `extractGemmaType` comparisons and its `?gemmaType=referentiecomponent` query comment) so only standard-typed elements list here. REGISTER FIX (measured): `element` is declared under `components.registers.vng-gemma.schemas`, NOT under `voorzieningen`, so `@resolve:voorzieningen_register` produced `GET /api/objects/<voorzieningen>/element -> 404 {\"message\":\"Schema not found: 'element'\"}` on every load (CI trace, run 31981873526). Attaching `element` to `voorzieningen` was rejected deliberately: the request would then succeed and return an EMPTY list, because objects live per register and the AMEF elements are written to the AMEF one — a visible error traded for an invisible pass. Repointed at `@resolve:amef_register`, the second sentinel, provisioned in lib/AppInfo/Application.php::boot() from the `amef_config` blob exactly as `voorzieningen_register` is from `voorzieningen_config`."
508508
},
@@ -534,7 +534,7 @@
534534
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
535535
]
536536
},
537-
"documentationUrl": "https://softwarecatalog.conduction.nl"
537+
"documentationUrl": "https://stackiq.conduction.nl"
538538
}
539539
},
540540
{
@@ -556,7 +556,7 @@
556556
"enabled": true,
557557
"showMetadata": true
558558
},
559-
"documentationUrl": "https://softwarecatalog.conduction.nl"
559+
"documentationUrl": "https://stackiq.conduction.nl"
560560
},
561561
"_note": "bio-compliance-assessment: BIO 2.0 measures reference catalog (design.md Decision 1/Decision 4), following the Standaarden/StandaardDetail index+detail pattern. Publicly readable (authorization.read: [\"public\"]) since it is a selection source for compliancy.bioMaatregel and the BIO coverage report (ComplianceMatrixView), not organisation-owned data."
562562
},
@@ -584,7 +584,7 @@
584584
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
585585
]
586586
},
587-
"documentationUrl": "https://softwarecatalog.conduction.nl"
587+
"documentationUrl": "https://stackiq.conduction.nl"
588588
}
589589
},
590590
{
@@ -605,7 +605,7 @@
605605
"enabled": true,
606606
"showMetadata": true
607607
},
608-
"documentationUrl": "https://softwarecatalog.conduction.nl"
608+
"documentationUrl": "https://stackiq.conduction.nl"
609609
}
610610
},
611611
{
@@ -636,7 +636,7 @@
636636
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
637637
]
638638
},
639-
"documentationUrl": "https://softwarecatalog.conduction.nl"
639+
"documentationUrl": "https://stackiq.conduction.nl"
640640
}
641641
},
642642
{
@@ -657,7 +657,7 @@
657657
"enabled": true,
658658
"showMetadata": true
659659
},
660-
"documentationUrl": "https://softwarecatalog.conduction.nl"
660+
"documentationUrl": "https://stackiq.conduction.nl"
661661
}
662662
},
663663
{
@@ -686,7 +686,7 @@
686686
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
687687
]
688688
},
689-
"documentationUrl": "https://softwarecatalog.conduction.nl"
689+
"documentationUrl": "https://stackiq.conduction.nl"
690690
}
691691
},
692692
{
@@ -715,7 +715,7 @@
715715
"enabled": true,
716716
"showMetadata": true
717717
},
718-
"documentationUrl": "https://softwarecatalog.conduction.nl"
718+
"documentationUrl": "https://stackiq.conduction.nl"
719719
},
720720
"_note": "Fixed a pre-existing bug: `releaseDatum` is not a moduleVersie property (see lib/Settings/softwarecatalogus_register.json) — replaced with the real lifecycle field `datumInGebruik` (date the version went live), the closest analog to a release date."
721721
},
@@ -748,7 +748,7 @@
748748
{ "id": "audit", "label": "History", "icon": "History", "widgets": [ { "type": "audit" } ] }
749749
]
750750
},
751-
"documentationUrl": "https://softwarecatalog.conduction.nl"
751+
"documentationUrl": "https://stackiq.conduction.nl"
752752
}
753753
},
754754
{
@@ -784,7 +784,7 @@
784784
{ "id": "audit", "label": "Audit trail", "icon": "History", "widgets": [ { "type": "audit" } ] }
785785
]
786786
},
787-
"documentationUrl": "https://softwarecatalog.conduction.nl"
787+
"documentationUrl": "https://stackiq.conduction.nl"
788788
}
789789
},
790790
{
@@ -817,7 +817,7 @@
817817
"type": "roadmap",
818818
"title": "Features & roadmap",
819819
"config": {
820-
"documentationUrl": "https://softwarecatalog.conduction.nl"
820+
"documentationUrl": "https://stackiq.conduction.nl"
821821
}
822822
}
823823
]

0 commit comments

Comments
 (0)