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.