User Management
In the FOSS version of GMT only two base users are configured and every action can be executed with them:
- USER 1 - The default user
- USER 0 - The GMT system user running control workloads and sending e-mails
Default user
By default USER 1 has full capabilities and can access all resources.
The USER 1 has the token DEFAULT by default.
Authentication mechanism
Running jobs on the CLI needs no authentication, however a user_id can be supplied to attribute a run to a certain user (See Runner Switches →)
For API access an authentication header has to be supplied with name X-Authentication.
Here is an example cURL request:
API_TOKEN='DEFAULT'
curl -X POST https://api.green-coding.io/v1/runs \
-H "X-Authentication: ${API_TOKEN}"
Important: If no X-Authentication header is supplied the API will still authenticate USER 1 by default.
Features of User Management
For complex usage cases GMT comes with a user management system that allows:
- Restricting certain routes to view content (GET)
- Restricting certain routes for submission of measurements, CI runs, Hog Data etc. (POST)
- Allowing longer / shorter data retention times for certain users
- Enabling Super Admins that can access all resources
- Restricting access to certain machines to run measurement jobs on
- Putting measurement quotas in place to be used for to certain machines to run measurement jobs on
- Restricting certain types of optimizations
- Restricting view access to content from other / selective users
- Allowing badge access to the public, but restricting everything else
Please note that the user management system is bundled with GMT but managed and fully documented only through an enterprise/premium component.
We believe that user management is only needed in bigger corporate settings and thus we encourage you to support this project by considering upgrading to a paid version which includes the User Management tool to create ACL lists