Quick-Archive API Reference

Documentation of the complete Quick-Archive API.

The first part describes the authorization method that needs to be used to communicate with this API.

Then some other requests are specified that do not use GraphQL.

And finally all the GraphQL queries, mutations and types are defined which form the biggest part of the API.

API Endpoints
# GraphQL Request:
https://api.quick-archive.com/query
# Admin Methods:
https://api.quick-archive.com/admin
# Document Share Link:
https://download.quick-archive.com

Authorization

This API requires authorization to use.

To be able to use this API you must have obtained following credentials:

  • API_KEY: An API key which will be transferred in plain text during each API request.
  • API_SECRET: An API secret used to sign each API request. This needs to be kept strictly confidential.

Additionally, many API methods require an authenticated user which is mentioned as a note on corresponding methods accordingly. In that case following additional parameters need to be known as well:

  • CUSTOMER_ID: The Quick-Archive customer ID the user is part of.
  • USER_LOGIN_NAME: The login name of the user that should be authenticated against the API.
  • USER_PASSWORD_SHA1: The SHA1 hash of the password of the user that should be authenticated against the API.

All these constants will be used in the following explanations.

Signing the Request

As part of the request signing process two HTTP headers will be added to the request:

  • Authorization: Contains the information about the API signature and, when needed, the user authentication. The composition of this header will be discussed further down in detail.
  • X-QA-Date: A custom header that contains the timestamp in UTC time when the request is sent in the format YYYYMMDD[T]HHmmss[Z], e. g. 20211113T173840Z. The value of this header will be referenced in the following explanations as the variable RequestDate.
Authorization Header

Depending on if the API methods requires an authenticated user there are two flavors of the Authorization header:

  • Without authenticated user:
    QA-HMAC-SHA256 API_KEY/ApiSignature
  • With authenticated user:
    QA-HMAC-SHA256 API_KEY/ApiSignature/CUSTOMER_ID/USER_LOGIN_NAME/UserPasswordSignature

The calculation of the two variables ApiSignature and UserPasswordSignature is explained in the following in pseudo code.

Calculating API Signature

First, we calculate a hash of the API secret:

ApiSecretHash = HmacSha256( ToUtf8( RequestDate ), ToUtf8( "QA" + API_SECRET ) )

Now we can calculate our signing key:

SigningKey = HmacSha256( ToUtf8( "QA-QUERY" ), ApiSecretHash )

We will use a hash of the whole request body for signing:

ContentHash = ToUpperCase( ToHex( Sha256( RequestBody ) ) )

Now we can compose the string to sign:

StringToSign = "QA-HMAC-SHA256" + RequestDate + RequestMethod + RequestPathWithQuery + ContentHash

The RequestMethod is the HTTP method (either GET or POST for this API) and the RequestPathWithQuery is the full query string starting with the / and including all query parameters.

Finally, we can calculate the API signature as following:

ApiSignature = ToUpperCase( ToHex( HmacSha256( ToUtf8( StringToSign ), ToUtf8( SigningKey ) ) ) )
Calculating User Password Signature

For the API methods that require an authenticated user the user password signature is calculated as following:

UserPasswordSignature = ToUpperCase( ToHex( HmacSha256( ToUtf8( RequestDate ), ToUtf8( "QA" + USER_PASSWORD_SHA1 ) ) ) )

Other Requests

Most part of this API uses GraphQL, but there are some other API requests which are documented in the following.

Note: These requests do not all use the same API endpoint - see list of API endpoints above.

Document Content Transfer

Binary content of documents and attachments is not transferred through this API. Instead it is exchanged directly with the cloud storage using pre-signed URLs which are requested by a GraphQL request:

  • getUploadUrl returns an URL to write content. When a new document is archived the archiveDocument request already returns the upload URL of its first revision.
  • getContentUrl returns an URL to read content.

The returned URL is then used without any of the headers described above - it carries its own authorization and expires after 15 minutes:

PUT PreSignedUrl    // Upload; requires the header x-amz-storage-class: STANDARD_IA
GET PreSignedUrl    // Download

After an upload has finished the transfer must be confirmed by the completeRevisionUpload (document revisions) or completeAttachmentUpload (attachment revisions) GraphQL request which reports the file sizes and the content hash.

Note: Requires authenticated user to obtain the pre-signed URLs. The content is AES-encrypted on the client side before it is uploaded, so it needs to be decrypted after downloading as well - the cloud storage never holds plain content.

After a document share link has been created (by createShare GraphQL request) the corresponding document can be downloaded using a HTTP GET request to following path:

/CustomerId/DbId/ShareId/share/FileName

URL parameters:

  • CustomerId: The ID of the customer.
  • DbId: The ID of the database.
  • ShareId: The ID of the document share.
  • FileName: The URL-encoded file name of the document.

Note: Information about document share links composition is provided for information only as the links are provided ready-to-use by the GraphQL API. No API authorization required to use as document share links are freely usable once created.

Admin Methods

Admin methods of the API can be called using a HTTP GET request to following path:

/admin?method=Method

Supported values for URL parameter Method:

  • clear-cache: Clears the server-side database cache.

Note: Requires global admin API key.

Queries

getAdminOverview

Description

Gets all users, groups and archives with their permissions in one call.
Returns the administration overview.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to read the administration overview.

Note: Requires authenticated user. Requires user admin rights. Password hashes are never returned; the internal system user is not listed.
Warning: Answers in 3 database queries.

Response

Returns an AdminOverview

Example

Query
query getAdminOverview {
  getAdminOverview {
    users {
      ...AdminUserFragment
    }
    groups {
      ...AdminGroupFragment
    }
    dbs {
      ...AdminDbFragment
    }
  }
}
Response
{
  "data": {
    "getAdminOverview": {
      "users": [AdminUser],
      "groups": [AdminGroup],
      "dbs": [AdminDb]
    }
  }
}

getClientStartInfo

Description

Gets client start information.

Response

Returns a ClientStartInfo

Example

Query
query getClientStartInfo {
  getClientStartInfo {
    dbServerHostName
    cloudStorageRegion
  }
}
Response
{
  "data": {
    "getClientStartInfo": {
      "dbServerHostName": "server-host.name",
      "cloudStorageRegion": "eu-north-1"
    }
  }
}

getContentUrl

Description

Gets a pre-signed URL to read document or attachment content directly from the cloud storage.
Returns the pre-signed URL on success, otherwise null (a document revision without annotations was requested with annotations).

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • REVISION_ARGUMENTS_INVALID: Exactly one of the document revision ID and the attachment revision ID has to be provided.
  • DOCUMENT_REVISION_NOT_FOUND: The document revision with the specified ID could not be found.
  • ATTACHMENT_REVISION_NOT_FOUND: The attachment revision with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the document.

Note: Requires authenticated user. Exactly one of documentRevisionId and attachmentRevisionId has to be provided. The URL answers HTTPS GET requests and expires after 15 minutes.

Response

Returns a ContentUrl

Arguments
Name Description
dbId - ID! The id of the database.
documentRevisionId - ID The id of the document revision to read.
attachmentRevisionId - ID The id of the attachment revision to read.
annotations - Boolean Defines whether the annotations of the document revision are read instead of the document revision itself (ignored for attachment revisions). Default = false

Example

Query
query getContentUrl(
  $dbId: ID!,
  $documentRevisionId: ID,
  $attachmentRevisionId: ID,
  $annotations: Boolean
) {
  getContentUrl(
    dbId: $dbId,
    documentRevisionId: $documentRevisionId,
    attachmentRevisionId: $attachmentRevisionId,
    annotations: $annotations
  ) {
    url
    expiresAt
  }
}
Variables
{
  "dbId": "30f8cd41b02d",
  "documentRevisionId": "5c5e8d83fd81",
  "attachmentRevisionId": "5c5e8d83fd81",
  "annotations": false
}
Response
{
  "data": {
    "getContentUrl": {
      "url": "xyz789",
      "expiresAt": "2023-09-23T16:34:25"
    }
  }
}

getDbStatistics

Description

Gets the numbers of the database statistics of an archive.
Returns the statistics of the archive.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.

Note: Requires authenticated user. The numbers are not permission filtered, exactly as the statistics dialog of the client shows them.
Warning: Answers in 7 database queries and reads whole tables; it is meant for the statistics dialog, not for a hot path.

Response

Returns a DbStatistics

Arguments
Name Description
dbId - ID! The id of the database.

Example

Query
query getDbStatistics($dbId: ID!) {
  getDbStatistics(dbId: $dbId) {
    dbId
    title
    documentCount
    documentRevisionCount
    documentPageCount
    documentFileSize
    documentContentTextLength
    metaDataCount
    folderCount
    itemCount
    attachmentCount
    attachmentRevisionCount
    attachmentPageCount
    attachmentFileSize
  }
}
Variables
{"dbId": "9740afcd5e65"}
Response
{
  "data": {
    "getDbStatistics": {
      "dbId": "6bc43b50cce0",
      "title": "abc123",
      "documentCount": -9049124290990832000,
      "documentRevisionCount": -9049124290990832000,
      "documentPageCount": -9049124290990832000,
      "documentFileSize": -9049124290990832000,
      "documentContentTextLength": -9049124290990832000,
      "metaDataCount": -9049124290990832000,
      "folderCount": -9049124290990832000,
      "itemCount": -9049124290990832000,
      "attachmentCount": -9049124290990832000,
      "attachmentRevisionCount": -9049124290990832000,
      "attachmentPageCount": -9049124290990832000,
      "attachmentFileSize": -9049124290990832000
    }
  }
}

getDbWorkspace

Description

Gets the archive bootstrap: document types, meta fields, keywords, stamps, tags, expiration templates, quick access entries and search patterns of one archive.
Returns the workspace of the archive.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.

Note: Requires authenticated user. Answers in 10 database queries. schemaVersion is the archive schema version this server supports and is meant to be compared with the version the client expects.

Response

Returns a DbWorkspace

Arguments
Name Description
dbId - ID! The id of the database.

Example

Query
query getDbWorkspace($dbId: ID!) {
  getDbWorkspace(dbId: $dbId) {
    dbId
    rootFolderId
    recycleBinId
    schemaVersion
    documentTypes {
      ...DocumentTypeInfoFragment
    }
    metaFields {
      ...MetaFieldInfoFragment
    }
    keywords {
      ...KeywordInfoFragment
    }
    stamps {
      ...StampInfoFragment
    }
    tags {
      ...DocumentTagInfoFragment
    }
    expirationTemplates {
      ...ExpirationTemplateInfoFragment
    }
    quickAccess {
      ...QuickAccessInfoFragment
    }
    searchPatterns {
      ...SearchPatternInfoFragment
    }
  }
}
Variables
{"dbId": "0201527bb590"}
Response
{
  "data": {
    "getDbWorkspace": {
      "dbId": "18e4bba85568",
      "rootFolderId": "f5234999-3fc5-4ce9-a90a-f3f80f4b10e5",
      "recycleBinId": "8578b62c-dff2-4f51-87de-98268f783254",
      "schemaVersion": 460775715,
      "documentTypes": [DocumentTypeInfo],
      "metaFields": [MetaFieldInfo],
      "keywords": [KeywordInfo],
      "stamps": [StampInfo],
      "tags": [DocumentTagInfo],
      "expirationTemplates": [ExpirationTemplateInfo],
      "quickAccess": [QuickAccessInfo],
      "searchPatterns": [SearchPatternInfo]
    }
  }
}

getDocumentDetail

Description

Gets everything the document detail panels show in one call.
Returns the detail of the requested document.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the document.

Note: Requires authenticated user. Answers in 12 database queries. reminders and shares are scoped to the authenticated user, exactly as the client shows them — except that an administrator receives every user's reminders, matching the reminders deleteReminder lets an administrator delete. rowVersion is the value the editing mutations expect as expectedVersion.

Response

Returns a DocumentDetail

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.

Example

Query
query getDocumentDetail(
  $dbId: ID!,
  $documentId: Guid!
) {
  getDocumentDetail(
    dbId: $dbId,
    documentId: $documentId
  ) {
    id
    name
    fileExtension
    createdUtc
    lastChangedUtc
    createdUserName
    documentTypeId
    documentTypeName
    pageCount
    ocrUsed
    hasContentText
    hasOriginalText
    canEdit
    canDelete
    rowVersion
    path {
      ...PathSegmentFragment
    }
    latestRevision {
      ...DocumentRevisionInfoFragment
    }
    revisions {
      ...DocumentRevisionInfoFragment
    }
    metaData {
      ...MetaDataInfoFragment
    }
    keywords {
      ...KeywordInfoFragment
    }
    comments {
      ...CommentInfoFragment
    }
    links {
      ...LinkedItemFragment
    }
    attachments {
      ...AttachmentInfoFragment
    }
    expiration {
      ...ExpirationInfoFragment
    }
    reminders {
      ...ReminderInfoFragment
    }
    shares {
      ...ShareInfoFragment
    }
    isQuickAccess
  }
}
Variables
{"dbId": "b955874c2c3e", "documentId": "81b6db58-ab01-4fc4-8d57-6d439e54e02f"}
Response
{
  "data": {
    "getDocumentDetail": {
      "id": "47adf8e6-d867-464a-89e1-626a82fecba3",
      "name": "xyz789",
      "fileExtension": "pdf",
      "createdUtc": "2018-01-05T15:34:51",
      "lastChangedUtc": "2019-01-01T08:02:09",
      "createdUserName": "abc123",
      "documentTypeId": "7bac66ca-9b8a-4b17-9d17-56456c9c8e91",
      "documentTypeName": "abc123",
      "pageCount": 1,
      "ocrUsed": true,
      "hasContentText": true,
      "hasOriginalText": true,
      "canEdit": true,
      "canDelete": false,
      "rowVersion": -9049124290990832000,
      "path": [PathSegment],
      "latestRevision": DocumentRevisionInfo,
      "revisions": [DocumentRevisionInfo],
      "metaData": [MetaDataInfo],
      "keywords": [KeywordInfo],
      "comments": [CommentInfo],
      "links": [LinkedItem],
      "attachments": [AttachmentInfo],
      "expiration": ExpirationInfo,
      "reminders": [ReminderInfo],
      "shares": [ShareInfo],
      "isQuickAccess": false
    }
  }
}

getDocumentTypeDocumentCount

Description

Gets the number of documents of a document type.
Returns the number of documents having the document type.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to read the document counts of the archive definition data.

Note: Requires authenticated user. Requires user admin rights. It is the number the meta field editor warns with before the document type is deleted.
Warning: Answers in 1 database query. A document type that does not exist answers 0.

Response

Returns an Int

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type.

Example

Query
query getDocumentTypeDocumentCount(
  $dbId: ID!,
  $documentTypeId: Guid!
) {
  getDocumentTypeDocumentCount(
    dbId: $dbId,
    documentTypeId: $documentTypeId
  )
}
Variables
{
  "dbId": "67008fc05b3a",
  "documentTypeId": "3d43d1cd-cdaa-4842-90ee-20a392911fdc"
}
Response
{"data": {"getDocumentTypeDocumentCount": 460775715}}

getExpirations

Description

Gets all expirations the authenticated user created in an archive.
Returns the expirations of the authenticated user, the latest expiration date first.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.

Note: Requires authenticated user. Mirrors the expiration panel of the client, which lists the expirations of their creator and not the expirations of the documents the user may see.
Warning: Answers in 2 database queries.

Response

Returns [ExpirationOverview]

Arguments
Name Description
dbId - ID! The id of the database.

Example

Query
query getExpirations($dbId: ID!) {
  getExpirations(dbId: $dbId) {
    id
    documentId
    documentName
    documentFileExtension
    expireUtc
    preventChange
    actionKind
    createdUtc
    createdUserId
    createdUserName
    documentCreatedUtc
    documentLastChangedUtc
    documentCreatedUserName
    documentLastChangedUserName
  }
}
Variables
{"dbId": "1dd5126a4352"}
Response
{
  "data": {
    "getExpirations": [
      {
        "id": "c7b68451-db67-4a40-81d1-c740f412d45f",
        "documentId": "bd23f816-af42-49fb-84b2-acbb2c4f6156",
        "documentName": "abc123",
        "documentFileExtension": "xyz789",
        "expireUtc": "2009-02-16T04:53:10",
        "preventChange": false,
        "actionKind": 460775715,
        "createdUtc": "2020-03-19T02:43:13",
        "createdUserId": "04c399a4-6379-45ce-bcc2-ac3b2d9454b2",
        "createdUserName": "xyz789",
        "documentCreatedUtc": "2000-11-21T12:33:31",
        "documentLastChangedUtc": "2024-09-20T22:31:53",
        "documentCreatedUserName": "abc123",
        "documentLastChangedUserName": "xyz789"
      }
    ]
  }
}

getFolderView

Description

Gets a folder, its breadcrumb path and a page of its children in one call.
Returns the folder view of the requested folder.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • FOLDER_NOT_FOUND: The folder with the specified ID could not be found.
  • FOLDER_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the folder.

Note: Requires authenticated user. Answers in 9 database queries. canEdit and canDelete are the permissions of the item itself; combine them with the canEdit of the archive from getWorkspace.

Response

Returns a FolderView

Arguments
Name Description
dbId - ID! The id of the database.
folderId - ID The id of the folder. If omitted the document root is used.
skip - Int The number of children to skip.
take - Int The number of children to return. If omitted or not positive all children are returned.

Example

Query
query getFolderView(
  $dbId: ID!,
  $folderId: ID,
  $skip: Int,
  $take: Int
) {
  getFolderView(
    dbId: $dbId,
    folderId: $folderId,
    skip: $skip,
    take: $take
  ) {
    folder {
      ...FolderInfoFragment
    }
    totalCount
    children {
      ...ItemRowFragment
    }
  }
}
Variables
{
  "dbId": "2dff7396e38f",
  "folderId": "5c5e8d83fd81",
  "skip": 460775715,
  "take": 460775715
}
Response
{
  "data": {
    "getFolderView": {
      "folder": FolderInfo,
      "totalCount": 460775715,
      "children": [ItemRow]
    }
  }
}

getItemPath

Description

Gets the breadcrumb path of an item.
Returns the path segments from the root folder down to and including the item itself.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the item.

Note: Requires authenticated user.

Response

Returns [PathSegment]

Arguments
Name Description
dbId - ID! The id of the database.
itemId - Guid! The id of the item.

Example

Query
query getItemPath(
  $dbId: ID!,
  $itemId: Guid!
) {
  getItemPath(
    dbId: $dbId,
    itemId: $itemId
  ) {
    id
    name
  }
}
Variables
{"dbId": "ad4a4dd97ea0", "itemId": "01876352-779c-4bf2-a16d-8b101cbea0a4"}
Response
{
  "data": {
    "getItemPath": [
      {
        "id": "24e45923-8c03-4058-8fb8-650c26fa326e",
        "name": "abc123"
      }
    ]
  }
}

getItemPermissions

Description

Gets the permission entries of an item.
Returns the permission entries; an empty list means everyone has access.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the item.

Note: Requires authenticated user.

Response

Returns [ItemPermission]

Arguments
Name Description
dbId - ID! The id of the database.
itemId - Guid! The id of the item.

Example

Query
query getItemPermissions(
  $dbId: ID!,
  $itemId: Guid!
) {
  getItemPermissions(
    dbId: $dbId,
    itemId: $itemId
  ) {
    id
    userId
    groupId
    dataRead
    dataEdit
    dataDelete
    dataExport
    changePermission
    inherited
  }
}
Variables
{"dbId": "41730ae4d1ec", "itemId": "08e68fe8-e6f4-4563-8e03-d5c1243ef00e"}
Response
{
  "data": {
    "getItemPermissions": [
      {
        "id": "18fd1b72-3227-4959-b18b-7cc4c4f6d243",
        "userId": "29d0445d-2c08-4bb4-a493-627a2e8f9a8d",
        "groupId": "19bdba0c-9407-468a-820a-dc0c0bfaaa4b",
        "dataRead": true,
        "dataEdit": true,
        "dataDelete": true,
        "dataExport": false,
        "changePermission": false,
        "inherited": true
      }
    ]
  }
}

getItemRow

Description

Gets one folder listing row.
Returns the row of the requested item.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the item.

Note: Requires authenticated user. Refreshes a single row after an edit without reloading the whole folder view.

Response

Returns an ItemRow

Arguments
Name Description
dbId - ID! The id of the database.
itemId - Guid! The id of the item.

Example

Query
query getItemRow(
  $dbId: ID!,
  $itemId: Guid!
) {
  getItemRow(
    dbId: $dbId,
    itemId: $itemId
  ) {
    id
    kind
    name
    createdUtc
    lastChangedUtc
    createdUserName
    lastChangedUserName
    fileExtension
    documentTypeName
    fileSize
    subCount
    tagId
    color
    canEdit
    canDelete
    deleteProtected
    hasShare
    rowVersion
    metaValues {
      ...MetaValueFragment
    }
  }
}
Variables
{"dbId": "b1e0dd6f472f", "itemId": "44328d01-23cf-4b42-8a74-e888e04885cc"}
Response
{
  "data": {
    "getItemRow": {
      "id": "28080e7b-72f2-4845-83b6-bda5d93a793b",
      "kind": "FOLDER",
      "name": "xyz789",
      "createdUtc": "2019-07-12T10:08:51",
      "lastChangedUtc": "2015-09-14T14:17:16",
      "createdUserName": "abc123",
      "lastChangedUserName": "abc123",
      "fileExtension": "pdf",
      "documentTypeName": "abc123",
      "fileSize": 8187330,
      "subCount": 460775715,
      "tagId": "5c5e8d83fd81",
      "color": -15428477,
      "canEdit": true,
      "canDelete": true,
      "deleteProtected": false,
      "hasShare": true,
      "rowVersion": -9049124290990832000,
      "metaValues": [MetaValue]
    }
  }
}

getKeywordDocumentCount

Description

Gets the number of documents a keyword is used by.
Returns the number of documents the keyword is assigned to.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to read the document counts of the archive definition data.

Note: Requires authenticated user. Requires user admin rights. It is the number the keyword editor warns with before the keyword is deleted.
Warning: Answers in 1 database query. A keyword that does not exist answers 0.

Response

Returns an Int

Arguments
Name Description
dbId - ID! The id of the database.
keywordId - Guid! The id of the keyword.

Example

Query
query getKeywordDocumentCount(
  $dbId: ID!,
  $keywordId: Guid!
) {
  getKeywordDocumentCount(
    dbId: $dbId,
    keywordId: $keywordId
  )
}
Variables
{"dbId": "958ec1d13586", "keywordId": "584cdbc1-9bcd-4944-be7f-cb5fb5b5be3f"}
Response
{"data": {"getKeywordDocumentCount": 460775715}}

getMetaFieldDocumentCount

Description

Gets the number of documents a meta field carries data for.
Returns the number of documents having meta data of the meta field.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to read the document counts of the archive definition data.

Note: Requires authenticated user. Requires user admin rights. It is the number the meta field editor warns with before the meta field is deleted, because deleting a meta field deletes its meta data.
Warning: Answers in 1 database query. A meta field that does not exist answers 0.

Response

Returns an Int

Arguments
Name Description
dbId - ID! The id of the database.
metaFieldId - Guid! The id of the meta field.

Example

Query
query getMetaFieldDocumentCount(
  $dbId: ID!,
  $metaFieldId: Guid!
) {
  getMetaFieldDocumentCount(
    dbId: $dbId,
    metaFieldId: $metaFieldId
  )
}
Variables
{"dbId": "819b5b6c4ec6", "metaFieldId": "f48e3065-b4ad-4151-a762-229b227ca2e8"}
Response
{"data": {"getMetaFieldDocumentCount": 460775715}}

