-
-
Notifications
You must be signed in to change notification settings - Fork 311
Improve data model and the loading service #380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks, @vbakke! Appreciate your support! 😊 Looking forward to the next steps. |
@wurstbrot: In assets\YAML\ there is currently a What was the reason to move the team definition into the meta file? Is that reason still valid? To me, it also makes sense to have the teams defined in a separate |
In GSoC with @ptechofficial , we first had teams in teams.yaml and afterwards moved teams to meta.yaml. |
My first draft for structuring the yaml files as follows:
The The The meta.yamlas today, but adds:
Not sure about the naming convention The order of Updates from DSOMMI suggest that the DSOMM client checks github for any new releases of the activities file (currently named The https://api.github.com/repos/devsecopsmaturitymodel/DevSecOps-MaturityModel-data/releases/latest contains the latest release. The public version can be verified against local version.
Comments@wurstbrot or @0x41head: I'd like to hear any comments, suggestions or resistance to this. |
After some tinkering with the
Customized activity files may include an And also, I do not see the purpose of the |
That is correct, they would be better placed in the data project. |
@0x41head: Do you have any comments on: https://github.com/vbakke/DevSecOps-MaturityModel/tree/feat/central-loader (Before I refactor how the matrix, circular heatmap, etc load and display its data : ) |
Terminology
Thus:
(At least my brain always starts sidetracking, following associations as what a subdimension is it sub to? The term 'Category' is more clearly a group of other items. And I find it easier to talk about the 'Design dimension', rather than the 'Design subdimension'.) Any thoughts from anyone? |
@wurstbrot, is renaming okay for you? |
@wurstbrot or @0x41head: I'd love to hear comments about the refactoring. I have published a fork of the the latest update in feat/central-loader-matrix on: https://dsomm.pages.dev/ as "experimental edition". Current status:
Next up is the activity details page, and then circular heatmap. Filters I prefer the standard BI way of selecting filters:
Please let me know if you object. |
Hi @vbakke, I didn't go through the hole code, but the new architecture looks good in general. We can discuss it in a PR. Flipping filters is great. Why did you change the background color from grey to yellowish? |
Thank you @wurstbrot. The yellowish tint is just in the experimental edition, so I don't get confused as to which I am looking at. Thank you for having a look at the overall architecture. PR will come. But all the rendering gets improved as a result unifying the data structure. So it becomes a quite large PR. And one cannot split it, due to the inherent dependencies. I don't know any maturity models using the term 'sub-dimensions'. The ones I looked up, uses different terminology on the various levels of the hierarchical break-down. (Such as 'Business function', 'Security practices', and 'Streams' in SAMM.) The term 'dimensions', is fine used in a DSOMM context. I just don't see the term "Build and Deployment" as one dimension, but rather a group of dimensions. (The 'and' sort of implies that : ) While 'Build' I find more natural being one dimension. I can revert back to using 'dimensions' and 'sub-dimensions' if you'd like. But I would applaud having terms that indicated the level in the hierarchy, without having to use the word 'sub'. 'Sub' is understandable, but not optimal. |
Data model
The current data model and data flow, reads the
generated.yaml
from the DSOMM web server (either the public dsomm.owasp.org. or a private one).The file contains a list of activity info (all dimensions, subdimensions, activity description, , as well as each team's progress of implementations and evidence.
The
generated.yaml
if either copied from DSOMM-data or generated from an internal process in the organisation.A user can update the team's progress in the Circular Heatmap. Then (more or less) a copy of the
generated.yaml
is stored in the browser's localStorage.Drawbacks
The current model is storing activity description data in localStorage. And mixes "slowly changing information" with "live data" (i.e. activity + team status).
The current load process is duplicated in the matrix, activity description, circular heatmap, dependency graph, and mapping component. This leads to unnecessary load time, and complex maintenance.
Suggestion
1) Create a central load service
I suggest we create a new service that loads the yaml files, and merging this with progress data stored in localStorage.
This service will handle the race conditions, and let the other components just consume the already loaded data.
Benefit: Cleaner architecture, easier debugging, speed improvements and increased robustness when navigating in DSOMM.
2) Split the Activity info and Team's progress
I suggest we split the current
generated.yaml
file into:(I'm completely open to name suggestions.)
The Activity Info contains the (fairly) static information contained in today's activity object.
The Team Progress contains team name,
teamsImplemented
andteamsEvidence
. The Team Progress have a yaml file on the server, where any centralized progress may be updated.The Team Progress will be stored in localStorage if any progress is changed in the browser. It will be merged with any updates from the server file when loading.
The Team Progress may be exported, as today, to update the server file.
This approach will also allow a user to change teams' names even for a public site such as dsomm.owasp.org.
Mermaid diagram
Here is a draft of the suggestion.
(Mermaid is great. But has some limits. The following draft sketch should have a TeamProgress in the DSOMM Webserver, but then the drawing goes bonkers, so I left it out.)
Comments?
@wurstbrot and @0x41head: Any comments on this?
I see that @yashchauhan4579 created a PR #379 just now, to upgrade Angular, aiming for Angular 19, down the line. (👍 🙌 🏆 )
They published that while I was writing this. I think it would be unwise to run these two initiatives in parallel. Even if they have different focus, there will be clashes. Nevertheless, I think it is still worthwhile discussing this idea, and planning the future.
The text was updated successfully, but these errors were encountered: