Convert dashboard keys (e.g. panel_groups) to camel case
What does this MR do?
Converts the main keys in the dashboard structure to camel case and uses a specific mapping for keys. This is something that I would like to address before continuing the efforts in extending the dashboard.yml API.
This change was done for several reasons:
- This leads to more predictable data structures in the store making FE-BE integration is more reliable.
- Users are can add anything to the dashboard's yml file, and this could open the FE to unexpected results.
- Accepting everything backend sends could waste memory on unused data.
What does this mean for FE development?
The mutation mapping will only allow known keys from metrics_dashboard.json
call. This means that new keys must be explicitly added in the mappings before being made available in the store.
The mappings are in app/assets/javascripts/monitoring/stores/utils.js
and they start from the top with mapToDashboardViewModel
.
Exception: The metric
object still accepts all keys, this is ~"technical debt" issue: #207198 (closed)
Background
This is part of our Dogfooding efforts at #201999 (closed) and &2541
- Related to: #201999 (closed)
- Not all keys are addressed yet, follow-up:
Screenshots
N/A
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
- [-] Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team
Related to #201999 (closed)