getReminders

Description

Gets all reminders of the authenticated user in an archive.
Returns the reminders of the authenticated user, the latest reminder date first.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.

Note: Requires authenticated user. A reminder belongs to the user who created it, which is the set the reminder panel of the client shows.
Warning: Answers in 2 database queries.

Response

Returns [ReminderOverview]

Arguments
Name Description
dbId - ID! The id of the database.

Example

Query
query getReminders($dbId: ID!) {
  getReminders(dbId: $dbId) {
    id
    documentId
    documentName
    documentFileExtension
    remindUtc
    preRemindUtc
    done
    text
    createdUtc
    createdUserId
    createdUserName
    documentCreatedUtc
    documentLastChangedUtc
    documentCreatedUserName
    documentLastChangedUserName
  }
}
Variables
{"dbId": "74f41004ecf8"}
Response
{
  "data": {
    "getReminders": [
      {
        "id": "1b740514-8ace-496b-9aab-5c860c8392db",
        "documentId": "4e9d8815-4d87-47d6-9a5b-11543d0ea2e3",
        "documentName": "abc123",
        "documentFileExtension": "abc123",
        "remindUtc": "2016-04-19T14:53:40",
        "preRemindUtc": "2010-05-06T03:28:35",
        "done": false,
        "text": "xyz789",
        "createdUtc": "2010-05-19T20:20:57",
        "createdUserId": "81900ac2-2809-42f9-bc65-eeee4ed8cbef",
        "createdUserName": "abc123",
        "documentCreatedUtc": "2019-07-08T02:12:42",
        "documentLastChangedUtc": "2014-11-30T19:50:40",
        "documentCreatedUserName": "abc123",
        "documentLastChangedUserName": "abc123"
      }
    ]
  }
}

getShares

Description

Gets all shares the authenticated user created in an archive.
Returns the shares of the authenticated user, by document name.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.

Note: Requires authenticated user. Expired shares are listed as well, exactly as the share panel of the client shows them.
Warning: Answers in 2 database queries.

Response

Returns [ShareOverview]

Arguments
Name Description
dbId - ID! The id of the database.

Example

Query
query getShares($dbId: ID!) {
  getShares(dbId: $dbId) {
    id
    documentId
    documentName
    documentFileExtension
    createdUtc
    expireUtc
    createdUserId
    createdUserName
    url
    documentCreatedUtc
    documentLastChangedUtc
    documentCreatedUserName
    documentLastChangedUserName
  }
}
Variables
{"dbId": "3cd1f57834ce"}
Response
{
  "data": {
    "getShares": [
      {
        "id": "24c7f398-fd3d-4a8a-b042-368f27077dc9",
        "documentId": "e006acd5-6a87-4002-80a6-4aecce3c3de1",
        "documentName": "abc123",
        "documentFileExtension": "abc123",
        "createdUtc": "2014-09-27T12:53:25",
        "expireUtc": "2013-07-31T07:58:50",
        "createdUserId": "aa3a30a4-ed39-4ab3-95f3-badb84631c5f",
        "createdUserName": "abc123",
        "url": "xyz789",
        "documentCreatedUtc": "2026-03-14T05:44:47",
        "documentLastChangedUtc": "2003-10-03T09:54:36",
        "documentCreatedUserName": "abc123",
        "documentLastChangedUserName": "xyz789"
      }
    ]
  }
}

getTaggedItems

Description

Gets the items carrying a document tag.
Returns the rows of the tagged items, folders first and then by name.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the item.

Note: Requires authenticated user. The rows are the rows of getFolderView. Unlike the tag panel of the client the rows are permission filtered, so a user never sees an item of a folder that is not theirs.
Warning: Answers in 7 database queries and is not paged.

Response

Returns [ItemRow]

Arguments
Name Description
dbId - ID! The id of the database.
tagId - ID The id of the document tag. If omitted all items carrying any document tag are returned.

Example

Query
query getTaggedItems(
  $dbId: ID!,
  $tagId: ID
) {
  getTaggedItems(
    dbId: $dbId,
    tagId: $tagId
  ) {
    id
    kind
    name
    createdUtc
    lastChangedUtc
    createdUserName
    lastChangedUserName
    fileExtension
    documentTypeName
    fileSize
    subCount
    tagId
    color
    canEdit
    canDelete
    deleteProtected
    hasShare
    rowVersion
    metaValues {
      ...MetaValueFragment
    }
  }
}
Variables
{
  "dbId": "d559d6fd703a",
  "tagId": "5c5e8d83fd81"
}
Response
{
  "data": {
    "getTaggedItems": [
      {
        "id": "28080e7b-72f2-4845-83b6-bda5d93a793b",
        "kind": "FOLDER",
        "name": "xyz789",
        "createdUtc": "2019-07-12T10:08:51",
        "lastChangedUtc": "2015-09-14T14:17:16",
        "createdUserName": "xyz789",
        "lastChangedUserName": "xyz789",
        "fileExtension": "pdf",
        "documentTypeName": "xyz789",
        "fileSize": 8187330,
        "subCount": 460775715,
        "tagId": "5c5e8d83fd81",
        "color": -15428477,
        "canEdit": false,
        "canDelete": false,
        "deleteProtected": true,
        "hasShare": false,
        "rowVersion": -9049124290990832000,
        "metaValues": [MetaValue]
      }
    ]
  }
}

getTreeChildren

Description

Gets the child nodes of one item tree node.
Returns the child nodes, folders first and then by name.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the item.

Note: Requires authenticated user. Answers in 3 database queries (4 with parentId). Folders and documents are returned; subCount is the number of children of the node and is not permission filtered, exactly as the tree shows it today.

Response

Returns [TreeChild]

Arguments
Name Description
dbId - ID! The id of the database.
parentId - Guid The id of the parent item. If omitted the root nodes (document root and recycle bin) are returned.

Example

Query
query getTreeChildren(
  $dbId: ID!,
  $parentId: Guid
) {
  getTreeChildren(
    dbId: $dbId,
    parentId: $parentId
  ) {
    id
    kind
    name
    subCount
    tagId
    color
  }
}
Variables
{"dbId": "c7b464a29ade", "parentId": "61e4f526-b15b-45cb-b8f1-af91bf1c1d14"}
Response
{
  "data": {
    "getTreeChildren": [
      {
        "id": "734f2370-e4c0-440e-9d73-78e0d76b3387",
        "kind": "FOLDER",
        "name": "abc123",
        "subCount": 460775715,
        "tagId": "5c5e8d83fd81",
        "color": -7972490
      }
    ]
  }
}

getUploadUrl

Description

Gets a pre-signed URL to write document or attachment content directly to the cloud storage.
Returns the pre-signed URL on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • REVISION_ARGUMENTS_INVALID: Exactly one of the document revision ID and the attachment revision ID has to be provided.
  • DOCUMENT_REVISION_NOT_FOUND: The document revision with the specified ID could not be found.
  • ATTACHMENT_REVISION_NOT_FOUND: The attachment revision with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.

Note: Requires authenticated user. Exactly one of documentRevisionId and attachmentRevisionId has to be provided. The URL answers HTTPS PUT requests, expires after 15 minutes and requires the header x-amz-storage-class: STANDARD_IA to be sent.

Response

Returns a ContentUrl

Arguments
Name Description
dbId - ID! The id of the database.
documentRevisionId - ID The id of the document revision to write.
attachmentRevisionId - ID The id of the attachment revision to write.
annotations - Boolean Whether the annotation variant of the document revision is written. Default = false

Example

Query
query getUploadUrl(
  $dbId: ID!,
  $documentRevisionId: ID,
  $attachmentRevisionId: ID,
  $annotations: Boolean
) {
  getUploadUrl(
    dbId: $dbId,
    documentRevisionId: $documentRevisionId,
    attachmentRevisionId: $attachmentRevisionId,
    annotations: $annotations
  ) {
    url
    expiresAt
  }
}
Variables
{
  "dbId": "a7f9110cdb12",
  "documentRevisionId": "5c5e8d83fd81",
  "attachmentRevisionId": "5c5e8d83fd81",
  "annotations": false
}
Response
{
  "data": {
    "getUploadUrl": {
      "url": "abc123",
      "expiresAt": "2023-09-23T16:34:25"
    }
  }
}

getWindowsClientUpdates

Description

Gets all Windows client updates in specified language.

Response

Returns a ClientUpdates

Arguments
Name Description
languageCode - String! The LCID string of the requested language (currently only en-US supported).
version - String Changes starting from this Version should be returned. If Omitted changes from all versions are returned.
betaVersion - Boolean Indicates if starting version is a beta version.

Example

Query
query getWindowsClientUpdates(
  $languageCode: String!,
  $version: String,
  $betaVersion: Boolean
) {
  getWindowsClientUpdates(
    languageCode: $languageCode,
    version: $version,
    betaVersion: $betaVersion
  ) {
    updates {
      ...ClientUpdateFragment
    }
    downloadUrl
    downloadUrlBeta
  }
}
Variables
{"languageCode": "en-US", "version": "6.6.1", "betaVersion": true}
Response
{
  "data": {
    "getWindowsClientUpdates": {
      "updates": [ClientUpdate],
      "downloadUrl": "https://www.quick-archive.com/download/Quick-Archive.exe",
      "downloadUrlBeta": "https://www.quick-archive.com/download/Quick-Archive-Beta.exe"
    }
  }
}

getWorkspace

Description

Gets the login bootstrap: the authenticated user, the archives the user may open and the server time.
Returns the workspace of the authenticated user.

Note: Requires authenticated user. Answers in 2 database queries.

Response

Returns a Workspace

Example

Query
query getWorkspace {
  getWorkspace {
    user {
      ...WorkspaceUserFragment
    }
    dbs {
      ...WorkspaceDbFragment
    }
    serverTimeUtc
  }
}
Response
{
  "data": {
    "getWorkspace": {
      "user": WorkspaceUser,
      "dbs": [WorkspaceDb],
      "serverTimeUtc": "2007-07-17T10:26:44"
    }
  }
}

searchDocuments

Description

Searches documents and returns one page of hits.
Returns the requested page of hits together with the total number of hits.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • SEARCH_QUERY_INVALID: The search query is empty or could not be parsed.
  • FOLDER_NOT_FOUND: The folder with the specified ID could not be found.

Note: Requires authenticated user. The rows are the rows of getFolderView. Search text and permissions are evaluated in the database, so totalCount and paging are exact. A search for a document id is permission filtered as well.

Response

Returns a SearchResult

Arguments
Name Description
dbId - ID! The id of the database.
query - String! The search query.
options - Int! The combined SearchOptionKind flags as integer value (1 document title, 2 document content).
onlyBelowFolderId - Guid If this folder id is provided only documents below and including this folder are searched.
skip - Int The number of hits to skip.
take - Int The number of hits to return. If omitted or not positive all hits are returned.

Example

Query
query searchDocuments(
  $dbId: ID!,
  $query: String!,
  $options: Int!,
  $onlyBelowFolderId: Guid,
  $skip: Int,
  $take: Int
) {
  searchDocuments(
    dbId: $dbId,
    query: $query,
    options: $options,
    onlyBelowFolderId: $onlyBelowFolderId,
    skip: $skip,
    take: $take
  ) {
    totalCount
    items {
      ...ItemRowFragment
    }
  }
}
Variables
{
  "dbId": "22017a0e2409",
  "query": "xyz789",
  "options": 460775715,
  "onlyBelowFolderId": "2b2b5d61-efda-432e-8a6b-f4172ccc2f9a",
  "skip": 460775715,
  "take": 460775715
}
Response
{
  "data": {
    "searchDocuments": {
      "totalCount": 460775715,
      "items": [ItemRow]
    }
  }
}

Mutations

addDocumentKeyword

Description

Adds a keyword to a document.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • KEYWORD_NOT_FOUND: The keyword with the specified ID could not be found.
  • KEYWORD_ALREADY_ASSIGNED: The keyword with the specified ID is already assigned to the document.

Note: Requires authenticated user.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
keywordId - Guid! The id of the keyboard to be added.

Example

Query
mutation addDocumentKeyword(
  $dbId: ID!,
  $documentId: Guid!,
  $keywordId: Guid!
) {
  addDocumentKeyword(
    dbId: $dbId,
    documentId: $documentId,
    keywordId: $keywordId
  )
}
Variables
{
  "dbId": "557f51cd57de",
  "documentId": "7b7ae12c-6a87-4823-b9b3-b031cac9467f",
  "keywordId": "3e114e4a-b75c-43c2-aefa-6ed4a38ada9a"
}
Response
{"data": {"addDocumentKeyword": true}}

addDocumentTypeMetaField

Description

Adds a meta field to a document type.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to add a meta field to a document type.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.
  • META_FIELD_ALREADY_ASSIGNED: The meta field with the specified ID is already assigned to the document type.

Note: Requires authenticated user. Requires user admin rights.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type.
metaFieldId - Guid! The id of the meta field to be added.

Example

Query
mutation addDocumentTypeMetaField(
  $dbId: ID!,
  $documentTypeId: Guid!,
  $metaFieldId: Guid!
) {
  addDocumentTypeMetaField(
    dbId: $dbId,
    documentTypeId: $documentTypeId,
    metaFieldId: $metaFieldId
  )
}
Variables
{
  "dbId": "5a4c7adbc86b",
  "documentTypeId": "d20db5ef-2baf-49ce-8a2e-72747ce1497e",
  "metaFieldId": "b8f3d4d4-8913-45b7-9a3c-df54ed17f79d"
}
Response
{"data": {"addDocumentTypeMetaField": false}}

archiveDocument

Description

Archives a new document and returns the pre-signed URL its content is uploaded to.
Returns the new document together with its first revision and the upload URL.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • PARENT_FOLDER_NOT_FOUND: The parent folder with the specified ID could not be found.
  • PARENT_FOLDER_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the parent folder.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • META_FIELD_NOT_FOUND: A meta field with the specified ID could not be found.
  • META_FIELD_VALUE_NOT_FOUND: A meta field value with the specified ID could not be found or does not belong to the meta field.
  • KEYWORD_NOT_FOUND: A keyword with the specified ID could not be found.
  • ARCHIVED_DOCUMENT_NOT_FOUND: The document of an earlier archiving request with the same client request ID does not exist any more.
  • CLOUD_STORAGE_NOT_AVAILABLE: The cloud storage is not available.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. The document, its first revision, its meta data and its keywords are written in one transaction. The URL answers HTTPS PUT requests, expires after 15 minutes and requires the header x-amz-storage-class: STANDARD_IA to be sent; call completeRevisionUpload afterwards, which only has to send the file sizes and the hash. Repeating the call with the same clientRequestId returns the document created the first time (with a fresh URL) instead of archiving it twice.
Warning: The idempotency of clientRequestId is kept in the memory of the server process and expires after one hour.

Response

Returns a DocumentArchived

Arguments
Name Description
dbId - ID! The id of the database.
parentId - Guid! The id of the parent folder the new document is placed below.
name - String! The name of the new document without its file extension.
fileExtension - String! The file extension of the new document.
ocrUsed - Boolean! Defines whether OCR was used to detect the content text. If it was not and a content text is provided, the document is marked as having original text.
hasOriginalText - Boolean Overrides whether the original file has text of its own. If omitted it is derived from ocrUsed and contentText.
contentText - String The content text of the new document.
pageCount - Int The page count of the new document.
originalFileName - String The file name of the original file.
originalCreatedUtc - DateTime The creation date of the original file in UTC.
originalLastChangedUtc - DateTime The date the original file was last changed in UTC.
documentTypeId - Guid The id of the document type of the new document. If omitted the default document type is used.
metaData - [MetaDataInput!] The meta data values of the new document.
keywords - [Guid!] The ids of the keywords of the new document.
clientRequestId - Guid! A client generated id identifying this archiving request. A retry has to send the same id.

Example

Query
mutation archiveDocument(
  $dbId: ID!,
  $parentId: Guid!,
  $name: String!,
  $fileExtension: String!,
  $ocrUsed: Boolean!,
  $hasOriginalText: Boolean,
  $contentText: String,
  $pageCount: Int,
  $originalFileName: String,
  $originalCreatedUtc: DateTime,
  $originalLastChangedUtc: DateTime,
  $documentTypeId: Guid,
  $metaData: [MetaDataInput!],
  $keywords: [Guid!],
  $clientRequestId: Guid!
) {
  archiveDocument(
    dbId: $dbId,
    parentId: $parentId,
    name: $name,
    fileExtension: $fileExtension,
    ocrUsed: $ocrUsed,
    hasOriginalText: $hasOriginalText,
    contentText: $contentText,
    pageCount: $pageCount,
    originalFileName: $originalFileName,
    originalCreatedUtc: $originalCreatedUtc,
    originalLastChangedUtc: $originalLastChangedUtc,
    documentTypeId: $documentTypeId,
    metaData: $metaData,
    keywords: $keywords,
    clientRequestId: $clientRequestId
  ) {
    documentId
    documentRevisionId
    createdUtc
    uploadUrl
    uploadUrlExpiresAt
  }
}
Variables
{
  "dbId": "8e3c718d6314",
  "parentId": "49a1119d-1520-453a-bb4b-9da91bf0e1d7",
  "name": "abc123",
  "fileExtension": "pdf",
  "ocrUsed": true,
  "hasOriginalText": false,
  "contentText": "xyz789",
  "pageCount": 34,
  "originalFileName": "xyz789",
  "originalCreatedUtc": "2005-02-24T04:06:17",
  "originalLastChangedUtc": "2024-10-19T11:02:31",
  "documentTypeId": "cb62c7b1-9fd5-4284-a578-2a2c730b6c60",
  "metaData": [MetaDataInput],
  "keywords": "6e7d7679-38a6-4285-92fe-2af93e1f24c3",
  "clientRequestId": "5bf011e7-739d-4fa1-b722-56b577806feb"
}
Response
{
  "data": {
    "archiveDocument": {
      "documentId": "c47e7452-f1e1-4fc0-8c3d-6b177054f872",
      "documentRevisionId": "dcb09948-8932-494e-afed-638306bceee0",
      "createdUtc": "2009-10-21T20:27:28",
      "uploadUrl": "abc123",
      "uploadUrlExpiresAt": "2017-07-14T19:59:27"
    }
  }
}

completeAttachmentUpload

Description

Finalizes an attachment revision after its content was uploaded.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ATTACHMENT_REVISION_NOT_FOUND: The attachment revision with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
attachmentRevisionId - Guid! The id of the attachment revision.
archivedLength - Long! The length of the uploaded (encrypted) content in bytes.
dataHash - String! The hash of the uploaded content.
originalLength - Long! The length of the original file in bytes.

Example

Query
mutation completeAttachmentUpload(
  $dbId: ID!,
  $attachmentRevisionId: Guid!,
  $archivedLength: Long!,
  $dataHash: String!,
  $originalLength: Long!
) {
  completeAttachmentUpload(
    dbId: $dbId,
    attachmentRevisionId: $attachmentRevisionId,
    archivedLength: $archivedLength,
    dataHash: $dataHash,
    originalLength: $originalLength
  )
}
Variables
{
  "dbId": "712b597e20a3",
  "attachmentRevisionId": "2e311957-2942-4a1a-a3dd-794bfc5cd7e5",
  "archivedLength": -9049124290990832000,
  "dataHash": "xyz789",
  "originalLength": -9049124290990832000
}
Response
{"data": {"completeAttachmentUpload": false}}

completeRevisionUpload

Description

Finalizes a document revision after its content was uploaded.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_REVISION_NOT_FOUND: The document revision with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. contentText, ocrUsed and pageCount update the document itself and are only written when provided; a revision created by archiveDocument carries them already.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentRevisionId - Guid! The id of the document revision.
archivedLength - Long! The length of the uploaded (encrypted) content in bytes.
dataHash - String! The hash of the uploaded content.
originalLength - Long! The length of the original content in bytes.
contentText - String The content text of the document.
ocrUsed - Boolean Defines whether OCR was used to detect the content text.
pageCount - Int The page count of the document.

Example

Query
mutation completeRevisionUpload(
  $dbId: ID!,
  $documentRevisionId: Guid!,
  $archivedLength: Long!,
  $dataHash: String!,
  $originalLength: Long!,
  $contentText: String,
  $ocrUsed: Boolean,
  $pageCount: Int
) {
  completeRevisionUpload(
    dbId: $dbId,
    documentRevisionId: $documentRevisionId,
    archivedLength: $archivedLength,
    dataHash: $dataHash,
    originalLength: $originalLength,
    contentText: $contentText,
    ocrUsed: $ocrUsed,
    pageCount: $pageCount
  )
}
Variables
{
  "dbId": "15e509f71650",
  "documentRevisionId": "6eefa8f6-9b90-4028-b9e3-4cfbc5fa24d0",
  "archivedLength": -9049124290990832000,
  "dataHash": "abc123",
  "originalLength": -9049124290990832000,
  "contentText": "xyz789",
  "ocrUsed": false,
  "pageCount": 28
}
Response
{"data": {"completeRevisionUpload": true}}

createAttachment

Description

Creates an attachment of a document and returns the pre-signed URL its content is uploaded to.
Returns the new attachment together with its upload URL.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • CLOUD_STORAGE_NOT_AVAILABLE: The cloud storage is not available.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. The URL answers HTTPS PUT requests, expires after 15 minutes and requires the header x-amz-storage-class: STANDARD_IA to be sent. Call completeAttachmentUpload afterwards.

Response

Returns an AttachmentCreated

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
name - String! The name of the new attachment.
fileExtension - String! The file extension of the new attachment.

Example

Query
mutation createAttachment(
  $dbId: ID!,
  $documentId: Guid!,
  $name: String!,
  $fileExtension: String!
) {
  createAttachment(
    dbId: $dbId,
    documentId: $documentId,
    name: $name,
    fileExtension: $fileExtension
  ) {
    attachmentId
    attachmentRevisionId
    createdUtc
    uploadUrl
    uploadUrlExpiresAt
  }
}
Variables
{
  "dbId": "439bf8cdb46b",
  "documentId": "90f45445-d4b8-485c-8c10-9f8a4e94b702",
  "name": "abc123",
  "fileExtension": "pdf"
}
Response
{
  "data": {
    "createAttachment": {
      "attachmentId": "d3ad5ff1-fbd5-48f5-8307-e1205ceb10fb",
      "attachmentRevisionId": "d93b8bd9-4122-4906-8e5c-e637efb12bd2",
      "createdUtc": "2016-10-14T21:27:51",
      "uploadUrl": "abc123",
      "uploadUrlExpiresAt": "2003-01-16T18:40:06"
    }
  }
}

createAttachmentRevision

Description

Creates a new revision of an attachment and returns the pre-signed URL its content is uploaded to.
Returns the attachment together with the upload URL of the new revision.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • CLOUD_STORAGE_NOT_AVAILABLE: The cloud storage is not available.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. The URL answers HTTPS PUT requests, expires after 15 minutes and requires the header x-amz-storage-class: STANDARD_IA to be sent. Call completeAttachmentUpload afterwards.

Response

Returns an AttachmentCreated

Arguments
Name Description
dbId - ID! The id of the database.
attachmentId - Guid! The id of the attachment.

Example

Query
mutation createAttachmentRevision(
  $dbId: ID!,
  $attachmentId: Guid!
) {
  createAttachmentRevision(
    dbId: $dbId,
    attachmentId: $attachmentId
  ) {
    attachmentId
    attachmentRevisionId
    createdUtc
    uploadUrl
    uploadUrlExpiresAt
  }
}
Variables
{"dbId": "c08a37778a97", "attachmentId": "f8c28dcb-1dae-43df-9775-f46821df7c48"}
Response
{
  "data": {
    "createAttachmentRevision": {
      "attachmentId": "d3ad5ff1-fbd5-48f5-8307-e1205ceb10fb",
      "attachmentRevisionId": "d93b8bd9-4122-4906-8e5c-e637efb12bd2",
      "createdUtc": "2016-10-14T21:27:51",
      "uploadUrl": "abc123",
      "uploadUrlExpiresAt": "2003-01-16T18:40:06"
    }
  }
}

