A "Project" on Thinger.io is an abstract concept created to create resource groups (devices, dashboards, buckets, endpoints, or file systems) allowing better management of their data and configuration. The Project Manager is a tool that also allows sharing these resources with other user accounts of the same Thinger.io Platform Instance, allowing them to access, show, or use other user resources according to certain permissions. This means that we can authorize other users to work with our account resources as if there were their proprietaries or just with read-only access, depending on the permissions that were managed.
To start working with projects, go to the main menu and click into the
Projects tab, getting access to the projects list. Then press the
Add projectbutton that will open the new project definition form as shown in the image below:
The form parameters will help to identify the project. Once that the form is completed with appropriate values, pressing the
Add projectbutton will create the new project profile that will not be shared by any other user. This way it can be used to organize the resources of different projects, allowing easy navigation when working with large networks, just using the projects navigation menu, on the workspace top bar:
After creating a new project it will not be selected by default, so before start creating resources, the little folder icon of the top bar must be pressed in order to select the desired one.
Once a new project profile has been created, it is possible to include project members with which all resources will be shared according to specific authorizations provided by the project creator. To start adding members, open the configuration menu by pressing project's identification on the list, then press into the blue
Project Members button as shown in the image below:
This will open the project's member list, in which the user accounts that belong to the same project will be displayed allowing to modify permissions in the future. It will be empty the first time we access to a recently created project as shown in the image below:
To include the first member, just press the green
Add Member button, that will open the next form, allowing to introduce the user account identification and permission preferences.
User ID: Note that it must necessarily belong to a user account of the same Thinger.io instance. It is not possible to share projects with users from other instances or from the community server, since they are not in the same database.
Enabled: This switch allows to enable or disable the user on the project without destroying it's shared configuration.
Allow: This section allows assigning specific permissions to the selected user account and also displays current permissions.
Deny: This section denies specific permissions to the selected user account, so for example if in the
Allow section we provided full authorization to device capacities, this ones can be used to deny only the ability to delete the device.
Permissions can be added individually for each resource, but it is also possible to select the Admin Access option, allowing the other user full power over the administration of all the resources we share in the project. To add a new permission, pressing the green
+Add button will open the Add token permission context in which the resource whose authorization is going to be managed can be selected:
When a resource type is selected on the list (for example buckets), the interface will show additional options to provide permissions to all profiles
Any Bucket or to an individual profile from the existent buckets list
Specific Bucket :
Finally, the same logic is applied to the
Actions section, allowing to provide full permissions to the selected resource profile
Any Action or to select only one specific permission
Select specific action .
The same user account can participate in many projects, that's why the thinger console has a tool on the top bar that allows you to select the project you want to work with at any time:
This tool allows moving between different projects, displaying only the devices associated with each one. It also allows disabling the projects filtering functions, allowing to show every resource created into the user account, i.e. other users' resources will no longer be visible.
Once the project is created we can start to associate resources such as device profiles, data buckets or representation dashboards, allowing them to be shared with other developers of the same project. There are two different ways to attach resources to a specific project:
The resources are associated with the project in which they were created. So if a project is selected during the creation of any resource, this new profile will be automatically attached to the project:
Enabling projects as shown in the section above
Selecting a project from the drop-down list
Creating a new device / data bucket / Endpoint / dashboard to be shared with project members
The lists allow the administration of resources to associate them to projects, asset types or groups. It is possible to assign previously created resources to a new project by selecting it in the list and pressing the black
Set Projects button that will be shown on the top of the list:
The "project" column of the resources list (devices, dashboards, endpoints or data buckets) allows to identify the project in which the resource has been atached. Those items that appear in the lists with a user icon together with the name are resources shared by another user.
The image below shows some devices, most of them are shared devices from other accounts, and two of them have been created by their own account.
The association of any resource to a project can be checked using the REST API, which will show the project it belongs to:
Note that in the API of a third-party device, in addition to the project identifier we can display the account it belongs to from that device: