Delete a product specification
Remove an organisation-owned or location-owned product specification from catalogue setup. Antylogic deletes the specification, removes its product links, and preserves previous catalogue state with snapshots when existing services need that history.
In this article
Use this flow when a specification is no longer part of the product catalogue for Harbor Demo Group or Harbor Soho.
Specifications can be visible across system, organisation and location scopes, but deletion only works from the specification's real owner scope and only with `catalog:manage`.
Before you start
- Sign in with an active organisation context. For the location route, use Harbor Soho or another active location context.
- Use a user with `catalog:view` or `catalog:manage` to open the Specifications list or detail view.
- Use a user with `catalog:manage` in the specification's real owner scope to delete it.
- Choose a specification owned by the organisation or location. System specifications are read-only and cannot be deleted.
- For GB documentation captures, create a disposable Harbor Soho-owned or Harbor Demo Group-owned specification because the runtime does not provide `SETUP_SPECIFICATION_DELETE_ID` or `SETUP_SPECIFICATION_DELETE_NAME`.
Instructions
- 1.
Open Specifications
Open `location/catalogs?tab=specifications` for Harbor Soho, or `organization/catalogs?tab=specifications` for Harbor Demo Group. The list can include system, organisation and location specifications.
- 2.
Choose an editable specification
Use the owner column, colour marker, name and description to select an organisation-owned or location-owned specification. Inherited and system rows may be visible, but they are not deleted from the wrong scope.
- 3.
Start deletion
Use the row `Delete` action from the list, or open `catalogs/specification-item/{specificationId}?tab=specifications` and use the destructive `Delete` button on the detail page.
- 4.
Confirm the modal
Review the specification name in the `Delete Specification` confirmation modal. Confirm only when the specification should be physically removed; this flow does not archive it or replace it with another specification.
- 5.
Review the refreshed list
After success, the API returns `204 No Content`, the modal closes, catalogue queries refresh and the detail flow returns to the list. Product links to the deleted specification are removed by database cascade.
Validations and limits
- The list and detail views require `catalog:view` or `catalog:manage`; with read-only access, delete actions are not available.
- Deletion requires `catalog:manage` in the specification's real owner scope.
- System specifications cannot be deleted from the UI or administration service.
- The location delete route does not delete organisation-owned specifications, even when they are visible in the location list.
- The organisation delete route does not delete location-owned specifications.
- The delete endpoint uses only `specificationId` from the path; it does not decode a DELETE body.
- The backend must resolve an active organisation or location context before deleting.
- If services need the previous catalogue state, Antylogic freezes catalogue snapshots before deleting the specification row.
- `product_specifications` rows linked to the specification are removed by PostgreSQL `ON DELETE CASCADE`; there is no product reassignment step.
Expected result
The specification is physically deleted from `specifications`, its product links are removed, and any required historical catalogue state is preserved before deletion.