createClientVersion

Description

Creates a new client version.
Returns true on success, false otherwise.

Possible execution exceptions:

  • INVALID_API_KEY: The API key used is not allowed for this API method.

Note: Requires global admin API key.

Response

Returns a Boolean

Arguments
Name Description
clientVersion - ClientVersionInput! The data of the new client version.

Example

Query
mutation createClientVersion($clientVersion: ClientVersionInput!) {
  createClientVersion(clientVersion: $clientVersion)
}
Variables
{"clientVersion": ClientVersionInput}
Response
{"data": {"createClientVersion": true}}

createComment

Description

Creates a new comment.
Returns the created comment on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.

Note: Requires authenticated user.

Response

Returns a Comment

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document the comment is added to.
content - String! The content of the new comment.

Example

Query
mutation createComment(
  $dbId: ID!,
  $documentId: Guid!,
  $content: String!
) {
  createComment(
    dbId: $dbId,
    documentId: $documentId,
    content: $content
  ) {
    id
    content
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    document {
      ...DocumentFragment
    }
  }
}
Variables
{
  "dbId": "2b4358f4bd60",
  "documentId": "d3f181c0-019c-4407-a42f-b33454cc2547",
  "content": "xyz789"
}
Response
{
  "data": {
    "createComment": {
      "id": "f14249b2-c567-4b28-b7e0-c4f533e2a77a",
      "content": "xyz789",
      "created": "2009-11-22T19:27:54",
      "lastChanged": "2009-12-06T23:19:28",
      "createdUser": User,
      "document": Document
    }
  }
}

createDb

Description

Creates a new archive.
Returns the created archive.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage archives.
  • DB_NOT_FOUND: The archive with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the archive is required.
  • PERMISSIONS_INVALID: A permission entry has to reference either a user or a group.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. The archive schema is created right away instead of when the archive is opened the first time. A new archive has no permission entries, which means nobody has access until setDbPermissions is called.

Response

Returns an AdminDb

Arguments
Name Description
title - String! The title of the new archive.
description - String The description of the new archive.
passwordHash - String The password hash (SHA1, upper case) of the new archive. Omit for an archive without password.

Example

Query
mutation createDb(
  $title: String!,
  $description: String,
  $passwordHash: String
) {
  createDb(
    title: $title,
    description: $description,
    passwordHash: $passwordHash
  ) {
    id
    title
    description
    hasPassword
    createdUtc
    createdUserName
    permissions {
      ...DbPermissionInfoFragment
    }
  }
}
Variables
{
  "title": "abc123",
  "description": "abc123",
  "passwordHash": "417A6E6813B170BCF75359402A6C80F051E34B10"
}
Response
{
  "data": {
    "createDb": {
      "id": "5c5e8d83fd81",
      "title": "xyz789",
      "description": "xyz789",
      "hasPassword": false,
      "createdUtc": "2023-08-06T21:35:34",
      "createdUserName": "xyz789",
      "permissions": [DbPermissionInfo]
    }
  }
}

createDocumentType

Description

Creates a new document type.
Returns the created document type on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to create a document type.

Note: Requires authenticated user. Requires user admin rights.

Response

Returns a DocumentType

Arguments
Name Description
dbId - ID! The id of the database.
name - String! The name of the new document type.

Example

Query
mutation createDocumentType(
  $dbId: ID!,
  $name: String!
) {
  createDocumentType(
    dbId: $dbId,
    name: $name
  ) {
    id
    name
    metaFields {
      ...MetaFieldFragment
    }
    expirationTemplate {
      ...ExpirationTemplateFragment
    }
    documents {
      ...DocumentFragment
    }
    folders {
      ...FolderFragment
    }
  }
}
Variables
{"dbId": "36a04ab8cef0", "name": "xyz789"}
Response
{
  "data": {
    "createDocumentType": {
      "id": "21eea80d-20d1-4b02-8213-6388fd25e376",
      "name": "xyz789",
      "metaFields": [MetaField],
      "expirationTemplate": ExpirationTemplate,
      "documents": [Document],
      "folders": [Folder]
    }
  }
}

createFolder

Description

Creates a new folder.
Returns the created folder on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • PARENT_FOLDER_NOT_FOUND: The parent folder with the specified ID could not be found.
  • PARENT_FOLDER_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the parent folder.

Note: Requires authenticated user.

Response

Returns a Folder

Arguments
Name Description
dbId - ID! The id of the database.
parentId - Guid! The id of the parent folder the new folder should be placed below.
name - String! The name of the new folder.
description - String! The description of the new folder.

Example

Query
mutation createFolder(
  $dbId: ID!,
  $parentId: Guid!,
  $name: String!,
  $description: String!
) {
  createFolder(
    dbId: $dbId,
    parentId: $parentId,
    name: $name,
    description: $description
  ) {
    id
    name
    color
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    lastChangedUser {
      ...UserFragment
    }
    parent {
      ...ItemFragment
    }
    parentsPath
    linkedItems {
      ...ItemFragment
    }
    userCanEdit
    userCanDelete
    description
  }
}
Variables
{
  "dbId": "30083634227b",
  "parentId": "eae195a0-cc87-4daa-9881-cd15229169a6",
  "name": "abc123",
  "description": "xyz789"
}
Response
{
  "data": {
    "createFolder": {
      "id": "5cfbe451-6823-4c6c-853c-8501c5c4b0d9",
      "name": "xyz789",
      "color": -2309292,
      "created": "2021-09-06T04:30:08",
      "lastChanged": "2018-07-04T21:55:56",
      "createdUser": User,
      "lastChangedUser": User,
      "parent": Item,
      "parentsPath": "abc123/abc123",
      "linkedItems": [Item],
      "userCanEdit": true,
      "userCanDelete": true,
      "description": "abc123"
    }
  }
}

createGroup

Description

Creates a new group.
Returns the created group.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage groups.
  • GROUP_NOT_FOUND: The group with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the group is required.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights.

Response

Returns an AdminGroup

Arguments
Name Description
title - String! The title of the new group.
description - String The description of the new group.
userIds - [Guid!] The ids of the members of the new group.

Example

Query
mutation createGroup(
  $title: String!,
  $description: String,
  $userIds: [Guid!]
) {
  createGroup(
    title: $title,
    description: $description,
    userIds: $userIds
  ) {
    id
    title
    description
    createdUtc
    userIds
  }
}
Variables
{
  "title": "xyz789",
  "description": "xyz789",
  "userIds": "c2b855d5-57ad-4270-b09f-aa3b83c4e701"
}
Response
{
  "data": {
    "createGroup": {
      "id": "e5c0bf8d-4055-4afc-b814-73651aa2f860",
      "title": "abc123",
      "description": "abc123",
      "createdUtc": "2026-05-24T22:47:43",
      "userIds": ["27997b7d-3a84-4e8d-9ce1-9dcfa8b1614a"]
    }
  }
}

createKeyword

Description

Creates a new keyword.
Returns the created keyword on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • KEYWORD_ALREADY_EXISTS: A keyword with the same name already exists.

Note: Requires authenticated user.

Response

Returns a Keyword

Arguments
Name Description
dbId - ID! The id of the database.
name - String! The name of the new keyword.

Example

Query
mutation createKeyword(
  $dbId: ID!,
  $name: String!
) {
  createKeyword(
    dbId: $dbId,
    name: $name
  ) {
    id
    name
    documents {
      ...DocumentFragment
    }
  }
}
Variables
{"dbId": "f999a47c56e5", "name": "xyz789"}
Response
{
  "data": {
    "createKeyword": {
      "id": "eba25e1b-5ed6-468d-9f3d-04e2ad993221",
      "name": "abc123",
      "documents": [Document]
    }
  }
}

createMetaField

Description

Creates a new meta field.
Returns the created meta field on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to create a meta field.
  • MASK_CANNOT_BE_USED: The mask can only be used for TextShort meta fields.
  • LINE_COUNT_REQUIRED: A line count is required for TextLong meta fields.
  • LINE_COUNT_CANNOT_BE_USED: A line count can only be used for TextLong meta fields.
  • LINE_COUNT_INVALID: The line count is invalid (must be between 2 and 9 lines).

Note: Requires authenticated user. Requires user admin rights.

Response

Returns a MetaField

Arguments
Name Description
dbId - ID! The id of the database.
name - String! The name of the new meta field.
kind - MetaFieldKind! The kind of the new meta field. The canonical form is the enum name; the numeric MetaFieldKind value is accepted as well.
mask - String The text mask of the new meta field (optional for TextShort meta fields only).
lineCount - Short The line count of the new meta field (between 2 and 9 lines, required for TextLong meta fields).

Example

Query
mutation createMetaField(
  $dbId: ID!,
  $name: String!,
  $kind: MetaFieldKind!,
  $mask: String,
  $lineCount: Short
) {
  createMetaField(
    dbId: $dbId,
    name: $name,
    kind: $kind,
    mask: $mask,
    lineCount: $lineCount
  ) {
    id
    name
    kind
    mask
    lineCount
    selectionOptions
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    lastChangedUser {
      ...UserFragment
    }
    metaDatas {
      ...MetaDataFragment
    }
    documentTypes {
      ...DocumentTypeFragment
    }
    expirationTemplates {
      ...ExpirationTemplateFragment
    }
  }
}
Variables
{
  "dbId": "583e8dba5bb3",
  "name": "abc123",
  "kind": "TEXT_SHORT",
  "mask": "abc123",
  "lineCount": 2
}
Response
{
  "data": {
    "createMetaField": {
      "id": "274d7c0f-05e2-4e96-9f01-486c784e2e3d",
      "name": "abc123",
      "kind": "TEXT_SHORT",
      "mask": "abc123",
      "lineCount": 8,
      "selectionOptions": ["xyz789"],
      "created": "2015-09-07T00:52:44",
      "lastChanged": "2010-02-18T23:03:59",
      "createdUser": User,
      "lastChangedUser": User,
      "metaDatas": [MetaData],
      "documentTypes": [DocumentType],
      "expirationTemplates": [ExpirationTemplate]
    }
  }
}

createMetaFieldValue

Description

Creates a new selection list value of a meta field.
Returns the created meta field value.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage meta field selection values.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.
  • META_FIELD_VALUE_NOT_FOUND: The meta field value with the specified ID could not be found.
  • INVALID_META_FIELD_KIND: The meta field is not a SelectionList meta field.
  • META_FIELD_VALUE_ALREADY_EXISTS: A value with this content exists already for this meta field.
  • META_FIELD_VALUE_INVALID: The content of a meta field value is required and must not be empty.

Note: Requires authenticated user. Requires user admin rights. The meta field has to be a SelectionList meta field.

Response

Returns a MetaFieldValueInfo

Arguments
Name Description
dbId - ID! The id of the database.
metaFieldId - Guid! The id of the meta field.
content - String! The content of the new meta field value.

Example

Query
mutation createMetaFieldValue(
  $dbId: ID!,
  $metaFieldId: Guid!,
  $content: String!
) {
  createMetaFieldValue(
    dbId: $dbId,
    metaFieldId: $metaFieldId,
    content: $content
  ) {
    id
    content
  }
}
Variables
{
  "dbId": "9f0e3c6c1de0",
  "metaFieldId": "ca7115c0-49b1-4fbd-81de-d3379034e21a",
  "content": "xyz789"
}
Response
{
  "data": {
    "createMetaFieldValue": {
      "id": "b440df25-c3a0-449c-9a7b-2de2c9f2ac08",
      "content": "xyz789"
    }
  }
}

createShare

Description

Creates a new share.
Returns the created share on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • SHARE_ALREADY_EXISTS: A share for the same document and user already exists.

Note: Requires authenticated user.

Response

Returns a Share

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
expire - DateTime The date when the share link expires. Omit if it should not expire.

Example

Query
mutation createShare(
  $dbId: ID!,
  $documentId: Guid!,
  $expire: DateTime
) {
  createShare(
    dbId: $dbId,
    documentId: $documentId,
    expire: $expire
  ) {
    id
    expire
    created
    createdUser {
      ...UserFragment
    }
    document {
      ...DocumentFragment
    }
    link
  }
}
Variables
{
  "dbId": "cd0f9f9b871c",
  "documentId": "af72c977-7502-4779-9a4d-d6a4c23e9591",
  "expire": "2010-06-28T22:24:00"
}
Response
{
  "data": {
    "createShare": {
      "id": "bfd357c4-8911-468b-9980-370e91e5d4e3",
      "expire": "2005-10-10T16:36:54",
      "created": "2001-08-06T07:10:05",
      "createdUser": User,
      "document": Document,
      "link": "https://download.quick-archive.com/a8b140d824c1/a91de4abfa61/210a67b6-7264-4f0b-8ecc-9c752c082799/share/abc123.pdf"
    }
  }
}

createStamp

Description

Creates a new stamp.
Returns the created stamp.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage stamps.
  • STAMP_NOT_FOUND: The stamp with the specified ID could not be found.
  • STAMP_INVALID: The name and the text of a stamp are required and must not be empty.

Note: Requires authenticated user. Requires user admin rights. The text may contain the placeholders [user], [date], [year], [month], [day], [time], [hour], [minute] and [second].

Response

Returns a StampInfo

Arguments
Name Description
dbId - ID! The id of the database.
name - String! The name of the new stamp.
text - String! The text of the new stamp.
color - Int! The color of the new stamp as ARGB integer value.
opacity - Int The opacity of the new stamp in percent. Default = 100
rotation - Int The rotation of the new stamp in degrees. Default = 0

Example

Query
mutation createStamp(
  $dbId: ID!,
  $name: String!,
  $text: String!,
  $color: Int!,
  $opacity: Int,
  $rotation: Int
) {
  createStamp(
    dbId: $dbId,
    name: $name,
    text: $text,
    color: $color,
    opacity: $opacity,
    rotation: $rotation
  ) {
    id
    name
    text
    color
    opacity
    rotation
  }
}
Variables
{
  "dbId": "82282252f4a1",
  "name": "abc123",
  "text": "xyz789",
  "color": -15012197,
  "opacity": 100,
  "rotation": 0
}
Response
{
  "data": {
    "createStamp": {
      "id": "271fb55c-6d64-468b-8b64-7a454b0c6ce9",
      "name": "xyz789",
      "text": "abc123",
      "color": -14251574,
      "opacity": 460775715,
      "rotation": 460775715
    }
  }
}

createUser

Description

Creates a new user.
Returns the created user.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage users.
  • USER_NOT_FOUND: The user with the specified ID could not be found.
  • LOGIN_NAME_INVALID: The login name is invalid. RegEx: ^([a-zA-Z0-9]([\w-]*[a-zA-Z0-9])?){3,}$
  • LOGIN_NAME_ALREADY_EXISTS: A user with this login name exists already.
  • FULL_NAME_REQUIRED: The full name is required.
  • SYSTEM_USER_PROTECTED: The system user cannot be managed.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. The login name is stored lower case and has to be unique. An admin always may own private archives, exactly as the administration dialog enforces it.

Response

Returns an AdminUser

Arguments
Name Description
loginName - String! The login name of the new user. RegEx: ^([a-zA-Z0-9]([\w-]*[a-zA-Z0-9])?){3,}$
fullName - String! The full name of the new user.
eMail - String The e-mail of the new user.
description - String The description of the new user.
passwordHash - String The password hash (SHA1, upper case) of the new user. Omit for a user without password.
admin - Boolean Defines whether the new user is admin. Default = false
active - Boolean Defines whether the new user is active. Default = true
allowPrivateDb - Boolean Defines whether the new user may own private archives. Ignored for admins, who always may. Default = false
changePasswordNextLogin - Boolean Defines whether the new user has to change the password on the next login. Default = false
groupIds - [Guid!] The ids of the groups the new user is a member of.

Example

Query
mutation createUser(
  $loginName: String!,
  $fullName: String!,
  $eMail: String,
  $description: String,
  $passwordHash: String,
  $admin: Boolean,
  $active: Boolean,
  $allowPrivateDb: Boolean,
  $changePasswordNextLogin: Boolean,
  $groupIds: [Guid!]
) {
  createUser(
    loginName: $loginName,
    fullName: $fullName,
    eMail: $eMail,
    description: $description,
    passwordHash: $passwordHash,
    admin: $admin,
    active: $active,
    allowPrivateDb: $allowPrivateDb,
    changePasswordNextLogin: $changePasswordNextLogin,
    groupIds: $groupIds
  ) {
    id
    loginName
    fullName
    eMail
    description
    hasPassword
    admin
    active
    allowPrivateDb
    changePasswordNextLogin
    createdUtc
    lastLoginUtc
    groupIds
  }
}
Variables
{
  "loginName": "xyz789",
  "fullName": "abc123",
  "eMail": "mail@domain.com",
  "description": "xyz789",
  "passwordHash": "78AF2EFFB56149F158BE4FC1CC377E3EE44AF7E1",
  "admin": false,
  "active": true,
  "allowPrivateDb": false,
  "changePasswordNextLogin": false,
  "groupIds": "915da50f-ccaf-4e30-afd4-a54e243ebafc"
}
Response
{
  "data": {
    "createUser": {
      "id": "04dea7e2-f7c7-497b-9aea-8c88688de908",
      "loginName": "abc123",
      "fullName": "xyz789",
      "eMail": "mail@domain.com",
      "description": "abc123",
      "hasPassword": true,
      "admin": false,
      "active": false,
      "allowPrivateDb": true,
      "changePasswordNextLogin": true,
      "createdUtc": "2007-06-27T11:36:17",
      "lastLoginUtc": "2022-02-23T15:28:44",
      "groupIds": ["bd6ef3ff-9ded-43b5-a8aa-84d7d8795b50"]
    }
  }
}

deleteAttachment

Description

Deletes an attachment of a document.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ATTACHMENT_NOT_FOUND: The attachment with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • CLOUD_STORAGE_NOT_AVAILABLE: The cloud storage is not available.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. An attachment that does not exist any more succeeds without a change.
Warning: The cloud storage content of all revisions of the attachment is deleted as well.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
attachmentId - Guid! The id of the attachment.

Example

Query
mutation deleteAttachment(
  $dbId: ID!,
  $attachmentId: Guid!
) {
  deleteAttachment(
    dbId: $dbId,
    attachmentId: $attachmentId
  )
}
Variables
{"dbId": "308ebe0d13eb", "attachmentId": "1aeb851d-40a9-4de6-a9b2-a15d735a56a0"}
Response
{"data": {"deleteAttachment": true}}

deleteComment

Description

Deletes a comment.
Returns the deleted comment on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • COMMENT_NOT_FOUND: The comment with the specified ID could not be found.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to delete a comment that was not created by the same user.

Note: Requires authenticated user. Requires user admin rights to delete a comment of a different user.

Response

Returns a Comment

Arguments
Name Description
dbId - ID! The id of the database.
commentId - Guid! The id of the comment that should be deleted.

Example

Query
mutation deleteComment(
  $dbId: ID!,
  $commentId: Guid!
) {
  deleteComment(
    dbId: $dbId,
    commentId: $commentId
  ) {
    id
    content
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    document {
      ...DocumentFragment
    }
  }
}
Variables
{"dbId": "21e8d35e0240", "commentId": "16093979-f138-40af-8034-8e5204b952ea"}
Response
{
  "data": {
    "deleteComment": {
      "id": "f14249b2-c567-4b28-b7e0-c4f533e2a77a",
      "content": "xyz789",
      "created": "2009-11-22T19:27:54",
      "lastChanged": "2009-12-06T23:19:28",
      "createdUser": User,
      "document": Document
    }
  }
}

deleteDb

Description

Deletes an archive.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage archives.
  • DB_NOT_FOUND: The archive with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the archive is required.
  • PERMISSIONS_INVALID: A permission entry has to reference either a user or a group.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. An archive that does not exist any more succeeds without a change.
Warning: Only the archive entry with its permission entries and search patterns is deleted, exactly as the administration dialog does it today: the archive schema and the cloud storage content of the archive are kept and become unreachable.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the archive.

Example

Query
mutation deleteDb($dbId: ID!) {
  deleteDb(dbId: $dbId)
}
Variables
{"dbId": "c480b2c94c33"}
Response
{"data": {"deleteDb": false}}

deleteDocumentType

Description

Deletes a document type.
Returns the deleted document type on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to rename a document type.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • REPLACEMENT_DOCUMENT_TYPE_NOT_FOUND: The replacement document type with the specified ID could not be found.
  • CONFLICT: A document re-typed to the replacement document type was changed by another user in the meantime.

Note: Requires authenticated user. Requires user admin rights. With replacementDocumentTypeId the documents of the document type are re-typed to the replacement first.
Warning: The document type is deleted from all associated documents including all of its meta data. Re-typed documents lose the meta data of the meta fields the replacement document type does not have.

Response

Returns a DocumentType

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type that should be deleted.
replacementDocumentTypeId - Guid The id of the document type all documents of the deleted document type are re-typed to. If omitted the documents lose their document type including all of its meta data.

Example

Query
mutation deleteDocumentType(
  $dbId: ID!,
  $documentTypeId: Guid!,
  $replacementDocumentTypeId: Guid
) {
  deleteDocumentType(
    dbId: $dbId,
    documentTypeId: $documentTypeId,
    replacementDocumentTypeId: $replacementDocumentTypeId
  ) {
    id
    name
    metaFields {
      ...MetaFieldFragment
    }
    expirationTemplate {
      ...ExpirationTemplateFragment
    }
    documents {
      ...DocumentFragment
    }
    folders {
      ...FolderFragment
    }
  }
}
Variables
{
  "dbId": "361e7b5eb327",
  "documentTypeId": "f9fd23a7-a5ac-4924-86bb-496d011ef738",
  "replacementDocumentTypeId": "f9533837-9d07-4e76-921a-010c510ede95"
}
Response
{
  "data": {
    "deleteDocumentType": {
      "id": "21eea80d-20d1-4b02-8213-6388fd25e376",
      "name": "abc123",
      "metaFields": [MetaField],
      "expirationTemplate": ExpirationTemplate,
      "documents": [Document],
      "folders": [Folder]
    }
  }
}

deleteExpiration

Description

Deletes the expiration of a document.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • EXPIRATION_CHANGE_NOT_ALLOWED: The expiration of the document is protected and cannot be deleted before it expired.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. A document without expiration succeeds without a change.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
expectedVersion - Long! The rowVersion the document had when it was read.

Example

Query
mutation deleteExpiration(
  $dbId: ID!,
  $documentId: Guid!,
  $expectedVersion: Long!
) {
  deleteExpiration(
    dbId: $dbId,
    documentId: $documentId,
    expectedVersion: $expectedVersion
  )
}
Variables
{
  "dbId": "b4367c48f1c5",
  "documentId": "53796970-5c8f-4f05-ae27-505385c59281",
  "expectedVersion": -9049124290990832000
}
Response
{"data": {"deleteExpiration": true}}

deleteExpirationTemplate

Description

Deletes the expiration template of a document type.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage expiration templates.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.
  • EXPIRATION_TEMPLATE_INVALID: The period count, the period kind or the action kind of the expiration template is invalid.

Note: Requires authenticated user. Requires user admin rights. A document type without an expiration template succeeds without a change.
Warning: The expirations the template created on documents are kept.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type.

Example

