API endpoint roles¶
The table below lists every Testflinger server endpoint together with the roles that are permitted to call it. The four roles are:
AGENTCredentials issued to a Testflinger agent host. Used for machine-to-machine communication between the agent and the server.
CONTRIBUTORThe default role assigned to human users. Grants access to job submission, result retrieval, queue inspection, secret management, and read access to restricted-queue information.
Note
When OIDC is not enabled on the server,
CONTRIBUTORendpoints also accept anonymous (unauthenticated) connections. This means any client can reach those endpoints without providing credentials. Once OIDC is enabled, a valid token is required.MANAGERA superset of
CONTRIBUTORthat additionally covers client-permission management, restricted-queue ownership management, and agent management (reading and writing agent data, images, and queues). It does not include the runtime agent operations reserved for theAGENTrole (job consuming, posting provision logs, posting status events, fetching job attachments, and posting results, artifacts, and log fragments).ADMINFull access to all endpoints, including user/credential administration.
Method |
URI |
Notes |
|---|---|---|
|
|
Server identification endpoint. Always accessible without authentication. |
|
|
Prometheus metrics endpoint. Always accessible without authentication on metrics port, default 9090. |
|
|
Initiates the OIDC device-flow authentication with the provider. Cannot require authentication because this is how a client obtains credentials. |
|
|
Polls for the OIDC authentication result. Cannot require
authentication for the same reason as |
|
|
Exchanges client credentials (HTTP Basic) for a JWT access token and a refresh token. Cannot require a Bearer token because this is how a client obtains one. |
|
|
Exchanges a valid refresh token for a new access token. No Bearer token is required; the refresh token itself is the credential. |
Method |
URI |
AGENT |
CONTRIBUTOR |
MANAGER |
ADMIN |
|---|---|---|---|---|---|
|
|
allowed |
restricted |
restricted |
restricted |
|
|
allowed |
restricted |
restricted |
restricted |
|
|
allowed |
restricted |
restricted |
restricted |
|
|
allowed |
restricted |
restricted |
restricted |
|
|
allowed |
restricted |
restricted |
restricted |
|
|
allowed |
restricted |
restricted |
restricted |
|
|
allowed |
restricted |
restricted |
restricted |
|
|
allowed |
restricted |
allowed |
allowed |
|
|
allowed |
restricted |
allowed |
allowed |
|
|
allowed |
restricted |
allowed |
allowed |
|
|
allowed |
allowed |
allowed |
allowed |
|
|
allowed |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
allowed |
allowed |
allowed |
|
|
restricted |
restricted |
allowed |
allowed |
|
|
restricted |
restricted |
allowed |
allowed |
|
|
restricted |
restricted |
allowed |
allowed |
|
|
restricted |
restricted |
allowed |
allowed |
|
|
restricted |
restricted |
allowed |
allowed |
|
|
restricted |
restricted |
restricted |
allowed |
|
|
restricted |
restricted |
restricted |
allowed |