Glossary of Key Concepts
Forms
A form is broadly any structured request for input. Data may be entered in a variety fields of different formats, including text fields, checkboxes, drop-down select boxes, etc.
Forms may be presented as interactive webforms or fillable PDFs.
In the Form.io Platform, a form is defined by a JSON object that describes each field on the form as well as how the fields are presented.
Forms are built with a drag-and-drop form builder that provides are array of different components that are rendered into individual fields on the form.
Learn more about Forms.
Components
Components are the building blocks of Form.io forms. Components describe the type of field as well as how it is displayed and how it behaves. The component settings let form builders set validation rules, conditional logic, and much more.
Layout Components
Layout components help structure forms. They let form builders control how fields are grouped and arranged.
Data Components
Data components create data structures that control how data collected by the form is stored.
Learn more about Form Components.
Submissions
A submission is a record of the data entered into a form by a form user. Submissions, just like forms, are stored as JSON objects. A submission will describe the data entered into each field. Submissions may also include metadata about the form and the user submitting the form.
Submissions are stored in the Form.io Platform database. They can be viewed through the Developer Portal UI, programmatically accessed through a REST API, or downloaded as a PDF.
Because the submission is a JSON object, it's easy to integrate that data into other aspects of the application, or parse it with a variety of third-party tools.
Learn more about Submissions.
Resources
A resource is a data object in the Form.io Platform that works as a reusable data model. Like a form, it consists of a collection of fields and is stored as a JSON object. Resources are the primary way that data is reused throughout the Form.io Platform. Resources may be used to populate the selectable options in different form components.
Resources are built using the same drag-and-drop arrangement of components as forms, but are used for data storage rather than input.
Resources can consume data directly through submissions against that resource. Submissions to forms can also be routed to resources.
Learn more about Resources.
Projects
A project is the workspace used to organize collections of forms, resources, and submissions, as well as other parts of the Form.io Platform. Projects are the top-level container in the Form.io Platform.
Because projects compartmentalize the elements they manage, a single project typically corresponds to a single application.
Learn more about Projects.
Portal Base Project
The Portal Base Project is automatically populated in self-hosted deployments. It contains forms and resources used to manage the Developer Portal. It assists with Team management, authentication, and other essential platform management functions. The Portal Base Project is not counted as a project for the purposes of licensing.
Do not use the Portal Base Project to create user-facing forms or resources.
Learn more about Portal Base Project.
Stages
Stages are used to sandbox the project as it progresses through different parts of the development lifecycle. By default, every project has a Live stage that represents a production environment. The platform license determines how many stages can be created. Stages allow form builders to develop their forms in a QA or Test stage, for example, to prevent potential breaking changes from affecting the application.
Learn more about Stages.
Permissions
Permissions control how a user can interact with Projects, Forms, and Resources. Permissions follow the standard Create, Read, Update, Delete operations. At each scope, permissions can be set to apply to all projects, forms, or resources, or only the projects, forms, or resources that list that user as the owner.
Learn more about Roles and Permissions.
Roles
Roles are logical groupings of permissions. Roles are used to distribute sets of permissions based on the type of user. Roles are scoped to the project level and are not transferrable across projects.
By default, every project starts with the Anonymous, Everyone, Authenticated, and Administrator roles, but more can be configured within a project. Any user that is assigned a role receives all of the permissions associated with that role for the entire time that role is assigned.
Learn more about Roles and Permissions.
Authentication
Authentication allows form builders to ensure that only authorized users can interact with a form or submission data. The Form.io platform supports multiple authentication methods (OAuth, SAML, LDAP, Form.io Resource) to credential a form user with a JSON Web Token which is used to control access to Form.io project assets.
Learn more about Authentication and Authorization
Actions
Actions are automated tasks that are triggered when a form touches the submission database. Actions enable dynamic workflows and integration with third-party services. Actions may be used to assign roles, send email notifications, or hit external webhooks.
Learn more about Actions.
Form Renderer
The Form Renderer is the client-side engine, embedded into an application, that transforms the form definition into an interactive form. The form renderer also processes input and handles all validation and logic in the form.
The Form Renderer is how form users will interact with the form in the application.
Learn more about Form Renderer.
Developer Portal
The Form.io Developer Portal is the web-based UI. It provides tools to manager projects, forms, resources, and other elements of the Form.io Platform. This is where most form builders will develop forms that will be embedded into the application.
Learn more about Form.io Developer Portal
Form View Pro
Since forms in the platform are presented by an application through the form renderer, the Form View Pro application provides a basic application to launch a form. It is accessible through the Launch Form button in the Developer Portal. It has limited functionality and is not typically used in production.
Learn more about Form View Pro
Platform Architecture
The Form.io Platform is containerized, with different aspects of the platform spread across multiple containers. These containers can be hosted on-prem, on a cloud provider, or locally on a single machine. The containers and their function are described below:
Enterprise
The Enterprise container enables the Form.io API for access to form and submission data, and hosts the Developer Portal. It also hosts the Form Manager and FormView products.
PDF (optional)
The PDF container enables submissions to be reviewed as PDFs that match the structure of the webform. With a PDF Plus license, container enables PDF-first forms, a dynamic webform overlayed on a PDF.
Mongo (optional)
The Mongo container is needed for document (JSON object) storage when the deployment is not using an external service (MongoDB Atlas, AWS DocumentDB, Azure CosmosDB, etc.). It uses MongoDB Community Edition to store forms, submission, and RBAC data.
MinIO (optional)
The MinIO container is used for blob storage when the deployment is not using an external service such as AWS S3. It can be used for unstructure data such as form user file uploads.
NGINX (optional)
The NGINX container can serve a a load balancer and reverse proxy for deployments that need one.
Licenses
All Form.io Platform features beyond what is available in the open source offering require a license.
There are a variety of license types available that unlock different features to suit a multitude of use cases. The most essential, the Platform License, unlocks for core enterprise functionality of the Form.io Platform. Licenses for separate features and functionality are referred to as library licenses.
Learn more about Licenses.
Last updated
Was this helpful?