Repository navigation
Retire the unused Backstage scaffold #4266
Description
🤖 Generated by the Agentic Engineer
User Story
As a portfolio maintainer,
I want to retire the unused Backstage scaffold and its associated platform resources,
So that we stop maintaining a demo portal after choosing GitHub as the internal developer platform.
Acceptance Criteria
- Verify current usage and dependencies before removal; record any genuine consumer that needs a migration path.
- Remove the Backstage deployment and resources owned solely by it, including its database, route, authentication wiring, policy, and obsolete documentation, without disturbing shared services.
- Update platform guidance to point to the GitHub-based application catalog, templates, scorecards presented as badges at the top of repository
README.mdfiles and evaluated by GitHub Actions, and workflow self-service. - Validate the platform configuration and read back the real environment after rollout to confirm the retired workload and its owned resources are gone and unrelated services remain healthy.
- Do not provision Port or another replacement portal.
Context
The Backstage scaffold is documented as a demo in this repository. #2637 combined its removal with adopting Port; the latter direction is superseded. This issue preserves the independently useful removal work.
Delivered on: 2026-10-11 — the source removal in #4639 merged at 9537b5cf1c1a03284aa91f42c40da880dba791e7. This date records source delivery, not completion of this issue.
Remaining acceptance
The stateless retirement and retained-storage protection are accepted in completed child #4819, including the terminal completion receipt from run 39161262289. That result explicitly leaves data retirement unassessed.
The remaining independent backup and retained-data decision is now owned by native child #5122. Protection from deletion does not establish a recoverable retained copy. This parent stays open with its original acceptance criteria and work history intact.
Resume condition: complete #5122 with accepted retained-data recovery evidence, then deliver and verify the separately reviewed remaining retirement work and shared-service health. The native dependency records this queued continuation. Moving the parent to Ready does not accept retention, remove resources or reset its original start clock.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Projects
- StatusShow more project fields🫴 Ready
Activity
chore: agent-claim #4266 nonce=a5b0a3cfb194ffd31e93523db1249420
devantler commentedon Oct 7, 2026
Usage and dependency inspection found no genuine consumer needing migration. The shipped application is the demo scaffold, and no owning portfolio repository depends on its catalog or service. This is an observed usage/dependency result; it does not claim a database-content inspection.
The prepared change removes the application and its dedicated database, route, authentication entries, monitoring policies and obsolete documentation. Shared services remain in place. The replacement guidance uses GitHub repositories, templates, README scorecard badges and approved workflow self-service; no replacement portal is introduced.
Retirement follows the required two-stage process: the existing deployed protection stays in force until the source removal has merged and deployed, then the protected runtime orphans are explicitly removed. Database contents will be retained offline before claims are removed. This issue will remain open until the merged rollout and live cleanup have been verified.
devantler commentedon Oct 8, 2026
The removal is implemented in PR #4639. Signed head
415aa0cba77efda11cccf93bcae65094ab470d30integrates current main, preserves its newer storage repair, and passes the local retirement, authorization, generated-exception and storage checks. Current-head CI now passes, including manifest and production authorization validation; all 33 check contexts are settled with no failures. The earlier green review does not cover this head. A fresh review request was not posted because the shared GitHub REST quota is exhausted and the required atomic request reservation could not be verified.The preceding rollout and protected recovery both failed. Recovery selected current main but stopped at a required service-readiness guard before publication, so a successful main restore has not been established. Fresh live readback still confirms incomplete readiness. The PR is parked on the existing actively owned recovery repair #4652; the safe-upgrade prerequisite #4391 also remains open. The retirement has not merged or returned to the queue.
This issue remains open. After actual merge and deployed-source verification, the two database volumes will be retained before explicitly removing the protected runtime resources. Completion requires a successful fresh orphan check, disappearance of the retired route and its owned DNS records, and healthy shared services. No retirement deletion or elevated credential retrieval has occurred yet.
devantler commentedon Oct 11, 2026
New bounded production readback during the protected retirement merge-group run: the Backstage route remains present and reports
ResolvedRefs=False/RefNotPermitted. That condition began at 2026-10-11 05:22:32 UTC. The portfolio health check exits 1 on this route.The scoped follow-up reads find the Flux layers resumed and Ready. The applications inventory no longer contains Backstage, and the live backend reference grant no longer permits its namespace. PR #4639 removes that grant entry while this runtime route is still present. This is concrete evidence of a source/runtime retirement split; it does not establish why the route survived pruning or prove the initiating cause from timing alone.
The deployment job was still in progress at the closing job read. Its protected restore-main path has not yet been observed completing for this attempt. No deployment was cancelled, no cluster resource was modified or deleted, and no retained data was touched by this run. This issue remains open: retirement requires the actual merged/deployed source, verified orphan cleanup and a fresh healthy-platform read. Dependent merges remain held while this health failure persists.
devantler commentedon Oct 11, 2026
Live readback from the Claude lane at 16:22 UTC, 32 minutes after #4639 merged. No change made; the final live cleanup stays with the lane that owns it.
The stuck failover looks like a consequence of the retirement removing the namespace's access rules before its workloads, not a separate fault. It clears when the remaining resources are removed. If the old database contents must be kept offline first, note that only one of the two instances is currently healthy.
chore: agent-claim #4266 nonce=857be1b3379e23efe0b550f0ce3ce153
devantler commentedon Oct 11, 2026
The portal retirement in #4639 is merged, but this issue remains open for verified data retention and explicit cleanup. The retained database lost a required coordination path during retirement; #4759 restores only its temporary database control and replication connections. Its regression checks pass, and native CI is running.
Completion still requires deployment verification, evidence that the retained data can be kept safely, and the separately reviewed cleanup. Bound volumes alone do not establish that retention acceptance criterion.
12 remaining items
devantler commentedon Oct 13, 2026
Fresh Coroot UI verification at 16:37 UTC on 13 October connects the current init log errors to the leftover retired portal, not just historical rollout noise. Two messages at 16:27:42 UTC show the kubelet and container runtime repeatedly trying to start the retired backend without its already-removed application credential. This matches the failing portal pod in the OIDC health check. The separate source-controller error remains tied to the orphaned release.
The root-cause completion path remains storage protection #4838, then native-proof fidelity #4841 and separately confirmed stateless cleanup. Do not recreate the retired application credential or disable log checks to erase these signals. Both repairs have test-first controls; hosted current-head checks and semantic review remain in progress. No production mutation or retirement dispatch has run.
chore: agent-claim #4266 nonce=ba5c69b264b181e54478a5462671ab30
chore: agent-claim #4266 nonce=1eb80cca9d9121444cbf2ca45261548d
chore: agent-claim #4266 nonce=7bcf445e4c1c8892498c50c21f8bd83e
chore: agent-claim #4266 nonce=df2b1daffca4d8e3c0609fe0452e5488
chore: agent-claim #4266 nonce=94735570e5c8062953e7e940116b53bb
chore: agent-claim #4266 nonce=f0b8d0b8e27816f2e73f323c9a2b137b
chore: agent-claim #4266 nonce=2f4957dd1c3f12d074cf2679f197ee03