IndyKite Capture - delete relationships
This skill builds the request body for the Capture API's batch relationship delete endpoint - removing typed connections between nodes in the IndyKite Knowledge Graph (IKG) while leaving the nodes in place:
POST <API_URL>/capture/v1/relationships/delete
Each entry identifies one relationship the same way it was created: source node, target node, and relationship type. The JSON file is the deliverable, ready to be POSTed by any application.
The MCP server does not currently expose Capture endpoints; the JSON bodies this skill produces are for direct REST use and remain valid if Capture tools are added later.
When to use
Activate this skill when the user wants to:
- disconnect two entities - revoke an
OWNS/CAN_DRIVE/ACCEPTEDedge - while keeping both nodes; - undo a batch created with
indykite-capture-upsert-relationships.
Do not activate this skill to:
- delete the nodes themselves - use
indykite-capture-delete-nodes; - remove only a relationship's properties (edge survives) - use
indykite-capture-delete-relationship-properties; - create relationships - use
indykite-capture-upsert-relationships; - delete through a CIQ policy + Knowledge Query - use
indykite-ciq-delete.
Prerequisites
- An IndyKite project with an AppAgent whose credentials are configured for the calling application (Credentials guide).
- For each relationship: the
sourceandtarget(type,external_id) pairs and the relationshiptype.
Steps
1. List the relationships to delete
| Field | Required | Meaning |
|---|---|---|
source |
yes | { "external_id": …, "type": … } of the outgoing node. |
target |
yes | { "external_id": …, "type": … } of the incoming node. |
type |
yes | The relationship type to remove between them (max 128 chars). |
2. Assemble the request body
One JSON object: { "relationships": [ … ] }, 1-250 entries per request. On a composite IKG, add top-level "use_global_db": true to delete relationships stored in the global constituent (Data Residency guide); omit it on a regular IKG. A ready example: assets/delete-relationships.json.
{
"relationships": [
{
"source": { "external_id": "ryan", "type": "Person" },
"target": { "external_id": "kitt", "type": "Car" },
"type": "CAN_DRIVE"
}
]
}
This file is the deliverable - any HTTP-capable application can send it.
3. Send it (optional)
The endpoint authenticates the calling application (its AppAgent credentials). Which credential goes in which request header is covered by the Credentials guide.
A runnable shell helper builds the authenticated request: scripts/capture.sh — run with --print to preview the curl (host-pinned; token redacted). Deletion is destructive: preview with --print, and confirm the edge list, before sending.
4. Read the results
A 200 returns one result per relationship, in order: { "results": [ { "id": "gid:…" } ] }. Field shapes and error semantics: references/capture-reference.md.
Outcome
- A valid
{ "relationships": [ … ] }delete body exists, each entry namingsource,target, andtype. - If sent, those relationships are gone from the IKG - policy conditions and queries that traversed them no longer match - while both endpoint nodes remain.
Files in this skill
references/capture-reference.md- field reference,use_global_dbbehavior, batch limits, and error semantics.assets/delete-relationships.json- ready request body removing aCAN_DRIVEedge.scripts/capture.sh- Bash helper that POSTs a body file to/capture/v1/relationships/delete(host-pinned;--printto preview).
Agent-specific notes
This skill uses generic markdown instructions and works across all agents listed in the README. The agent needs to be able to write a JSON file; sending it additionally requires HTTP access (curl or any HTTP client).
References
- Capture API reference (OpenAPI)
- Data Residency guide -
use_global_dbon composite IKGs - Credentials guide