Skip to content

[OpenSpec] sharing-itsm-exchange #1134

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

Stackiq becomes the configuration management database (CMDB) for the application level: the applications an organisation uses, the components they are made of, the connections between them, and the licences and contracts behind them. A functional administrator connects stackiq to the organisation's service desk, TOPdesk or ServiceNow, through integriq. From then on the two stay in step in both directions:

  • Import: a nightly run reads the service desk's application records, relations, licences and contracts, and creates or updates the matching stackiq records. A second run updates; it never duplicates.
  • Export: when someone changes what stackiq owns on an application in use (owners, licences, contract, BBN level, TIME class), that change goes to the service desk record.
  • Ownership decides conflicts, not time. Each mapping marks every field as owned by the service desk or by stackiq. The service desk wins for the fields it owns (name, supplier, installed version, status). Stackiq-only fields (licences, contracts, publication) always stay with stackiq. An import never overwrites a stackiq-owned field, and an export never sends a service-desk-owned field.
  • No ping-pong. A write in one direction never comes back as a change in the other.
  • A file import (CSV or XLSX) feeds the same flow for organisations without a service desk API.

Specs

Tasks

  • Implement
  • Test (PHPUnit tests/Unit/Settings/ItsmExchangeFragmentTest.php; ConnectionsDeclarationTest.php covers the itsm entry)
  • Implement
  • Test (PHPUnit tests/Unit/Settings/ItsmFlowTemplatesTest.php; preflight on the live instance in Task 3)
  • Implement
  • Test (PHPUnit tests/Unit/Service/ItsmExchangeServiceTest.php)
  • Implement
  • Test (PHPUnit tests/Unit/Service/ItsmFileImportServiceTest.php)
  • Implement
  • Test (Playwright tests/e2e/workflows/itsm-exchange.spec.ts)
  • Run against the TOPdesk mock
  • Run against the ServiceNow mock
  • Run against Ruben's ServiceNow developer instance (comes from Ruben later)
  • Implement

Design

See design.md for technical design details.


Synced from openspec/changes/sharing-itsm-exchange by OpenSpec workflow
App: stackiq

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