arazzo: 1.0.1
info:
title: Microsoft Purview Relate Two Catalog Entities
summary: Create an entity, then create a relationship linking it to another entity.
description: >-
Builds a relationship edge between two assets in the Purview Atlas catalog.
The workflow creates or updates a source entity, resolves its assigned GUID,
creates a relationship connecting it to a supplied target entity GUID, and
reads the relationship back to confirm it was stored. Every step spells out
its request inline — including the inline OAuth2 bearer token — so the flow
can be read and executed without opening the underlying OpenAPI
description.
version: 1.0.0
x-realizes-capability-ids:
- BC-610.10
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-610.10
capability_name: Data Governance Management
spec: microsoft-purview-entity-api-openapi.yml
confidence: 0.7
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: entityApi
url: ../openapi/microsoft-purview-entity-api-openapi.yml
type: openapi
- name: relationshipApi
url: ../openapi/microsoft-purview-relationship-api-openapi.yml
type: openapi
workflows:
- workflowId: relate-entities
summary: Create an entity and relate it to an existing entity.
description: >-
Creates a source entity, resolves its GUID, creates a typed relationship
between it and a target entity, and reads the relationship back.
inputs:
type: object
required:
- authorization
- entity
- relationshipTypeName
- end1TypeName
- end2TypeName
- targetEntityGuid
properties:
authorization:
type: string
description: The OAuth2 bearer token value, e.g. "Bearer eyJ0...".
entity:
type: object
description: The AtlasEntity object to create as the source end of the relationship.
relationshipTypeName:
type: string
description: The relationship type name, e.g. "process_dataset_inputs".
end1TypeName:
type: string
description: The type name of the first (source) entity end.
end2TypeName:
type: string
description: The type name of the second (target) entity end.
targetEntityGuid:
type: string
description: The GUID of the existing target entity to relate to.
steps:
- stepId: createEntity
description: Create or update the source entity for the relationship.
operationId: createOrUpdateEntity
parameters:
- name: Authorization
in: header
value: $inputs.authorization
requestBody:
contentType: application/json
payload:
entity: $inputs.entity
successCriteria:
- condition: $statusCode == 200
outputs:
guidAssignments: $response.body#/guidAssignments
- stepId: getEntity
description: Read the source entity back by its assigned GUID.
operationId: getEntityByGuid
parameters:
- name: Authorization
in: header
value: $inputs.authorization
- name: guid
in: path
value: $steps.createEntity.outputs.guidAssignments
successCriteria:
- condition: $statusCode == 200
outputs:
sourceGuid: $response.body#/entity/guid
- stepId: createRelationship
description: >-
Create a typed relationship connecting the source entity to the target
entity using their GUIDs.
operationId: createRelationship
parameters:
- name: Authorization
in: header
value: $inputs.authorization
requestBody:
contentType: application/json
payload:
typeName: $inputs.relationshipTypeName
end1:
guid: $steps.getEntity.outputs.sourceGuid
typeName: $inputs.end1TypeName
end2:
guid: $inputs.targetEntityGuid
typeName: $inputs.end2TypeName
successCriteria:
- condition: $statusCode == 200
outputs:
relationshipGuid: $response.body#/guid
- stepId: getRelationship
description: Read the relationship back by its GUID to confirm it was created.
operationId: getRelationship
parameters:
- name: Authorization
in: header
value: $inputs.authorization
- name: guid
in: path
value: $steps.createRelationship.outputs.relationshipGuid
successCriteria:
- condition: $statusCode == 200
outputs:
relationshipGuid: $response.body#/relationship/guid
outputs:
sourceGuid: $steps.getEntity.outputs.sourceGuid
relationshipGuid: $steps.createRelationship.outputs.relationshipGuid
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.