API Endpoints and Permission Categories
This document outlines the various API endpoints and their associated permission categories, providing a clear reference for understanding the access control within our system. Every API Key has a list of permissions associated with it. Every user has the ability to create keys with restricted permissions on their own account. Users can also create restricted keys in team environments using the team-centric endpoints.Creating Custom Roles
- Accessing Role Management: Custom roles can be created and managed through the CLI. Team roles can be managed on the ‘Manage’ page by users with team_read level access.
- Defining Permissions: When creating a custom role, anyone can select from a wide range of permissions, such as instance creation, billing access, monitoring, etc. This allows for precise control over what each role can and cannot do.
- Assigning Custom Roles: Once a custom role is created, it can be assigned to team members through the team management interface.
Important Elements
- constraints: Constraints can be added at different levels to enforce certain parameters of the body to be specific values
- params: You can use wildcards to represent placeholder values. (Useful if you want to generate many keys all doing similar operations)
Examples
The following json would create a user that has access to the specified categories. In this instance, someone with these permissions would be able to create an instance as well as access billing informationPermission Categories
instance_read
The following permissions would allow a user to read the instance logs of instance id 1227 onlyinstance_write
- Attach SSH Key
- Copy
- Cancel Copy
- Cloud Copy
- Cancel Sync
- Change Bid
- Create Instance
- Manage Instance
- Delete Instance
- Detach SSH Key
- Execute
- Prepay Instance
- Reboot Instance
- Recycle Instance
- Create Volume
- Delete Volume
user_read
- Show API Keys
- Show Connections
- Show Environment Variables
- Show IP Addresses
- Show SSH Keys
- Show Subaccounts
- Show User
- Search Templates
user_write
- Create API Key
- Delete API Key
- Create Environment Variable
- Update Environment Variable
- Delete Environment Variable
- Create SSH Key
- Update SSH Key
- Delete SSH Key
- Create Subaccount
- Set User
- Create Team
- Delete Team
- Create Template
- Edit Template
- Delete Template
billing_read
billing_write
machine_read
machine_write
- Cancel Maintenance
- Cleanup Machine
- List Machine
- Remove Default Job
- Schedule Maintenance
- Set Default Job
- Set Minimum Bid
- Unlist Machine
- Add Network Disk
- Unlist Network Volume
- Unlist Volume
misc
- Search Network Volumes
- Show Workergroups
- Create Workergroup
- Update Workergroup
- Delete Workergroup
- Show Endpoints
- Create Endpoint
- Delete Endpoint
- Search Benchmarks
- Search Offers
- Search Volumes