Skip to main content

Relation

A first-class directed edge between two entities. Relations have their own UUID, their own type (a Property entity defining the edge kind), and a fractional-index position for ordered collections. Unlike SQL foreign keys, relations are addressable graph entities you can query and traverse independently.

type Relation implements Node {
nodeId: ID!
id: UUID!
entityId: UUID!
typeId: UUID!
fromEntityId: UUID!
fromSpaceId: UUID
fromVersionId: UUID
toEntityId: UUID!
toSpaceId: UUID
toVersionId: UUID
position: String
spaceId: UUID!
verified: Boolean
typeEntity: Entity
entity: Entity
fromEntity: Entity
toEntity: Entity
space: Space
fromSpace: Space
toSpace: Space
type: PropertyInfo
}

Fields

Relation.nodeId ● ID! non-null scalar

A globally unique identifier. Can be used in various places throughout the system to identify this single value.

Relation.id ● UUID! non-null scalar

The relation's UUID. Use this to delete or update a specific edge — relations are addressable independently from their endpoints.

Relation.entityId ● UUID! non-null scalar

The relation's identity entity ID — equal to id (every relation is also an entity, so it has its own entity row).

Relation.typeId ● UUID! non-null scalar

The Property entity ID that defines what kind of edge this is — e.g., the Authors property ID, the Types property ID, the Topics property ID.

Relation.fromEntityId ● UUID! non-null scalar

Source entity (the edge starts here).

Relation.fromSpaceId ● UUID scalar

The space context of the from-side. Same logical relation can exist in multiple spaces.

Relation.fromVersionId ● UUID scalar

Relation.toEntityId ● UUID! non-null scalar

Target entity (the edge ends here).

Relation.toSpaceId ● UUID scalar

The space context of the to-side.

Relation.toVersionId ● UUID scalar

Relation.position ● String scalar

Fractional-index ordering string. Used by ordered collections like Blocks so consumers can render relations in a stable order. See Position.generateBetween in the SDK for generating these.

Relation.spaceId ● UUID! non-null scalar

The space the relation was published in.

Relation.verified ● Boolean scalar

Whether this relation has been signed-off in a verification flow. Most relations are unverified.

Relation.typeEntity ● Entity object

Reads a single Entity that is related to this Relation.

Relation.entity ● Entity object

Reads a single Entity that is related to this Relation.

Relation.fromEntity ● Entity object

Reads a single Entity that is related to this Relation.

Relation.toEntity ● Entity object

Reads a single Entity that is related to this Relation.

Relation.space ● Space object

Reads a single Space that is related to this Relation.

Relation.fromSpace ● Space object

Reads a single Space that is related to this Relation.

Relation.toSpace ● Space object

Reads a single Space that is related to this Relation.

Relation.type ● PropertyInfo object

PropertyInfo for this relation's type. Lighter than the full type entity.

Interfaces

Node interface

An object with a globally unique ID.

Returned By

relation query ● relationByNodeId query ● relations query

Member Of

Entity object ● RelationsConnection object ● RelationsEdge object ● Space object

:::tip See also

Cookbook recipes that use this:

:::