[Pipeline Sec - GraphQL migration]: Create GraphQL version of `vulnerability_details.vue`
❓
What We want to create a new vulnerability_details.vue
component, which will be used for the GraphQL versions of the pipeline tab's modal and the vulnerability details page.
ℹ ️
Why The current vulnerability_details.vue
is set up to work with data that is injected via HAML.
The data-structure that will be coming from GraphQL is different to that, so we would have the following options:
- Add to the current details component, so it supports both HAML and GraphQL data.
- Transform either the HAML- or GraphQL data so the component gets a normalized data structure.
- Create a new component that will eventually replace the current one.
After some brainstorming it was concluded that approach 3
might be the best solution, since it will allow us to:
- Work on the GraphQL migration behind a feature flag, without any danger of breaking the feature on production. This also means less manual testing efforts while working on it.
- Deprecate the current component (via renaming it and including a
_deprecated
or_legacy
suffix) - Create a clean, uncluttered component that - once the migration has been completed - can be used as is, without any modification to it
- It let's us remove some technical debt (for example remove the
.md
class, which currently wraps the data-listing and causes some styling issues) - ... I am sure I am missing some - feel free to add to this
🙂
Potential drawbacks:
- Might create a bit of maintenance overhead, since we will need to support the HAML version until the GraphQL migration has been completed (for both the pipeline and details page)
- Possible code duplication until the legacy component (and specs) are removed
- ... I am sure I am missing some - feel free to add to this
🙂
Edited by David Pisek