Query
mutation deleteExpirationTemplate(
  $dbId: ID!,
  $documentTypeId: Guid!
) {
  deleteExpirationTemplate(
    dbId: $dbId,
    documentTypeId: $documentTypeId
  )
}
Variables
{
  "dbId": "e7596ffd91e7",
  "documentTypeId": "93f4c78c-146c-40fe-bbf4-7b6ed1ba77ca"
}
Response
{"data": {"deleteExpirationTemplate": false}}

deleteGroup

Description

Deletes a group.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage groups.
  • GROUP_NOT_FOUND: The group with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the group is required.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. A group that does not exist any more succeeds without a change.
Warning: The archive permission entries and the memberships of the group are deleted with it. Item permission entries in the archives reference the group without a foreign key and are not cleaned up, exactly as today.

Response

Returns a Boolean

Arguments
Name Description
groupId - Guid! The id of the group.

Example

Query
mutation deleteGroup($groupId: Guid!) {
  deleteGroup(groupId: $groupId)
}
Variables
{"groupId": "d26980ac-d521-46b5-891e-0be3a0f7d44d"}
Response
{"data": {"deleteGroup": false}}

deleteItems

Description

Deletes items.
Returns the number of items deleted.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to delete one of the items.
  • ITEM_DELETE_PROTECTED: One of the items is a document with an expiration date that prevents changes until it is reached.
  • CLOUD_STORAGE_NOT_AVAILABLE: The cloud storage is not available, so the document data of the items cannot be deleted.
  • CONFLICT: One of the items was changed by another user in the meantime.

Note: Requires authenticated user. Permissions of all items are checked before the first item is deleted. Items that do not exist any more are skipped, so a retry cannot fail.
Warning: Deleting an item permanently deletes its children, its meta data, its links, its shares and its cloud storage content.

Response

Returns an Int

Arguments
Name Description
dbId - ID! The id of the database.
itemIds - [Guid!]! The ids of the items to be deleted.
forceDelete - Boolean Determines if the items are permanently deleted if they are outside of the recycle bin (otherwise they are moved to the recycle bin in this case). In case an item is below the recycle bin already, it is always deleted permanently. Default = false

Example

Query
mutation deleteItems(
  $dbId: ID!,
  $itemIds: [Guid!]!,
  $forceDelete: Boolean
) {
  deleteItems(
    dbId: $dbId,
    itemIds: $itemIds,
    forceDelete: $forceDelete
  )
}
Variables
{
  "dbId": "6cbe8257b7c9",
  "itemIds": "d485b26c-1226-46b5-94c8-9d6c6a089d49",
  "forceDelete": false
}
Response
{"data": {"deleteItems": 460775715}}

deleteKeyword

Description

Deletes a keyword.
Returns the deleted keyword on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to delete a keyword.
  • KEYWORD_NOT_FOUND: The keyword with the specified ID could not be found.

Note: Requires authenticated user. Requires user admin rights.
Warning: The keyword is deleted from all associated documents.

Response

Returns a Keyword

Arguments
Name Description
dbId - ID! The id of the database.
keywordId - Guid! The id of the keyword that should be deleted.

Example

Query
mutation deleteKeyword(
  $dbId: ID!,
  $keywordId: Guid!
) {
  deleteKeyword(
    dbId: $dbId,
    keywordId: $keywordId
  ) {
    id
    name
    documents {
      ...DocumentFragment
    }
  }
}
Variables
{"dbId": "13bf8a8273d5", "keywordId": "d9e5f04f-0c15-42fa-ad4f-e9d1223b1b4f"}
Response
{
  "data": {
    "deleteKeyword": {
      "id": "eba25e1b-5ed6-468d-9f3d-04e2ad993221",
      "name": "abc123",
      "documents": [Document]
    }
  }
}

deleteMetaField

Description

Deletes a meta field.
Returns the deleted meta field on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to create a meta field.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.

Note: Requires authenticated user. Requires user admin rights.
Warning: The meta field is deleted from all associated document types and documents including all of its meta data.

Response

Returns a MetaField

Arguments
Name Description
dbId - ID! The id of the database.
metaFieldId - Guid! The id of the meta field that should be deleted.

Example

Query
mutation deleteMetaField(
  $dbId: ID!,
  $metaFieldId: Guid!
) {
  deleteMetaField(
    dbId: $dbId,
    metaFieldId: $metaFieldId
  ) {
    id
    name
    kind
    mask
    lineCount
    selectionOptions
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    lastChangedUser {
      ...UserFragment
    }
    metaDatas {
      ...MetaDataFragment
    }
    documentTypes {
      ...DocumentTypeFragment
    }
    expirationTemplates {
      ...ExpirationTemplateFragment
    }
  }
}
Variables
{"dbId": "fd9e173c9ded", "metaFieldId": "fa14e338-9fce-45a4-bd14-c0dbf12a8e72"}
Response
{
  "data": {
    "deleteMetaField": {
      "id": "274d7c0f-05e2-4e96-9f01-486c784e2e3d",
      "name": "abc123",
      "kind": "TEXT_SHORT",
      "mask": "xyz789",
      "lineCount": 8,
      "selectionOptions": ["xyz789"],
      "created": "2015-09-07T00:52:44",
      "lastChanged": "2010-02-18T23:03:59",
      "createdUser": User,
      "lastChangedUser": User,
      "metaDatas": [MetaData],
      "documentTypes": [DocumentType],
      "expirationTemplates": [ExpirationTemplate]
    }
  }
}

deleteMetaFieldValue

Description

Deletes a selection list value of a meta field.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage meta field selection values.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.
  • META_FIELD_VALUE_NOT_FOUND: The meta field value with the specified ID could not be found.
  • INVALID_META_FIELD_KIND: The meta field is not a SelectionList meta field.
  • META_FIELD_VALUE_ALREADY_EXISTS: A value with this content exists already for this meta field.
  • META_FIELD_VALUE_INVALID: The content of a meta field value is required and must not be empty.

Note: Requires authenticated user. Requires user admin rights. A meta field value that does not exist any more succeeds without a change.
Warning: The meta data of all documents using this value is deleted with it.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
metaFieldValueId - Guid! The id of the meta field value.

Example

Query
mutation deleteMetaFieldValue(
  $dbId: ID!,
  $metaFieldValueId: Guid!
) {
  deleteMetaFieldValue(
    dbId: $dbId,
    metaFieldValueId: $metaFieldValueId
  )
}
Variables
{
  "dbId": "1b1510a38765",
  "metaFieldValueId": "039bd667-8a74-40d3-945a-a6cb46bf85ed"
}
Response
{"data": {"deleteMetaFieldValue": true}}

deleteReminder

Description

Deletes a reminder.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • REMINDER_NOT_FOUND: The reminder with the specified ID could not be found.
  • REMINDER_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to delete the reminder.

Note: Requires authenticated user. Requires user admin rights to delete a reminder of a different user. A reminder that does not exist any more succeeds without a change.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
reminderId - Guid! The id of the reminder.

Example

Query
mutation deleteReminder(
  $dbId: ID!,
  $reminderId: Guid!
) {
  deleteReminder(
    dbId: $dbId,
    reminderId: $reminderId
  )
}
Variables
{"dbId": "fb202f6f085e", "reminderId": "d29a5045-1763-4e14-aa26-6d64cfda88d1"}
Response
{"data": {"deleteReminder": false}}

deleteSearchPattern

Description

Deletes a search pattern of an archive.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • SEARCH_PATTERN_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to delete the search pattern.

Note: Requires authenticated user. A search pattern that does not exist any more succeeds without a change. Every search pattern the user sees may be deleted, exactly as the search assistant of the client allows it.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
searchPatternId - Guid! The id of the search pattern.

Example

Query
mutation deleteSearchPattern(
  $dbId: ID!,
  $searchPatternId: Guid!
) {
  deleteSearchPattern(
    dbId: $dbId,
    searchPatternId: $searchPatternId
  )
}
Variables
{
  "dbId": "06daa304980c",
  "searchPatternId": "8e6eabe3-dd8f-4490-aada-188bec66d6f4"
}
Response
{"data": {"deleteSearchPattern": false}}

deleteShare

Description

Deletes a share.
Returns the deleted share on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • SHARE_NOT_FOUND: The share with the specified ID could not be found.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to delete a share that was not created by the same user.

Note: Requires authenticated user. Requires user admin rights to delete a share of a different user.

Response

Returns a Share

Arguments
Name Description
dbId - ID! The id of the database.
shareId - Guid! The id of the share.

Example

Query
mutation deleteShare(
  $dbId: ID!,
  $shareId: Guid!
) {
  deleteShare(
    dbId: $dbId,
    shareId: $shareId
  ) {
    id
    expire
    created
    createdUser {
      ...UserFragment
    }
    document {
      ...DocumentFragment
    }
    link
  }
}
Variables
{"dbId": "b6add0656c0b", "shareId": "75597997-8b9a-48ac-b6e2-120b18c5a1dc"}
Response
{
  "data": {
    "deleteShare": {
      "id": "bfd357c4-8911-468b-9980-370e91e5d4e3",
      "expire": "2005-10-10T16:36:54",
      "created": "2001-08-06T07:10:05",
      "createdUser": User,
      "document": Document,
      "link": "https://download.quick-archive.com/a8b140d824c1/a91de4abfa61/210a67b6-7264-4f0b-8ecc-9c752c082799/share/abc123.pdf"
    }
  }
}

deleteStamp

Description

Deletes a stamp.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage stamps.
  • STAMP_NOT_FOUND: The stamp with the specified ID could not be found.
  • STAMP_INVALID: The name and the text of a stamp are required and must not be empty.

Note: Requires authenticated user. Requires user admin rights. A stamp that does not exist any more succeeds without a change.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
stampId - Guid! The id of the stamp.

Example

Query
mutation deleteStamp(
  $dbId: ID!,
  $stampId: Guid!
) {
  deleteStamp(
    dbId: $dbId,
    stampId: $stampId
  )
}
Variables
{"dbId": "269da91f8266", "stampId": "4ab6837e-b690-4731-ba4a-761d892991af"}
Response
{"data": {"deleteStamp": true}}

deleteUser

Description

Deactivates a user.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage users.
  • USER_NOT_FOUND: The user with the specified ID could not be found.
  • LOGIN_NAME_INVALID: The login name is invalid. RegEx: ^([a-zA-Z0-9]([\w-]*[a-zA-Z0-9])?){3,}$
  • LOGIN_NAME_ALREADY_EXISTS: A user with this login name exists already.
  • FULL_NAME_REQUIRED: The full name is required.
  • SYSTEM_USER_PROTECTED: The system user cannot be managed.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. The internal system user cannot be deactivated.
Warning: A user row is never removed, exactly as the administration dialog behaves: the user is set inactive and keeps its permission entries, its group memberships and its authorship of existing rows.

Response

Returns a Boolean

Arguments
Name Description
userId - Guid! The id of the user.

Example

Query
mutation deleteUser($userId: Guid!) {
  deleteUser(userId: $userId)
}
Variables
{"userId": "0708cbb0-c7e5-41bd-a31e-7c1cf4a8b675"}
Response
{"data": {"deleteUser": false}}

editComment

Description

Edits a comment.
Returns the edited comment on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • COMMENT_NOT_FOUND: The comment with the specified ID could not be found.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to edit a comment that was not created by the same user.

Note: Requires authenticated user. Requires user admin rights to edit a comment of a different user.

Response

Returns a Comment

Arguments
Name Description
dbId - ID! The id of the database.
commentId - Guid! The id of the comment that should be changed.
newContent - String! The new content of the comment.

Example

Query
mutation editComment(
  $dbId: ID!,
  $commentId: Guid!,
  $newContent: String!
) {
  editComment(
    dbId: $dbId,
    commentId: $commentId,
    newContent: $newContent
  ) {
    id
    content
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    document {
      ...DocumentFragment
    }
  }
}
Variables
{
  "dbId": "d47cf90ea162",
  "commentId": "21eeb4b4-5c39-491b-8490-92511b68f573",
  "newContent": "abc123"
}
Response
{
  "data": {
    "editComment": {
      "id": "f14249b2-c567-4b28-b7e0-c4f533e2a77a",
      "content": "xyz789",
      "created": "2009-11-22T19:27:54",
      "lastChanged": "2009-12-06T23:19:28",
      "createdUser": User,
      "document": Document
    }
  }
}

editFolder

Description

Edits a folder.
Returns the edited folder on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • FOLDER_NOT_FOUND: The folder with the specified ID could not be found.
  • FOLDER_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the folder.

Note: Requires authenticated user.

Response

Returns a Folder

Arguments
Name Description
dbId - ID! The id of the database.
folderId - Guid! The id of the folder.
newDescription - String! The new description of the folder.

Example

Query
mutation editFolder(
  $dbId: ID!,
  $folderId: Guid!,
  $newDescription: String!
) {
  editFolder(
    dbId: $dbId,
    folderId: $folderId,
    newDescription: $newDescription
  ) {
    id
    name
    color
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    lastChangedUser {
      ...UserFragment
    }
    parent {
      ...ItemFragment
    }
    parentsPath
    linkedItems {
      ...ItemFragment
    }
    userCanEdit
    userCanDelete
    description
  }
}
Variables
{
  "dbId": "07b596f2deb7",
  "folderId": "efb57722-1ed5-4d97-9d5e-d6e9f26d0639",
  "newDescription": "abc123"
}
Response
{
  "data": {
    "editFolder": {
      "id": "5cfbe451-6823-4c6c-853c-8501c5c4b0d9",
      "name": "xyz789",
      "color": -2309292,
      "created": "2021-09-06T04:30:08",
      "lastChanged": "2018-07-04T21:55:56",
      "createdUser": User,
      "lastChangedUser": User,
      "parent": Item,
      "parentsPath": "abc123/abc123",
      "linkedItems": [Item],
      "userCanEdit": true,
      "userCanDelete": false,
      "description": "xyz789"
    }
  }
}

editShare

Description

Edits a share.
Returns the edited share on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • SHARE_NOT_FOUND: The share with the specified ID could not be found.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to edit a share that was not created by the same user.

Note: Requires authenticated user. Requires user admin rights to edit a share of a different user.

Response

Returns a Share

Arguments
Name Description
dbId - ID! The id of the database.
shareId - Guid! The id of the share.
newExpire - DateTime The date when the share link expires. Omit if it should not expire.

Example

Query
mutation editShare(
  $dbId: ID!,
  $shareId: Guid!,
  $newExpire: DateTime
) {
  editShare(
    dbId: $dbId,
    shareId: $shareId,
    newExpire: $newExpire
  ) {
    id
    expire
    created
    createdUser {
      ...UserFragment
    }
    document {
      ...DocumentFragment
    }
    link
  }
}
Variables
{
  "dbId": "797e22dcea2f",
  "shareId": "8a2a7b16-65c4-4240-ac83-3888dd16e2e6",
  "newExpire": "2007-06-27T21:06:23"
}
Response
{
  "data": {
    "editShare": {
      "id": "bfd357c4-8911-468b-9980-370e91e5d4e3",
      "expire": "2005-10-10T16:36:54",
      "created": "2001-08-06T07:10:05",
      "createdUser": User,
      "document": Document,
      "link": "https://download.quick-archive.com/a8b140d824c1/a91de4abfa61/210a67b6-7264-4f0b-8ecc-9c752c082799/share/abc123.pdf"
    }
  }
}

heartbeat

Description

Gets the current session state of the authenticated user.
Returns the current session state.

Note: Requires authenticated user. Has no side effects; it replaces the client's periodic user-row poll. changeToken is reserved and currently always null.

Response

Returns a SessionState

Example

Query
mutation heartbeat {
  heartbeat {
    activeSession
    serverTimeUtc
    changeToken
  }
}
Response
{
  "data": {
    "heartbeat": {
      "activeSession": "cef0e552-6d49-4270-8779-fe509c279f1e",
      "serverTimeUtc": "2014-03-14T20:40:09",
      "changeToken": "abc123"
    }
  }
}

linkDocuments

Description

Links two documents.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENTS_IDENTICAL: The document 1 and 2 is the same. Documents cannot be linked with itself.
  • DOCUMENT1_NOT_FOUND: The document 1 with the specified ID could not be found.
  • DOCUMENT2_NOT_FOUND: The document 2 with the specified ID could not be found.
  • DOCUMENT1_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document 1.
  • DOCUMENT2_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document 2.
  • ALREADY_LINKED: Document 1 and document 2 are already linked.

Note: Requires authenticated user.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
document1Id - Guid! The id of first document.
document2Id - Guid! The id of second document.

Example

Query
mutation linkDocuments(
  $dbId: ID!,
  $document1Id: Guid!,
  $document2Id: Guid!
) {
  linkDocuments(
    dbId: $dbId,
    document1Id: $document1Id,
    document2Id: $document2Id
  )
}
Variables
{
  "dbId": "b7e428965287",
  "document1Id": "9e63a311-6c81-4b5c-a44f-109d9878086d",
  "document2Id": "28a72e0c-3939-49b3-b157-57b82421bbc7"
}
Response
{"data": {"linkDocuments": true}}

login

Description

Starts a new session for the authenticated user.
Returns the new session together with the connection details and the authenticated user.

Possible execution exceptions:

  • SESSION_ACTIVE: The user is logged in already. Repeat with force to end the other session.

Note: Requires authenticated user. The password is already proven by the request signature, so this only creates the session. An existing session of the same user is only replaced when force is set.

Response

Returns a LoginResult

Arguments
Name Description
force - Boolean Defines whether an already active session of the same user is ended instead of failing. Default = false

Example

Query
mutation login($force: Boolean) {
  login(force: $force) {
    activeSession
    dbServerHostName
    cloudStorageRegion
    user {
      ...WorkspaceUserFragment
    }
  }
}
Variables
{"force": false}
Response
{
  "data": {
    "login": {
      "activeSession": "c7453328-8488-4cdb-a066-23d06fb4a985",
      "dbServerHostName": "server-host.name",
      "cloudStorageRegion": "eu-north-1",
      "user": WorkspaceUser
    }
  }
}

logout

Description

Ends the session of the authenticated user.
Returns true on success, false otherwise.

Note: Requires authenticated user.

Response

Returns a Boolean

Example

Query
mutation logout {
  logout
}
Response
{"data": {"logout": true}}

moveDocumentTypeMetaField

Description

Moves a meta field of a document type one position up or down.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to move a meta field of a document type.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • META_FIELD_NOT_ASSIGNED: The meta field with the specified ID is not assigned to the document type.

Note: Requires authenticated user. Requires user admin rights. The position defines the order the properties panel shows the meta fields in.
Warning: A meta field that is already the first respectively the last one of the document type is not moved and answers true.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type.
metaFieldId - Guid! The id of the meta field to be moved.
up - Boolean! Defines whether the meta field is moved up (true) or down (false).

Example

Query
mutation moveDocumentTypeMetaField(
  $dbId: ID!,
  $documentTypeId: Guid!,
  $metaFieldId: Guid!,
  $up: Boolean!
) {
  moveDocumentTypeMetaField(
    dbId: $dbId,
    documentTypeId: $documentTypeId,
    metaFieldId: $metaFieldId,
    up: $up
  )
}
Variables
{
  "dbId": "e21a560f5087",
  "documentTypeId": "5c4bf66a-16e3-4a4f-8666-91a26c0525d8",
  "metaFieldId": "646e94e8-dded-4aa1-a0f7-029d1bb87aec",
  "up": true
}
Response
{"data": {"moveDocumentTypeMetaField": false}}

moveItems

Description

Moves items below a new parent folder.
Returns the number of items moved.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: One of the items with the specified IDs could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit one of the items.
  • ITEM_NOT_MOVABLE: The document root and the recycle bin cannot be moved.
  • NEW_PARENT_FOLDER_NOT_FOUND: The new parent folder with the specified ID could not be found.
  • NEW_PARENT_FOLDER_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the new parent folder.
  • NEW_PARENT_FOLDER_INVALID: The new parent folder is not a folder, or it is one of the items itself or below one of them.
  • CONFLICT: One of the items was changed by another user in the meantime.

Note: Requires authenticated user. Permissions of all items are checked before the first item is moved. Items that are below the new parent folder already are skipped and not counted.

Response

Returns an Int

Arguments
Name Description
dbId - ID! The id of the database.
itemIds - [Guid!]! The ids of the items to be moved.
newParentId - Guid! The id of the new parent folder of the items.

Example

Query
mutation moveItems(
  $dbId: ID!,
  $itemIds: [Guid!]!,
  $newParentId: Guid!
) {
  moveItems(
    dbId: $dbId,
    itemIds: $itemIds,
    newParentId: $newParentId
  )
}
Variables
{
  "dbId": "54c6b634d63b",
  "itemIds": "eece0e45-bbef-4c02-9621-6748936cd05e",
  "newParentId": "afc891ab-4c1f-4a55-80f8-1b9af181ac54"
}
Response
{"data": {"moveItems": 460775715}}

removeDocumentKeyword

Description

Removes a keyword from a document.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • KEYWORD_NOT_ASSIGNED: The keyword with the specified ID is not assigned to the document.

Note: Requires authenticated user.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
keywordId - Guid! The id of the keyboard to be removed.

Example

Query
mutation removeDocumentKeyword(
  $dbId: ID!,
  $documentId: Guid!,
  $keywordId: Guid!
) {
  removeDocumentKeyword(
    dbId: $dbId,
    documentId: $documentId,
    keywordId: $keywordId
  )
}
Variables
{
  "dbId": "4e60cbf8c49c",
  "documentId": "8848cf70-800c-47ed-9e1a-9910566bedef",
  "keywordId": "3c1b6c33-e205-4fc2-b9ee-8ded5150e646"
}
Response
{"data": {"removeDocumentKeyword": false}}

removeDocumentTypeMetaField

Description

Removes a meta field from a document type.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to add a meta field to a document type.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • META_FIELD_NOT_ASSIGNED: The meta field with the specified ID is not assigned to the document type.

Note: Requires authenticated user. Requires user admin rights.
Warning: The meta field is removed from all associated documents including all of its meta data.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type.
metaFieldId - Guid! The id of the meta field to be removed.

Example

Query
mutation removeDocumentTypeMetaField(
  $dbId: ID!,
  $documentTypeId: Guid!,
  $metaFieldId: Guid!
) {
  removeDocumentTypeMetaField(
    dbId: $dbId,
    documentTypeId: $documentTypeId,
    metaFieldId: $metaFieldId
  )
}
Variables
{
  "dbId": "c9357a0677a3",
  "documentTypeId": "c41e1832-058c-46eb-96f9-820eec8f1e13",
  "metaFieldId": "88c6d728-6735-4086-a5a3-dceed0333302"
}
Response
{"data": {"removeDocumentTypeMetaField": false}}

renameDocumentType

Description

Renames a document type.
Returns the renamed document type on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to rename a document type.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.

Note: Requires authenticated user. Requires user admin rights.
Warning: The document type is renamed in all associated documents.

Response

Returns a DocumentType

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type that should be renamed.
newName - String! The new name of the document type.

Example

Query
mutation renameDocumentType(
  $dbId: ID!,
  $documentTypeId: Guid!,
  $newName: String!
) {
  renameDocumentType(
    dbId: $dbId,
    documentTypeId: $documentTypeId,
    newName: $newName
  ) {
    id
    name
    metaFields {
      ...MetaFieldFragment
    }
    expirationTemplate {
      ...ExpirationTemplateFragment
    }
    documents {
      ...DocumentFragment
    }
    folders {
      ...FolderFragment
    }
  }
}
Variables
{
  "dbId": "312592e3d8b0",
  "documentTypeId": "494b0bf1-a860-47d9-8020-bddd490cd4a6",
  "newName": "abc123"
}
Response
{
  "data": {
    "renameDocumentType": {
      "id": "21eea80d-20d1-4b02-8213-6388fd25e376",
      "name": "abc123",
      "metaFields": [MetaField],
      "expirationTemplate": ExpirationTemplate,
      "documents": [Document],
      "folders": [Folder]
    }
  }
}

