Skip to content

fix(templates): remove dead sourceUrl links from the four seeded templates - #466

Merged
rubenvdlinde merged 2 commits into
developmentfrom
fix/dead-template-source-urls
Aug 26, 2026
Merged

fix(templates): remove dead sourceUrl links from the four seeded templates#466
rubenvdlinde merged 2 commits into
developmentfrom
fix/dead-template-source-urls

Conversation

@rubenvdlinde

@rubenvdlinde rubenvdlinde commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

All four seeded application templates carried a sourceUrl returning HTTP 404:

https://codeberg.org/Conduction/concurrentie-analyse/src/branch/main/
  app-builder/README.md#user-stories

Why the field is removed rather than repointed

My first commit on this branch repointed it. concurrentie-analyse was renamed to ConductionNL/market-intelligence, the file and its #user-stories anchor both verified live — so the 404 was fixed.

For us. Not for anyone else.

buildiq is visibility=PUBLIC, these templates ship inside it, and market-intelligence is private. Every admin outside Conduction would have clicked through to a login wall. My reasoning that "it's admin-only traceability metadata, so a private target is fine" does not survive the app being open source: the templates are public data, and who reads the field does not change who can reach the URL.

The tempting wrong fix

Point all four at https://openbuild.conduction.nl/docs/intro — the app's only live public docs page (everything else I probed 404s).

That is worse than leaving it broken. It resolves, so it looks correct, while claiming these user stories originated from a generic intro page they did not come from. False provenance beats no provenance only until someone follows it.

What ships

The field is dropped. sourceUrl is optional:

ApplicationTemplate.required =
  [slug, title, description, useCase, category, manifest, isSeeded, version]

All four templates still carry every required key; JSON re-parsed clean.

If the origin material is ever published, the honest fix is to add the field back pointing at the real public URL.

Deliberately left alone

RoadmapPageEditor.vue also mentions codeberg — as a valid forge-type option a user can select ('codeberg'|'forgejo'|'gitea'|'github'). That is a working feature, not a stale link.

Sibling fix: ConductionNL/stackiq#748, which repointed 32 dead register configuration URLs to a public GitHub target.

The four seeded application templates all carried

  https://codeberg.org/Conduction/concurrentie-analyse/src/branch/main/
    app-builder/README.md#user-stories

which returns HTTP 404. Confirmed with curl rather than assumed.

The repository was not deleted, it was renamed: `concurrentie-analyse` is now
`ConductionNL/market-intelligence` on GitHub. Found by reading the git remote
of the local checkout that still uses the old directory name, since a GitHub
search for the old name finds only unrelated repos.

Verified before repointing, not after:

  app-builder/README.md .... exists on main (46,313 bytes)
  #user-stories anchor ..... `## User Stories` is a real heading (line 515)

Left as-is deliberately: this repo is PRIVATE. That is the right target
anyway. `sourceUrl` is defined in openbuild_register.json as "Link back to the
originating user-story / RFP / blog post for traceability", and the only thing
that reads it is EditTemplateMetadataDialog — an admin edit field, not a link
rendered to end users. Traceability wants the true origin; pointing it at some
public stand-in would make it accurate-looking and wrong.

Three other Codeberg references in this app were checked and left alone: the
forge-type dropdown in RoadmapPageEditor.vue, where `codeberg` is a valid
option a user can pick, is not a stale link.
…ivate repo

Correcting the previous commit on this branch. Repointing the dead Codeberg
link to `ConductionNL/market-intelligence` fixed the 404 for us and left it
broken for everyone else: buildiq is PUBLIC (visibility=PUBLIC), these four
templates ship inside it, and market-intelligence is private. Every admin
outside Conduction would click through to a login wall.

My earlier reasoning — that this is admin-only traceability metadata so the
private target is fine — does not survive the app being open source. The
templates are public data; who reads the field does not change who can reach
the URL.

The alternative was pointing at https://openbuild.conduction.nl/docs/intro,
the app's only live public docs page. That is worse: it resolves, so it looks
right, while claiming these user stories came from a generic intro page they
did not come from. False provenance beats no provenance only until someone
follows it.

So the field is removed. `sourceUrl` is optional — ApplicationTemplate.required
is [slug, title, description, useCase, category, manifest, isSeeded, version]
— and all four templates still carry every required key.

If the origin material is ever published, the honest fix is to add the field
back pointing at the real public URL.
@rubenvdlinde rubenvdlinde changed the title fix(templates): repoint four dead sourceUrl links to the renamed repo fix(templates): remove dead sourceUrl links from the four seeded templates Aug 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/buildiq @ a0522df

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

Quality workflow — 2026-08-26 09:23 UTC

Download the full PDF report from the workflow artifacts.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/buildiq @ fe5c013

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

Quality workflow — 2026-08-26 11:05 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 648108a into development Aug 26, 2026
87 checks passed
@rubenvdlinde
rubenvdlinde deleted the fix/dead-template-source-urls branch August 26, 2026 12:54
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