Form.io CLI Tool
Introduction
The Form.io Command Line Interface tool (CLI) allows you to quickly bootstrap a fully operating project and interface with the Form.io API server. To see the source code behind this tool, check out the Open Source project on Github @ https://github.com/formio/cli.
Project API keys are required within the settings of your source and destination projects.
Installation
Installation is easy... Simply type the following in your command line.
Commands
Migrate
The migrate command allows you to migrate submission data from one source to another using a simple command. You can either migrate data from a CSV into a form, or from a form into another form. This works by taking the data from <source>
, sending it through a middleware function called <transformer>
(which you provide) that transforms the data into the correct format, and then saving that data as a submission into the <destination>
form. If you are migrating data from one form to the same form within two different projects, you will just provide form
as your transform and your command would be as follows.
As an example, if you wish to move submission data from one form in a project to your remotely deployed project. You can use the following command.
Where you would replace the domains of your from and to, but also need to replace the src-key
and dst-key
with the API Keys from the from project and API key of your destination project respectively.
Migrating an entire project
You can also migrate an entire project by using the "project" transform as follows.
Migrating from CSV
In many cases, you may wish to migrate data from a local CSV file into a project submission table. This requires the transform middleware where you will map the columns of your CSV file into the Submission data going into Form.io.
Example: Let's suppose you have the following CSV file of data.
import.csv
And now you wish to import all of that data into a form. You can create the transform file like the following.
transform.js
This transform middleware file can be a complete Node.js middleware method and works asynchronously so if you need to perform asynchronous behavior, you can do that by only calling the next
function when the record is ready.
You can now migrate that data into your form with the following command.
Here is the list of all the options you can provide to the migrate command:
Clone
Clones a project from one database or an API into another database, and includes all forms, submissions, and every other resources within the project. This command also retains any _id's from the source database.
If you specify the API as source make sure to pass the --api-source
option.
Clone Submissions
This command only clones the submissions from one environment to another.
Here is the list of cli options you can use with the clone command:
Deploy
You can deploy a project on a paid plan on form.io to a hosted server with this command. Specify the source and destination servers and the project will be created or updated on the destination server.
Examples:
Each server will require authentication so you will be asked twice, once for the source and once for the destination. These can also be specified with --src-username, --src-password, --dst-username, --dst-password.
The full list of options that can be used with the deploy command:
Copy
This command will copy the components of a form or resource into another form or resource. This will overwrite all components within the destination form if that form exists. You can also chain together multiple source forms which will aggregate the components of those forms into the destination form.
Ensure the Read Form Definition permission access of your source form is set correctly to authorize the command.
Examples:
Here is the list of options you can use with the copy command:
Submissions
You can output the submissions of the source form to the terminal or make every submission pass through the each middleware.
Examples:
Here is the list of options you can use with the submissions command:
Last updated