Skip to content

Use `AgentTokensFinder` to find single agent tokens

Pam Artiaga requested to merge pam/agent-tokens-finder-single-record into master

What does this MR do and why?

The AgentTokensFinder was introduced in these MRs: !103170 (merged) & !104038 (merged) and used for fetching all agent tokens of an agent.

Here, the AgentTokensFinder class is used for fetching a single agent_token record in the GET /projects/:id/cluster_agents/:agent_id/tokens/:token_id endpoint. The FinderMethods module is included to support finding a single record.

Note that this follows the original behavior of returning the token regardless of status (active or revoked).

Issue: #363119 (closed)

Screenshots or screen recordings


Example project (ID=27):


Project Agent -> Tokens page


Project agent and agent tokens in the database




Fetching a single agent token


Fetching a single agent token that is revoked


When specified agent_id is not under the specified project


When specified agent does not exist


How to set up and validate locally


  1. Create a project (or use an existing one)
  2. Set up an agent in that project
    • This will register an agent and create one agent token
  3. Create more agent tokens:
    1. Go to project Infrastructure -> Kubernetes clusters page
    2. Go to the agent's page
    3. Select the Access tokens tab
    4. Click the Create token button


Use curl to test the API endpoint

  1. Set up a project or personal access token to make sure your curl request is authorized

  2. Run the following curl request:

    curl -ki -X GET \
    --header "Authorization: Bearer <your project or personal access token>" \
    "https://<local gitlab url>/api/v4/projects/<project_id>/cluster_agents/<agent_id>/tokens/<token_id>"


    curl -ki -X GET \
    --header "Authorization: Bearer <token>" \

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Pam Artiaga

Merge request reports