-
Notifications
You must be signed in to change notification settings - Fork 1
/
gridConfigShema.ts
115 lines (102 loc) · 2.19 KB
/
gridConfigShema.ts
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import { JWK, PrivateJWK } from "./jwk.ts";
export type GridConfig =
& CommonConfig
& NetworkConfig
& TelemetryConfig;
interface CommonConfig {
public_address?: string;
log?: LogConfig;
supervisor?: SupervisorConfig;
authorization?: AuthorizationConfig;
limit?: LimitConfig;
http_client?: HttpClientConfig;
internal?: InternalConfig;
}
interface NetworkConfig {
quic?: QuicConfig;
http?: HttpConfig;
metrics?: MetricsConfig;
}
interface SupervisorConfig {
report_interval?: number;
no_warmup?: boolean;
}
interface AuthorizationConfig {
keys?: Array<JWK | PrivateJWK>;
allow_unsigned?: boolean;
leeway?: number;
}
interface LogConfig {
verbosity?: number;
filters?: Array<string>;
terminal?: {
format?: "json" | "text";
colors?: boolean;
};
loki?: {
url?: string;
labels?: Record<string, string>;
};
}
interface LimitConfig {
max_clients?: number;
max_rooms?: number;
max_peers?: number;
peer?: {
medias?: number;
concurrent_streams?: number;
incoming_messages?: {
rate?: number;
capacity?: number;
overflow?: number;
};
};
}
interface QuicConfig {
binding?: string;
certificate_file?: string;
privatekey_file?: string;
keep_alive_interval?: number;
connect_timeout?: number;
idle_timeout?: number;
no_peers_timeout?: number;
pre_send_timeout?: number;
migration?: boolean;
}
interface HttpConfig {
binding?: string;
certificate_file?: string;
privatekey_file?: string;
timeout?: number;
ping_interval?: number;
no_peers_timeout?: number;
webrtc_binding?: string;
webrtc_candidates?: Array<string>;
}
interface MetricsConfig {
binding?: string;
allowed?: Array<string>;
idle_timeout?: number;
global_labels?: Record<string, string>;
}
interface TelemetryConfig {
telemetry?: {
address?: string;
interval?: number;
max_consecutive_failures?: number;
data?: Array<string>;
};
license?: {
issuer?: string;
licensee?: string;
serial_number?: string;
};
}
interface HttpClientConfig {
proxy?: string;
accept_invalid_certificates?: boolean;
}
interface InternalConfig {
log_hanging_api_calls?: number;
log_rejected_api_calls?: boolean;
}