FAQ
Frequently Asked Questions Section.
Products & Services
How does Form.io 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 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:
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 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.
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.
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)
Translating Help Documentation
The Form.io help documentation is currently available in English. To read this documentation in other languages, please use the browser's translation feature.
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 a complete 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
Projects
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:
Log into the formio database via the mongo shell or GUI.
use formio
Go into the projects collection and find the formio project
db.projects.find({name: 'formio'});
Then find the user form in this project
db.forms.find({name: 'user', project: ObjectId(project._id)});
Then find the user in this form
db.submissions.find({'data.email':'youremail@example.com', form :ObjectId(userForm._id)})
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.
Authentication
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.
Alternatively, you can apply the following JS in your YAML file to utilize Session Storage within your deployment
Enterprise & PDF Server Deployments
What is your recommended deployment strategy?
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 On-Premise Environment, the /status endpoint can be used. Simply navigate to the URL of the environment and add /status like:
Example response:
version: The API server version deployed to the environment
schema: The Database schema ID for the deployed environment.
environmentId: A unique identifier for a specific deployment. This ID can be utilized to determine which API/PDF Server is enabled or disabled for a specific environment in conjunction with the License Management UI.
How do I check the PDF server version in my deployed Environments?
To see what version of the PDF Server is currently deployed in your On-Premise Environment, the pdf/status endpoint can be used. Simply navigate to the URL of the environment and add /status like:
Example response:
What to do if the status endpoint returns an invalid response?
Ensure you have the correct environment endpoint, which is the URL found within your browser after authenticating into the Form.io Developer Portal.
If the endpoint is correct but still returns an invalid response, it likely indicates a custom deployment setup or changes to the Nginx proxy affecting request routing. Contact your deployment administrator for the correct endpoint.
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.
API Requests
Form.io not only serves as a Form platform for your Serverless applications, but also serve as a complete REST API platform as well. Everything that happens within Form.io, does so through the use of a robust REST API call within the form platform.
The following documentation links outlines a complete walkthrough of using the Form.io API platform.
The API request URL structure varies depending on what kind of request is being sent. The information below provides details on most of these requests and where to find the API endpoints within your Project.
Information within the curely brackets will be specific to your own project or deployment URL.
{{apiUrl}}
The Base URL of the deployed environment
https://myenvironment.com
{{portalBaseUrl}}
The live endpoint of the Portal Base Project (included in a Self-Hosted Environment) typically accessed only by deployment administrators. By default, the project endpoint will be 'form.io'.
https://myenvironment.com/formio
{{projectId}}
The unique identifier that appears in the browser URL when viewing the primary "Live" stage of a Project. This stage is typically tied to your production environment, whereas other stage IDs typically correspond to non-production settings like development or testing. Additionally, the Live Stage ID also functions as the Project's identifier.
https://myenvironment.com/#/project/67c0ab19a726c555a7
{{stageId}}
The unique identifier that appears in the browser URL when viewing a Stage within a Project.
https://myenvironment.com/#/project/67c86a06e6570ce5a7d
{{teamId}}
The unique identifier that appears in the browser URL when viewing a Team within the Form.io Developer Portal.
https://myenvironment.com/#/team/67d1f52bcd5f7459665811db
{{projectUrl}}
Project-related information can also be retrieved using the project alias, which is the project's Live Endpoint. This endpoint can be found wihin the project header, below the project title.
https://myenvironment.com/projectname
{{formId}}
The unique identifier for a specific Form. This ID appears in the browser URL when viewing a Form within a Project.
https://myenvironment.com/projectname/form/67c89370e6b5d570ce5ac0c4
{{formPath}}
Form-related information can also be retrieved using the Form alias. This endpoint can be found by accessing the Form's settings and copying the Form's API Path.
https://myenvironment.com/projectname/application
{{submissionId}}
The unique identifier for a specific submission of a Form or Resource. This ID appears in the browser URL when viewing the submission within a Project or Database.
https://myenvironment.com/projectname/application/submission/67d1ff1f5f74581509
{{tenant}}
The endpoint for retieving information related to a specific Tenant. To retrieve this information, open a Tenant and copy the Live endpoint found within the Project header.
https://myenvironment.com/my-tenant-projectname
Database
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.
How do I reset my Admin credentials to my Deployed Portal?
If you have lost access to your Form.io admin portal or need to reset the admin credentials, follow the steps below to regain access.
Identify the running MongoDB Container Name by executing the following terminal command:
This will return the following information from your MongoDB container which will contain the MongoDB instance name. In this example, the DB name is local-mongo.
Connect to the MongoDB instance inside the running container:
If authentication is enabled, use the mongo admin and password within the API server .env variables:
Once inside the MongoDB shell, switch to the Form.io database:
Find the Admin Submission ID by running the following MongoDB Query:
This will output the Admin Email and their corresponding User ID. Take note of these values, as they will be required in the next steps
Ensure an ADMIN_KEY is saved to the Enterprise Server environment variables. This key will be used to authenticate a PUT request and update the password for the Admin user.
ADMIN_KEY
An optional key that gives full access to the server including listing all projects. Send in a header with x-admin-key
adminkey123!
Use an API platform like Postman to perform a PUT request against the Admin Resource endpoint.
PUT
/https://forms.yourdomain.com/formio/admin/submission/[SUBMISSION_ID]
Replace https://forms.yourdomain.com
with your deployment endpoint.
Replace [SUBMISSION_ID]
with the ID from Step 4.
Add the Admin Key to the Header of the request.
x-admin-key
adminkey123!
Admin_Key env variable
Content-Type
application/json
content type
Set the Body to Raw JSON and add the following JSON. Ensure the Email value is the same email address from Step 4 and set a new password for the user.
After executing the request, authenticate into the Form.io deployed portal to verify the update.
Frameworks
How can I integrate React components in Form.io?
React components are application-level UI elements distinct from the Form.io Platform form building components. Developers should not try to import custom React components directly into Form.io forms. Instead, use the React wrapper to integrate the rendered forms seamlessly alongside any other React component. For additional documentation, refer to the React wrapper documentation.
Troubleshooting
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:
Use a Project API Token to perform a GET request using your project domain to retrieve the project JSON
Modify the cors value and change it back to the default setting *
Perform a PUT request and the project CORS setting should return back to its original state
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 a Form from one Project/Environment to another?
Form.io provides several ways to copy forms from one destination to another.
Click the Copy button within the Form section of a Project. This will make a copy of the form within the context of the same project.
Copy the Embed URL of a Form and paste the URL in the Import form field.
This will read the form JSON embedded within the URL and make a copy within the given Project.
The Read Form definition permission governs who can view/read the form JSON. If you’re receiving unauthorized when importing the form, temporarily set this Permission to Anonymous.
A form(s) can be copied from one project to another by using the Export/Import Project Template feature.
Click the Staging tab within your project then the Export Template button.
Check the Include All setting and select the forms you wish to export.
Click the Export Template button to download the file.
Within the Destination Project, navigate to the Import Template section. Click the Choose File button and select the Project JSON file exported in the previous step.
Copy Form JSON and use a POST API Request to create a new form within your Project.
5. Use the Form.io CLI Tool to copy a form(s) into other projects and environments. After installing the Form.io Tool, execute the following terminal command. Ensure you have API keys configured to support the authentication into the source project and destination project.
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:
Follow the documentation below to perform a GET request against the form
Copy the form JSON from the GET request
Create a new POST request and modify the type from 'form' to 'resource'
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.
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
Was this helpful?