forked from canada-ca/tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdomain-status.js
More file actions
66 lines (65 loc) · 1.71 KB
/
Copy pathdomain-status.js
File metadata and controls
66 lines (65 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { GraphQLObjectType } from 'graphql'
import { StatusEnum } from '../../enums'
export const domainStatus = new GraphQLObjectType({
name: 'DomainStatus',
description:
'This object contains how the domain is doing on the various scans we preform, based on the latest scan data.',
fields: () => ({
certificates: {
type: StatusEnum,
description: 'Certificates Status',
resolve: ({ certificates }) => certificates,
},
ciphers: {
type: StatusEnum,
description: 'Ciphers Status',
resolve: ({ ciphers }) => ciphers,
},
curves: {
type: StatusEnum,
description: 'Curves Status',
resolve: ({ curves }) => curves,
},
dkim: {
type: StatusEnum,
description: 'DKIM Status',
resolve: ({ dkim }) => dkim,
},
dmarc: {
type: StatusEnum,
description: 'DMARC Status',
resolve: ({ dmarc }) => dmarc,
},
https: {
type: StatusEnum,
description: 'HTTPS Status',
resolve: ({ https }) => https,
},
hsts: {
type: StatusEnum,
description: 'HSTS Status',
resolve: ({ hsts }) => hsts,
},
policy: {
type: StatusEnum,
description: 'Policy Status',
resolve: ({ ciphers, https, hsts, protocols, ssl }) =>
[ciphers, https, hsts, protocols, ssl].every((t) => t !== 'fail') ? 'pass' : 'fail',
},
protocols: {
type: StatusEnum,
description: 'Protocols Status',
resolve: ({ protocols }) => protocols,
},
spf: {
type: StatusEnum,
description: 'SPF Status',
resolve: ({ spf }) => spf,
},
ssl: {
type: StatusEnum,
description: 'SSL Status',
resolve: ({ ssl }) => ssl,
},
}),
})