Describes how teams work within Form.io
Teams functionality allows multiple developers and form builders to collaborate and have access to Projects and Stages. Any user within the platform is able to create a new Team and then assign that team to a Project which they own or are already an Administrator of. Once a team is created, users can then be assigned to that team which will then further grant those users access to the Projects and Stages which that team was assigned. The first step is to create a team.
In order to create a new team, you must first navigate to the Home section of the Developer Portal. From there you will see the Teams section.
This section allows you to create new teams, manage existing teams, as well as view any teams you may have been invited to. To create a new Team we will click on the Create Team button on this page.
On the next page, you will then type the name of your new Team, add SSO Team, and then click Submit. If you wish to map this team with an SSO Role, then make sure you check the checkbox called SSO Team which will tell the API platform. For more information on SSO, please see the documation on Portal SSO.
After creation you’ll be redirected to the Teams page where you can begin to add members to team.
Team Members are defined by the Email address of the person you would like to add to that team. You can add new team members, by first clicking on the Add Member icon, and then within the modal type the email address of the user you would like to add to that team.
Within this modal, you will also have the option to decide if you would like to make this user a Team Admin. The only difference between a Team Member and a Team Admin is that Team Admins are able to also manage the members within that team (such as add and removing members). It is important to note that this does not mean team admin members have additional privileges on the Projects that the Team has been assigned, but only applies to permissions to the Team itself. The user will show in the Team Members once they have accepted the Team Invite.
Once a team member has been added to the team, you can click on the gear icon next to their name where you can either Remove them from the team, or you can make them a Team Admin. The results of these actions are self explanatory.
Once you have a Team created, the next process is to assign that Team to a Project. To do this, you can navigate to the Project you wish to assign a Team to and then click on the Teams icon.
Here we can us the Add a Team select dropdown to select the team that we just created and assign this team to this project.
Once a team has been added, you will be allowed to set the permissions for the team at a project level. There permissions are as follows
You can determine which permission that team has by setting the select dropdown for that team in the teams page.
You can assign multiple teams to a single project, and once a team has been assigned, all members of a team have the same permissions that were assigned to that team within the project.
You can also use teams to grant specific access to Stages within a project. A very common use case for this would be if you wish to only give certain users access to the Authoring stage (for form building), but you do NOT want those users to have access to the Live (production) stage. In order to achieve this, you can first select the Authoring stage in the stages dropdown.
Once you have done this, you will then click on the Access section for that project. and then add that team to the Stage Teams section.
Once you have done this, you will now need to navigate back to the Live stage, then click on Teams and ensure that this team has only Project Access permission.
Once this is done, a user assigned to the Form Builders team will see the Project within their home page, but when they click on this Project, they will ONLY have access to the Authoring stage and not the Live or Production stage. This method can also be used to split up different form authoring teams between stages where certain teams would only be granted access to certain forms and then each of these stages are then deployed to a main stage where the version tags are created.