Skip to main content
Version: v2.x

Schema/Metadata API Reference: Remote Relationships (Deprecated)

Deprecation

In versions v2.0.0 and above, the schema/metadata API is deprecated in favour of the schema API and the metadata API.

Though for backwards compatibility, the schema/metadata APIs will continue to function.

Introduction

Remote Relationships allow you to join tables with remote schemas.

create_remote_relationship

create_remote_relationship is used to create a new remote relationship with an existing remote schema.

POST /v1/query HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
"type":"create_remote_relationship",
"args":{
"name": "sample_remote_relationship",
"table": "users",
"hasura_fields": ["id"],
"remote_schema": "my-remote-schema",
"remote_field": {
"messages": {
"arguments": {
"id":"$id"
}
}
}
}
}

Args syntax

KeyRequiredSchemaDescription
nametrueRemoteRelationshipNameName of the remote relationship
tabletrueQualifiedTableObject with table name and schema
hasura_fieldstrue[PGColumn | ComputedFieldName]Column/Computed field(s) in the table that is used for joining with remote schema field. All join keys in remote_field must appear here.
remote_schematrueRemoteSchemaNameName of the remote schema to join with
remote_fieldtrueRemoteFieldThe schema tree ending at the field in remote schema which needs to be joined with.

update_remote_relationship

update_remote_relationship is used to update an existing remote relationship.

POST /v1/query HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
"type": "update_remote_relationship",
"args": {
"name": "sample_remote_relationship",
"table": "users",
"hasura_fields": ["id"],
"remote_schema": "my-remote-schema",
"remote_field": {
"posts": {
"arguments": {
"id": "$id",
"likes": {
"lte":"1000"
}
}
}
}
}
}

Args syntax

KeyRequiredSchemaDescription
nametrueRemoteRelationshipNameName of the remote relationship
tabletrueQualifiedTableObject with table name and schema
hasura_fieldstrue[PGColumn]Column(s) in the table that is used for joining with remote schema field. All join keys in remote_field must appear here.
remote_schematrueRemoteSchemaNameName of the remote schema to join with
remote_fieldtrueRemoteFieldThe schema tree ending at the field in remote schema which needs to be joined with.

delete_remote_relationship

delete_remote_relationship is used to delete an existing remote relationship.

POST /v1/query HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
"type" : "delete_remote_relationship",
"args" : {
"table":{
"name":"users",
"schema":"public"
},
"name":"sample_remote_relationship"
}
}

Args syntax

KeyRequiredSchemaDescription
tabletrueQualifiedTableObject with table name and schema
nametrueRemoteRelationshipNameName of the remote relationship