Skip to content

Commit cc05507

Browse files
authored
Merge pull request #259 from devsecopsmaturitymodel/feat/teamDocs
Feat/team docs
2 parents 022f03a + 3b09ba1 commit cc05507

File tree

4 files changed

+90
-9
lines changed

4 files changed

+90
-9
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,27 @@ docker run -d -p 80:8080 wurstbrot/dsomm:latest
8585
## Activity Definitions
8686
The definition of the activities are in the [data-repository](https://github.com/devsecopsmaturitymodel/DevSecOps-MaturityModel-data).
8787

88+
## Teams and Groups
89+
To customize these teams, you can create your own [meta.yaml](src/assets/meta.yaml) file with your unique team definitions.
90+
91+
Assessments within the framework can be based on either a team or a specific application, which can be referred to as the context. Depending on how you define the context or teams, you may want to group them together.
92+
93+
Here are a couple of examples to illustrate this, in breakers the DSOMM word:
94+
- Multiple applications (teams) can belong to a single overarching team (application).
95+
- Multiple teams (teams) can belong to a larger department (group).
96+
97+
Feel free to create your own [meta.yaml](src/assets/meta.yaml) file to tailor the framework to your specific needs and mount it in your environment (e.g. kubernetes or docker).
98+
Here is an example to start docker with customized meta.yaml:
99+
```
100+
# Customized meta.yaml
101+
cp src/assets/YAML/meta.yaml .
102+
docker run -v $(pwd)meta.yaml:/usr/share/nginx/html/assets/YAML/meta.yaml -p 8080:8080 wurstbrot/dsomm
103+
104+
# Customized meta.yaml and generated.yaml
105+
cp src/assets/YAML/meta.yaml .
106+
cp $(pwd)/src/assets/YAML/generated/generated.yaml .
107+
docker run -v $(pwd)/meta.yaml:/usr/share/nginx/html/assets/YAML/meta.yaml -v $(pwd)/generated.yaml:/usr/share/nginx/html/assets/YAML/generated/generated.yaml -p 8080:8080 wurstbrot/dsomm
108+
```
88109
# Credits
89110

90111
* The dimension _Test and Verification_ is based on Christian Schneiders [Security DevOps Maturity Model (SDOMM)](https://www.christian-schneider.net/SecurityDevOpsMaturityModel.html). _Application tests_ and _Infrastructure tests_ are added by Timo Pagel. Also, the sub-dimension _Static depth_ has been evaluated by security experts at [OWASP Stammtisch Hamburg](https://www.owasp.org/index.php/OWASP_German_Chapter_Stammtisch_Initiative/Hamburg).

src/app/component/activity-description/activity-description.component.ts

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,7 @@ export class ActivityDescriptionComponent implements OnInit {
8686

8787
ngOnInit() {
8888
this.route.queryParams.subscribe(params => {
89-
this.currentActivity.dimension = params['dimension'];
90-
this.currentActivity.subDimension = params['subDimension'];
91-
this.currentActivity.level = 'level-' + params['level'];
92-
this.currentActivity.activityName = params['activityName'];
89+
this.currentActivity.uuid = params['uuid'];
9390
});
9491

9592
//gets value from sample file
@@ -106,10 +103,65 @@ export class ActivityDescriptionComponent implements OnInit {
106103
// Function sets data
107104
this.yaml.getJson().subscribe(data => {
108105
this.YamlObject = data;
109-
var data =
110-
this.YamlObject[this.currentActivity.dimension][
111-
this.currentActivity.subDimension
112-
][this.currentActivity.activityName];
106+
107+
var allDimensionNames = Object.keys(this.YamlObject);
108+
for (let i = 0; i < allDimensionNames.length; i++) {
109+
var subdimensionsInCurrentDimension = Object.keys(
110+
this.YamlObject[allDimensionNames[i]]
111+
);
112+
113+
for (let j = 0; j < subdimensionsInCurrentDimension.length; j++) {
114+
var temp: any = {
115+
Dimension: allDimensionNames[i],
116+
SubDimension: subdimensionsInCurrentDimension[j],
117+
};
118+
var activityInCurrentSubDimension: string[] = Object.keys(
119+
this.YamlObject[allDimensionNames[i]][
120+
subdimensionsInCurrentDimension[j]
121+
]
122+
);
123+
124+
for (let a = 0; a < activityInCurrentSubDimension.length; a++) {
125+
var currentActivityName = activityInCurrentSubDimension[a];
126+
127+
try {
128+
console.log(this.currentActivity.uuid, this.currentActivity.uuid);
129+
console.log(
130+
'uuid',
131+
this.YamlObject[allDimensionNames[i]][
132+
subdimensionsInCurrentDimension[j]
133+
][currentActivityName].uuid
134+
);
135+
console.log(
136+
'currentActivityName',
137+
this.YamlObject[allDimensionNames[i]][
138+
subdimensionsInCurrentDimension[j]
139+
][currentActivityName]
140+
);
141+
if (
142+
this.YamlObject[allDimensionNames[i]][
143+
subdimensionsInCurrentDimension[j]
144+
][currentActivityName].uuid == this.currentActivity.uuid
145+
) {
146+
data =
147+
this.YamlObject[allDimensionNames[i]][
148+
subdimensionsInCurrentDimension[j]
149+
][currentActivityName];
150+
this.currentActivity = data;
151+
this.currentActivity.dimension = allDimensionNames[i];
152+
this.currentActivity.subDimension =
153+
subdimensionsInCurrentDimension[j];
154+
this.currentActivity.activityName = currentActivityName;
155+
console.log('found');
156+
break;
157+
}
158+
} catch {
159+
console.log('Level for activity does not exist');
160+
}
161+
}
162+
}
163+
}
164+
113165
this.currentActivity.description = this.defineStringValues(
114166
data['description'],
115167
''

src/app/component/matrix/matrix.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
style="margin-bottom: 1em"
6868
(click)="
6969
navigate(
70+
YamlObject[element.Dimension][element.SubDimension][activity].uuid,
7071
element.Dimension,
7172
element.SubDimension,
7273
i + 1,

src/app/component/matrix/matrix.component.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,16 @@ export class MatrixComponent implements OnInit {
309309

310310
// activity description routing + providing parameters
311311

312-
navigate(dim: string, subdim: string, lvl: Number, activityName: string) {
312+
navigate(
313+
uuid: String,
314+
dim: string,
315+
subdim: string,
316+
lvl: Number,
317+
activityName: string
318+
) {
313319
let navigationExtras: NavigationExtras = {
314320
queryParams: {
321+
uuid: uuid,
315322
dimension: dim,
316323
subDimension: subdim,
317324
level: lvl,

0 commit comments

Comments
 (0)