1+ <template >
2+ <b-card no-body :header =" header" >
3+ <b-card-body >
4+ <p >{{ $t('admin.task_scheduler_description') }}</p >
5+ <br />
6+ <h4 >Components</h4 >
7+ <b-validated-input-group-form-input
8+ id =" repository_metadata_fetch"
9+ :label =" $t('admin.task_scheduler_repository_metadata_fetch')"
10+ input-group-size =" mb-3"
11+ rules =" required|min_value:1"
12+ type =" number"
13+ v-model =" repositoryMetadataFetch.value"
14+ :tooltip =" repositoryMetadataFetch.description"
15+ />
16+ <b-validated-input-group-form-input
17+ id =" internal_component_identification"
18+ :label =" $t('admin.task_scheduler_internal_component_identification')"
19+ input-group-size =" mb-3"
20+ rules =" required|min_value:1"
21+ type =" number"
22+ v-model =" internalComponentIdentification.value"
23+ :tooltip =" internalComponentIdentification.description"
24+ />
25+ <br />
26+ <h4 >Vulnerability databases synchronization</h4 >
27+ <b-validated-input-group-form-input
28+ id =" ghsa_mirror"
29+ :label =" $t('admin.github_advisories')"
30+ input-group-size =" mb-3"
31+ rules =" required|min_value:1"
32+ type =" number"
33+ v-model =" ghsaMirror.value"
34+ :tooltip =" ghsaMirror.description"
35+ />
36+ <b-validated-input-group-form-input
37+ id =" nist_mirror"
38+ :label =" $t('admin.nvd')"
39+ input-group-size =" mb-3"
40+ rules =" required|min_value:1"
41+ type =" number"
42+ v-model =" nistMirror.value"
43+ :tooltip =" nistMirror.description"
44+ />
45+ <b-validated-input-group-form-input
46+ id =" vulndb_mirror"
47+ :label =" $t('admin.vulndb')"
48+ input-group-size =" mb-3"
49+ rules =" required|min_value:1"
50+ type =" number"
51+ v-model =" vulndbMirror.value"
52+ :tooltip =" vulndbMirror.description"
53+ />
54+ <b-validated-input-group-form-input
55+ id =" osv_mirror"
56+ :label =" $t('admin.osv_advisories')"
57+ input-group-size =" mb-3"
58+ rules =" required|min_value:1"
59+ type =" number"
60+ v-model =" osvMirror.value"
61+ :tooltip =" osvMirror.description"
62+ />
63+ <br />
64+ <h4 >Analysis</h4 >
65+ <b-validated-input-group-form-input
66+ id =" portfolio_vulnerability_analysis"
67+ :label =" $t('admin.task_scheduler_portfolio_vulnerability_analysis')"
68+ input-group-size =" mb-3"
69+ rules =" required|min_value:1"
70+ type =" number"
71+ v-model =" portfolioVulnerabilityAnalysis.value"
72+ :tooltip =" portfolioVulnerabilityAnalysis.description"
73+ />
74+ <b-validated-input-group-form-input
75+ id =" component_analysis_cache_clear"
76+ :label =" $t('admin.task_scheduler_component_analysis_cache_clear')"
77+ input-group-size =" mb-3"
78+ rules =" required|min_value:1"
79+ type =" number"
80+ v-model =" analysisCacheClear.value"
81+ :tooltip =" analysisCacheClear.description"
82+ />
83+ <br />
84+ <h4 >Metrics update</h4 >
85+ <b-validated-input-group-form-input
86+ id =" portfolio_metrics_update"
87+ :label =" $t('admin.task_scheduler_portfolio_metrics_update')"
88+ input-group-size =" mb-3"
89+ rules =" required|min_value:1"
90+ type =" number"
91+ v-model =" portfolioMetricsUpdate.value"
92+ :tooltip =" portfolioMetricsUpdate.description"
93+ />
94+ <b-validated-input-group-form-input
95+ id =" vulnerability_metrics_update"
96+ :label =" $t('admin.task_scheduler_vulnerability_metrics_update')"
97+ input-group-size =" mb-3"
98+ rules =" required|min_value:1"
99+ type =" number"
100+ v-model =" vulnerabilityMetricsUpdate.value"
101+ :tooltip =" vulnerabilityMetricsUpdate.description"
102+ />
103+ <br />
104+ <h4 >Authentication</h4 >
105+ <b-validated-input-group-form-input
106+ id =" ldap_sync"
107+ :label =" $t('admin.task_scheduler_ldap_sync')"
108+ input-group-size =" mb-3"
109+ rules =" required|min_value:1"
110+ type =" number"
111+ v-model =" ldapSync.value"
112+ :tooltip =" ldapSync.description"
113+ />
114+ </b-card-body >
115+ <b-card-footer >
116+ <b-button variant =" outline-primary" class =" px-4" @click =" saveChanges" >{{ $t('message.update') }}</b-button >
117+ </b-card-footer >
118+ </b-card >
119+ </template >
120+
121+ <script >
122+ import BValidatedInputGroupFormInput from ' ../../../forms/BValidatedInputGroupFormInput'
123+ import configPropertyMixin from " ../mixins/configPropertyMixin" ;
124+
125+ export default {
126+ mixins: [configPropertyMixin],
127+ props: {
128+ header: String
129+ },
130+ components: {
131+ BValidatedInputGroupFormInput
132+ },
133+ data () {
134+ return {
135+ ghsaMirror: {" value" : " 0" , " description" : " " },
136+ nistMirror: {" value" : " 0" , " description" : " " },
137+ vulndbMirror: {" value" : " 0" , " description" : " " },
138+ osvMirror: {" value" : " 0" , " description" : " " },
139+ portfolioMetricsUpdate: {" value" : " 0" , " description" : " " },
140+ vulnerabilityMetricsUpdate: {" value" : " 0" , " description" : " " },
141+ portfolioVulnerabilityAnalysis: {" value" : " 0" , " description" : " " },
142+ analysisCacheClear: {" value" : " 0" , " description" : " " },
143+ ldapSync: {" value" : " 0" , " description" : " " },
144+ repositoryMetadataFetch: {" value" : " 0" , " description" : " " },
145+ internalComponentIdentification: {" value" : " 0" , " description" : " " }
146+ }
147+ },
148+ methods: {
149+ saveChanges : function () {
150+ this .updateConfigProperties ([
151+ {groupName: ' task-scheduler' , propertyName: ' ldap.sync.cadence' , propertyValue: this .ldapSync .value },
152+ {groupName: ' task-scheduler' , propertyName: ' ghsa.mirror.cadence' , propertyValue: this .ghsaMirror .value },
153+ {groupName: ' task-scheduler' , propertyName: ' osv.mirror.cadence' , propertyValue: this .osvMirror .value },
154+ {groupName: ' task-scheduler' , propertyName: ' nist.mirror.cadence' , propertyValue: this .nistMirror .value },
155+ {groupName: ' task-scheduler' , propertyName: ' vulndb.mirror.cadence' , propertyValue: this .vulndbMirror .value },
156+ {groupName: ' task-scheduler' , propertyName: ' portfolio.metrics.update.cadence' , propertyValue: this .portfolioMetricsUpdate .value },
157+ {groupName: ' task-scheduler' , propertyName: ' vulnerability.metrics.update.cadence' , propertyValue: this .vulnerabilityMetricsUpdate .value },
158+ {groupName: ' task-scheduler' , propertyName: ' portfolio.vulnerability.analysis.cadence' , propertyValue: this .portfolioVulnerabilityAnalysis .value },
159+ {groupName: ' task-scheduler' , propertyName: ' repository.metadata.fetch.cadence' , propertyValue: this .repositoryMetadataFetch .value },
160+ {groupName: ' task-scheduler' , propertyName: ' internal.components.identification.cadence' , propertyValue: this .internalComponentIdentification .value },
161+ {groupName: ' task-scheduler' , propertyName: ' component.analysis.cache.clear.cadence' , propertyValue: this .analysisCacheClear .value },
162+ ]);
163+ }
164+ },
165+ created () {
166+ this .axios .get (this .configUrl ).then ((response ) => {
167+ let configItems = response .data .filter (function (item ) { return item .groupName === " task-scheduler" });
168+ for (let i= 0 ; i< configItems .length ; i++ ) {
169+ let item = configItems[i];
170+ switch (item .propertyName ) {
171+ case " ldap.sync.cadence" :
172+ this .ldapSync .value = item .propertyValue ;
173+ this .ldapSync .description = item .description ;
174+ break ;
175+ case " ghsa.mirror.cadence" :
176+ this .ghsaMirror .value = item .propertyValue ;
177+ this .ghsaMirror .description = item .description ;
178+ break ;
179+ case " osv.mirror.cadence" :
180+ this .osvMirror .value = item .propertyValue ;
181+ this .osvMirror .description = item .description ;
182+ break ;
183+ case " nist.mirror.cadence" :
184+ this .nistMirror .value = item .propertyValue ;
185+ this .nistMirror .description = item .description ;
186+ break ;
187+ case " vulndb.mirror.cadence" :
188+ this .vulndbMirror .value = item .propertyValue ;
189+ this .vulndbMirror .description = item .description ;
190+ break ;
191+ case " portfolio.metrics.update.cadence" :
192+ this .portfolioMetricsUpdate .value = item .propertyValue ;
193+ this .portfolioMetricsUpdate .description = item .description ;
194+ break ;
195+ case " vulnerability.metrics.update.cadence" :
196+ this .vulnerabilityMetricsUpdate .value = item .propertyValue ;
197+ this .vulnerabilityMetricsUpdate .description = item .description ;
198+ break ;
199+ case " portfolio.vulnerability.analysis.cadence" :
200+ this .portfolioVulnerabilityAnalysis .value = item .propertyValue ;
201+ this .portfolioVulnerabilityAnalysis .description = item .description ;
202+ break ;
203+ case " repository.metadata.fetch.cadence" :
204+ this .repositoryMetadataFetch .value = item .propertyValue ;
205+ this .repositoryMetadataFetch .description = item .description ;
206+ break ;
207+ case " internal.components.identification.cadence" :
208+ this .internalComponentIdentification .value = item .propertyValue ;
209+ this .internalComponentIdentification .description = item .description ;
210+ break ;
211+ case " component.analysis.cache.clear.cadence" :
212+ this .analysisCacheClear .value = item .propertyValue ;
213+ this .analysisCacheClear .description = item .description ;
214+ break ;
215+ }
216+ }
217+ });
218+ }
219+ }
220+ </script >
0 commit comments