renameItem

Description

Renames an item.
Returns the renamed item on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the item.

Note: Requires authenticated user.

Response

Returns an Item

Arguments
Name Description
dbId - ID! The id of the database.
itemId - Guid! The id of the item to be renamed.
newName - String! The new name of the folder.

Example

Query
mutation renameItem(
  $dbId: ID!,
  $itemId: Guid!,
  $newName: String!
) {
  renameItem(
    dbId: $dbId,
    itemId: $itemId,
    newName: $newName
  ) {
    id
    name
    color
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    lastChangedUser {
      ...UserFragment
    }
    parent {
      ...ItemFragment
    }
    parentsPath
    linkedItems {
      ...ItemFragment
    }
    userCanEdit
    userCanDelete
  }
}
Variables
{
  "dbId": "23aa6d75397a",
  "itemId": "d43e0938-bd5b-42aa-b1aa-b9cbd7c755d3",
  "newName": "xyz789"
}
Response
{
  "data": {
    "renameItem": {
      "id": "69040f9f-e339-42a2-a66f-0c49d8d22936",
      "name": "xyz789",
      "color": -13073009,
      "created": "2006-07-27T15:41:44",
      "lastChanged": "2014-10-17T01:44:39",
      "createdUser": User,
      "lastChangedUser": User,
      "parent": Item,
      "parentsPath": "abc123/xyz789",
      "linkedItems": [Item],
      "userCanEdit": true,
      "userCanDelete": false
    }
  }
}

renameKeyword

Description

Renames a keyword.
Returns the renamed keyword on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to rename a keyword.
  • KEYWORD_NOT_FOUND: The keyword with the specified ID could not be found.

Note: Requires authenticated user. Requires user admin rights.
Warning: The keyword is renamed in all associated documents.

Response

Returns a Keyword

Arguments
Name Description
dbId - ID! The id of the database.
keywordId - Guid! The id of the keyword that should be renamed.
newName - String! The new name of the keyword.

Example

Query
mutation renameKeyword(
  $dbId: ID!,
  $keywordId: Guid!,
  $newName: String!
) {
  renameKeyword(
    dbId: $dbId,
    keywordId: $keywordId,
    newName: $newName
  ) {
    id
    name
    documents {
      ...DocumentFragment
    }
  }
}
Variables
{
  "dbId": "d5f4bc845df9",
  "keywordId": "8bcff4e4-51d0-4a23-83c4-ff4d6514bd08",
  "newName": "xyz789"
}
Response
{
  "data": {
    "renameKeyword": {
      "id": "eba25e1b-5ed6-468d-9f3d-04e2ad993221",
      "name": "xyz789",
      "documents": [Document]
    }
  }
}

renameMetaField

Description

Renames a meta field.
Returns the renamed meta field on success, otherwise null.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to create a meta field.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.

Note: Requires authenticated user. Requires user admin rights.
Warning: The meta field is renamed in all associated document types and documents.

Response

Returns a MetaField

Arguments
Name Description
dbId - ID! The id of the database.
metaFieldId - Guid! The id of the meta field that should be renamed.
newName - String! The new name of the meta field.

Example

Query
mutation renameMetaField(
  $dbId: ID!,
  $metaFieldId: Guid!,
  $newName: String!
) {
  renameMetaField(
    dbId: $dbId,
    metaFieldId: $metaFieldId,
    newName: $newName
  ) {
    id
    name
    kind
    mask
    lineCount
    selectionOptions
    created
    lastChanged
    createdUser {
      ...UserFragment
    }
    lastChangedUser {
      ...UserFragment
    }
    metaDatas {
      ...MetaDataFragment
    }
    documentTypes {
      ...DocumentTypeFragment
    }
    expirationTemplates {
      ...ExpirationTemplateFragment
    }
  }
}
Variables
{
  "dbId": "f9a41abea11f",
  "metaFieldId": "e0dcd8a0-a876-43c2-bd7e-698964e13c5c",
  "newName": "abc123"
}
Response
{
  "data": {
    "renameMetaField": {
      "id": "274d7c0f-05e2-4e96-9f01-486c784e2e3d",
      "name": "abc123",
      "kind": "TEXT_SHORT",
      "mask": "abc123",
      "lineCount": 8,
      "selectionOptions": ["xyz789"],
      "created": "2015-09-07T00:52:44",
      "lastChanged": "2010-02-18T23:03:59",
      "createdUser": User,
      "lastChangedUser": User,
      "metaDatas": [MetaData],
      "documentTypes": [DocumentType],
      "expirationTemplates": [ExpirationTemplate]
    }
  }
}

renameQuickAccess

Description

Renames the quick access entry of the authenticated user.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • QUICK_ACCESS_NOT_FOUND: The quick access entry with the specified ID could not be found.
  • QUICK_ACCESS_NAME_INVALID: The name of a quick access entry is required and must not be empty.

Note: Requires authenticated user. A quick access entry belongs to the user who created it; the entry of another user cannot be renamed.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
quickAccessId - Guid! The id of the quick access entry.
name - String! The new name of the quick access entry.

Example

Query
mutation renameQuickAccess(
  $dbId: ID!,
  $quickAccessId: Guid!,
  $name: String!
) {
  renameQuickAccess(
    dbId: $dbId,
    quickAccessId: $quickAccessId,
    name: $name
  )
}
Variables
{
  "dbId": "aac5649c030a",
  "quickAccessId": "c6d97987-9431-42df-88fb-ab4a690e4da0",
  "name": "abc123"
}
Response
{"data": {"renameQuickAccess": false}}

resetUserPassword

Description

Resets a user password.
Returns true on success, false otherwise.

Possible execution exceptions:

  • NO_LOGIN_NAME_OR_MAIL_ADDRESS: Either login name or e-mail address needs to be provided.
  • USER_NOT_FOUND: The user with the specified ID could not be found.
  • NO_MAIL_ADDRESS: The user has no e-mail address defined, sending password reset e-mail is therefore not possible.

Note: Either login name or e-mail (at least one of both) needs to be provided.

Response

Returns a Boolean

Arguments
Name Description
customerId - ID! The id of the customer.
loginName - String The login name of the user.
eMail - String The e-mail of the user.

Example

Query
mutation resetUserPassword(
  $customerId: ID!,
  $loginName: String,
  $eMail: String
) {
  resetUserPassword(
    customerId: $customerId,
    loginName: $loginName,
    eMail: $eMail
  )
}
Variables
{
  "customerId": "4993a7c9b8d3",
  "loginName": "xyz789",
  "eMail": "mail@domain.com"
}
Response
{"data": {"resetUserPassword": false}}

saveSearchPattern

Description

Creates or updates a search pattern of an archive.
Returns the saved search pattern.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • SEARCH_PATTERN_INVALID: The title or the pattern of the search pattern is empty.
  • SEARCH_PATTERN_NOT_FOUND: The search pattern with the specified ID could not be found.
  • SEARCH_PATTERN_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the search pattern.

Note: Requires authenticated user. Without searchPatternId a new search pattern is created and belongs to the authenticated user. A personal search pattern is only visible to its owner; every search pattern the user sees may be changed, exactly as the search assistant of the client allows it.

Response

Returns a SearchPatternInfo

Arguments
Name Description
dbId - ID! The id of the database.
title - String! The title of the search pattern.
category - String The category of the search pattern.
pattern - String! The search pattern text.
options - Int! The combined SearchOptionKind flags as integer value (1 document title, 2 document content).
currentNodeOnly - Boolean! Defines whether the search is limited to the current folder.
personal - Boolean! Defines whether the search pattern is only visible to its owner.
searchPatternId - Guid The id of the search pattern to update. If omitted a new search pattern is created.

Example

Query
mutation saveSearchPattern(
  $dbId: ID!,
  $title: String!,
  $category: String,
  $pattern: String!,
  $options: Int!,
  $currentNodeOnly: Boolean!,
  $personal: Boolean!,
  $searchPatternId: Guid
) {
  saveSearchPattern(
    dbId: $dbId,
    title: $title,
    category: $category,
    pattern: $pattern,
    options: $options,
    currentNodeOnly: $currentNodeOnly,
    personal: $personal,
    searchPatternId: $searchPatternId
  ) {
    id
    title
    category
    pattern
    options
    currentNodeOnly
    personal
  }
}
Variables
{
  "dbId": "86f152116c9f",
  "title": "abc123",
  "category": "abc123",
  "pattern": "xyz789",
  "options": 460775715,
  "currentNodeOnly": true,
  "personal": false,
  "searchPatternId": "5e09e5cf-66c7-4bd7-91e2-147b737a7e5b"
}
Response
{
  "data": {
    "saveSearchPattern": {
      "id": "928eba4d-6de3-41b0-b501-742d76d85438",
      "title": "abc123",
      "category": "xyz789",
      "pattern": "xyz789",
      "options": 460775715,
      "currentNodeOnly": false,
      "personal": true
    }
  }
}

saveUserSettings

Description

Saves the settings of the authenticated user.
Returns true on success, false otherwise.

Note: Requires authenticated user.

Response

Returns a Boolean

Arguments
Name Description
settingsJson - String! The user settings as JSON string.

Example

Query
mutation saveUserSettings($settingsJson: String!) {
  saveUserSettings(settingsJson: $settingsJson)
}
Variables
{"settingsJson": "xyz789"}
Response
{"data": {"saveUserSettings": false}}

setDbPermissions

Description

Sets the permission entries of an archive.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage archives.
  • DB_NOT_FOUND: The archive with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the archive is required.
  • PERMISSIONS_INVALID: A permission entry has to reference either a user or a group.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. Access to an archive means that a permission entry matching the user or one of the groups of the user exists; an empty list makes the archive inaccessible for everybody.
Warning: The permission entries of the archive are replaced, not merged.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the archive.
permissions - [PermissionInput!]! The new permission entries of the archive.

Example

Query
mutation setDbPermissions(
  $dbId: ID!,
  $permissions: [PermissionInput!]!
) {
  setDbPermissions(
    dbId: $dbId,
    permissions: $permissions
  )
}
Variables
{"dbId": "de647082374f", "permissions": [PermissionInput]}
Response
{"data": {"setDbPermissions": false}}

setExpiration

Description

Sets the expiration of a document.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • EXPIRATION_ACTION_KIND_INVALID: The expiration action kind is not a valid value.
  • EXPIRATION_CHANGE_NOT_ALLOWED: The expiration of the document is protected and cannot be shortened.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. A document has at most one expiration; an existing one is updated.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
expectedVersion - Long! The rowVersion the document had when it was read.
expireUtc - DateTime! The date the document expires in UTC.
preventChange - Boolean Defines whether the document may not be changed or deleted before it expires. A protected expiration can only be extended. Default = false
actionKind - Int The action performed after expiration as ExpirationActionKind integer value (0 no action, 1 move to recycle bin, 2 delete permanently). Default = 0

Example

Query
mutation setExpiration(
  $dbId: ID!,
  $documentId: Guid!,
  $expectedVersion: Long!,
  $expireUtc: DateTime!,
  $preventChange: Boolean,
  $actionKind: Int
) {
  setExpiration(
    dbId: $dbId,
    documentId: $documentId,
    expectedVersion: $expectedVersion,
    expireUtc: $expireUtc,
    preventChange: $preventChange,
    actionKind: $actionKind
  )
}
Variables
{
  "dbId": "3749d533c592",
  "documentId": "c8e4fddf-c334-486b-abd4-98da279d837e",
  "expectedVersion": -9049124290990832000,
  "expireUtc": "2015-05-06T18:39:57",
  "preventChange": false,
  "actionKind": 0
}
Response
{"data": {"setExpiration": true}}

setExpirationTemplate

Description

Sets the expiration template of a document type.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage expiration templates.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.
  • EXPIRATION_TEMPLATE_INVALID: The period count, the period kind or the action kind of the expiration template is invalid.

Note: Requires authenticated user. Requires user admin rights. A document type has at most one expiration template; an existing one is updated with the whole template provided.
Warning: The template is applied to documents archived afterwards; existing expirations are not changed.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentTypeId - Guid! The id of the document type.
metaFieldId - Guid The id of the date meta field the expiration is based on. If omitted the expiration is based on the archiving date of the document.
periodCount - Int! The number of periods until a document expires.
periodKind - Int! The numeric ExpirationPeriodKind of the period.
actionKind - Int! The numeric ExpirationActionKind performed after expiration.
preventChange - Boolean! Defines whether a document may not be changed or deleted before it expires.

Example

Query
mutation setExpirationTemplate(
  $dbId: ID!,
  $documentTypeId: Guid!,
  $metaFieldId: Guid,
  $periodCount: Int!,
  $periodKind: Int!,
  $actionKind: Int!,
  $preventChange: Boolean!
) {
  setExpirationTemplate(
    dbId: $dbId,
    documentTypeId: $documentTypeId,
    metaFieldId: $metaFieldId,
    periodCount: $periodCount,
    periodKind: $periodKind,
    actionKind: $actionKind,
    preventChange: $preventChange
  )
}
Variables
{
  "dbId": "fea39d3a7b29",
  "documentTypeId": "57f38f8e-4c07-44b9-a052-84e823d37dda",
  "metaFieldId": "6d2bfb14-6701-40b5-9298-d3f3421b8389",
  "periodCount": 20,
  "periodKind": 460775715,
  "actionKind": 460775715,
  "preventChange": false
}
Response
{"data": {"setExpirationTemplate": false}}

setItemColor

Description

Sets the color of items.
Returns the number of items changed.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit one of the items.
  • CONFLICT: One of the items was changed by another user in the meantime.

Note: Requires authenticated user. Items that do not exist any more are skipped.

Response

Returns an Int

Arguments
Name Description
dbId - ID! The id of the database.
itemIds - [Guid!]! The ids of the items.
color - Int The new color of the items as ARGB integer value. If omitted the color of the items is cleared.

Example

Query
mutation setItemColor(
  $dbId: ID!,
  $itemIds: [Guid!]!,
  $color: Int
) {
  setItemColor(
    dbId: $dbId,
    itemIds: $itemIds,
    color: $color
  )
}
Variables
{
  "dbId": "3fed46908b2f",
  "itemIds": "b9e67231-05e7-4b79-b66c-1749b1fbcba3",
  "color": -2356646
}
Response
{"data": {"setItemColor": 460775715}}

setItemPermissions

Description

Sets the permissions of an item and propagates them to its children.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to change the permissions of the item.
  • PERMISSIONS_INVALID: Every permission has to be granted to exactly one of a user and a group.
  • CONFLICT: The item or one of its children was changed by another user in the meantime.

Note: Requires authenticated user. Requires user admin rights. An empty permission list grants access to everybody, which is how an item without permissions behaves.
Warning: The permissions of the item are replaced, not merged.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
itemId - Guid! The id of the item.
permissions - [PermissionInput!]! The new permissions of the item.
replaceChildPermissions - Boolean Defines whether the permissions of all children are replaced. If not set only children that inherited their permissions are updated. Default = false

Example

Query
mutation setItemPermissions(
  $dbId: ID!,
  $itemId: Guid!,
  $permissions: [PermissionInput!]!,
  $replaceChildPermissions: Boolean
) {
  setItemPermissions(
    dbId: $dbId,
    itemId: $itemId,
    permissions: $permissions,
    replaceChildPermissions: $replaceChildPermissions
  )
}
Variables
{
  "dbId": "c8f48027f6c9",
  "itemId": "61222cd5-9a04-4539-b9b2-d5f2d1f8e2b7",
  "permissions": [PermissionInput],
  "replaceChildPermissions": false
}
Response
{"data": {"setItemPermissions": false}}

setItemTag

Description

Sets the document tag of items.
Returns the number of items changed.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_TAG_NOT_FOUND: The document tag with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit one of the items.
  • CONFLICT: One of the items was changed by another user in the meantime.

Note: Requires authenticated user. Items that do not exist any more are skipped.

Response

Returns an Int

Arguments
Name Description
dbId - ID! The id of the database.
itemIds - [Guid!]! The ids of the items.
tagId - ID The id of the document tag. If omitted the document tag of the items is cleared.

Example

Query
mutation setItemTag(
  $dbId: ID!,
  $itemIds: [Guid!]!,
  $tagId: ID
) {
  setItemTag(
    dbId: $dbId,
    itemIds: $itemIds,
    tagId: $tagId
  )
}
Variables
{
  "dbId": "15e2a03c3258",
  "itemIds": "2a41c993-a4be-4279-8cde-aa748ef3b792",
  "tagId": "5c5e8d83fd81"
}
Response
{"data": {"setItemTag": 460775715}}

setQuickAccess

Description

Adds or removes the quick access entry of the authenticated user for an item.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ITEM_NOT_FOUND: The item with the specified ID could not be found.
  • ITEM_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to read the item.

Note: Requires authenticated user. The name of a new quick access entry is the name of the item. Setting the state it already has succeeds without a change.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
itemId - Guid! The id of the item.
enabled - Boolean! Defines whether the quick access entry exists afterwards.
name - String The name of a new quick access entry. If omitted the name of the item is used.

Example

Query
mutation setQuickAccess(
  $dbId: ID!,
  $itemId: Guid!,
  $enabled: Boolean!,
  $name: String
) {
  setQuickAccess(
    dbId: $dbId,
    itemId: $itemId,
    enabled: $enabled,
    name: $name
  )
}
Variables
{
  "dbId": "67c99e7d3de9",
  "itemId": "db610ce8-5f5d-49a1-bad5-d70182aa5e84",
  "enabled": false,
  "name": "abc123"
}
Response
{"data": {"setQuickAccess": false}}

setReminder

Description

Sets the reminder of the authenticated user for a document.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.

Note: Requires authenticated user. A user has at most one reminder per document; an existing one is updated. Reminders do not change the document, so they take no expectedVersion and do not change its rowVersion.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
remindUtc - DateTime! The date the user is reminded in UTC.
text - String The description of the reminder.
preRemindUtc - DateTime The date the user is reminded in advance in UTC. Omit for no reminder in advance.
done - Boolean Defines whether the reminder is done. Default = false

Example

Query
mutation setReminder(
  $dbId: ID!,
  $documentId: Guid!,
  $remindUtc: DateTime!,
  $text: String,
  $preRemindUtc: DateTime,
  $done: Boolean
) {
  setReminder(
    dbId: $dbId,
    documentId: $documentId,
    remindUtc: $remindUtc,
    text: $text,
    preRemindUtc: $preRemindUtc,
    done: $done
  )
}
Variables
{
  "dbId": "5aa57d8cfbf9",
  "documentId": "c4dd7e14-ab33-4bbf-af63-7381c4c915c7",
  "remindUtc": "2011-01-21T01:42:58",
  "text": "xyz789",
  "preRemindUtc": "2006-10-04T18:19:30",
  "done": false
}
Response
{"data": {"setReminder": false}}

signUp

Description

Signs up a new customer.
Returns true on success, false otherwise.

Response

Returns a Boolean

Arguments
Name Description
signUp - SignUpInput! The data of the customer signed up.

Example

Query
mutation signUp($signUp: SignUpInput!) {
  signUp(signUp: $signUp)
}
Variables
{"signUp": SignUpInput}
Response
{"data": {"signUp": false}}

unlinkDocuments

Description

Unlinks two documents.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT1_NOT_FOUND: The document 1 with the specified ID could not be found.
  • DOCUMENT2_NOT_FOUND: The document 2 with the specified ID could not be found.
  • DOCUMENT1_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document 1.
  • DOCUMENT2_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document 2.
  • NOT_LINKED: Document 1 and document 2 are not linked at the moment.

Note: Requires authenticated user.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
document1Id - Guid! The id of first document.
document2Id - Guid! The id of second document.

Example

Query
mutation unlinkDocuments(
  $dbId: ID!,
  $document1Id: Guid!,
  $document2Id: Guid!
) {
  unlinkDocuments(
    dbId: $dbId,
    document1Id: $document1Id,
    document2Id: $document2Id
  )
}
Variables
{
  "dbId": "ba7f751f41d4",
  "document1Id": "74ffd1c1-4e8f-4761-b929-5bed2eb54ee0",
  "document2Id": "aba18ee2-8afd-43bd-8bcc-9d9a8c55b841"
}
Response
{"data": {"unlinkDocuments": true}}

updateAttachment

Description

Updates the description of an attachment.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • CLOUD_STORAGE_NOT_AVAILABLE: The cloud storage is not available.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
attachmentId - Guid! The id of the attachment.
description - String The new description of the attachment.

Example

Query
mutation updateAttachment(
  $dbId: ID!,
  $attachmentId: Guid!,
  $description: String
) {
  updateAttachment(
    dbId: $dbId,
    attachmentId: $attachmentId,
    description: $description
  )
}
Variables
{
  "dbId": "b5e93f89c0dc",
  "attachmentId": "f4212a15-19b9-437f-8af2-0e1b9d18a421",
  "description": "abc123"
}
Response
{"data": {"updateAttachment": true}}

updateCurrentUserData

Description

Updates data of authenticated user.
Returns true on success, false otherwise.

Possible execution exceptions:

  • NOTHING_TO_UPDATE: No data was provided to update.
  • NEW_LOGIN_NAME_INVALID: The new login name does not match the validation RegEx.

Note: Requires authenticated user. All arguments optional, only specify what should be updated (at least one argument required).

Response

Returns a Boolean

Arguments
Name Description
loginName - String The new login name of the user. RegEx: ^([a-zA-Z0-9]([\w-]*[a-zA-Z0-9])?){3,}$
fullName - String The new full name of the user.
eMail - String The new e-mail of the user.
passwordHash - String The new password hash (SHA1, upper case) of the user.

Example

Query
mutation updateCurrentUserData(
  $loginName: String,
  $fullName: String,
  $eMail: String,
  $passwordHash: String
) {
  updateCurrentUserData(
    loginName: $loginName,
    fullName: $fullName,
    eMail: $eMail,
    passwordHash: $passwordHash
  )
}
Variables
{
  "loginName": "abc123",
  "fullName": "abc123",
  "eMail": "mail@domain.com",
  "passwordHash": "0D6A0C46164D3AD6409F95F8CB0E831CC3FC2D31"
}
Response
{"data": {"updateCurrentUserData": false}}

updateDb

Description

Updates title and description of an archive.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage archives.
  • DB_NOT_FOUND: The archive with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the archive is required.
  • PERMISSIONS_INVALID: A permission entry has to reference either a user or a group.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. Only the arguments provided are applied.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the archive.
title - String The new title of the archive.
description - String The new description of the archive.

Example

Query
mutation updateDb(
  $dbId: ID!,
  $title: String,
  $description: String
) {
  updateDb(
    dbId: $dbId,
    title: $title,
    description: $description
  )
}
Variables
{
  "dbId": "6f52a561ef9b",
  "title": "xyz789",
  "description": "abc123"
}
Response
{"data": {"updateDb": false}}

updateDbPassword

Description

Sets or removes the password of an archive.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage archives.
  • DB_NOT_FOUND: The archive with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the archive is required.
  • PERMISSIONS_INVALID: A permission entry has to reference either a user or a group.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. An omitted or empty passwordHash removes the password protection.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the archive.
passwordHash - String The new password hash (SHA1, upper case) of the archive.

Example

