Frequently Asked Questions Section.

Products & Services

How does Form.io actually work?

In addition to offering our hosted PaaS, we commonly deploy our form-building portals and API servers into our customer environments (on-premise or private cloud) where they have total control of their apps, their forms, and their form data submissions.

Form.io is then out of scope with respect to related security and compliance regulations.

Think of us as:

  • A fully deployed form and data management API middleware platform that is fully integrated into your own applications and solutions.

  • When facing the Make vs Buy dilemma, we deliver to you like a make solution without you actually having to make it.

What specifically is open source within Form.io?

Form.io's core is open source, which includes:

What product support does Form.io offer?

Our Enterprise subscription includes E-mail support. All email support inquiries are reviewed twice per day with the development team. We respond as soon as possible with response times typically being same day.

In the case that the inquiry requires support that cannot be provided via email, we offer support packages to connect with a senior developer via Online Call at your convenience.

Are all Software, Patches, and Security Updates included in the subscription?

All software updates are included with the subscription. When a new release comes out, and a tag is published on Docker Hub, our customer base is notified by email with all the information regarding the release changes.

Follow along in our Enterprise Release Changelog to watch for new releases as they come out here: Form.io Enterprise Change Log.

Can the Form Manager and FormView Pro applications be white-labeled?

Both applications can be customized and white-labeled to offer a custom UI on a per-tenant basis. To configure the logo, Title, nav bar, and more, the Public Configurations settings can be modified. View the User Guide: Form Manager.

Are there any web browser requirements minimum requirements to use your platform or to render forms?

Form.io forms are compatible with the latest versions of all modern browsers. Because our forms are embedded into applications, we recommend reviewing the browser compatibilities for the front-end frameworks such as Vue, Angular, React, Vue, etc. which have a browser list in their respective package.json.

Does Form.io support a translation/localization system?

Yes, you can translate most areas of our platform as well as any front-end field UI setting. Configure a Language resource within your project as described here to set up the translations.

Does Form.io support eSign/e-signature integrations?

Form.io contains e-sign integrations that allow you to request e-signatures on submitted forms. For more information, we recommend reviewing our documentation:

What's included in the Security Module?

The Security Module is a new optional add-on module that we have grandfathered in all customers for the existing subscription period and moving forward if you wish to have access to these features, we can add the module to your subscriptions. Else, if you are not using these features, we will set the license to not include the module and the features will no longer be enabled.

The following features are part of our Security Module:

Advanced Audit Logging

The server now has the ability to produce audit logs of all user activity on the system. This will produce an auditable trail of user session events, and access and modification of all entities in the system. These audit logs will be output to the standard out for the docker container and can be routed into a log aggregation system.

Submission Revisions

Submission Revisions allow to see who has updated a submission, when a change was made, and any notes associated with the update. Additionally, Submission Revisions can be used to revert to previous incarnations while safeguarding all submission data.

Submission Collections

Enables the storage of submission data within a separate database collection, which can be configured on a per form basis. For read heavy applications, a database index can be set on fields that are used often for application performance improvements.

Field Level Encryption

Allows encryption of specific fields within a form that contains sensitive information. Limits access to the submission data, which requires the use of APIs to access submission data maintaining full database encryption. Field Level Encryption provides only API access to the data, and DB access is fully encrypted.

Container Security Scanning

Guaranteed Container scanning using Snyk.

How does your Accessibility Module work?

When the module is turned on, the USWDS template is enabled on the form builder, which looks different than bootstrap, with colors that follow best practices for accessibility.

It also eliminates any components from the builder that are not compliant when the form is rendered in an application, keeping the user who is building the form in line with accessibility compliance best practices for the forms they are building.

Form Builder

Restricts non-accessible components and options in order for a user who is building a form to create fully accessible forms.

Form rendering module handles the following:

  • Screen readers' announcements upon user action

  • Focus order/Focus trap/Focus placement

  • Dynamic change of aria-attributes

  • Validation messages handling

  • Special styles for invalid/valid fields

Form.io USWDS template module OR Form.io Bootstrap template module handles the following:

  • Proper HTML markup (every form field needs an associated label, correct component structure etc.)

  • Aria-attributes such as aria-describedby, aria-labelledby, etc.

  • Additional helpful messages for sighted users

  • Additional instructions for non-sighted users (e.g. number types, etc.)

  • WCAG compliant color contrasts (only applicable for USWDS for now)

Forms and Resources

Are there any restrictions when naming a Form or Resource?

The easy answer is "No". There are certain names that are reserved and should not be used.

This list reserves the listed subdomains also.

See DNS Configuration for rest of list.

The are unavailable for use as form/resource names.

Is there a limit to the number of components that can be included on a form?

There is no limit to the number of fields you can add to the form. The renderer performs very well with large amounts of fields and has only seen performance dips at the 2000 field mark.

Why is content splitting between pages when downloading a submission to PDF?

Certain layout components like HTML and Panel will span across a page when downloading to PDF. This is intended behavior and prevents unnecessary blank space or blank pages within your PDF download. Please use the page-break-before element if a page break is needed.

Click here for page break documentation


How can I update the owner of a project?

