Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / shared / lib / interfaces / Domain.ts
blob9be174ce9bb12c0cae461ebca1a001e03ec86996
1 export interface DKIMKey {
2     ID: string;
3     Selector: string;
4     PublicKey: string;
5     Algorithm: number;
6     DNSState: number;
7     CreateTime: number;
10 export interface DKIMConfig {
11     Hostname: string;
12     CNAME: string;
13     Key: DKIMKey | null;
16 export enum DOMAIN_STATE {
17     DOMAIN_STATE_DEFAULT = 0, // Domain's State before verify or after deactivation
18     DOMAIN_STATE_VERIFIED = 1, // active once verified
19     DOMAIN_STATE_WARN = 2, // detected backward DNS change after ACTIVE
22 export enum VERIFY_STATE {
23     VERIFY_STATE_DEFAULT = 0, // 0 is default, no good
24     VERIFY_STATE_EXIST = 1, // 1 is has code but doesn't match DB's, no good
25     VERIFY_STATE_GOOD = 2, // 2 is has code and matches DB's, good!
28 export enum MX_STATE {
29     MX_STATE_DEFAULT = 0, // 0 is default, no good
30     MX_STATE_NO_US = 1, // 1 is set but does not have us
31     MX_STATE_INC_US = 2, // 2 is includes our MX but priority no good
32     MX_STATE_GOOD = 3, // 3 is includes our MX and we are highest and pri is legit, good!
35 export enum SPF_STATE {
36     SPF_STATE_DEFAULT = 0, // 0 is default, no spf record
37     SPF_STATE_ONE = 1, // 1 is has spf record but not us
38     SPF_STATE_MULT = 2, // 2 is has multiple spf records, no good
39     SPF_STATE_GOOD = 3, // 3 is has spf record and includes us, good!
42 export enum DKIM_STATE {
43     DKIM_STATE_DEFAULT = 0,
44     DKIM_STATE_ERROR = 3,
45     DKIM_STATE_GOOD = 4,
46     DKIM_STATE_DELEGATED = 5,
47     DKIM_STATE_WARNING = 6,
50 export enum DMARC_STATE {
51     DMARC_STATE_DEFAULT = 0, // 0 is default, no dmarc record
52     DMARC_STATE_ONE = 1, // 1 is found entries but format wrong
53     DMARC_STATE_MULT = 2, // 2 is multiple dmarc records, no good
54     DMARC_STATE_GOOD = 3, // 3 is good!
55     DMARC_STATE_RELAXED = 4, // 4 also good, but additionally indicates relaxed DKIM
58 export interface Domain {
59     ID: string;
60     DomainName: string;
61     VerifyCode: string;
62     DkimPublicKey: string;
63     State: DOMAIN_STATE;
64     CheckTime: number;
65     LastActiveTime: number;
66     WarnTime: number;
67     VerifyState: VERIFY_STATE; // 0 is default, 1 is has code but wrong, 2 is good
68     MxState: MX_STATE; // 0 is default, 1 is set but no us, 2 has us but priority is wrong, 3 is good
69     SpfState: SPF_STATE; // 0 is default, 1 and 2 means detected a record but wrong, 3 is good
70     DKIM: {
71         State: DKIM_STATE; // 0 is default, 1 and 2 means detected record but wrong, 3 means key is wrong, 4 is good, 5 is turned off by user through DNS
72         Config: DKIMConfig[];
73     };
74     DmarcState: DMARC_STATE; // 0 is default, 1 and 2 means detected record but wrong, 3 is good
75     Flags: {
76         'mail-intent': boolean;
77         'sso-intent': boolean;
78     };