Inclusion of Event ID in API Response
Problem to solve
The problem here is the ability to assign a unique ID to an event that is being pulled via the events API: https://docs.gitlab.com/ee/api/events.html.
Intended users
Personas are described at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/
- Cameron (Compliance Manager) for auditing SDLC events that are going through the system, approvals, comments, etc.
- Parker (Product Manager) for building custom cycle analytics and understanding time between merge requests and merge request comments for my team.
- Delaney (Development Team Lead) similar to Parker, I would be using this to understand my team's time between commit to MR and building custom cycle analytics for individual team members' scorecards.
- Sasha (Software Developer) I would use this if I was building a custom application that tied to specific events that I was pulling out of the API if I was pushing them into Kafka for transaction re-processing.
- Sidney (Systems Administrator) I would use a system that had event IDs when pulling samples for compliance or security audits on our SDLC.
- Sam (Security Analyst) I would use a system that had event IDs when pulling samples for compliance or security audits on our SDLC.
- Rachel (Release Manager) I would use these to understand when MRs are approved and build communications or automation around approvals.
- Alex (Security Operations Engineer)
- Priyanka (Platform Engineer) I would use these to determine pipeline success metrics and other operational metrics for Gitlab cycle analytics.
- Dana (Data Analyst) I need a unique key to query my data on.
User experience goal
This is entirely a user experience goal for a developer using the API. There is no UX component.
Proposal
In a scenario where somebody is trying to pull or replicate these out of Gitlab's system and into another system, there is no way to assign a primary key to the event that is pulled from the Gitlab API, but instead would need to derive some form of primary key from the permutation of fields that are returned. The Events table has an ID column that could be returned as an ID field in the API response, or a new IID could be set and returned to counteract any data deletion and recycling of IDs that may occur on the 2-year expiration time period of the events table.
Permissions and Security
Documentation
https://docs.gitlab.com/ee/api/audit_events.html