Skip to content

Developers · GraphQL

Common GraphQL Interfaces

Last updated 5 November 2026

An Interface is an abstract GraphQL type that includes a particular set of fields that a type (or object) must include to implement that interface. An interface helps maintain a clean schema whenever certain types have identical fields. Your program can always query these common fields no matter what type is returned.

Use this article to guide you in using common GraphQL interfaces in Insites.

AdminNonDeployableSharedAttributesInterface

Code example:

interface AdminNonDeployableSharedAttributesInterface {
  created_at: JSONDate!
  id: ID!
  updated_at: JSONDate!
}

Fields

AdminPropertiesInterface

Code example:

interface AdminPropertiesInterface {
  properties: [Property!]!
}

Fields

AdminSharedAttributesInterface

Code example:

interface AdminSharedAttributesInterface {
  created_at: JSONDate!
  id: ID!
  manually_managed: Boolean
  metadata: HashObject
  physical_file_path: String
  updated_at: JSONDate!
}

Fields

When true, insites-cli deploy and sync do not change this object.

Defines the physical path of the file.

BasicPropertyInterface

Code example:

interface BasicPropertyInterface {
  id: ID
  properties(select: [PropertiesFieldInput!]): HashObject
  property(name: String!): String
  property_array(name: String!): [String!]
  property_boolean(name: String!): Boolean
  property_float(name: String!): Float
  property_int(name: String!): Int
  property_json(name: String!): JSONPayload
  property_object(name: String!): HashObject
}

Fields

The ID of an object.

List of all properties assigned to the object.

Optional. A list of properties to return. Each item has a and an : array, boolean, float, int, json, object or string.

Fetch any property by name and return value as a String; ex: .

Fetch any property by name and return the value as an of strings. ex: .

Fetch any property by name and return value as a Boolean; ex: .

Fetch any property by name and return value as a Float; ex: .

Fetch any property by name and return value as an Integer; ex: .

Fetch any property by name and return the value as a JSON string.

Fetch any property by name, parse it as a JSON, and then return the object.

HasRecordsInterface

Code example:

interface HasRecordsInterface {
  related_record(
    filter: RecordsFilterInput
    foreign_property: String = "id"
    join_on_property: String!
    sort: [RecordsSortInput!]
    table: [String]!
  ): Record
  related_records(
    filter: RecordsFilterInput
    foreign_property: String!
    join_on_property: String!
    limit: Int
    sort: [RecordsSortInput!]
    table: [String]!
  ): [Record!]
}

Fields

Defines has-one relation with other record; ex: .

Load resources with .

Load resources with .

Joins record with .

Defines has-many relation with other records; ex: .

Load resources with .

Load resources with .

Define the table name which should be used as a source for related records.

HasUsersInterface

Code example:

interface HasUsersInterface {
  related_user(
    filter: UsersFilterInput
    foreign_property: String = "id"
    join_on_property: String = "user_id"
    sort: [UsersSortInput!]
  ): User
  related_users(
    filter: UsersFilterInput
    foreign_property: String!
    join_on_property: String!
    limit: Int
    sort: [UsersSortInput!]
  ): [User!]
}

Fields

Defines relation with other user; ex: .

Load resources with .

Defines has-many relation with other user; ex: .

Load resources with .

Load resources with .

PropertiesInterface

Code example:

interface PropertiesInterface {
  id: ID
  properties(select: [PropertiesFieldInput!]): HashObject
  property(name: String!): String
  property_array(name: String!): [String!]
  property_boolean(name: String!): Boolean
  property_float(name: String!): Float
  property_int(name: String!): Int
  property_json(name: String!): JSONPayload
  property_object(name: String!): HashObject
  property_upload(expires_in: Int, name: String!): PropertyUpload
}

Fields

The ID of an object.

List of all properties assigned to the object.

Optional. A list of properties to return. Each item has a and an : array, boolean, float, int, json, object or string.

Fetch any property by name and return the value as a ; ex: .

Fetch any property by name and return the value as an of strings. ex: .

Fetch any property by name and return value as a ; ex: .

Fetch any property by name and return value as a ; ex: .

Fetch any property by name and return value as an ; ex: .

Fetch any property by name and return the value as a string.

Fetch any property by name, parse it as a and return the object.

Fetch any property by name and returns upload details.

Defines the number of seconds for which the generated URL will be accessible. Specifies the number of seconds for which the generated URL will be accessible. It must be set if a user sets to private.

RemoteRecordsInterface

Code example:

interface RemoteRecordsInterface {
  remote_records(endpoint: Endpoint!, join_on_property: String!): [Record!]
}

Fields

Defines a relation object accessible over HTTP in a JSON collection. The object is identified by its ID.

An endpoint that will return resources for given IDs in JSON format.

Load remote resource with .

RemoteUsersInterface

Code example:

interface RemoteUsersInterface {
  remote_users(endpoint: Endpoint!, join_on_property: String!): [User!]
}

Fields

Defines a relation object accessible over HTTP in a JSON collection. The object is identified by its ID.

An endpoint that will return resources for given ids in JSON format.

Load remote resource with .