Admin Token API: Reset OAuth Application Secrets
-
Please check this box if this contribution uses AI-generated content (including content generated by GitLab Duo features) as outlined in the GitLab DCO & CLA. As a benefit of being a GitLab Community Contributor, you receive complimentary access to GitLab Duo.
What does this MR do and why?
This MR adds support for resetting OAuth Application secrets.
References
- Issue: #514909 (closed)
- Epic: &15777
- Docs: https://docs.gitlab.com/ee/api/admin/token.html
MR acceptance checklist
MR Checklist ( @nwittstruck)
-
Changelog entry added, if necessary -
Documentation created/updated via this MR -
Documentation reviewed by technical writer or follow-up review issue created -
Tests added for this feature/bug -
Tested in all supported browsers -
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the javascript style guides -
Conforms to the database guides
How to set up and validate locally
- Enable the feature flag with
rails c:
Feature.enable(:api_admin_token_revoke)
-
You'll need to create two new tokens:
- A
personal access tokenwithadmin_modeandapicapabilities at:Preferences > Access tokens > Add new token - An
OAuth instance applicationatAdmin area > Applications > Add new applicationthat you can query.
- A
-
Now you can retrieve information about this token:
curl -k --request POST \
--url 'https://gdk.test:3443/api/v4/admin/token' \
--header 'Authorization: Bearer <Admin Token from Step 2.>' \
--header 'Content-Type: application/json' \
--data '{"token": "gloas-token-from-step-2-2"}'
- Now, revoke the token:
curl -k --request DELETE \
--url 'https://gdk.test:3443/api/v4/admin/token \
--header 'Authorization: Bearer <Admin Token from Step 1.>' \
--header 'Content-Type: application/json' \
--data '{"token": "gloas-token-from-step-2-2"}'
- Query the token again - you should now see that the status changed to
Not Found, as the secret has changed.
Related to #514909 (closed)
Edited by 🤖 GitLab Bot 🤖