@crvouga/atlas 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +30 -11
- package/dist/core/src/cli.d.ts +1 -1
- package/dist/core/src/cli.js +8 -3
- package/dist/core/src/config.d.ts +7 -0
- package/dist/core/src/config.js +48 -14
- package/dist/core/src/run/execute.d.ts +6 -0
- package/dist/core/src/run/execute.js +4 -2
- package/dist/reports/src/doctor.d.ts +1 -1
- package/dist/reports/src/doctor.js +3 -1
- package/dist/reports/src/http-store.d.ts +4 -0
- package/dist/reports/src/http-store.js +6 -3
- package/dist/reports/src/init.js +6 -1
- package/dist/reports/src/live-reporter.d.ts +34 -0
- package/dist/reports/src/live-reporter.js +122 -0
- package/dist/reports/src/report-cli.d.ts +1 -1
- package/dist/reports/src/report-cli.js +3 -2
- package/dist/reports/src/store-url.js +1 -1
- package/dist/runners/src/codecept.d.ts +14 -0
- package/dist/runners/src/codecept.js +16 -0
- package/dist/runners/src/jest.d.ts +50 -0
- package/dist/runners/src/jest.js +52 -0
- package/dist/runners/src/mocha.d.ts +40 -0
- package/dist/runners/src/mocha.js +39 -0
- package/dist/runners/src/node-test.d.ts +28 -0
- package/dist/runners/src/node-test.js +44 -0
- package/dist/runners/src/publish.d.ts +30 -0
- package/dist/runners/src/publish.js +68 -0
- package/dist/schema/src/api.d.ts +1 -0
- package/dist/schema/src/api.js +1 -1
- package/dist/schema/src/index.d.ts +2 -0
- package/dist/schema/src/index.js +2 -0
- package/dist/schema/src/live-run.d.ts +123 -0
- package/dist/schema/src/live-run.js +30 -0
- package/dist/schema/src/manifest.d.ts +2 -2
- package/dist/schema/src/project.d.ts +20 -0
- package/dist/schema/src/project.js +10 -0
- package/dist/schema/src/report-sources.d.ts +1 -0
- package/dist/schema/src/report-sources.js +2 -1
- package/dist/schema/src/runs-index.d.ts +1 -1
- package/dist/schema/src/server-config.d.ts +84 -0
- package/dist/schema/src/server-config.js +12 -0
- package/dist/server/src/app.d.ts +10 -0
- package/dist/server/src/app.js +148 -10
- package/dist/server/src/config.d.ts +1 -1
- package/dist/server/src/config.js +20 -3
- package/dist/server/src/dev.d.ts +3 -3
- package/dist/server/src/dev.js +22 -13
- package/dist/server/src/events.d.ts +3 -3
- package/dist/server/src/events.js +1 -1
- package/dist/server/src/index.d.ts +2 -0
- package/dist/server/src/index.js +2 -0
- package/dist/server/src/live-runs.d.ts +52 -0
- package/dist/server/src/live-runs.js +229 -0
- package/dist/server/src/main.d.ts +1 -1
- package/dist/server/src/main.js +7 -5
- package/dist/server/src/openapi.d.ts +2 -5
- package/dist/server/src/openapi.js +71 -7
- package/dist/server/src/projects.d.ts +3 -0
- package/dist/server/src/projects.js +154 -0
- package/dist/server/src/settings-page.d.ts +9 -0
- package/dist/server/src/settings-page.js +93 -0
- package/dist/server/src/settings.d.ts +23 -0
- package/dist/server/src/settings.js +72 -0
- package/dist/server/src/site.d.ts +8 -6
- package/dist/server/src/site.js +45 -10
- package/dist/server/src/store-api.js +43 -22
- package/docs/deploying.md +19 -19
- package/docs/dogfooding.md +2 -2
- package/docs/extending.md +3 -3
- package/docs/integrating.md +9 -9
- package/docs/reference/cli.md +9 -7
- package/docs/reference/core.md +6 -0
- package/docs/reference/http-api.md +498 -2
- package/docs/reference/reports.md +55 -1
- package/docs/reference/runners.md +169 -0
- package/docs/reference/schema.md +111 -0
- package/docs/reference/server.md +154 -14
- package/docs/report-backends.md +8 -8
- package/docs/report-contract.md +7 -7
- package/docs/reporting-issues.md +3 -3
- package/docs/runners.md +69 -0
- package/docs/server.md +61 -25
- package/docs/statecharts.md +22 -20
- package/llms-full.txt +713 -105
- package/llms.txt +3 -1
- package/package.json +31 -9
- package/packages/runners/README.md +6 -0
- package/packages/runners/compat/codecept.cjs +2 -0
- package/packages/runners/compat/jest.cjs +2 -0
- package/packages/runners/compat/mocha.cjs +2 -0
- package/packages/schema/schemas/atlas-change.schema.json +4 -0
- package/packages/schema/schemas/hello-event.schema.json +4 -0
- package/packages/schema/schemas/live-run-start.schema.json +42 -0
- package/packages/schema/schemas/live-run-update.schema.json +93 -0
- package/packages/schema/schemas/live-run.schema.json +225 -0
- package/packages/schema/schemas/project-slug.schema.json +8 -0
- package/packages/schema/schemas/project.schema.json +22 -0
- package/packages/schema/schemas/projects.schema.json +33 -0
- package/packages/schema/schemas/server-config.schema.json +14 -0
- package/packages/schema/schemas/server-editable-settings.schema.json +132 -0
- package/packages/schema/schemas/server-settings-snapshot.schema.json +285 -0
- package/packages/server/openapi.json +5101 -779
- package/packages/visualizer/README.md +13 -13
- package/packages/visualizer/bin/atlas-client.mjs +176 -0
- package/packages/visualizer/bin/atlas-visualizer.mjs +2 -175
- package/packages/visualizer/src/app/AppShell.tsx +26 -17
- package/packages/visualizer/src/app/report-sources.tsx +2 -1
- package/packages/visualizer/src/components/ActivityIndicator.module.css +4 -0
- package/packages/visualizer/src/components/ActivityIndicator.tsx +6 -0
- package/packages/visualizer/src/components/Header.module.css +101 -227
- package/packages/visualizer/src/components/Header.tsx +79 -41
- package/packages/visualizer/src/components/ProjectPicker.tsx +64 -0
- package/packages/visualizer/src/data/adapters/report-backend.test.ts +3 -2
- package/packages/visualizer/src/data/adapters/report-backend.ts +1 -1
- package/packages/visualizer/src/data/queries.ts +14 -7
- package/packages/visualizer/src/evidence/api.ts +2 -1
- package/packages/visualizer/src/evidence/check-detail.tsx +19 -4
- package/packages/visualizer/src/evidence/document-page.tsx +6 -2
- package/packages/visualizer/src/evidence/evidence-context.tsx +17 -12
- package/packages/visualizer/src/evidence/evidence.module.css +11 -1
- package/packages/visualizer/src/evidence/feature-page.tsx +7 -3
- package/packages/visualizer/src/evidence/model-page.tsx +6 -2
- package/packages/visualizer/src/evidence/project-home.tsx +45 -0
- package/packages/visualizer/src/evidence/recording-page.tsx +4 -1
- package/packages/visualizer/src/evidence/spec-index.tsx +2 -1
- package/packages/visualizer/src/evidence/test-filter.tsx +21 -0
- package/packages/visualizer/src/live/live-query.ts +21 -0
- package/packages/visualizer/src/live/live-runs.tsx +69 -0
- package/packages/visualizer/src/live/live-stream.ts +30 -9
- package/packages/visualizer/src/live/report-progress.ts +62 -0
- package/packages/visualizer/src/live/test-progress.tsx +34 -0
- package/packages/visualizer/src/runtime.ts +17 -1
- package/packages/visualizer/src/state/ui-store.ts +3 -2
- package/packages/visualizer/src/views/ChartPage.tsx +2 -0
- package/packages/visualizer/src/views/ChartTests.tsx +43 -0
- package/packages/visualizer/src/views/SidePanel.tsx +2 -0
- package/packages/visualizer/vite/atlas-files.test.ts +4 -4
- package/packages/visualizer/vite/atlas-files.ts +1 -5
- package/packages/visualizer/vite/atlas-server-proxy.ts +2 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "https://github.com/crvouga/atlas/schemas/server-editable-settings.schema.json",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"data": {
|
|
7
|
+
"description": "The folder that is the default backend and the default write target: layers, specs and runs live here",
|
|
8
|
+
"default": "./atlas-data",
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"backends": {
|
|
12
|
+
"description": "Further backends, read together with the data folder: S3, another server, a device lab",
|
|
13
|
+
"default": [],
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"properties": {
|
|
18
|
+
"id": {
|
|
19
|
+
"description": "Lowercase letters, digits and hyphens. Names where a result came from",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^[a-z0-9-]+$"
|
|
22
|
+
},
|
|
23
|
+
"label": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"url": {
|
|
27
|
+
"description": "A folder, s3://bucket/prefix, r2://, gs://, or another Atlas server (https://…)",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1
|
|
30
|
+
},
|
|
31
|
+
"write": {
|
|
32
|
+
"description": "Uploads go here instead of the data folder. At most one backend is the write target",
|
|
33
|
+
"type": "boolean"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": [
|
|
37
|
+
"id",
|
|
38
|
+
"url"
|
|
39
|
+
],
|
|
40
|
+
"additionalProperties": false
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"write": {
|
|
44
|
+
"description": "The id of the backend uploads go to. Default: the data folder",
|
|
45
|
+
"type": "string"
|
|
46
|
+
},
|
|
47
|
+
"outlineBranch": {
|
|
48
|
+
"description": "Which branch's specs the report is laid over. Default main, then master, then the newest",
|
|
49
|
+
"type": "string"
|
|
50
|
+
},
|
|
51
|
+
"include": {
|
|
52
|
+
"default": {},
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"branches": {
|
|
56
|
+
"description": "Only layers recorded on these branches take part",
|
|
57
|
+
"type": "array",
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "string"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"ignoreModified": {
|
|
63
|
+
"description": "Leave out layers from modified checkouts and unknown origins",
|
|
64
|
+
"type": "boolean"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": false
|
|
68
|
+
},
|
|
69
|
+
"refreshSeconds": {
|
|
70
|
+
"description": "How often the backends are looked at for layers written by something other than this server",
|
|
71
|
+
"default": 10,
|
|
72
|
+
"type": "number",
|
|
73
|
+
"minimum": 1
|
|
74
|
+
},
|
|
75
|
+
"limits": {
|
|
76
|
+
"default": {
|
|
77
|
+
"maxObjectMiB": 256,
|
|
78
|
+
"maxJsonMiB": 32,
|
|
79
|
+
"maxStreams": 500
|
|
80
|
+
},
|
|
81
|
+
"type": "object",
|
|
82
|
+
"properties": {
|
|
83
|
+
"maxObjectMiB": {
|
|
84
|
+
"description": "The largest object an upload may be",
|
|
85
|
+
"default": 256,
|
|
86
|
+
"type": "number",
|
|
87
|
+
"exclusiveMinimum": 0
|
|
88
|
+
},
|
|
89
|
+
"maxJsonMiB": {
|
|
90
|
+
"description": "The largest JSON body (a manifest, a checks request)",
|
|
91
|
+
"default": 32,
|
|
92
|
+
"type": "number",
|
|
93
|
+
"exclusiveMinimum": 0
|
|
94
|
+
},
|
|
95
|
+
"maxStreams": {
|
|
96
|
+
"description": "Viewers that may be connected for live updates at once",
|
|
97
|
+
"default": 500,
|
|
98
|
+
"type": "integer",
|
|
99
|
+
"exclusiveMinimum": 0,
|
|
100
|
+
"maximum": 9007199254740991
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"additionalProperties": false
|
|
104
|
+
},
|
|
105
|
+
"heartbeatSeconds": {
|
|
106
|
+
"description": "How often a live connection is touched, so proxies keep it open",
|
|
107
|
+
"default": 15,
|
|
108
|
+
"type": "number",
|
|
109
|
+
"minimum": 1
|
|
110
|
+
},
|
|
111
|
+
"runTimeoutSeconds": {
|
|
112
|
+
"description": "Interrupt a live run after this many seconds without a producer heartbeat",
|
|
113
|
+
"default": 30,
|
|
114
|
+
"type": "number",
|
|
115
|
+
"minimum": 10,
|
|
116
|
+
"maximum": 3600
|
|
117
|
+
},
|
|
118
|
+
"runStallSeconds": {
|
|
119
|
+
"description": "Interrupt after this many seconds without test progress; 0 disables progress expiry",
|
|
120
|
+
"default": 900,
|
|
121
|
+
"type": "number",
|
|
122
|
+
"minimum": 0,
|
|
123
|
+
"maximum": 86400
|
|
124
|
+
},
|
|
125
|
+
"log": {
|
|
126
|
+
"description": "One JSON line per request",
|
|
127
|
+
"default": true,
|
|
128
|
+
"type": "boolean"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"additionalProperties": false
|
|
132
|
+
}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "https://github.com/crvouga/atlas/schemas/server-settings-snapshot.schema.json",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"revision": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
9
|
+
},
|
|
10
|
+
"settings": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"data": {
|
|
14
|
+
"description": "The folder that is the default backend and the default write target: layers, specs and runs live here",
|
|
15
|
+
"default": "./atlas-data",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"backends": {
|
|
19
|
+
"description": "Further backends, read together with the data folder: S3, another server, a device lab",
|
|
20
|
+
"default": [],
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"id": {
|
|
26
|
+
"description": "Lowercase letters, digits and hyphens. Names where a result came from",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"pattern": "^[a-z0-9-]+$"
|
|
29
|
+
},
|
|
30
|
+
"label": {
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"url": {
|
|
34
|
+
"description": "A folder, s3://bucket/prefix, r2://, gs://, or another Atlas server (https://…)",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"minLength": 1
|
|
37
|
+
},
|
|
38
|
+
"write": {
|
|
39
|
+
"description": "Uploads go here instead of the data folder. At most one backend is the write target",
|
|
40
|
+
"type": "boolean"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"required": [
|
|
44
|
+
"id",
|
|
45
|
+
"url"
|
|
46
|
+
],
|
|
47
|
+
"additionalProperties": false
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"write": {
|
|
51
|
+
"description": "The id of the backend uploads go to. Default: the data folder",
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
"outlineBranch": {
|
|
55
|
+
"description": "Which branch's specs the report is laid over. Default main, then master, then the newest",
|
|
56
|
+
"type": "string"
|
|
57
|
+
},
|
|
58
|
+
"include": {
|
|
59
|
+
"default": {},
|
|
60
|
+
"type": "object",
|
|
61
|
+
"properties": {
|
|
62
|
+
"branches": {
|
|
63
|
+
"description": "Only layers recorded on these branches take part",
|
|
64
|
+
"type": "array",
|
|
65
|
+
"items": {
|
|
66
|
+
"type": "string"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"ignoreModified": {
|
|
70
|
+
"description": "Leave out layers from modified checkouts and unknown origins",
|
|
71
|
+
"type": "boolean"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
},
|
|
76
|
+
"refreshSeconds": {
|
|
77
|
+
"description": "How often the backends are looked at for layers written by something other than this server",
|
|
78
|
+
"default": 10,
|
|
79
|
+
"type": "number",
|
|
80
|
+
"minimum": 1
|
|
81
|
+
},
|
|
82
|
+
"limits": {
|
|
83
|
+
"default": {
|
|
84
|
+
"maxObjectMiB": 256,
|
|
85
|
+
"maxJsonMiB": 32,
|
|
86
|
+
"maxStreams": 500
|
|
87
|
+
},
|
|
88
|
+
"type": "object",
|
|
89
|
+
"properties": {
|
|
90
|
+
"maxObjectMiB": {
|
|
91
|
+
"description": "The largest object an upload may be",
|
|
92
|
+
"default": 256,
|
|
93
|
+
"type": "number",
|
|
94
|
+
"exclusiveMinimum": 0
|
|
95
|
+
},
|
|
96
|
+
"maxJsonMiB": {
|
|
97
|
+
"description": "The largest JSON body (a manifest, a checks request)",
|
|
98
|
+
"default": 32,
|
|
99
|
+
"type": "number",
|
|
100
|
+
"exclusiveMinimum": 0
|
|
101
|
+
},
|
|
102
|
+
"maxStreams": {
|
|
103
|
+
"description": "Viewers that may be connected for live updates at once",
|
|
104
|
+
"default": 500,
|
|
105
|
+
"type": "integer",
|
|
106
|
+
"exclusiveMinimum": 0,
|
|
107
|
+
"maximum": 9007199254740991
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"additionalProperties": false
|
|
111
|
+
},
|
|
112
|
+
"heartbeatSeconds": {
|
|
113
|
+
"description": "How often a live connection is touched, so proxies keep it open",
|
|
114
|
+
"default": 15,
|
|
115
|
+
"type": "number",
|
|
116
|
+
"minimum": 1
|
|
117
|
+
},
|
|
118
|
+
"runTimeoutSeconds": {
|
|
119
|
+
"description": "Interrupt a live run after this many seconds without a producer heartbeat",
|
|
120
|
+
"default": 30,
|
|
121
|
+
"type": "number",
|
|
122
|
+
"minimum": 10,
|
|
123
|
+
"maximum": 3600
|
|
124
|
+
},
|
|
125
|
+
"runStallSeconds": {
|
|
126
|
+
"description": "Interrupt after this many seconds without test progress; 0 disables progress expiry",
|
|
127
|
+
"default": 900,
|
|
128
|
+
"type": "number",
|
|
129
|
+
"minimum": 0,
|
|
130
|
+
"maximum": 86400
|
|
131
|
+
},
|
|
132
|
+
"log": {
|
|
133
|
+
"description": "One JSON line per request",
|
|
134
|
+
"default": true,
|
|
135
|
+
"type": "boolean"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"additionalProperties": false
|
|
139
|
+
},
|
|
140
|
+
"active": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"properties": {
|
|
143
|
+
"data": {
|
|
144
|
+
"description": "The folder that is the default backend and the default write target: layers, specs and runs live here",
|
|
145
|
+
"default": "./atlas-data",
|
|
146
|
+
"type": "string"
|
|
147
|
+
},
|
|
148
|
+
"backends": {
|
|
149
|
+
"description": "Further backends, read together with the data folder: S3, another server, a device lab",
|
|
150
|
+
"default": [],
|
|
151
|
+
"type": "array",
|
|
152
|
+
"items": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"properties": {
|
|
155
|
+
"id": {
|
|
156
|
+
"description": "Lowercase letters, digits and hyphens. Names where a result came from",
|
|
157
|
+
"type": "string",
|
|
158
|
+
"pattern": "^[a-z0-9-]+$"
|
|
159
|
+
},
|
|
160
|
+
"label": {
|
|
161
|
+
"type": "string"
|
|
162
|
+
},
|
|
163
|
+
"url": {
|
|
164
|
+
"description": "A folder, s3://bucket/prefix, r2://, gs://, or another Atlas server (https://…)",
|
|
165
|
+
"type": "string",
|
|
166
|
+
"minLength": 1
|
|
167
|
+
},
|
|
168
|
+
"write": {
|
|
169
|
+
"description": "Uploads go here instead of the data folder. At most one backend is the write target",
|
|
170
|
+
"type": "boolean"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"required": [
|
|
174
|
+
"id",
|
|
175
|
+
"url"
|
|
176
|
+
],
|
|
177
|
+
"additionalProperties": false
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"write": {
|
|
181
|
+
"description": "The id of the backend uploads go to. Default: the data folder",
|
|
182
|
+
"type": "string"
|
|
183
|
+
},
|
|
184
|
+
"outlineBranch": {
|
|
185
|
+
"description": "Which branch's specs the report is laid over. Default main, then master, then the newest",
|
|
186
|
+
"type": "string"
|
|
187
|
+
},
|
|
188
|
+
"include": {
|
|
189
|
+
"default": {},
|
|
190
|
+
"type": "object",
|
|
191
|
+
"properties": {
|
|
192
|
+
"branches": {
|
|
193
|
+
"description": "Only layers recorded on these branches take part",
|
|
194
|
+
"type": "array",
|
|
195
|
+
"items": {
|
|
196
|
+
"type": "string"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"ignoreModified": {
|
|
200
|
+
"description": "Leave out layers from modified checkouts and unknown origins",
|
|
201
|
+
"type": "boolean"
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"additionalProperties": false
|
|
205
|
+
},
|
|
206
|
+
"refreshSeconds": {
|
|
207
|
+
"description": "How often the backends are looked at for layers written by something other than this server",
|
|
208
|
+
"default": 10,
|
|
209
|
+
"type": "number",
|
|
210
|
+
"minimum": 1
|
|
211
|
+
},
|
|
212
|
+
"limits": {
|
|
213
|
+
"default": {
|
|
214
|
+
"maxObjectMiB": 256,
|
|
215
|
+
"maxJsonMiB": 32,
|
|
216
|
+
"maxStreams": 500
|
|
217
|
+
},
|
|
218
|
+
"type": "object",
|
|
219
|
+
"properties": {
|
|
220
|
+
"maxObjectMiB": {
|
|
221
|
+
"description": "The largest object an upload may be",
|
|
222
|
+
"default": 256,
|
|
223
|
+
"type": "number",
|
|
224
|
+
"exclusiveMinimum": 0
|
|
225
|
+
},
|
|
226
|
+
"maxJsonMiB": {
|
|
227
|
+
"description": "The largest JSON body (a manifest, a checks request)",
|
|
228
|
+
"default": 32,
|
|
229
|
+
"type": "number",
|
|
230
|
+
"exclusiveMinimum": 0
|
|
231
|
+
},
|
|
232
|
+
"maxStreams": {
|
|
233
|
+
"description": "Viewers that may be connected for live updates at once",
|
|
234
|
+
"default": 500,
|
|
235
|
+
"type": "integer",
|
|
236
|
+
"exclusiveMinimum": 0,
|
|
237
|
+
"maximum": 9007199254740991
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
"additionalProperties": false
|
|
241
|
+
},
|
|
242
|
+
"heartbeatSeconds": {
|
|
243
|
+
"description": "How often a live connection is touched, so proxies keep it open",
|
|
244
|
+
"default": 15,
|
|
245
|
+
"type": "number",
|
|
246
|
+
"minimum": 1
|
|
247
|
+
},
|
|
248
|
+
"runTimeoutSeconds": {
|
|
249
|
+
"description": "Interrupt a live run after this many seconds without a producer heartbeat",
|
|
250
|
+
"default": 30,
|
|
251
|
+
"type": "number",
|
|
252
|
+
"minimum": 10,
|
|
253
|
+
"maximum": 3600
|
|
254
|
+
},
|
|
255
|
+
"runStallSeconds": {
|
|
256
|
+
"description": "Interrupt after this many seconds without test progress; 0 disables progress expiry",
|
|
257
|
+
"default": 900,
|
|
258
|
+
"type": "number",
|
|
259
|
+
"minimum": 0,
|
|
260
|
+
"maximum": 86400
|
|
261
|
+
},
|
|
262
|
+
"log": {
|
|
263
|
+
"description": "One JSON line per request",
|
|
264
|
+
"default": true,
|
|
265
|
+
"type": "boolean"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"additionalProperties": false
|
|
269
|
+
},
|
|
270
|
+
"restartRequired": {
|
|
271
|
+
"type": "boolean"
|
|
272
|
+
},
|
|
273
|
+
"precedence": {
|
|
274
|
+
"type": "string"
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"required": [
|
|
278
|
+
"revision",
|
|
279
|
+
"settings",
|
|
280
|
+
"active",
|
|
281
|
+
"restartRequired",
|
|
282
|
+
"precedence"
|
|
283
|
+
],
|
|
284
|
+
"additionalProperties": {}
|
|
285
|
+
}
|