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
Fetch any property by name and return value as a String; ex:
Fetch any property by name and return the value as an
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
Fetch any property by name and return the value as a
Fetch any property by name and return the value as an
Fetch any property by name and return value as a
Fetch any property by name and return value as a
Fetch any property by name and return value as an
Fetch any property by name and return the value as a
Fetch any property by name, parse it as a
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
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
Reference
You may visit the following resources for more information: