Spike - Token rotation
Topic to Evaluate
As we enforce required expiration on the tokens, unify them and eventually will tie token creation for service accounts, we have a need to programatically allow users to rotate/refresh tokens automatically. As such an expiring token still requires manual intervention and tracking by the owner to create a new token and replace an expiring one at some point in future. A much better user experience is to rotate the token automatically when exipres_in
approaches. Similarly this API can be used by credential storage such Vault to automatically rotate tokens
This is also very helpful in case of a security breach where users can quickly revoke and rotate existing tokens. A somewhat similar API was added for runner tokens Automated Runner Key and Registration Rotation (#30942 - closed), the goal of this spike is to identify if we can provide API for PAT, PrAT and GrAT tokens and what constraints will need to be enforced e.g
- How would we identify and validate the API call?
- Does the user need to provide and additional API key, Oauth JWT etc?
- Do we have adequate authorization info available to generate a new token?
- How will be previous expiring tokens be correlated/renewed?
Tasks prior to evaluation
Clearly document the topic to evaluated in this issue description Determine specific scope including time-bounds for investigation
This spike is weighted at 3 and the goal is to complete the spike within 15.10
Tasks to Evaluate
Determine feasibility of the feature Document the approach and technical design on engineering handbook Any POC tasks that need to occur before the customer facing MVC is begun Create issues for implementation or update existing implementation issue description with implementation proposal Set initial weights on implementation issues If weight is greater than 5, break issue into smaller issues
Risks and Implementation Considerations
As this spike is evaluated, the feasibility and outcome should be reviewed with UX/PM. Consider not only the implementation design, but also how it will be rolled out, licensing considerations and backward compatibility.
Team
Add workflowplanning breakdown typefeature and the corresponding ~devops::<stage>
and~group::<group>
labels.Ping the PM and EM.