There's no way to be able to do this through the UI. You will have to go into the database and update the owner manually. The following are steps to achieve that. The code included is for the Mongo shell:

  1. Log into the formio database via the mongo shell or GUI.

    • use formio

  2. Go into the projects collection and find the formio project

    • db.projects.find({name: 'formio'});

  3. Then find the user form in this project

    • db.forms.find({name: 'user', project: ObjectId(project._id)});

  4. Then find the user in this form

    • db.submissions.find({'data.email':'youremail@example.com', form :ObjectId(userForm._id)})

  5. Then update the project with the ID of that user

    • db.projects.update({_id:ObjectId(YOUR_PROJECT_ID)}, {$set: {owner:ObjectId(YOUR_USER_ID)}})

How do Projects, Stages, and Environments work in Form.io?

A Project spans across environments with the Stages Functionality. Stages are utilized to connect to the other remote Environments via an API. More than one stage can be pointed to a single environment.

This enables a seamless Project JSON / Forms JSON promotion to match your software development lifecycle all within the Developer Portal UI. When deploying the API Server following the Deployment Guide, you will enable the Portal Application for the designated environment.


How to use Session Storage instead of Local Storage?

Apply the following JS to your Form Module settings to use Session Storage. While Local Storage will retain the token in the browser cache, Session Storage will remove the JWT token as soon as the tab or browser is closed.

    options: {
        form: {
            useSessionToken: true

Alternatively, you can apply the following JS in your YAML file to utilize Session Storage within your deployment

localStorage.setItem('useSessionToken', true)

API Server Deployments

We recommend taking advantage of Docker Containerization as this manages the containerization of all the dependencies needed. Please see the node.js deployments documentation.

How do I check the API server version in my deployed Environments?

To see what version of the API Server is currently deployed in your remote environment, the /status endpoint can be used. Simply navigate to the URL of the environment and add /status like: https://.yourenvironment.com/status. This will return the following information:

  • Environment ID

    • The Environment ID is also used in the License Management UI in portal.form.io for Enabling / Disabling API Server Environment utilization.

  • API Server version

  • DB Schema version

Can I use a new license for my existing environment?

It is safe to swap out licenses for existing deployments. Using a fresh license will not affect your existing forms, resources, or data in any way. It will simply register within your License Manager as a new installation under that license.

Database Questions

What Databases can I use?

Form.io runs on and requires MongoDB (or compatible) database as our server utilizes the dynamic nature JSON data storage such as dynamic fields and multi-value fields. This allows for maximum flexibility with forms, APIs, and databases.

Can I save data to my SQL Database?

The SQL Connector can be used to map the data to your own SQL database. This will move the data from MongoDB to SQL using the connector. https://help.form.io/developers/sql-connector The submission event could also be intercepted and sent directly to your own API endpoint by bypassing our submission API. By doing this you can store the data wherever needed, but this will also bypass the Form.io server-side validation and actions system, which are incredibly capable features that you may want to use.


Why is my email action not sending emails?

When using Form.io»s SaaS solution, you will need to set up your own transport for the email action.

Here's an easy-to-follow integration guide from our help documentation.

I changed the default CORS domain setting and now I am locked out of my portal. How do I fix a misconfigured CORS setting?

CORS will lock down the portal if the CORS domain has been misconfigured. To resolve this, use an API tool like Postman:

  1. Use a Project API Token to perform a GET request using your project domain to retrieve the project JSON

  2. Modify the cors value and change it back to the default setting *

  3. Perform a PUT request and the project CORS setting should return back to its original state

View the API Documentation.

Why do I see the Enterprise Subscription message when I try to launch my form?

FormView Pro is an Enterprise level feature and is only available with an Enterprise subscription.

This is also used to mitigate the problem of hosted anonymous forms being used by bad actors as phishing tools.

Why does my rendered form show an "Unknown Component:" error?

Your application needs to include the premium component module in order to renderer Premium components. Premium components are included with the Enterprise Subscription, follow the instructions here to setup the module.

How-To Questions

How do I migrate my project from one environment to another one?

This guide details project migration to different environments, including environments on different server versions.

How can I connect to 3rd party Databases and Clouds?

Form.io is a rest API platform so it can integrate with any third-party platform or API. More information on integrating third-party applications / APIs using webhooks can be found at:

How do I copy an existing Form into a Resource?

While there is not a UI for copying a Form into a Resource, users can utilize an API tool like Postman to programmatically change the type:

  1. Follow the documentation below to perform a GET request against the form

  2. Copy the form JSON from the GET request

  3. Create a new POST request and modify the type from 'form' to 'resource'

View the API Documentation

How do I export my project and import that into a new environment?

Use Project Template Exports within the Portal Application to migrate your project.

Click here for instructions.

How can I migrate my existing data into a new environment?

Use the Form.io CLI migration tool to accomplish this.

View the CLI documentation

More information regarding the migration of submissions can be found here.

How do I migrate any PDF form definitions that exist on our Minio servers?

Migrating the PDFs from portal.form.io to a remotely deployed configuration is a manual process. Importing & Exporting will involve everything stored within the Project Template JSON.

Because PDF background files are uploaded to the file storage provider of your choice, these are not automatically migrated. You may see the backgrounds when you import the forms into your remotely deployed environment, but they will still be pointing to the Form.io file servers, and when you render the forms, the files will not be accessible.

To make sure all PDF First forms are pointing to the correct PDF background file, click the "X" next to the PDF in the builder, and re-upload the file, which will then be stored in the file server that you have set up upon initial deployment.

Where can I find my Project ID and Project Live Endpoint?

Your project ID is a numeric identifier enclosed in the URL.

Your Project Live Endpoint is a URL that can be found in the top right corner of the project screen, right below the Teams and Project settings buttons.

Last updated