Query
mutation updateDbPassword(
  $dbId: ID!,
  $passwordHash: String
) {
  updateDbPassword(
    dbId: $dbId,
    passwordHash: $passwordHash
  )
}
Variables
{
  "dbId": "98350a637292",
  "passwordHash": "86659C6E7CD4389F205A22299BD08B371C30A5FF"
}
Response
{"data": {"updateDbPassword": false}}

updateDocumentProperties

Description

Saves the properties panel of a document in one call.
Returns the document detail after the change.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • DOCUMENT_NOT_FOUND: The document with the specified ID could not be found.
  • DOCUMENT_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to edit the document.
  • DOCUMENT_TYPE_NOT_FOUND: The document type with the specified ID could not be found.
  • META_FIELD_NOT_FOUND: A meta field with the specified ID could not be found.
  • META_FIELD_VALUE_NOT_FOUND: A meta field value with the specified ID could not be found or does not belong to the meta field.
  • KEYWORD_NOT_FOUND: A keyword with the specified ID could not be found.
  • CONFLICT: The document was changed by another user in the meantime.

Note: Requires authenticated user. Only the arguments provided are applied. metaData replaces the values of the meta fields it names, an omitted content deletes the meta data of that meta field; keywords replaces the whole keyword set of the document.
Warning: Changing the document type deletes all meta data of meta fields the new document type does not have. With applyExpirationTemplate a type change also applies the expiration template of the new document type: skipped when the type did not actually change, the new type has no template, or a template based on a date meta field finds no value for it (the metaData of the same call counts); a protected expiration is never shortened and stays protected. The answered detail shows the resulting expiration.

Response

Returns a DocumentDetail

Arguments
Name Description
dbId - ID! The id of the database.
documentId - Guid! The id of the document.
expectedVersion - Long! The rowVersion the document had when it was read. A different value answers CONFLICT before anything is changed.
name - String The new name of the document.
documentTypeId - Guid The id of the new document type of the document.
metaData - [MetaDataInput!] The meta data values to write.
keywords - [Guid!] The ids of all keywords the document should have afterwards.
applyExpirationTemplate - Boolean Applies the expiration template of the new document type when documentTypeId changes the type. The desktop client applies templates itself and must not send this.

Example

Query
mutation updateDocumentProperties(
  $dbId: ID!,
  $documentId: Guid!,
  $expectedVersion: Long!,
  $name: String,
  $documentTypeId: Guid,
  $metaData: [MetaDataInput!],
  $keywords: [Guid!],
  $applyExpirationTemplate: Boolean
) {
  updateDocumentProperties(
    dbId: $dbId,
    documentId: $documentId,
    expectedVersion: $expectedVersion,
    name: $name,
    documentTypeId: $documentTypeId,
    metaData: $metaData,
    keywords: $keywords,
    applyExpirationTemplate: $applyExpirationTemplate
  ) {
    id
    name
    fileExtension
    createdUtc
    lastChangedUtc
    createdUserName
    documentTypeId
    documentTypeName
    pageCount
    ocrUsed
    hasContentText
    hasOriginalText
    canEdit
    canDelete
    rowVersion
    path {
      ...PathSegmentFragment
    }
    latestRevision {
      ...DocumentRevisionInfoFragment
    }
    revisions {
      ...DocumentRevisionInfoFragment
    }
    metaData {
      ...MetaDataInfoFragment
    }
    keywords {
      ...KeywordInfoFragment
    }
    comments {
      ...CommentInfoFragment
    }
    links {
      ...LinkedItemFragment
    }
    attachments {
      ...AttachmentInfoFragment
    }
    expiration {
      ...ExpirationInfoFragment
    }
    reminders {
      ...ReminderInfoFragment
    }
    shares {
      ...ShareInfoFragment
    }
    isQuickAccess
  }
}
Variables
{
  "dbId": "e9718fe71fde",
  "documentId": "654cb8e9-0cfd-4d9a-bdeb-e5d90cef8dff",
  "expectedVersion": -9049124290990832000,
  "name": "xyz789",
  "documentTypeId": "507c6f2e-4da7-4ad6-b0fc-46efc3f9577a",
  "metaData": [MetaDataInput],
  "keywords": "d8e5588f-df65-4ca0-9096-1f8013df0c16",
  "applyExpirationTemplate": true
}
Response
{
  "data": {
    "updateDocumentProperties": {
      "id": "47adf8e6-d867-464a-89e1-626a82fecba3",
      "name": "xyz789",
      "fileExtension": "pdf",
      "createdUtc": "2018-01-05T15:34:51",
      "lastChangedUtc": "2019-01-01T08:02:09",
      "createdUserName": "xyz789",
      "documentTypeId": "7bac66ca-9b8a-4b17-9d17-56456c9c8e91",
      "documentTypeName": "xyz789",
      "pageCount": 1,
      "ocrUsed": true,
      "hasContentText": false,
      "hasOriginalText": true,
      "canEdit": false,
      "canDelete": false,
      "rowVersion": -9049124290990832000,
      "path": [PathSegment],
      "latestRevision": DocumentRevisionInfo,
      "revisions": [DocumentRevisionInfo],
      "metaData": [MetaDataInfo],
      "keywords": [KeywordInfo],
      "comments": [CommentInfo],
      "links": [LinkedItem],
      "attachments": [AttachmentInfo],
      "expiration": ExpirationInfo,
      "reminders": [ReminderInfo],
      "shares": [ShareInfo],
      "isQuickAccess": false
    }
  }
}

updateGroup

Description

Updates a group.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage groups.
  • GROUP_NOT_FOUND: The group with the specified ID could not be found.
  • TITLE_REQUIRED: The title of the group is required.
  • USER_NOT_FOUND: A user with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. Only the arguments provided are applied; userIds replaces the whole membership of the group.

Response

Returns a Boolean

Arguments
Name Description
groupId - Guid! The id of the group.
title - String The new title of the group.
description - String The new description of the group.
userIds - [Guid!] The ids of all users the group should contain afterwards.

Example

Query
mutation updateGroup(
  $groupId: Guid!,
  $title: String,
  $description: String,
  $userIds: [Guid!]
) {
  updateGroup(
    groupId: $groupId,
    title: $title,
    description: $description,
    userIds: $userIds
  )
}
Variables
{
  "groupId": "798861dc-7235-4525-8c0b-e16a71dab1ea",
  "title": "xyz789",
  "description": "abc123",
  "userIds": "ea8156f6-d7dd-4049-a93c-2b98f11a084a"
}
Response
{"data": {"updateGroup": false}}

updateMetaField

Description

Updates the input mask or the line count of a meta field.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to update a meta field.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.
  • MASK_CANNOT_BE_USED: The mask can only be used for TextShort meta fields.
  • LINE_COUNT_CANNOT_BE_USED: A line count can only be used for TextLong meta fields.
  • LINE_COUNT_INVALID: The line count is invalid (must be between 2 and 9 lines).

Note: Requires authenticated user. Requires user admin rights. Only the arguments provided are applied. The kind of a meta field cannot be changed, exactly as the meta field editor of the client enforces it; use renameMetaField for the name.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
metaFieldId - Guid! The id of the meta field.
mask - String The new text mask of the meta field (TextShort meta fields only). Send null to remove it.
lineCount - Short The new line count of the meta field (between 2 and 9 lines, TextLong meta fields only).

Example

Query
mutation updateMetaField(
  $dbId: ID!,
  $metaFieldId: Guid!,
  $mask: String,
  $lineCount: Short
) {
  updateMetaField(
    dbId: $dbId,
    metaFieldId: $metaFieldId,
    mask: $mask,
    lineCount: $lineCount
  )
}
Variables
{
  "dbId": "8289ad69740c",
  "metaFieldId": "04ebe9ee-be40-4270-abac-a8d486fa59da",
  "mask": "xyz789",
  "lineCount": 5
}
Response
{"data": {"updateMetaField": false}}

updateMetaFieldValue

Description

Updates the content of a selection list value of a meta field.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage meta field selection values.
  • META_FIELD_NOT_FOUND: The meta field with the specified ID could not be found.
  • META_FIELD_VALUE_NOT_FOUND: The meta field value with the specified ID could not be found.
  • INVALID_META_FIELD_KIND: The meta field is not a SelectionList meta field.
  • META_FIELD_VALUE_ALREADY_EXISTS: A value with this content exists already for this meta field.
  • META_FIELD_VALUE_INVALID: The content of a meta field value is required and must not be empty.

Note: Requires authenticated user. Requires user admin rights. The meta data of documents using the value follows the change, because it references the value and not its text.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
metaFieldValueId - Guid! The id of the meta field value.
content - String! The new content of the meta field value.

Example

Query
mutation updateMetaFieldValue(
  $dbId: ID!,
  $metaFieldValueId: Guid!,
  $content: String!
) {
  updateMetaFieldValue(
    dbId: $dbId,
    metaFieldValueId: $metaFieldValueId,
    content: $content
  )
}
Variables
{
  "dbId": "8f4c24430cd8",
  "metaFieldValueId": "e500ca45-4956-4bbf-8280-ce1afd2f38e9",
  "content": "abc123"
}
Response
{"data": {"updateMetaFieldValue": false}}

updateStamp

Description

Updates a stamp.
Returns true on success, false otherwise.

Possible execution exceptions:

  • DB_NOT_FOUND: The DB with the specified ID could not be found.
  • DB_NOT_ENOUGH_PERMISSIONS: The user does not have enough permissions to access the DB.
  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage stamps.
  • STAMP_NOT_FOUND: The stamp with the specified ID could not be found.
  • STAMP_INVALID: The name and the text of a stamp are required and must not be empty.

Note: Requires authenticated user. Requires user admin rights. Only the arguments provided are applied. A stamp has no last-changed columns, so every change re-stamps created with the authenticated user.

Response

Returns a Boolean

Arguments
Name Description
dbId - ID! The id of the database.
stampId - Guid! The id of the stamp.
name - String The new name of the stamp.
text - String The new text of the stamp.
color - Int The new color of the stamp as ARGB integer value.
opacity - Int The new opacity of the stamp in percent.
rotation - Int The new rotation of the stamp in degrees.

Example

Query
mutation updateStamp(
  $dbId: ID!,
  $stampId: Guid!,
  $name: String,
  $text: String,
  $color: Int,
  $opacity: Int,
  $rotation: Int
) {
  updateStamp(
    dbId: $dbId,
    stampId: $stampId,
    name: $name,
    text: $text,
    color: $color,
    opacity: $opacity,
    rotation: $rotation
  )
}
Variables
{
  "dbId": "4f14163141f7",
  "stampId": "242f1e0d-c783-41e6-845b-923c8f65c548",
  "name": "xyz789",
  "text": "xyz789",
  "color": -10042146,
  "opacity": 460775715,
  "rotation": 460775715
}
Response
{"data": {"updateStamp": false}}

updateUser

Description

Updates a user.
Returns true on success, false otherwise.

Possible execution exceptions:

  • ADMIN_REQUIRED: The user is not an admin, but this is required to manage users.
  • USER_NOT_FOUND: The user with the specified ID could not be found.
  • LOGIN_NAME_INVALID: The login name is invalid. RegEx: ^([a-zA-Z0-9]([\w-]*[a-zA-Z0-9])?){3,}$
  • LOGIN_NAME_ALREADY_EXISTS: A user with this login name exists already.
  • FULL_NAME_REQUIRED: The full name is required.
  • SYSTEM_USER_PROTECTED: The system user cannot be managed.
  • GROUP_NOT_FOUND: A group with one of the specified IDs could not be found.

Note: Requires authenticated user. Requires user admin rights. Only the arguments provided are applied; groupIds replaces the whole group membership of the user. The internal system user cannot be updated.

Response

Returns a Boolean

Arguments
Name Description
userId - Guid! The id of the user.
loginName - String The new login name of the user. RegEx: ^([a-zA-Z0-9]([\w-]*[a-zA-Z0-9])?){3,}$
fullName - String The new full name of the user.
eMail - String The new e-mail of the user.
description - String The new description of the user.
passwordHash - String The new password hash (SHA1, upper case) of the user.
admin - Boolean Defines whether the user is admin. Setting it also allows private archives.
active - Boolean Defines whether the user is active.
allowPrivateDb - Boolean Defines whether the user may own private archives.
changePasswordNextLogin - Boolean Defines whether the user has to change the password on the next login.
groupIds - [Guid!] The ids of all groups the user should be a member of afterwards.

Example

Query
mutation updateUser(
  $userId: Guid!,
  $loginName: String,
  $fullName: String,
  $eMail: String,
  $description: String,
  $passwordHash: String,
  $admin: Boolean,
  $active: Boolean,
  $allowPrivateDb: Boolean,
  $changePasswordNextLogin: Boolean,
  $groupIds: [Guid!]
) {
  updateUser(
    userId: $userId,
    loginName: $loginName,
    fullName: $fullName,
    eMail: $eMail,
    description: $description,
    passwordHash: $passwordHash,
    admin: $admin,
    active: $active,
    allowPrivateDb: $allowPrivateDb,
    changePasswordNextLogin: $changePasswordNextLogin,
    groupIds: $groupIds
  )
}
Variables
{
  "userId": "757feefd-59f6-4efa-9d69-d6580cfb5e6b",
  "loginName": "abc123",
  "fullName": "xyz789",
  "eMail": "mail@domain.com",
  "description": "abc123",
  "passwordHash": "586818627AC3D1AFB802D8997FA705C567A1A4FB",
  "admin": false,
  "active": true,
  "allowPrivateDb": true,
  "changePasswordNextLogin": true,
  "groupIds": "f1ff8718-43d8-431c-a1d1-da8e11462e49"
}
Response
{"data": {"updateUser": true}}

Types

AdminDb

Description

An archive as the administration dialog shows it.

Fields
Field Name Description
id - ID! The id of the archive.
title - String The title of the archive.
description - String The description of the archive.
hasPassword - Boolean! Defines whether the archive is password protected.
createdUtc - DateTime! The date the archive was created in UTC.
createdUserName - String The full name of the user who created the archive.
permissions - [DbPermissionInfo!]! The permission entries of the archive. An empty list means nobody has access.
Example
{
  "id": "5c5e8d83fd81",
  "title": "xyz789",
  "description": "abc123",
  "hasPassword": false,
  "createdUtc": "2023-08-06T21:35:34",
  "createdUserName": "abc123",
  "permissions": [DbPermissionInfo]
}

AdminGroup

Description

A group of users.

Fields
Field Name Description
id - Guid! The id of the group.
title - String The title of the group.
description - String The description of the group.
createdUtc - DateTime! The date the group was created in UTC.
userIds - [Guid!]! The ids of the members of the group.
Example
{
  "id": "e5c0bf8d-4055-4afc-b814-73651aa2f860",
  "title": "abc123",
  "description": "abc123",
  "createdUtc": "2026-05-24T22:47:43",
  "userIds": ["27997b7d-3a84-4e8d-9ce1-9dcfa8b1614a"]
}

AdminOverview

Description

Everything the administration dialog shows: users, groups and archives with their permissions.

Fields
Field Name Description
users - [AdminUser!]! All users except the internal system user, by full name.
groups - [AdminGroup!]! All groups with their members, by title.
dbs - [AdminDb!]! All archives with their permission entries, by title.
Example
{
  "users": [AdminUser],
  "groups": [AdminGroup],
  "dbs": [AdminDb]
}

AdminUser

Description

A user as the administration dialog shows it. Password hashes are never returned.

Fields
Field Name Description
id - Guid! The id of the user.
loginName - String The login name of the user.
fullName - String The full name of the user.
eMail - String The e-mail of the user.
description - String The description of the user.
hasPassword - Boolean! Defines whether the user has a password.
admin - Boolean! Defines whether the user is admin.
active - Boolean! Defines whether the user is active.
allowPrivateDb - Boolean! Defines whether the user may own private archives. Always set for admins.
changePasswordNextLogin - Boolean! Defines whether the user has to change the password on the next login.
createdUtc - DateTime! The date the user was created in UTC.
lastLoginUtc - DateTime The date the user logged in the last time in UTC.
groupIds - [Guid!]! The ids of the groups the user is a member of.
Example
{
  "id": "04dea7e2-f7c7-497b-9aea-8c88688de908",
  "loginName": "xyz789",
  "fullName": "xyz789",
  "eMail": "mail@domain.com",
  "description": "abc123",
  "hasPassword": true,
  "admin": false,
  "active": true,
  "allowPrivateDb": true,
  "changePasswordNextLogin": true,
  "createdUtc": "2007-06-27T11:36:17",
  "lastLoginUtc": "2022-02-23T15:28:44",
  "groupIds": ["bd6ef3ff-9ded-43b5-a8aa-84d7d8795b50"]
}

AttachmentCreated

Description

The attachment rows created together with the pre-signed URL the content is uploaded to.

Fields
Field Name Description
attachmentId - Guid! The id of the new attachment.
attachmentRevisionId - Guid! The id of the new attachment revision.
createdUtc - DateTime! The creation date of the attachment revision in UTC. It also derives the client side content encryption key.
uploadUrl - String The pre-signed HTTPS URL answering PUT requests.
uploadUrlExpiresAt - DateTime! The point in time the pre-signed URL expires.
Example
{
  "attachmentId": "d3ad5ff1-fbd5-48f5-8307-e1205ceb10fb",
  "attachmentRevisionId": "d93b8bd9-4122-4906-8e5c-e637efb12bd2",
  "createdUtc": "2016-10-14T21:27:51",
  "uploadUrl": "abc123",
  "uploadUrlExpiresAt": "2003-01-16T18:40:06"
}

AttachmentInfo

Description

One attachment of a document.

Fields
Field Name Description
id - Guid! The id of the attachment.
name - String The name of the attachment.
fileExtension - String The file extension of the attachment.
description - String The description of the attachment.
latestRevision - AttachmentRevisionInfo The newest revision of the attachment.
revisions - [AttachmentRevisionInfo!]! All revisions of the attachment, newest first.
Example
{
  "id": "4ded9b9f-203c-46f9-90f6-964acc2bfcb8",
  "name": "abc123",
  "fileExtension": "pdf",
  "description": "abc123",
  "latestRevision": AttachmentRevisionInfo,
  "revisions": [AttachmentRevisionInfo]
}

AttachmentRevisionInfo

Description

One revision of an attachment.

Fields
Field Name Description
id - Guid! The id of the attachment revision.
createdUtc - DateTime! The creation date of the attachment revision in UTC. It also derives the client side content encryption key.
createdUserName - String The full name of the user who created the attachment revision.
originalFileSize - Long The size of the original file in bytes.
archivedFileSize - Long The size of the archived (encrypted) content in bytes.
dataHash - String The hash of the archived content, used to verify a download.
Example
{
  "id": "a618a539-048e-4c98-ba0d-a2c0e4759687",
  "createdUtc": "2008-02-07T09:36:07",
  "createdUserName": "xyz789",
  "originalFileSize": 490705,
  "archivedFileSize": -9049124290990832000,
  "dataHash": "xyz789"
}

Boolean

Description

The Boolean scalar type represents true or false.

ClientChangesInput

Description

Contains information about client changes in the corresponding client version.

Fields
Input Field Description
languageCode - String! The LCID string of the requested language (currently only en-US supported).
changes - String! The changes text, one line per change.
Example
{
  "languageCode": "en-US",
  "changes": "abc123"
}

ClientStartInfo

Description

Contains the information required upon client start.

Fields
Field Name Description
dbServerHostName - String The host address of the database server.
cloudStorageRegion - String The region of the cloud storage.
Example
{"dbServerHostName": "server-host.name", "cloudStorageRegion": "eu-north-1"}

ClientUpdate

Description

Contains information about a client update.

Fields
Field Name Description
version - String The client version.
changes - String The changes in this version.
releaseDate - DateTime! The release date in this version.
betaVersion - Boolean! Indicates if this version is a beta version.
Example
{
  "version": "7.7.6",
  "changes": "xyz789",
  "releaseDate": "2015-04-22T22:44:22",
  "betaVersion": false
}

ClientUpdates

Description

Contains information about client updates.

Fields
Field Name Description
updates - [ClientUpdate] The list of client updates.
downloadUrl - String The download URL of the current release version.
downloadUrlBeta - String The download URL of the latest beta version.
Example
{
  "updates": [ClientUpdate],
  "downloadUrl": "https://www.quick-archive.com/download/Quick-Archive.exe",
  "downloadUrlBeta": "https://www.quick-archive.com/download/Quick-Archive-Beta.exe"
}

ClientVersionInput

Description

Contains information about a client version.

Fields
Input Field Description
major - Int! The major version number.
minor - Int! The minor version number.
revision - Int! The revision number.
releaseDate - DateTime! The release date of this version.
betaVersion - Boolean! Determines if this is a beta version.
clientChanges - [ClientChangesInput] The changes made in this version.
Example
{
  "major": 3,
  "minor": 9,
  "revision": 7,
  "releaseDate": "2012-12-28T21:10:42",
  "betaVersion": false,
  "clientChanges": [ClientChangesInput]
}

Comment

Description

Represents a Comment entity object.

Fields
Field Name Description
id - Guid! The id of the comment.
content - String! The content of the comment.
created - DateTime! The created date of the comment.
lastChanged - DateTime The date when the related comment was last changed.
createdUser - User The user who created the related comment.
document - Document The document this comment is associated to.
Example
{
  "id": "f14249b2-c567-4b28-b7e0-c4f533e2a77a",
  "content": "xyz789",
  "created": "2009-11-22T19:27:54",
  "lastChanged": "2009-12-06T23:19:28",
  "createdUser": User,
  "document": Document
}

CommentInfo

Description

One comment of a document.

Fields
Field Name Description
id - Guid! The id of the comment.
text - String The content of the comment.
createdUtc - DateTime! The creation date of the comment in UTC.
lastChangedUtc - DateTime The date the comment was last changed in UTC.
createdUserId - Guid! The id of the user who created the comment; the client only offers editing to that user.
createdUserName - String The full name of the user who created the comment.
Example
{
  "id": "e090fc91-7d08-41e9-9226-28b30b81b1de",
  "text": "xyz789",
  "createdUtc": "2006-11-07T21:49:30",
  "lastChangedUtc": "2001-05-14T07:33:49",
  "createdUserId": "9fef7064-97dd-4ffd-a2ef-842bfb50bace",
  "createdUserName": "abc123"
}

ContentUrl

Description

Contains a pre-signed cloud storage URL and the point in time it expires.

Fields
Field Name Description
url - String! The pre-signed HTTPS URL.
expiresAt - DateTime! The point in time the pre-signed URL expires.
Example
{
  "url": "xyz789",
  "expiresAt": "2023-09-23T16:34:25"
}

DateTime

Description

The DateTime scalar type represents a date and time. DateTime expects timestamps to be formatted in accordance with the ISO-8601 standard.

Example
"2004-05-04T16:27:16"

DbPermissionInfo

Description

One permission entry of an archive. Exactly one of userId and groupId is set.

Fields
Field Name Description
id - Guid! The id of the permission entry.
userId - Guid The id of the user the permission is granted to.
groupId - Guid The id of the group the permission is granted to.
dataRead - Boolean! Defines whether the data may be read.
dataEdit - Boolean! Defines whether the data may be edited.
dataDelete - Boolean! Defines whether the data may be deleted.
dataExport - Boolean! Defines whether the data may be exported.
changePermission - Boolean! Defines whether the permissions of the archive may be changed.
Example
{
  "id": "9847f7a1-5ae4-4421-bded-a0bce0f57831",
  "userId": "dca30013-7fc0-4ed4-842c-241b4c65d63d",
  "groupId": "69bed39d-0a85-4631-b99f-dcf5e98f185c",
  "dataRead": false,
  "dataEdit": true,
  "dataDelete": false,
  "dataExport": true,
  "changePermission": false
}

DbStatistics

Description

The numbers the database statistics dialog shows. The averages are derived from these values.

Fields
Field Name Description
dbId - ID! The id of the archive.
title - String The title of the archive.
documentCount - Long! The number of documents.
documentRevisionCount - Long! The number of document revisions.
documentPageCount - Long! The number of pages of all documents.
documentFileSize - Long! The archived size of all document revisions in bytes.
documentContentTextLength - Long! The number of characters of the content text of all documents.
metaDataCount - Long! The number of meta data values.
folderCount - Long! The number of folders.
itemCount - Long! The number of items. It should equal the number of documents plus the number of folders.
attachmentCount - Long! The number of attachments.
attachmentRevisionCount - Long! The number of attachment revisions.
attachmentPageCount - Long! The number of pages of all attachments.
attachmentFileSize - Long! The archived size of all attachment revisions in bytes.
Example
{
  "dbId": "6bc43b50cce0",
  "title": "abc123",
  "documentCount": -9049124290990832000,
  "documentRevisionCount": -9049124290990832000,
  "documentPageCount": -9049124290990832000,
  "documentFileSize": -9049124290990832000,
  "documentContentTextLength": -9049124290990832000,
  "metaDataCount": -9049124290990832000,
  "folderCount": -9049124290990832000,
  "itemCount": -9049124290990832000,
  "attachmentCount": -9049124290990832000,
  "attachmentRevisionCount": -9049124290990832000,
  "attachmentPageCount": -9049124290990832000,
  "attachmentFileSize": -9049124290990832000
}

DbWorkspace

Description

Everything the client needs when opening an archive.

Fields
Field Name Description
dbId - ID! The id of the archive.
rootFolderId - Guid! The id of the document root folder.
recycleBinId - Guid! The id of the recycle bin folder.
schemaVersion - Int! The archive schema version this server supports. Clients expecting a different version must not open the archive.
documentTypes - [DocumentTypeInfo!]! All document types of the archive.
metaFields - [MetaFieldInfo!]! All meta fields of the archive including their selection list values.
keywords - [KeywordInfo!]! All keywords of the archive.
stamps - [StampInfo!]! All stamps of the archive.
tags - [DocumentTagInfo!]! All document tags of the archive.
expirationTemplates - [ExpirationTemplateInfo!]! All expiration templates of the archive.
quickAccess - [QuickAccessInfo!]! The quick access entries of the authenticated user.
searchPatterns - [SearchPatternInfo!]! The search patterns of the archive visible to the authenticated user (all public ones plus the user's personal ones).
Example
{
  "dbId": "18e4bba85568",
  "rootFolderId": "f5234999-3fc5-4ce9-a90a-f3f80f4b10e5",
  "recycleBinId": "8578b62c-dff2-4f51-87de-98268f783254",
  "schemaVersion": 460775715,
  "documentTypes": [DocumentTypeInfo],
  "metaFields": [MetaFieldInfo],
  "keywords": [KeywordInfo],
  "stamps": [StampInfo],
  "tags": [DocumentTagInfo],
  "expirationTemplates": [ExpirationTemplateInfo],
  "quickAccess": [QuickAccessInfo],
  "searchPatterns": [SearchPatternInfo]
}

Document

Description

Represents a Document entity object.

Fields
Field Name Description
id - Guid! The id of the related document.
name - String The name of the related document.
color - Int The color of the related document as ARGB integer value.
created - DateTime! The created date of the related document.
lastChanged - DateTime! The date when the related document was last changed.
createdUser - User The user who created the related document.
lastChangedUser - User The user who changed the related document the last time.
parent - Item The parent item of the related document.
parentsPath - String The parents as path string.
linkedItems - [Item] The linked items of the related document.
userCanEdit - Boolean Defines whether the authenticated user can edit the document.
userCanDelete - Boolean Defines whether the authenticated user can delete the document.
fileExtension - String The file extension of the document.
ocrUsed - Boolean! Defines whether OCR regonition was used for the document.
contentText - String The content text of the document.
hasContentText - Boolean Returns true if document has content text.
pageCount - Int The page count of the document.
documentRevisions - [DocumentRevision] The document revisions associated with the document.
documentRevisionLatest - DocumentRevision The latest document revision associated with the document.
metaDatas - [MetaData] The meta datas associated with the document.
comments - [Comment] The comments associated with the document.
reminders - [Reminder] The reminders associated with the document.
shares - [Share] The shares associated with the document and created by authenticated user.
keywords - [Keyword] The keywords associated with the document.
documentType - DocumentType The document type associated with the document.
expiration - Expiration The expiration associated with the document.
Example
{
  "id": "d47c4486-b033-424d-a213-3bb6f687e5fa",
  "name": "xyz789",
  "color": -9458140,
  "created": "2006-07-21T01:53:26",
  "lastChanged": "2002-07-02T05:28:37",
  "createdUser": User,
  "lastChangedUser": User,
  "parent": Item,
  "parentsPath": "abc123/abc123",
  "linkedItems": [Item],
  "userCanEdit": true,
  "userCanDelete": true,
  "fileExtension": "pdf",
  "ocrUsed": false,
  "contentText": "xyz789",
  "hasContentText": true,
  "pageCount": 85,
  "documentRevisions": [DocumentRevision],
  "documentRevisionLatest": DocumentRevision,
  "metaDatas": [MetaData],
  "comments": [Comment],
  "reminders": [Reminder],
  "shares": [Share],
  "keywords": [Keyword],
  "documentType": DocumentType,
  "expiration": Expiration
}

DocumentArchived

Description

The document and the document revision written by one archiving call, together with the pre-signed URL the content is uploaded to.

Fields
Field Name Description
documentId - Guid! The id of the new document.
documentRevisionId - Guid! The id of the first revision of the new document.
createdUtc - DateTime! The creation date of the document and its revision in UTC. It also derives the client side content encryption key.
uploadUrl - String The pre-signed HTTPS URL answering PUT requests.
uploadUrlExpiresAt - DateTime! The point in time the pre-signed URL expires.
Example
{
  "documentId": "c47e7452-f1e1-4fc0-8c3d-6b177054f872",
  "documentRevisionId": "dcb09948-8932-494e-afed-638306bceee0",
  "createdUtc": "2009-10-21T20:27:28",
  "uploadUrl": "xyz789",
  "uploadUrlExpiresAt": "2017-07-14T19:59:27"
}

DocumentDetail

Description

Everything the document detail panels of the client show, in one answer.

Fields
Field Name Description
id - Guid! The id of the document.
name - String The name of the document.
fileExtension - String The file extension of the document.
createdUtc - DateTime! The creation date of the document in UTC.
lastChangedUtc - DateTime! The date the document was last changed in UTC.
createdUserName - String The full name of the user who created the document.
documentTypeId - Guid! The id of the document type of the document.
documentTypeName - String The name of the document type of the document.
pageCount - Int The page count of the document.
ocrUsed - Boolean! Defines whether OCR was used to detect the content text of the document.
hasContentText - Boolean! Defines whether the document has a content text; the text itself is only returned by the search.
hasOriginalText - Boolean! Defines whether the original file of the document contained text.
canEdit - Boolean! Defines whether the authenticated user may edit the document.
canDelete - Boolean! Defines whether the authenticated user may delete the document.
rowVersion - Long! The row version of the document; pass it as expectedVersion to the editing mutations.
path - [PathSegment!]! The breadcrumb path of the document, starting at the root folder and ending with the folder containing the document.
latestRevision - DocumentRevisionInfo The newest revision of the document.
revisions - [DocumentRevisionInfo!]! All revisions of the document, newest first.
metaData - [MetaDataInfo!]! The meta data of the document.
keywords - [KeywordInfo!]! The keywords of the document, by name.
comments - [CommentInfo!]! The comments of the document, oldest first.
links - [LinkedItem!]! The documents linked with the document.
attachments - [AttachmentInfo!]! The attachments of the document, by name.
expiration - ExpirationInfo The expiration of the document, null if it does not expire.
reminders - [ReminderInfo!]! The reminders of the authenticated user for the document; a user has at most one. An administrator receives every user's reminders, distinguished by userId.
shares - [ShareInfo!]! The shares of the authenticated user for the document, including the share link.
isQuickAccess - Boolean! Defines whether the authenticated user has a quick access entry for the document.
Example
{
  "id": "47adf8e6-d867-464a-89e1-626a82fecba3",
  "name": "abc123",
  "fileExtension": "pdf",
  "createdUtc": "2018-01-05T15:34:51",
  "lastChangedUtc": "2019-01-01T08:02:09",
  "createdUserName": "xyz789",
  "documentTypeId": "7bac66ca-9b8a-4b17-9d17-56456c9c8e91",
  "documentTypeName": "abc123",
  "pageCount": 1,
  "ocrUsed": true,
  "hasContentText": true,
  "hasOriginalText": true,
  "canEdit": false,
  "canDelete": false,
  "rowVersion": -9049124290990832000,
  "path": [PathSegment],
  "latestRevision": DocumentRevisionInfo,
  "revisions": [DocumentRevisionInfo],
  "metaData": [MetaDataInfo],
  "keywords": [KeywordInfo],
  "comments": [CommentInfo],
  "links": [LinkedItem],
  "attachments": [AttachmentInfo],
  "expiration": ExpirationInfo,
  "reminders": [ReminderInfo],
  "shares": [ShareInfo],
  "isQuickAccess": false
}

DocumentRevision

Description

Represents a DocumentRevision entity object.

Fields
Field Name Description
id - Guid! The id of the document revision.
fileSize - Long The file size of the document revision.
fileHash - String The file hash of the document revision.
originalFileCreated - DateTime The created date of the original file of the document revision.
originalFileLastChanged - DateTime The last changed date of the original file of the document revision.
originalFileSize - Long The file size of the original file of the document revision.
created - DateTime! The created date of the document revision.
createdUser - User The user who created the related document revision.
hasAnnotation - Boolean! Defines whether the document revision has annotations.
document - Document The associated document.
Example
{
  "id": "013e8a3a-eb1a-4b43-9afb-bd7c500e8853",
  "fileSize": 15327375,
  "fileHash": "30BD5043BBF861C63FC8816B19A7E11561DDBA53BBA3D20059904000D528C70D",
  "originalFileCreated": "2022-07-24T10:35:56",
  "originalFileLastChanged": "2009-01-24T13:08:58",
  "originalFileSize": 12640958,
  "created": "2009-09-26T17:33:18",
  "createdUser": User,
  "hasAnnotation": true,
  "document": Document
}

DocumentRevisionInfo

Description

One revision of a document.

Fields
Field Name Description
id - Guid! The id of the document revision.
createdUtc - DateTime! The creation date of the document revision in UTC. It also derives the client side content encryption key.
createdUserName - String The full name of the user who created the document revision.
hasAnnotation - Boolean! Defines whether the document revision has annotations.
originalFileName - String The file name of the original file the document revision was archived from.
originalFileCreatedUtc - DateTime The creation date of the original file in UTC.
originalFileLastChangedUtc - DateTime The date the original file was last changed in UTC.
originalFileSize - Long The size of the original file in bytes.
archivedFileSize - Long The size of the archived (encrypted) content in bytes.
dataHash - String The hash of the archived content, used to verify a download.
Example
{
  "id": "ec3ab9b1-039d-4979-97d7-e2f05ff69dd6",
  "createdUtc": "2006-04-12T06:08:28",
  "createdUserName": "abc123",
  "hasAnnotation": false,
  "originalFileName": "abc123",
  "originalFileCreatedUtc": "2014-03-11T14:06:09",
  "originalFileLastChangedUtc": "2015-11-04T06:51:27",
  "originalFileSize": 156048,
  "archivedFileSize": -9049124290990832000,
  "dataHash": "abc123"
}

DocumentTagInfo

Description

A document tag of the archive. Its id is the tag name, not a GUID.

Fields
Field Name Description
id - ID! The id of the document tag.
nameOverride - String The custom display name of the document tag.
position - Int! The display position of the document tag.
Example
{
  "id": "5c5e8d83fd81",
  "nameOverride": "xyz789",
  "position": 460775715
}

DocumentType

Description

Represents a DocumentType entity object.

Fields
Field Name Description
id - Guid! The id of the document type.
name - String! The content of the document type.
metaFields - [MetaField] The meta fields associated with the document type.
expirationTemplate - ExpirationTemplate The expiration template associated with the document type.
documents - [Document] The documents associated with the document type.
folders - [Folder] The folders associated with the document type.
Example
{
  "id": "21eea80d-20d1-4b02-8213-6388fd25e376",
  "name": "xyz789",
  "metaFields": [MetaField],
  "expirationTemplate": ExpirationTemplate,
  "documents": [Document],
  "folders": [Folder]
}

DocumentTypeInfo

Description

A document type of the archive.

Fields
Field Name Description
id - Guid! The id of the document type.
name - String The name of the document type.
metaFieldIds - [Guid!]! The ids of the meta fields of the document type, in display order.
Example
{
  "id": "54c4e901-4fcd-419b-83e3-54348c37e2cb",
  "name": "xyz789",
  "metaFieldIds": ["b02dd8a4-5475-499a-82e0-683eb5db2207"]
}

Expiration

Description

Represents a Expiration entity object.

Fields
Field Name Description
id - Guid! The id of the expiration.
expire - DateTime! The point in time of expiration.
preventChange - Boolean! Defines whether a change is possible before expiration (warning: this cannot be undone).
actionKind - ExpirationActionKind The kind of action to be applied after expiration.
created - DateTime! The created date of the expiration.
createdUser - User The user who created the expiration.
document - Document The document associated with the expiration.
Example
{
  "id": "85dc0b86-3f31-47e8-b168-e7df61ff6236",
  "expire": "2021-02-22T19:37:19",
  "preventChange": true,
  "actionKind": "NO_ACTION",
  "created": "2008-09-29T20:02:48",
  "createdUser": User,
  "document": Document
}

ExpirationActionKind

Values
Enum Value Description

NO_ACTION

No action performed after expiration.

MOVE_TO_RECYCLE_BIN

Document moved to recycle bin after expiration.

DELETE_PERMANENTLY

Document permanently deleted after expiration.
Example
"NO_ACTION"

ExpirationInfo

Description

The expiration of a document.

Fields
Field Name Description
id - Guid! The id of the expiration.
expireUtc - DateTime! The date the document expires in UTC.
preventChange - Boolean! Defines whether the document may not be changed or deleted before it expires.
actionKind - Int! The action performed after expiration as ExpirationActionKind integer value.
createdUtc - DateTime! The date the expiration was set in UTC.
createdUserName - String The full name of the user who set the expiration.
Example
{
  "id": "16f29890-9e42-4cc3-9cac-3e1432d58324",
  "expireUtc": "2010-11-17T22:19:06",
  "preventChange": false,
  "actionKind": 460775715,
  "createdUtc": "2003-10-17T08:52:35",
  "createdUserName": "xyz789"
}

ExpirationOverview

Description

One expiration created by the authenticated user together with its document.

Fields
Field Name Description
id - Guid! The id of the expiration.
documentId - Guid! The id of the document the expiration belongs to.
documentName - String The name of the document.
documentFileExtension - String The file extension of the document.
expireUtc - DateTime! The date the document expires in UTC.
preventChange - Boolean! Defines whether the document may not be changed or deleted before it expires.
actionKind - Int! The numeric ExpirationActionKind performed after expiration.
createdUtc - DateTime! The date the expiration was last written in UTC.
createdUserId - Guid! The id of the user who created the expiration.
createdUserName - String The full name of the user who created the expiration.
documentCreatedUtc - DateTime! The date the document was archived in UTC.
documentLastChangedUtc - DateTime! The date the document was changed the last time in UTC.
documentCreatedUserName - String The full name of the user who archived the document.
documentLastChangedUserName - String The full name of the user who changed the document the last time.
Example
{
  "id": "c7b68451-db67-4a40-81d1-c740f412d45f",
  "documentId": "bd23f816-af42-49fb-84b2-acbb2c4f6156",
  "documentName": "abc123",
  "documentFileExtension": "xyz789",
  "expireUtc": "2009-02-16T04:53:10",
  "preventChange": false,
  "actionKind": 460775715,
  "createdUtc": "2020-03-19T02:43:13",
  "createdUserId": "04c399a4-6379-45ce-bcc2-ac3b2d9454b2",
  "createdUserName": "abc123",
  "documentCreatedUtc": "2000-11-21T12:33:31",
  "documentLastChangedUtc": "2024-09-20T22:31:53",
  "documentCreatedUserName": "xyz789",
  "documentLastChangedUserName": "xyz789"
}

ExpirationPeriodKind

Values
Enum Value Description

DAY

Expiration period kind is a day.

WEEK

Expiration period kind is a week.

MONTH

Expiration period kind is a month.

YEAR

Expiration period kind is a year.
Example
"DAY"

ExpirationTemplate

Description

Represents a ExpirationTemplate entity object.

Fields
Field Name Description
id - Guid! The id of the expiration template.
periodCount - Int! The number of periods before expiration.
periodKind - ExpirationPeriodKind The kind of expiration period.
preventChange - Boolean! Defines whether a change is possible before expiration (warning: this cannot be undone).
actionKind - ExpirationActionKind The kind of action to be applied after expiration.
created - DateTime! The created date of the expiration template.
createdUser - User The user who created the expiration template.
metaField - MetaField If meta field (needs to be a date field) is associated with the expiration template this date will be used as basis for expiration, otherwise the document created date.
documentType - DocumentType The document type associated with the expiration template.
Example
{
  "id": "1f5c06de-d9e1-4ee0-809f-223b9686936a",
  "periodCount": 366,
  "periodKind": "DAY",
  "preventChange": true,
  "actionKind": "NO_ACTION",
  "created": "2009-04-29T03:10:07",
  "createdUser": User,
  "metaField": MetaField,
  "documentType": DocumentType
}

ExpirationTemplateInfo

Description

An expiration template of the archive.

Fields
Field Name Description
id - Guid! The id of the expiration template.
documentTypeId - Guid! The id of the document type the expiration template belongs to.
metaFieldId - Guid The id of the meta field the expiration period is calculated from. If omitted the document creation date is used.
periodKind - Int! The numeric ExpirationPeriodKind of the expiration template.
periodCount - Int! The number of periods until expiration.
actionKind - Int! The numeric ExpirationActionKind of the expiration template.
preventChange - Boolean! Defines whether an already calculated expiration date may be shortened.
Example
{
  "id": "1a78be24-58a3-4b19-9f75-1fc530d14ee5",
  "documentTypeId": "d049c923-f7f5-4efd-8432-3b83137fbc93",
  "metaFieldId": "fe09eaae-0221-48d1-8c9d-fb9bf050b134",
  "periodKind": 460775715,
  "periodCount": 260,
  "actionKind": 460775715,
  "preventChange": false
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

Folder

Description

Represents a Folder entity object.

Fields
Field Name Description
id - Guid! The id of the related folder.
name - String The name of the related folder.
color - Int The color of the related folder as ARGB integer value.
created - DateTime! The created date of the related folder.
lastChanged - DateTime! The date when the related folder was last changed.
createdUser - User The user who created the related folder.
lastChangedUser - User The user who changed the related folder the last time.
parent - Item The parent item of the related folder.
parentsPath - String The parents as path string.
linkedItems - [Item] The linked items of the related folder.
userCanEdit - Boolean Defines whether the authenticated user can edit the folder.
userCanDelete - Boolean Defines whether the authenticated user can delete the folder.
description - String The description of the folder.
Example
{
  "id": "5cfbe451-6823-4c6c-853c-8501c5c4b0d9",
  "name": "xyz789",
  "color": -2309292,
  "created": "2021-09-06T04:30:08",
  "lastChanged": "2018-07-04T21:55:56",
  "createdUser": User,
  "lastChangedUser": User,
  "parent": Item,
  "parentsPath": "abc123/abc123",
  "linkedItems": [Item],
  "userCanEdit": false,
  "userCanDelete": true,
  "description": "abc123"
}

FolderInfo

Description

The folder a folder view was requested for.

Fields
Field Name Description
id - Guid! The id of the folder.
name - String The name of the folder.
description - String The description of the folder.
createdUtc - DateTime! The creation date of the folder in UTC.
lastChangedUtc - DateTime! The date the folder was last changed in UTC.
canEdit - Boolean! Defines whether the authenticated user may edit the folder.
canDelete - Boolean! Defines whether the authenticated user may delete the folder.
subFolderCount - Int! The number of sub folders of the folder the authenticated user may see.
documentCount - Int! The number of documents of the folder the authenticated user may see.
path - [PathSegment!]! The breadcrumb path of the folder, starting at the root and ending with the folder itself.
Example
{
  "id": "cbabd84b-b663-46e0-9d42-afa20536261a",
  "name": "abc123",
  "description": "xyz789",
  "createdUtc": "2024-11-21T03:00:46",
  "lastChangedUtc": "2018-03-07T02:53:13",
  "canEdit": false,
  "canDelete": false,
  "subFolderCount": 460775715,
  "documentCount": 460775715,
  "path": [PathSegment]
}

FolderView

Description

A folder, its breadcrumb path and a page of its children.

Fields
Field Name Description
folder - FolderInfo! The requested folder.
totalCount - Int! The number of children of the folder the authenticated user may see, independent of paging.
children - [ItemRow!]! The requested page of children, folders first and then by name.
Example
{
  "folder": FolderInfo,
  "totalCount": 460775715,
  "children": [ItemRow]
}

GenderKind

Values
Enum Value Description

MALE

The gender is male.

FEMALE

The gender is female.
Example
"MALE"

Guid

Example
"7968afa9-9653-4ba2-a0ab-1917a98c5ce2"

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"5c5e8d83fd81"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
460775715

Item

Description

Interface implemented by Document and Folder entity objects.

Fields
Field Name Description
id - Guid! The id of the item.
name - String The name of the item.
color - Int The color of the item as ARGB integer value.
created - DateTime! The created date of the item.
lastChanged - DateTime! The date when the item was last changed.
createdUser - User The user who created the related item.
lastChangedUser - User The user who changed the related item the last time.
parent - Item The parent item.
parentsPath - String The parents as path string.
linkedItems - [Item] The linked items.
userCanEdit - Boolean Defines whether the authenticated user can edit the item.
userCanDelete - Boolean Defines whether the authenticated user can delete the item.
Possible Types
Item Types

Folder

Document

Example
{
  "id": "69040f9f-e339-42a2-a66f-0c49d8d22936",
  "name": "abc123",
  "color": -13073009,
  "created": "2006-07-27T15:41:44",
  "lastChanged": "2014-10-17T01:44:39",
  "createdUser": User,
  "lastChangedUser": User,
  "parent": Item,
  "parentsPath": "abc123/xyz789",
  "linkedItems": [Item],
  "userCanEdit": false,
  "userCanDelete": false
}

ItemKind

Values
Enum Value Description

FOLDER

DOCUMENT

Example
"FOLDER"

ItemPermission

Description

One permission entry of an item.

Fields
Field Name Description
id - Guid! The id of the permission entry.
userId - Guid The id of the user the entry applies to.
groupId - Guid The id of the group the entry applies to.
dataRead - Boolean! Whether reading is allowed.
dataEdit - Boolean! Whether editing is allowed.
dataDelete - Boolean! Whether deleting is allowed.
dataExport - Boolean! Whether exporting is allowed.
changePermission - Boolean! Whether changing permissions is allowed.
inherited - Boolean! Whether the entry was inherited from the parent folder.
Example
{
  "id": "18fd1b72-3227-4959-b18b-7cc4c4f6d243",
  "userId": "29d0445d-2c08-4bb4-a493-627a2e8f9a8d",
  "groupId": "19bdba0c-9407-468a-820a-dc0c0bfaaa4b",
  "dataRead": false,
  "dataEdit": false,
  "dataDelete": false,
  "dataExport": false,
  "changePermission": true,
  "inherited": false
}

ItemRow

Description

One row of a folder listing with everything pre-resolved the client shows.

Fields
Field Name Description
id - Guid! The id of the item.
kind - ItemKind! Defines whether the item is a folder or a document.
name - String The name of the item.
createdUtc - DateTime! The creation date of the item in UTC.
lastChangedUtc - DateTime! The date the item was last changed in UTC.
createdUserName - String The full name of the user who created the item.
lastChangedUserName - String The full name of the user who changed the item the last time.
fileExtension - String The file extension of the item, null for folders.
documentTypeName - String The name of the document type of the item, null for folders and documents without document type.
fileSize - Long The original file size of the latest revision of the item in bytes, null for folders and for documents whose upload has not completed yet.
subCount - Int! The number of children of the item.
tagId - ID The id of the document tag of the item. The id of a document tag is its name, not a GUID.
color - Int The color of the item as ARGB integer value.
canEdit - Boolean! Defines whether the authenticated user may edit the item.
canDelete - Boolean! Defines whether the authenticated user may delete the item.
deleteProtected - Boolean! Defines whether an unexpired expiration with change protection prevents deleting the item.
hasShare - Boolean! Defines whether the authenticated user shares the item via a share link.
rowVersion - Long! The row version of the item; pass it as expectedVersion to the editing mutations.
metaValues - [MetaValue!]! The meta data of the item as display strings, empty for folders.
Example
{
  "id": "28080e7b-72f2-4845-83b6-bda5d93a793b",
  "kind": "FOLDER",
  "name": "xyz789",
  "createdUtc": "2019-07-12T10:08:51",
  "lastChangedUtc": "2015-09-14T14:17:16",
  "createdUserName": "xyz789",
  "lastChangedUserName": "xyz789",
  "fileExtension": "pdf",
  "documentTypeName": "abc123",
  "fileSize": 8187330,
  "subCount": 460775715,
  "tagId": "5c5e8d83fd81",
  "color": -15428477,
  "canEdit": true,
  "canDelete": false,
  "deleteProtected": false,
  "hasShare": true,
  "rowVersion": -9049124290990832000,
  "metaValues": [MetaValue]
}

Keyword

Description

Represents a Keyword entity object.

Fields
Field Name Description
id - Guid! The id of the keyword.
name - String! The name of the keyword.
documents - [Document] The documents this keyword is associated to.
Example
{
  "id": "eba25e1b-5ed6-468d-9f3d-04e2ad993221",
  "name": "abc123",
  "documents": [Document]
}

KeywordInfo

Description

A keyword of the archive.

Fields
Field Name Description
id - Guid! The id of the keyword.
name - String The name of the keyword.
Example
{
  "id": "e815c0e8-9c1a-4789-97b5-debecaaa5214",
  "name": "xyz789"
}

LinkedItem

Description

One document linked with a document.

Fields
Field Name Description
id - Guid! The id of the linked document.
name - String The name of the linked document.
fileExtension - String The file extension of the linked document.
Example
{
  "id": "c2d98002-8b98-4183-93b9-a09929b0db56",
  "name": "xyz789",
  "fileExtension": "pdf"
}

LoginResult

Description

The result of a successful login, including the newly created session.

Fields
Field Name Description
activeSession - Guid! The id of the session created by this login.
dbServerHostName - String The host name of the database server of the customer.
cloudStorageRegion - String The cloud storage region of the customer.
user - WorkspaceUser! The authenticated user.
Example
{
  "activeSession": "c7453328-8488-4cdb-a066-23d06fb4a985",
  "dbServerHostName": "server-host.name",
  "cloudStorageRegion": "eu-north-1",
  "user": WorkspaceUser
}

Long

Example
-9049124290990832000

MetaData

Description

Represents a MetaData entity object.

Fields
Field Name Description
id - Guid! The id of the meta data.
content - String The content of the meta data.
document - Document The document associated with the meta data.
metaField - MetaField The meta field associated with the meta data.
Example
{
  "id": "0da5d340-acb6-45e3-a0d7-b8324f5c178b",
  "content": "xyz789",
  "document": Document,
  "metaField": MetaField
}

MetaDataInfo

Description

One typed meta data value of a document.

Fields
Field Name Description
id - Guid! The id of the meta data.
metaFieldId - Guid! The id of the meta field the value belongs to.
metaFieldName - String The name of the meta field.
kind - Int! The kind of the meta field as MetaFieldKind integer value.
contentText - String The content of a TextShort or TextLong meta field, or the selected value of a SelectionList meta field.
contentNumber - Float The content of a NumberInteger, NumberDecimal or NumberCurrency meta field.
contentDateTimeUtc - DateTime The content of a Date or Time meta field in UTC.
contentCheckBox - Boolean The content of a CheckBox meta field.
Example
{
  "id": "da8ea001-a8e1-490a-bd27-2fe6547da26b",
  "metaFieldId": "c43bed96-ffed-46dc-9ca9-cf579e083151",
  "metaFieldName": "xyz789",
  "kind": 460775715,
  "contentText": "abc123",
  "contentNumber": 987.65,
  "contentDateTimeUtc": "2023-10-15T07:00:41",
  "contentCheckBox": false
}

MetaDataInput

Description

One typed meta data value of a document. Only the content field matching the kind of the meta field is read; if it is omitted the meta data of the meta field is deleted.

Fields
Input Field Description
metaFieldId - Guid! The id of the meta field the value belongs to.
contentText - String The content of a TextShort or TextLong meta field.
contentNumber - Float The content of a NumberInteger, NumberDecimal or NumberCurrency meta field.
contentDateTimeUtc - DateTime The content of a Date or Time meta field in UTC.
contentCheckBox - Boolean The content of a CheckBox meta field.
metaFieldValueId - Guid The id of the selected meta field value of a SelectionList meta field.
Example
{
  "metaFieldId": "718453ff-b3fe-41b5-bbf7-c0197f7df5b3",
  "contentText": "abc123",
  "contentNumber": 987.65,
  "contentDateTimeUtc": "2025-03-09T23:38:10",
  "contentCheckBox": false,
  "metaFieldValueId": "8db6275a-013c-469d-85b9-f62e8a7a8616"
}

MetaField

Description

Represents a MetaField entity object.

Fields
Field Name Description
id - Guid! The id of the meta field.
name - String! The content of the meta field.
kind - MetaFieldKind The kind of the meta field.
mask - String The mask of the meta field (can only be used for short text fields).
lineCount - Short The line count of the meta field (can only be used for long text fields).
selectionOptions - [String] The selection options of the meta field (can only be used for selection list fields).
created - DateTime! The created date of the meta field.
lastChanged - DateTime! The date when the meta field was last changed.
createdUser - User The user who created the meta field.
lastChangedUser - User The user who changed the meta field the last time.
metaDatas - [MetaData] The meta datas associated with the meta field.
documentTypes - [DocumentType] The document types associated with the meta field.
expirationTemplates - [ExpirationTemplate] The expiration templates associated with the meta field.
Example
{
  "id": "274d7c0f-05e2-4e96-9f01-486c784e2e3d",
  "name": "abc123",
  "kind": "TEXT_SHORT",
  "mask": "xyz789",
  "lineCount": 8,
  "selectionOptions": ["xyz789"],
  "created": "2015-09-07T00:52:44",
  "lastChanged": "2010-02-18T23:03:59",
  "createdUser": User,
  "lastChangedUser": User,
  "metaDatas": [MetaData],
  "documentTypes": [DocumentType],
  "expirationTemplates": [ExpirationTemplate]
}

MetaFieldInfo

Description

A meta field of the archive.

Fields
Field Name Description
id - Guid! The id of the meta field.
name - String The name of the meta field.
kind - Int! The numeric MetaFieldKind of the meta field.
mask - String The input mask of the meta field.
lineCount - Int The number of lines of a TextLong meta field.
values - [MetaFieldValueInfo!]! The selection list values of the meta field.
Example
{
  "id": "85d3143b-91d0-4ec0-992a-0cf6f9569486",
  "name": "abc123",
  "kind": 460775715,
  "mask": "xyz789",
  "lineCount": 460775715,
  "values": [MetaFieldValueInfo]
}

MetaFieldKind

Values
Enum Value Description

TEXT_SHORT

Meta field is a short text field (only one line).

TEXT_LONG

Meta field is a long text field (with specified line count).

NUMBER_INTEGER

Meta field is an integer number field.

NUMBER_DECIMAL

Meta field is a decimal number field.

NUMBER_CURRENCY

Meta field is a currency number field.

CHECK_BOX

Meta field is a check box.

DATE

Meta field is a date field.

TIME

Meta field is a time field.

SELECTION_LIST

Meta field is a selection list.
Example
"TEXT_SHORT"

MetaFieldValueInfo

Description

A selection list value of a meta field.

Fields
Field Name Description
id - Guid! The id of the meta field value.
content - String The content of the meta field value.
Example
{
  "id": "b440df25-c3a0-449c-9a7b-2de2c9f2ac08",
  "content": "abc123"
}

MetaValue

Description

One meta data value of an item, already formatted for display.

Fields
Field Name Description
metaFieldId - Guid! The id of the meta field the value belongs to.
display - String The value formatted with invariant culture, as MetaData.GetContentAsString formats it.
Example
{
  "metaFieldId": "ec38dae2-3793-48f4-8446-b99966791360",
  "display": "abc123"
}

PathSegment

Description

One folder of a breadcrumb path.

Fields
Field Name Description
id - Guid! The id of the folder.
name - String The name of the folder.
Example
{
  "id": "24e45923-8c03-4058-8fb8-650c26fa326e",
  "name": "abc123"
}

PermissionInput

Description

One permission entry of an item. Exactly one of userId and groupId has to be provided.

Fields
Input Field Description
userId - Guid The id of the user the permission is granted to.
groupId - Guid The id of the group the permission is granted to.
dataRead - Boolean! Defines whether the data may be read.
dataEdit - Boolean! Defines whether the data may be edited.
dataDelete - Boolean! Defines whether the data may be deleted.
dataExport - Boolean! Defines whether the data may be exported.
changePermission - Boolean! Defines whether the permissions of the item may be changed.
Example
{
  "userId": "17598029-8495-4976-8a78-29b1c6df4034",
  "groupId": "7ba46bd8-c933-4927-b226-73ff7180d8b7",
  "dataRead": false,
  "dataEdit": true,
  "dataDelete": true,
  "dataExport": true,
  "changePermission": true
}

QuickAccessInfo

Description

A quick access entry of the authenticated user.

Fields
Field Name Description
id - Guid! The id of the quick access entry.
name - String The name of the quick access entry.
itemId - Guid! The id of the item the quick access entry points to.
userId - Guid! The id of the user owning the quick access entry.
Example
{
  "id": "fc623519-33e3-4f93-aa33-974f6529fbfe",
  "name": "xyz789",
  "itemId": "f861ba41-1207-4d7d-ab34-0ad32de08214",
  "userId": "e17e840d-0cb3-47a0-b808-762ba0873a4e"
}

Reminder

Description

Represents a Reminder entity object.

Fields
Field Name Description
id - Guid! The id of the reminder.
preRemind - DateTime The point in time of an optional pre-reminder.
remind - DateTime! The point in time of reminder.
description - String The description of the reminder.
done - Boolean! Defines whether a reminder is done.
created - DateTime! The created date of the reminder.
createdUser - User The user who created the reminder.
document - Document The document associated with the reminder.
Example
{
  "id": "007bce18-1b23-494d-a872-5dca5b1810a4",
  "preRemind": "2004-02-08T02:11:27",
  "remind": "2011-04-02T17:43:29",
  "description": "xyz789",
  "done": true,
  "created": "2013-01-20T07:49:55",
  "createdUser": User,
  "document": Document
}

ReminderInfo

Description

One reminder of a document. Reminders belong to the user who created them; userId names that owner, which matters to administrators, who receive every user's reminders and may delete them through deleteReminder.

Fields
Field Name Description
id - Guid! The id of the reminder.
remindUtc - DateTime! The date the user is reminded in UTC.
preRemindUtc - DateTime The date the user is reminded in advance in UTC.
done - Boolean! Defines whether the reminder is done.
userId - Guid! The id of the user the reminder belongs to.
text - String The description of the reminder.
createdUtc - DateTime! The creation date of the reminder in UTC.
createdUserName - String The full name of the user the reminder belongs to.
Example
{
  "id": "c630364c-9ada-4dcd-847e-eee1a8639e17",
  "remindUtc": "2013-03-17T21:38:43",
  "preRemindUtc": "2016-04-12T03:59:18",
  "done": false,
  "userId": "4bc888a7-5d42-4258-aef4-95b60a362776",
  "text": "xyz789",
  "createdUtc": "2025-01-28T05:55:22",
  "createdUserName": "xyz789"
}

ReminderOverview

Description

One reminder of the authenticated user together with its document.

Fields
Field Name Description
id - Guid! The id of the reminder.
documentId - Guid! The id of the document the reminder belongs to.
documentName - String The name of the document.
documentFileExtension - String The file extension of the document.
remindUtc - DateTime! The date the user is reminded in UTC.
preRemindUtc - DateTime The date the user is reminded in advance in UTC.
done - Boolean! Defines whether the reminder is done.
text - String The description of the reminder.
createdUtc - DateTime! The date the reminder was last written in UTC.
createdUserId - Guid! The id of the user owning the reminder.
createdUserName - String The full name of the user owning the reminder.
documentCreatedUtc - DateTime! The date the document was archived in UTC.
documentLastChangedUtc - DateTime! The date the document was changed the last time in UTC.
documentCreatedUserName - String The full name of the user who archived the document.
documentLastChangedUserName - String The full name of the user who changed the document the last time.
Example
{
  "id": "1b740514-8ace-496b-9aab-5c860c8392db",
  "documentId": "4e9d8815-4d87-47d6-9a5b-11543d0ea2e3",
  "documentName": "xyz789",
  "documentFileExtension": "xyz789",
  "remindUtc": "2016-04-19T14:53:40",
  "preRemindUtc": "2010-05-06T03:28:35",
  "done": false,
  "text": "abc123",
  "createdUtc": "2010-05-19T20:20:57",
  "createdUserId": "81900ac2-2809-42f9-bc65-eeee4ed8cbef",
  "createdUserName": "abc123",
  "documentCreatedUtc": "2019-07-08T02:12:42",
  "documentLastChangedUtc": "2014-11-30T19:50:40",
  "documentCreatedUserName": "xyz789",
  "documentLastChangedUserName": "xyz789"
}

SearchPatternInfo

Description

A stored search pattern.

Fields
Field Name Description
id - Guid! The id of the search pattern.
title - String The title of the search pattern.
category - String The category of the search pattern.
pattern - String The search pattern text.
options - Int! The combined numeric SearchOptionKind flags of the search pattern.
currentNodeOnly - Boolean! Defines whether the search is limited to the current folder.
personal - Boolean! Defines whether the search pattern is only visible to its owner.
Example
{
  "id": "928eba4d-6de3-41b0-b501-742d76d85438",
  "title": "xyz789",
  "category": "xyz789",
  "pattern": "abc123",
  "options": 460775715,
  "currentNodeOnly": false,
  "personal": true
}

SearchResult

Description

A page of search hits together with the total number of hits.

Fields
Field Name Description
totalCount - Int! The number of documents matching the search the authenticated user may see, independent of paging.
items - [ItemRow!]! The requested page of hits, by name.
Example
{"totalCount": 460775715, "items": [ItemRow]}

SessionState

Description

The server-side session state of the authenticated user.

Fields
Field Name Description
activeSession - Guid The id of the currently active session, or null if the user is not logged in.
serverTimeUtc - DateTime! The current server time in UTC.
changeToken - String Reserved for a future change marker. Currently always null.
Example
{
  "activeSession": "cef0e552-6d49-4270-8779-fe509c279f1e",
  "serverTimeUtc": "2014-03-14T20:40:09",
  "changeToken": "xyz789"
}

Share

Description

Represents a Share entity object.

Fields
Field Name Description
id - Guid! The id of the share.
expire - DateTime The date when the share link expires.
created - DateTime! The created date of the share.
createdUser - User The user who created the share.
document - Document The document associated with the share.
link - String The share link to get the latest document revision.
Example
{
  "id": "bfd357c4-8911-468b-9980-370e91e5d4e3",
  "expire": "2005-10-10T16:36:54",
  "created": "2001-08-06T07:10:05",
  "createdUser": User,
  "document": Document,
  "link": "https://download.quick-archive.com/a8b140d824c1/a91de4abfa61/210a67b6-7264-4f0b-8ecc-9c752c082799/share/abc123.pdf"
}

ShareInfo

Description

One share of a document, including its ready to use link.

Fields
Field Name Description
id - Guid! The id of the share.
createdUtc - DateTime! The creation date of the share in UTC.
expireUtc - DateTime The date the share link expires in UTC, null if it does not expire.
createdUserName - String The full name of the user who created the share.
url - String The share link.
Example
{
  "id": "306cb0da-6a0a-4e8e-aa07-8f498853a47b",
  "createdUtc": "2000-09-19T03:19:37",
  "expireUtc": "2024-08-18T05:57:37",
  "createdUserName": "abc123",
  "url": "xyz789"
}

ShareOverview

Description

One share created by the authenticated user together with its document.

Fields
Field Name Description
id - Guid! The id of the share.
documentId - Guid! The id of the shared document.
documentName - String The name of the shared document.
documentFileExtension - String The file extension of the shared document.
createdUtc - DateTime! The date the share was created in UTC.
expireUtc - DateTime The date the share link expires in UTC. Not set if it does not expire.
createdUserId - Guid! The id of the user who created the share.
createdUserName - String The full name of the user who created the share.
url - String The share link.
documentCreatedUtc - DateTime! The date the document was archived in UTC.
documentLastChangedUtc - DateTime! The date the document was changed the last time in UTC.
documentCreatedUserName - String The full name of the user who archived the document.
documentLastChangedUserName - String The full name of the user who changed the document the last time.
Example
{
  "id": "24c7f398-fd3d-4a8a-b042-368f27077dc9",
  "documentId": "e006acd5-6a87-4002-80a6-4aecce3c3de1",
  "documentName": "xyz789",
  "documentFileExtension": "xyz789",
  "createdUtc": "2014-09-27T12:53:25",
  "expireUtc": "2013-07-31T07:58:50",
  "createdUserId": "aa3a30a4-ed39-4ab3-95f3-badb84631c5f",
  "createdUserName": "xyz789",
  "url": "xyz789",
  "documentCreatedUtc": "2026-03-14T05:44:47",
  "documentLastChangedUtc": "2003-10-03T09:54:36",
  "documentCreatedUserName": "xyz789",
  "documentLastChangedUserName": "xyz789"
}

Short

Example
-21610

SignUpInput

Description

Contains information about customer that signed up.

Fields
Input Field Description
gender - GenderKind! The gender of the main contact of the customer.
firstName - String The first name of the main contact of the customer.
lastName - String The last name of the main contact of the customer.
eMail - String The e-mail of the main contact of the customer.
loginName - String The login name of the admin user.
passwordHash - String The password hash (SHA1, upper case) of the admin user.
countryCode - String The country code (ISO 3166-1 alpha-2, lower case) of the customer.
languageCode - String The LCID string of the requested language (currently only en-US supported).
company - String The company name of the customer.
city - String The city of the customer.
zipCode - String The ZIP code of the customer.
state - String The state of the customer.
address1 - String The first address line of the customer.
address2 - String The second address line of the customer.
Example
{
  "gender": "MALE",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "eMail": "mail@domain.com",
  "loginName": "xyz789",
  "passwordHash": "CECD08FDC165EAE729CC4C666898739A01AE71C4",
  "countryCode": "us",
  "languageCode": "en-US",
  "company": "abc123",
  "city": "abc123",
  "zipCode": "xyz789",
  "state": "xyz789",
  "address1": "abc123",
  "address2": "xyz789"
}

StampInfo

Description

A stamp of the archive.

Fields
Field Name Description
id - Guid! The id of the stamp.
name - String The name of the stamp.
text - String The text of the stamp.
color - Int! The ARGB color of the stamp.
opacity - Int! The opacity of the stamp.
rotation - Int! The rotation of the stamp.
Example
{
  "id": "271fb55c-6d64-468b-8b64-7a454b0c6ce9",
  "name": "abc123",
  "text": "abc123",
  "color": -14251574,
  "opacity": 460775715,
  "rotation": 460775715
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

TreeChild

Description

One child node of the item tree.

Fields
Field Name Description
id - Guid! The id of the item.
kind - ItemKind! Defines whether the item is a folder or a document.
name - String The name of the item.
subCount - Int! The number of children of the item. The tree shows an expander when it is positive.
tagId - ID The id of the document tag of the item. The id of a document tag is its name, not a GUID.
color - Int The color of the item as ARGB integer value.
Example
{
  "id": "734f2370-e4c0-440e-9d73-78e0d76b3387",
  "kind": "FOLDER",
  "name": "abc123",
  "subCount": 460775715,
  "tagId": "5c5e8d83fd81",
  "color": -7972490
}

User

Description

Represents a User entity object.

Fields
Field Name Description
id - Guid! The id of the user.
loginName - String! The login name of the user.
fullName - String! The full name of the user.
eMail - String The e-mail of the user.
description - String The description of the user.
admin - Boolean! Defines whether the user is admin.
created - DateTime! The created date of the user.
lastLogin - DateTime The last login date of the user.
Example
{
  "id": "a2d3cfa6-6808-4bae-b5e7-ff7674ec94ab",
  "loginName": "abc123",
  "fullName": "abc123",
  "eMail": "mail@domain.com",
  "description": "abc123",
  "admin": false,
  "created": "2002-10-15T19:07:03",
  "lastLogin": "2023-04-20T12:34:38"
}

Workspace

Description

Everything the client needs after login, before an archive is opened.

Fields
Field Name Description
user - WorkspaceUser! The authenticated user.
dbs - [WorkspaceDb!]! The archives the authenticated user has access to.
serverTimeUtc - DateTime! The current server time in UTC.
Example
{
  "user": WorkspaceUser,
  "dbs": [WorkspaceDb],
  "serverTimeUtc": "2007-07-17T10:26:44"
}

WorkspaceDb

Description

An archive the authenticated user has access to.

Fields
Field Name Description
id - ID! The id of the archive.
title - String The title of the archive.
description - String The description of the archive.
hasPassword - Boolean! Defines whether the archive is password protected.
canEdit - Boolean! Defines whether the authenticated user may edit data in the archive.
Example
{
  "id": "5c5e8d83fd81",
  "title": "abc123",
  "description": "xyz789",
  "hasPassword": true,
  "canEdit": false
}

WorkspaceUser

Description

The authenticated user as needed by the client bootstrap.

Fields
Field Name Description
id - Guid! The id of the user.
loginName - String The login name of the user.
fullName - String The full name of the user.
eMail - String The e-mail of the user.
admin - Boolean! Defines whether the user is admin.
changePasswordNextLogin - Boolean! Defines whether the user has to change the password on the next login.
settingsJson - String The user settings as JSON string.
groupIds - [Guid!]! The ids of the groups the user is a member of.
Example
{
  "id": "10c6fc3b-e300-4698-9708-1d968105b7d9",
  "loginName": "abc123",
  "fullName": "abc123",
  "eMail": "mail@domain.com",
  "admin": true,
  "changePasswordNextLogin": false,
  "settingsJson": "xyz789",
  "groupIds": ["0b6d3e4d-9b25-4908-a50b-a69d8ff91d7a"]
}