Submission Server

Setup and basic usage of submission server

Overview

The Form.io submission server is a server that uses the Form.io server as a proxy to retrieve all information about projects and forms from the production server, but sends all submissions through the submission server itself which are saved in a database separate from the production database.

The submission server provides a possibility to store submission data in the database of your choice, such as MongoDB, CouchDB, etc. The Submission Server also enables the storing of data per project in multiple databases inside one Database Server.

Launching the Submission Server

  1. Pull docker image from Docker Hub

  2. Relevant environment variables

3. Run the docker image with provided ENV variables and correct URL from above. The following documentation can be used for reference: Formio Enterprise Deployment Guide

Note

The Submission Server is under tag 8.0.0-m.17 tag

Licensing Implications

Each Submission Server will be counted as an API Server in the License Management UI.

Environment Variables

Required Variables

  • DB_SECRET

    • Allows decryption of encrypted project settings. This should be the same as the value used in your API Server

  • LICENSE_KEY

    • 7.x licenses

  • LICENSE

    • (optional) Legacy / 6.x licenses

  • ADMIN_EMAIL

  • ADMIN_PASS

Variables with defaults

  • EMAIL_CHUNK_SIZE

    • default: 100

  • MONGO_COLLECTION

    • alias: DEFAULT_DATABASE

    • default: formio

  • DB

    • default: mongo

    • also acceptable: 'couchdb'

    • Only applies if a mongo connection config cannot otherwise be loaded (see MONGO_CONFIG)

  • MONGO_CA

  • MONGO_SSL

  • MONGO_SSL_VALIDATE

  • MONGO_SSL_PASSWORD

  • MONGO_CONFIG

    • JSON string, preferred way to set more complex mongo connection objects (vs DB above)

  • PROXY

    • default: false

  • PROXY_CACHE_TIME

    • default: 15*60*1000 (15 min)

Optional variables

  • SENDGRID_PASSWORD

  • SENDGRID_USERNAME

  • MANDRILL_APIKEY

  • ADMIN_KEY

    • Matched against x-admin-key header when creating temp tokens (create via admin key)

  • DROPBOX_CLIENTID

  • DROPBOX_CLIENTSECRET

  • PRIMARY

    • If not set, this instance of the submission server will not attempt setup

    • If set, portal routes will be enabled

  • PORTAL_ENABLED

    • If set, portal routes will be enabled

  • PER_PROJECT_DBS

    • default: true

  • COUCHDB

    • connection string

  • PDF_SERVER

  • PROJECT_PLAN

  • PORTAL_SSO

  • SSO_TEAMS

  • PORTAL_SSO_LOGOUT

Misc / Internal Use

  • JWT_SECRET

    • Submission server doesn't currently support this

  • EMAIL_OVERRIDE

    • Internal use: json string to control emailer settings

  • FORMIO_HOSTED

    • Setting this will have adverse affects on deployed production servers

  • CACHE_TIME

    • default: 100, for license data caching

  • PROJECT_PLAN

    • Unclear purpose / to be removed

  • MODULE_DEV

    • Affects the setup process for development

  • SKIP_FORM_LICENSING

    • Legacy code, does not have an effect on enterprise licenses

Setting up the Submission Server

Description

Setup is as simple as registering, and setting up a new

Creating the Tenant

  1. After launching the Submission Server you can reach its own portal where you will be able to login or create a new user account

  2. On the overview page, you can see existing tenants or you can create a new one

  3. The process of creating a tenant

Property

Description

Title

Desired title of the tenant

Project Path

Path to reach the tenant

Proxy Project URL

The URL where the hub with forms, and their data are placed. In case you are using a portal, it will be as on the screen below (Home Page > Project > Live Endpoint)

Proxy Project API Key

API Key to access the project which will be used in the Submission Server. In case you are using portal, you can find it by following these steps.

Home Page > Project > Settings (Left Side) > Stage Settings > API Keys

Completed Modal

Usage Notes

You can view any of your forms and resources from project here
Editing of forms is disabled
Usage of forms and viewing data is allowed

Further Reading

Offline Mode