Skip to content

[OpenSpec] operations-record-reconciliation #1127

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Summary

The same application arrives twice: once typed by a supplier, once from a federation peer or an import, spelled a little differently. Today a Nextcloud admin can merge two organisations in stackiq, and nobody can merge two applications or two services. OpenRegister already finds duplicate candidates from the rules stackiq declares, and already merges two objects reversibly. This change declares those rules and the merge settings on applications and services, links the catalogue pages to OpenRegister's duplicate candidates page, re-points the catalogue's references when OpenRegister merges, hides merged records, and fixes the organisation merge, which leaves a merged supplier's applications and services behind.

Specs

Tasks

  • Implement
  • Test (PHPUnit tests/Unit/Settings/ReconciliationDeclarationTest.php)
  • Implement
  • Test (PHPUnit tests/Unit/Service/CatalogueReferenceMapTest.php and tests/Unit/Service/MergeOrganisatieServiceTest.php)
  • Implement
  • Test (PHPUnit tests/Unit/EventListener/CatalogueMergeRelinkerTest.php, constructing the real OpenRegister event class)
  • Implement
  • Test (PHPUnit tests/Unit/Service/FacetServiceTest.php and Playwright tests/e2e/spec-coverage/record-reconciliation.spec.ts)
  • Implement
  • Test (Playwright tests/e2e/spec-coverage/record-reconciliation.spec.ts against the demo data)

Design

See design.md for technical design details.


Synced from openspec/changes/operations-record-reconciliation by OpenSpec workflow
App: stackiq

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions