Platform Overview

FormKiQ Architecture

What is FormKiQ

FormKiQ Core is a flexible Open Source Document Management System (DMS) that can be used as headless software or run using our web-based client interface. FormKiQ runs in your Amazon Web Services (AWS) Cloud, and can be used for document workflows, records management, and other document storage and processing needs using an extendable Document API.

FormKiQ’s API-first design allows for anyone to quickly and easily add document management functionality to any application, cutting months off of development time. Alternatively, with FormKiQ’s customizable Front-End Web Interface, the Document Console, FormKiQ can be used as a full-featured stand-alone document management system.

FormKiQ has been designed using headless architecture design principles, which means that the web UI is completely decoupled from the backend API. This allows not only for any other web application to be integrated with the Document API (with the default ReactJS web console available as a reference), but also allows for other front-ends to be created, such as a mobile app, and makes the API available for backend services and integrations.

FormKiQ is built to scale, for any use case. It can be used by the largest corportation to the smallest team, employing serverless technology so you only pay for what you use.

FormKiQ is an Open Core product. The core document management functionality is made available through an Open Source license. Additional, advanced document management functionality, as well and add-on modules, professional services, and both on-boarding and operational support are available via

Document Management Features

FormKiQ is a full-featured document management system, that leverages the infrastructure and services of AWS to make it all possible.

  • Document Collection and Storage

  • Document Organization and Classification

  • Document Processing and Transformation

  • Document Discovery, Presentation, and Integration

FormKiQ Pro provides additional functionality, including:

  • Optical Character Recognition

  • Anti-Malware / Anti-Virus Scanning

  • Document Versioning to enable Document Control

  • Additional Document Actions for Customized Workflows

  • Document Tag Schemas to enable required, optional, and default tags and metadata

  • Full Document Encryption, both in-transit and at-rest

FormKiQ Enterprise provides access to add-on modules and custom module development.

Documents and Folders

Documents are the core objects of FormKiQ; these consist of the file itself (stored in Amazon S3), as well as the document’s metadata (stored in Amazon DynamoDB), which is used for the indexing and classification of the document.

In addition to documents, FormKiQ provides folders, allowing you to organize documents in your front-end application.

Document Tags

A document tag is a key / value(s) pair assigned to a document in order to label or identify it. These document tags can then be used in a tag search to be able to quickly find the documents. The Document Console makes use of key-only tags extensively for classification, while using key/value tags for some functionality, such as allowing a user to "favorite" a document.

FormKiQ supports adding an unlimited number of tag(s) to a document; values for tags can be one or many values for a given tag key. The only invalid character for tag keys and values is a forward slash ("/").

When using document versioning, document tag(s) are NOT versioned, and therefore these tags can also be described as "unversioned metadata". Changes to these tags are not tracked, so they should not be used for document control or audit purposes.

Document Metadata

Document metadata is custom data that a user can attach to a document; when using document versioning, document metadata is versioned, meaning that each version of the document has its own version of the metadata, and changes to metadata will result in a new version of the document.

Unlike a document tag (which is unversioned), metadata can only be searched when using one of FormKiQ’s full-text solutions (Typesense or OpenSearch). Each document only support up to 25 Metadata entries.

As this metadata supports versions, changes to metadata can be tracked when document versioning has been enabled. These are primarily meant to be used for document control and auditing.

Document Actions

FormKiQ’s document actions allow you to add tasks to be performed by the document when it is created, in the specified order. This is used to create custom workflows.

For example, with document actions you could:

  • Have a Webhook called when a document is created

  • Automatically run Optical Character Recognition (OCR) on a document, and then send it to OpenSearch

  • Automatically scan a document for viruses and other malware

Document Events

FormKiQ is built using a message-driven architecture. This means you can be notified when specific events happen.

For example, you can subscribe to FormKiQ’s document event Amazon SNS topic and be notified when a document is created, updated or deleted. This makes it simple to extend FormKiQ functionality to meet your needs.

Document Searching

FormKiQ Core uses Amazon DynamoDB for performing document tag searches. Multi-tag searching is supported when used in combination with the FormKiQ TagSchema.

Document metadata and full text searching is supported through Typesense, with OpenSearch and its more advanced customization and performance available as an add-on to FormKiQ Enterprise.

Multi-Tenant and Multi-Instance

FormKiQ Core supports usage as a multi-tenant application. This can be used for internal departments or teams, or for external clients. During deployment, a "default" SiteId is created; all documents are stored in that tenant by default.

To create another SiteId is as simple as adding a new Cognito group to the user pool

Creating a Cognito Group with the same name as the SiteId but ending in "_read" will create a read-only group. The users in this group will have read-only access to documents within that SiteId.

One possible use-case is to create a Cognito Group for each FormKiQ user (using their email address), which would create a SiteId for that user and a "My Documents" section in FormKiQ Document Console.

Each API request has an optional "SiteId" parameter to specify which SiteId you would like to use.

This parameter is only needed if a user belongs to multiple SiteIds or if the user is in the "Admins" Group (full access) and wants to perform an operation in a SiteId other than "default". This allows groups such as external clients to access documents without requiring knowledge of their SiteId.

API Overview

FormKiQ has a robust and battle-tested document management API. FormKiQ deploys with 2 APIs, one that uses JWT authentication and one that uses AWS IAM. This allows flexibility in supporting both user access and backend system access.

FormKiQ API was built on top of OpenAPI specification, so it is easy to use the API spec file with any application that supports the OpenAPI specification.

Pro and Enterprise Features

FormKiQ supports a wide array of professional and enterprise modules and features. See Pro and Enterprise Modules

AWS Costs

FormKiQ was created using serverless technology. This means that there are no servers to manage; everything is managed by AWS. All AWS services FormKiQ uses have pay-per-usage billing. You can start using FormKiQ with very little cost.

In fact, AWS provides a free tier to all AWS accounts. This means that some AWS services you can use for free, assuming you are able to stay within the usage limits. Below is the list of services FormKiQ uses and their approximate usage costs, so give you an idea on how much it costs to run FormKiQ. (All costs in USD)

Service Cost

Amazon Api Gateway

$1.00 per million requests

Amazon DynamoDB (Storage)

First 25 GB Free

Amazon DynamoDB (Writes)

Write request units - $1.25 per million write request units

Amazon DynamoDB (Reads)

Read request units - $0.25 per million read request units

Amazon CloudFront

$0.085 per GB of Data Transfer Out to Internet

Amazon S3

$0.023 per GB / Month

AWS Lambda

approx. first 400,000 requests Free per Month

AWS Lambda

$0.0000168667 per additional request