@json-to-office/core-docx 1.10.0 → 2.0.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/dist/core/generateFromIr.d.ts +8 -0
- package/dist/core/generateFromIr.d.ts.map +1 -1
- package/dist/core/generator.d.ts +8 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/tableModel.d.ts +1 -1
- package/dist/core/tableModel.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +491 -591
- package/dist/index.js.map +1 -1
- package/dist/ir/inline.d.ts.map +1 -1
- package/dist/plugin/createDocumentGenerator.d.ts +8 -0
- package/dist/plugin/createDocumentGenerator.d.ts.map +1 -1
- package/dist/plugin/example/index.js +487 -588
- package/dist/plugin/example/index.js.map +1 -1
- package/dist/renderers/docxjs/emit.d.ts.map +1 -1
- package/dist/renderers/docxjs/index.d.ts.map +1 -1
- package/dist/renderers/office-open/index.d.ts +1 -1
- package/dist/renderers/office-open/index.d.ts.map +1 -1
- package/dist/renderers/types.d.ts +9 -0
- package/dist/renderers/types.d.ts.map +1 -1
- package/dist/styles/index.d.ts +1 -1
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/templates/documents/field-review.docx.json +1148 -0
- package/dist/templates/documents/index.d.ts +2 -2
- package/dist/templates/documents/index.d.ts.map +1 -1
- package/dist/templates/documents/practice-note.docx.json +917 -0
- package/dist/templates/themes/devportal.docx.theme.json +110 -44
- package/dist/templates/themes/index.d.ts +2 -2
- package/dist/templates/themes/index.d.ts.map +1 -1
- package/dist/templates/themes/minimal.docx.theme.json +124 -127
- package/dist/templates/themes/vermilion.docx.theme.json +82 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/imageUtils.d.ts +19 -0
- package/dist/utils/imageUtils.d.ts.map +1 -1
- package/dist/utils/listLevels.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/templates/documents/proposal.docx.json +0 -1723
- package/dist/templates/documents/technical-guide.docx.json +0 -2040
- package/dist/templates/themes/apex.docx.theme.json +0 -117
- package/dist/templates/themes/corporate.docx.theme.json +0 -114
- package/dist/templates/themes/modern.docx.theme.json +0 -109
|
@@ -1,2040 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "docx",
|
|
3
|
-
"props": {
|
|
4
|
-
"metadata": {
|
|
5
|
-
"title": "Arcline Platform — Integration Guide",
|
|
6
|
-
"author": "Arcline Engineering",
|
|
7
|
-
"description": "Technical reference for integrating external systems with the Arcline Platform API"
|
|
8
|
-
},
|
|
9
|
-
"theme": "vermilion"
|
|
10
|
-
},
|
|
11
|
-
"children": [
|
|
12
|
-
{
|
|
13
|
-
"name": "section",
|
|
14
|
-
"props": {
|
|
15
|
-
"meta": {
|
|
16
|
-
"title": "Cover"
|
|
17
|
-
},
|
|
18
|
-
"page": {
|
|
19
|
-
"margins": {
|
|
20
|
-
"top": 0,
|
|
21
|
-
"right": 0,
|
|
22
|
-
"bottom": 0,
|
|
23
|
-
"left": 0,
|
|
24
|
-
"header": 0,
|
|
25
|
-
"footer": 0
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"header": [],
|
|
29
|
-
"footer": []
|
|
30
|
-
},
|
|
31
|
-
"children": [
|
|
32
|
-
{
|
|
33
|
-
"name": "image",
|
|
34
|
-
"props": {
|
|
35
|
-
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8.39in\" height=\"11.81in\" viewBox=\"0 0 806 1134\"><rect width=\"806\" height=\"1134\" fill=\"#282829\"/><line x1=\"62\" y1=\"0\" x2=\"62\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"124\" y1=\"0\" x2=\"124\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"186\" y1=\"0\" x2=\"186\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"248\" y1=\"0\" x2=\"248\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"310\" y1=\"0\" x2=\"310\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"372\" y1=\"0\" x2=\"372\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"434\" y1=\"0\" x2=\"434\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"496\" y1=\"0\" x2=\"496\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"558\" y1=\"0\" x2=\"558\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"620\" y1=\"0\" x2=\"620\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"682\" y1=\"0\" x2=\"682\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"744\" y1=\"0\" x2=\"744\" y2=\"1134\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"62\" x2=\"806\" y2=\"62\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"124\" x2=\"806\" y2=\"124\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"186\" x2=\"806\" y2=\"186\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"248\" x2=\"806\" y2=\"248\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"310\" x2=\"806\" y2=\"310\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"372\" x2=\"806\" y2=\"372\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"434\" x2=\"806\" y2=\"434\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"496\" x2=\"806\" y2=\"496\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"558\" x2=\"806\" y2=\"558\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"620\" x2=\"806\" y2=\"620\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"682\" x2=\"806\" y2=\"682\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"744\" x2=\"806\" y2=\"744\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"806\" x2=\"806\" y2=\"806\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"868\" x2=\"806\" y2=\"868\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"930\" x2=\"806\" y2=\"930\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"992\" x2=\"806\" y2=\"992\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"1054\" x2=\"806\" y2=\"1054\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"0\" y1=\"1116\" x2=\"806\" y2=\"1116\" stroke=\"#3A3A3C\" stroke-width=\"1\"/><line x1=\"520\" y1=\"150\" x2=\"620\" y2=\"110\" stroke=\"#58595B\" stroke-width=\"1.5\"/><line x1=\"620\" y1=\"110\" x2=\"700\" y2=\"180\" stroke=\"#58595B\" stroke-width=\"1.5\"/><line x1=\"700\" y1=\"180\" x2=\"600\" y2=\"230\" stroke=\"#58595B\" stroke-width=\"1.5\"/><line x1=\"600\" y1=\"230\" x2=\"520\" y2=\"150\" stroke=\"#58595B\" stroke-width=\"1.5\"/><line x1=\"700\" y1=\"180\" x2=\"726\" y2=\"300\" stroke=\"#58595B\" stroke-width=\"1.5\"/><circle cx=\"520\" cy=\"150\" r=\"5\" fill=\"#282829\" stroke=\"#EF4130\" stroke-width=\"2\"/><circle cx=\"620\" cy=\"110\" r=\"5\" fill=\"#282829\" stroke=\"#EF4130\" stroke-width=\"2\"/><circle cx=\"700\" cy=\"180\" r=\"5\" fill=\"#282829\" stroke=\"#EF4130\" stroke-width=\"2\"/><circle cx=\"600\" cy=\"230\" r=\"5\" fill=\"#282829\" stroke=\"#EF4130\" stroke-width=\"2\"/><circle cx=\"726\" cy=\"300\" r=\"6\" fill=\"#EF4130\"/><text x=\"470\" y=\"860\" font-family=\"Consolas, monospace\" font-size=\"260\" fill=\"#3A3A3C\">{</text><text x=\"640\" y=\"860\" font-family=\"Consolas, monospace\" font-size=\"260\" fill=\"#3A3A3C\">}</text><rect x=\"77\" y=\"336\" width=\"118\" height=\"3\" fill=\"#EF4130\"/><rect x=\"77\" y=\"84\" width=\"176\" height=\"34\" rx=\"5\" fill=\"#1D1D1F\" stroke=\"#58595B\"/><circle cx=\"95\" cy=\"101\" r=\"4\" fill=\"#EF4130\"/><circle cx=\"109\" cy=\"101\" r=\"4\" fill=\"#58595B\"/><circle cx=\"123\" cy=\"101\" r=\"4\" fill=\"#58595B\"/><text x=\"138\" y=\"106\" font-family=\"Consolas, monospace\" font-size=\"13\" fill=\"#939598\">arcline v3.2</text><rect x=\"0\" y=\"1040\" width=\"806\" height=\"94\" fill=\"#1D1D1F\"/><rect x=\"0\" y=\"1040\" width=\"806\" height=\"2\" fill=\"#EF4130\"/></svg>",
|
|
36
|
-
"width": 806,
|
|
37
|
-
"height": 1134,
|
|
38
|
-
"floating": {
|
|
39
|
-
"behindDocument": true,
|
|
40
|
-
"zIndex": 0,
|
|
41
|
-
"allowOverlap": true,
|
|
42
|
-
"horizontalPosition": {
|
|
43
|
-
"relative": "page",
|
|
44
|
-
"offset": -86
|
|
45
|
-
},
|
|
46
|
-
"verticalPosition": {
|
|
47
|
-
"relative": "page",
|
|
48
|
-
"offset": -86
|
|
49
|
-
},
|
|
50
|
-
"wrap": {
|
|
51
|
-
"type": "none"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"name": "paragraph",
|
|
58
|
-
"props": {
|
|
59
|
-
"text": "ARCLINE PLATFORM",
|
|
60
|
-
"noProof": true,
|
|
61
|
-
"alignment": "left",
|
|
62
|
-
"spacing": {
|
|
63
|
-
"before": 0,
|
|
64
|
-
"after": 0
|
|
65
|
-
},
|
|
66
|
-
"font": {
|
|
67
|
-
"size": 10.5,
|
|
68
|
-
"color": "#EF4130",
|
|
69
|
-
"family": "Arial",
|
|
70
|
-
"bold": true,
|
|
71
|
-
"characterSpacing": {
|
|
72
|
-
"type": "expanded",
|
|
73
|
-
"value": 40
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
"floating": {
|
|
77
|
-
"width": 9000,
|
|
78
|
-
"horizontalPosition": {
|
|
79
|
-
"relative": "page",
|
|
80
|
-
"offset": 1134
|
|
81
|
-
},
|
|
82
|
-
"verticalPosition": {
|
|
83
|
-
"relative": "page",
|
|
84
|
-
"offset": 4160
|
|
85
|
-
},
|
|
86
|
-
"wrap": {
|
|
87
|
-
"type": "none"
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"name": "paragraph",
|
|
94
|
-
"props": {
|
|
95
|
-
"text": "Integration Guide",
|
|
96
|
-
"noProof": true,
|
|
97
|
-
"alignment": "left",
|
|
98
|
-
"spacing": {
|
|
99
|
-
"before": 0,
|
|
100
|
-
"after": 0
|
|
101
|
-
},
|
|
102
|
-
"font": {
|
|
103
|
-
"size": 42,
|
|
104
|
-
"color": "background",
|
|
105
|
-
"family": "Arial",
|
|
106
|
-
"bold": true,
|
|
107
|
-
"lineSpacing": {
|
|
108
|
-
"type": "exactly",
|
|
109
|
-
"value": 48
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
"floating": {
|
|
113
|
-
"width": 9400,
|
|
114
|
-
"horizontalPosition": {
|
|
115
|
-
"relative": "page",
|
|
116
|
-
"offset": 1134
|
|
117
|
-
},
|
|
118
|
-
"verticalPosition": {
|
|
119
|
-
"relative": "page",
|
|
120
|
-
"offset": 5330
|
|
121
|
-
},
|
|
122
|
-
"wrap": {
|
|
123
|
-
"type": "none"
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"name": "paragraph",
|
|
130
|
-
"props": {
|
|
131
|
-
"text": "Arcline API v3.2 — Technical Reference",
|
|
132
|
-
"noProof": true,
|
|
133
|
-
"alignment": "left",
|
|
134
|
-
"spacing": {
|
|
135
|
-
"before": 0,
|
|
136
|
-
"after": 0
|
|
137
|
-
},
|
|
138
|
-
"font": {
|
|
139
|
-
"size": 16,
|
|
140
|
-
"color": "#EF4130",
|
|
141
|
-
"family": "Arial",
|
|
142
|
-
"lineSpacing": {
|
|
143
|
-
"type": "exactly",
|
|
144
|
-
"value": 21
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
"floating": {
|
|
148
|
-
"width": 8800,
|
|
149
|
-
"horizontalPosition": {
|
|
150
|
-
"relative": "page",
|
|
151
|
-
"offset": 1134
|
|
152
|
-
},
|
|
153
|
-
"verticalPosition": {
|
|
154
|
-
"relative": "page",
|
|
155
|
-
"offset": 6700
|
|
156
|
-
},
|
|
157
|
-
"wrap": {
|
|
158
|
-
"type": "none"
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
"name": "paragraph",
|
|
165
|
-
"props": {
|
|
166
|
-
"text": "Last updated April 2026 · For developers, system architects, and DevOps engineers",
|
|
167
|
-
"noProof": true,
|
|
168
|
-
"alignment": "left",
|
|
169
|
-
"spacing": {
|
|
170
|
-
"before": 0,
|
|
171
|
-
"after": 0
|
|
172
|
-
},
|
|
173
|
-
"font": {
|
|
174
|
-
"size": 11,
|
|
175
|
-
"color": "#939598",
|
|
176
|
-
"family": "Calibri"
|
|
177
|
-
},
|
|
178
|
-
"floating": {
|
|
179
|
-
"width": 8600,
|
|
180
|
-
"horizontalPosition": {
|
|
181
|
-
"relative": "page",
|
|
182
|
-
"offset": 1134
|
|
183
|
-
},
|
|
184
|
-
"verticalPosition": {
|
|
185
|
-
"relative": "page",
|
|
186
|
-
"offset": 8100
|
|
187
|
-
},
|
|
188
|
-
"wrap": {
|
|
189
|
-
"type": "none"
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
"name": "paragraph",
|
|
196
|
-
"props": {
|
|
197
|
-
"text": "Confidential — Arcline Inc. — Do not distribute",
|
|
198
|
-
"noProof": true,
|
|
199
|
-
"alignment": "left",
|
|
200
|
-
"spacing": {
|
|
201
|
-
"before": 0,
|
|
202
|
-
"after": 0
|
|
203
|
-
},
|
|
204
|
-
"font": {
|
|
205
|
-
"size": 9.5,
|
|
206
|
-
"color": "#939598",
|
|
207
|
-
"family": "Calibri"
|
|
208
|
-
},
|
|
209
|
-
"floating": {
|
|
210
|
-
"width": 6500,
|
|
211
|
-
"horizontalPosition": {
|
|
212
|
-
"relative": "page",
|
|
213
|
-
"offset": 1134
|
|
214
|
-
},
|
|
215
|
-
"verticalPosition": {
|
|
216
|
-
"relative": "page",
|
|
217
|
-
"offset": 15690
|
|
218
|
-
},
|
|
219
|
-
"wrap": {
|
|
220
|
-
"type": "none"
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
"name": "paragraph",
|
|
227
|
-
"props": {
|
|
228
|
-
"text": "docs.arcline.io",
|
|
229
|
-
"noProof": true,
|
|
230
|
-
"alignment": "right",
|
|
231
|
-
"spacing": {
|
|
232
|
-
"before": 0,
|
|
233
|
-
"after": 0
|
|
234
|
-
},
|
|
235
|
-
"font": {
|
|
236
|
-
"size": 9.5,
|
|
237
|
-
"color": "#EF4130",
|
|
238
|
-
"family": "Consolas"
|
|
239
|
-
},
|
|
240
|
-
"floating": {
|
|
241
|
-
"width": 3270,
|
|
242
|
-
"horizontalPosition": {
|
|
243
|
-
"relative": "page",
|
|
244
|
-
"offset": 7500
|
|
245
|
-
},
|
|
246
|
-
"verticalPosition": {
|
|
247
|
-
"relative": "page",
|
|
248
|
-
"offset": 15690
|
|
249
|
-
},
|
|
250
|
-
"wrap": {
|
|
251
|
-
"type": "none"
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
]
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
"name": "section",
|
|
260
|
-
"props": {
|
|
261
|
-
"meta": {
|
|
262
|
-
"title": "Overview & Contents"
|
|
263
|
-
},
|
|
264
|
-
"header": [
|
|
265
|
-
{
|
|
266
|
-
"name": "paragraph",
|
|
267
|
-
"props": {
|
|
268
|
-
"text": "Arcline Platform — Integration Guide v3.2",
|
|
269
|
-
"alignment": "left"
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
],
|
|
273
|
-
"footer": [
|
|
274
|
-
{
|
|
275
|
-
"name": "paragraph",
|
|
276
|
-
"props": {
|
|
277
|
-
"text": "Confidential — Arcline Inc. — Do not distribute",
|
|
278
|
-
"alignment": "center"
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
],
|
|
282
|
-
"pageBreak": true
|
|
283
|
-
},
|
|
284
|
-
"children": [
|
|
285
|
-
{
|
|
286
|
-
"name": "image",
|
|
287
|
-
"props": {
|
|
288
|
-
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"120\" viewBox=\"0 0 800 120\"><rect width=\"800\" height=\"120\" fill=\"#282829\"/><rect width=\"8\" height=\"120\" fill=\"#EF4130\"/><line x1=\"700\" y1=\"35\" x2=\"756\" y2=\"60\" stroke=\"#58595B\" stroke-width=\"1.5\"/><line x1=\"756\" y1=\"60\" x2=\"700\" y2=\"85\" stroke=\"#58595B\" stroke-width=\"1.5\"/><circle cx=\"700\" cy=\"35\" r=\"4\" fill=\"#282829\" stroke=\"#EF4130\" stroke-width=\"2\"/><circle cx=\"756\" cy=\"60\" r=\"5\" fill=\"#EF4130\"/><circle cx=\"700\" cy=\"85\" r=\"4\" fill=\"#282829\" stroke=\"#EF4130\" stroke-width=\"2\"/><text x=\"40\" y=\"56\" font-family=\"Arial, sans-serif\" font-size=\"32\" font-weight=\"bold\" fill=\"#FFFFFF\">ARCLINE</text><text x=\"40\" y=\"86\" font-family=\"Arial, sans-serif\" font-size=\"11\" letter-spacing=\"4\" fill=\"#EF4130\">ENTERPRISE DATA PLATFORM</text></svg>",
|
|
289
|
-
"width": "100%"
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
"name": "heading",
|
|
294
|
-
"props": {
|
|
295
|
-
"text": "About This Guide",
|
|
296
|
-
"level": 1
|
|
297
|
-
}
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
"name": "paragraph",
|
|
301
|
-
"props": {
|
|
302
|
-
"text": "This guide covers the integration of external systems with the Arcline Platform API. It is intended for developers and system architects building custom integrations, data pipelines, and embedded analytics solutions. The API follows RESTful conventions, uses OAuth 2.0 for authentication, and returns JSON responses."
|
|
303
|
-
}
|
|
304
|
-
},
|
|
305
|
-
{
|
|
306
|
-
"name": "paragraph",
|
|
307
|
-
"props": {
|
|
308
|
-
"text": "Last updated: April 2026 | Audience: Developers, System Architects, DevOps Engineers",
|
|
309
|
-
"font": {
|
|
310
|
-
"italic": true,
|
|
311
|
-
"color": "textSecondary"
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"name": "heading",
|
|
317
|
-
"props": {
|
|
318
|
-
"text": "Contents",
|
|
319
|
-
"level": 2
|
|
320
|
-
}
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
"name": "toc",
|
|
324
|
-
"props": {
|
|
325
|
-
"depth": {
|
|
326
|
-
"from": 1,
|
|
327
|
-
"to": 2
|
|
328
|
-
},
|
|
329
|
-
"scope": "document"
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
]
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"name": "section",
|
|
336
|
-
"props": {
|
|
337
|
-
"meta": {
|
|
338
|
-
"title": "Getting Started"
|
|
339
|
-
},
|
|
340
|
-
"pageBreak": true,
|
|
341
|
-
"header": "linkToPrevious",
|
|
342
|
-
"footer": "linkToPrevious"
|
|
343
|
-
},
|
|
344
|
-
"children": [
|
|
345
|
-
{
|
|
346
|
-
"name": "heading",
|
|
347
|
-
"props": {
|
|
348
|
-
"text": "Getting Started",
|
|
349
|
-
"level": 1
|
|
350
|
-
}
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
"name": "heading",
|
|
354
|
-
"props": {
|
|
355
|
-
"text": "Prerequisites",
|
|
356
|
-
"level": 2
|
|
357
|
-
}
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
"name": "list",
|
|
361
|
-
"props": {
|
|
362
|
-
"format": "bullet",
|
|
363
|
-
"items": [
|
|
364
|
-
"Arcline account with API access enabled (Settings > API Keys > Generate)",
|
|
365
|
-
"Node.js 20+ or Python 3.11+ (official SDKs available for both)",
|
|
366
|
-
"Network access to api.arcline.io on port 443 (TLS 1.3 required)",
|
|
367
|
-
"Familiarity with REST APIs, OAuth 2.0 client credentials flow, and webhook architectures"
|
|
368
|
-
]
|
|
369
|
-
}
|
|
370
|
-
},
|
|
371
|
-
{
|
|
372
|
-
"name": "heading",
|
|
373
|
-
"props": {
|
|
374
|
-
"text": "Architecture Overview",
|
|
375
|
-
"level": 2
|
|
376
|
-
}
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
"name": "paragraph",
|
|
380
|
-
"props": {
|
|
381
|
-
"text": "The Arcline Platform exposes a RESTful API organized around resources. All endpoints accept and return JSON. Authentication uses OAuth 2.0 bearer tokens with configurable scopes. Rate limiting is applied per-token with configurable burst allowances."
|
|
382
|
-
}
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
"name": "image",
|
|
386
|
-
"props": {
|
|
387
|
-
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"400\" viewBox=\"0 0 800 400\"><rect width=\"800\" height=\"400\" fill=\"#FAF7F5\"/><rect x=\"0.5\" y=\"0.5\" width=\"799\" height=\"399\" fill=\"none\" stroke=\"#EFEAE4\"/><defs><marker id=\"tarw\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0,0 L10,5 L0,10 z\" fill=\"#EF4130\"/></marker></defs><rect x=\"30\" y=\"155\" width=\"130\" height=\"100\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\" stroke-width=\"1.5\"/><text x=\"95.0\" y=\"179\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"12.5\" font-weight=\"bold\" fill=\"#282829\">Clients</text><text x=\"95.0\" y=\"197\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9.5\" fill=\"#58595B\">Web · Server · CLI</text><text x=\"95.0\" y=\"212\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9.5\" fill=\"#58595B\">SDKs: Node, Python</text><line x1=\"160\" y1=\"205\" x2=\"203\" y2=\"205\" stroke=\"#EF4130\" stroke-width=\"2\" marker-end=\"url(#tarw)\"/><text x=\"181\" y=\"192\" text-anchor=\"middle\" font-family=\"Consolas, monospace\" font-size=\"8.5\" fill=\"#58595B\">HTTPS</text><rect x=\"205\" y=\"145\" width=\"145\" height=\"120\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\" stroke-width=\"1.5\"/><text x=\"277.5\" y=\"169\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"12.5\" font-weight=\"bold\" fill=\"#282829\">API Gateway</text><text x=\"277.5\" y=\"187\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9.5\" fill=\"#58595B\">TLS 1.3 · rate limiting</text><text x=\"277.5\" y=\"202\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9.5\" fill=\"#58595B\">request validation</text><text x=\"277.5\" y=\"253\" text-anchor=\"middle\" font-family=\"Consolas, monospace\" font-size=\"9\" fill=\"#EF4130\">api.arcline.io/v3</text><rect x=\"400\" y=\"32\" width=\"180\" height=\"72\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\" stroke-width=\"1.5\"/><text x=\"490.0\" y=\"56\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"12.5\" font-weight=\"bold\" fill=\"#282829\">Auth Service</text><text x=\"490.0\" y=\"74\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"9.5\" fill=\"#58595B\">OAuth 2.0 client credentials</text><text x=\"490.0\" y=\"92\" text-anchor=\"middle\" font-family=\"Consolas, monospace\" font-size=\"9\" fill=\"#EF4130\">auth.arcline.io</text><line x1=\"490\" y1=\"104\" x2=\"490\" y2=\"128\" stroke=\"#EF4130\" stroke-width=\"2\" stroke-dasharray=\"4 3\" marker-start=\"url(#tarw)\"/><text x=\"504\" y=\"120\" font-family=\"Calibri, sans-serif\" font-size=\"8.5\" fill=\"#58595B\">token introspection</text><line x1=\"350\" y1=\"205\" x2=\"398\" y2=\"205\" stroke=\"#EF4130\" stroke-width=\"2\" marker-end=\"url(#tarw)\"/><rect x=\"400\" y=\"130\" width=\"180\" height=\"160\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\" stroke-width=\"1.5\" stroke-dasharray=\"5 4\"/><text x=\"490\" y=\"152\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"11\" font-weight=\"bold\" fill=\"#282829\">Microservices</text><rect x=\"415\" y=\"164\" width=\"150\" height=\"30\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"490.0\" y=\"183\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#282829\">Ingest API</text><rect x=\"415\" y=\"202\" width=\"150\" height=\"30\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"490.0\" y=\"221\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#282829\">Query API</text><rect x=\"415\" y=\"240\" width=\"150\" height=\"30\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"490.0\" y=\"259\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#282829\">Admin API</text><line x1=\"580\" y1=\"205\" x2=\"628\" y2=\"205\" stroke=\"#EF4130\" stroke-width=\"2\" marker-end=\"url(#tarw)\"/><rect x=\"630\" y=\"115\" width=\"145\" height=\"190\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\" stroke-width=\"1.5\"/><text x=\"702\" y=\"137\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"11\" font-weight=\"bold\" fill=\"#282829\">Data Layer</text><rect x=\"643\" y=\"152\" width=\"119\" height=\"30\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"702.5\" y=\"171\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#282829\">PostgreSQL</text><rect x=\"643\" y=\"190\" width=\"119\" height=\"30\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"702.5\" y=\"209\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#282829\">S3 storage</text><rect x=\"643\" y=\"228\" width=\"119\" height=\"30\" rx=\"4\" fill=\"#FAF7F5\" stroke=\"#EFEAE4\"/><text x=\"702.5\" y=\"247\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10\" fill=\"#282829\">Redis cache</text><text x=\"702\" y=\"288\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"8.5\" fill=\"#58595B\">encrypted at rest</text><line x1=\"490\" y1=\"290\" x2=\"490\" y2=\"330\" stroke=\"#EF4130\" stroke-width=\"2\" marker-end=\"url(#tarw)\"/><rect x=\"400\" y=\"332\" width=\"180\" height=\"44\" rx=\"8\" fill=\"#FFFFFF\" stroke=\"#58595B\" stroke-width=\"1.5\"/><text x=\"490\" y=\"350\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"10.5\" font-weight=\"bold\" fill=\"#282829\">Webhook Dispatcher</text><text x=\"490\" y=\"366\" text-anchor=\"middle\" font-family=\"Calibri, sans-serif\" font-size=\"8.5\" fill=\"#58595B\">HMAC-SHA256 signed events</text></svg>",
|
|
388
|
-
"width": "100%",
|
|
389
|
-
"caption": "Figure 1: High-level architecture — API gateway, authentication layer, microservices, and data stores"
|
|
390
|
-
}
|
|
391
|
-
},
|
|
392
|
-
{
|
|
393
|
-
"name": "heading",
|
|
394
|
-
"props": {
|
|
395
|
-
"text": "Base URL & Environments",
|
|
396
|
-
"level": 2
|
|
397
|
-
}
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
"name": "table",
|
|
401
|
-
"props": {
|
|
402
|
-
"headerCellDefaults": {
|
|
403
|
-
"font": {
|
|
404
|
-
"bold": true,
|
|
405
|
-
"size": 10
|
|
406
|
-
},
|
|
407
|
-
"padding": {
|
|
408
|
-
"top": 8,
|
|
409
|
-
"right": 10,
|
|
410
|
-
"bottom": 8,
|
|
411
|
-
"left": 10
|
|
412
|
-
}
|
|
413
|
-
},
|
|
414
|
-
"cellDefaults": {
|
|
415
|
-
"padding": {
|
|
416
|
-
"top": 5,
|
|
417
|
-
"right": 10,
|
|
418
|
-
"bottom": 5,
|
|
419
|
-
"left": 10
|
|
420
|
-
},
|
|
421
|
-
"verticalAlignment": "middle",
|
|
422
|
-
"font": {
|
|
423
|
-
"size": 10
|
|
424
|
-
}
|
|
425
|
-
},
|
|
426
|
-
"borderColor": "EFEAE4",
|
|
427
|
-
"borderSize": 1,
|
|
428
|
-
"hideBorders": {
|
|
429
|
-
"insideVertical": true
|
|
430
|
-
},
|
|
431
|
-
"columns": [
|
|
432
|
-
{
|
|
433
|
-
"header": {
|
|
434
|
-
"content": "Environment"
|
|
435
|
-
},
|
|
436
|
-
"cells": [
|
|
437
|
-
{
|
|
438
|
-
"content": "Production"
|
|
439
|
-
},
|
|
440
|
-
{
|
|
441
|
-
"content": "Staging"
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
"content": "Sandbox"
|
|
445
|
-
}
|
|
446
|
-
]
|
|
447
|
-
},
|
|
448
|
-
{
|
|
449
|
-
"header": {
|
|
450
|
-
"content": "Base URL"
|
|
451
|
-
},
|
|
452
|
-
"cells": [
|
|
453
|
-
{
|
|
454
|
-
"content": "https://api.arcline.io/v3",
|
|
455
|
-
"font": {
|
|
456
|
-
"family": "Consolas"
|
|
457
|
-
}
|
|
458
|
-
},
|
|
459
|
-
{
|
|
460
|
-
"content": "https://staging-api.arcline.io/v3",
|
|
461
|
-
"font": {
|
|
462
|
-
"family": "Consolas"
|
|
463
|
-
}
|
|
464
|
-
},
|
|
465
|
-
{
|
|
466
|
-
"content": "https://sandbox-api.arcline.io/v3",
|
|
467
|
-
"font": {
|
|
468
|
-
"family": "Consolas"
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
]
|
|
472
|
-
},
|
|
473
|
-
{
|
|
474
|
-
"header": {
|
|
475
|
-
"content": "Data"
|
|
476
|
-
},
|
|
477
|
-
"cells": [
|
|
478
|
-
{
|
|
479
|
-
"content": "Live production data"
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
"content": "Mirror of prod (24h delay)"
|
|
483
|
-
},
|
|
484
|
-
{
|
|
485
|
-
"content": "Synthetic test data"
|
|
486
|
-
}
|
|
487
|
-
]
|
|
488
|
-
},
|
|
489
|
-
{
|
|
490
|
-
"header": {
|
|
491
|
-
"content": "Rate Limit"
|
|
492
|
-
},
|
|
493
|
-
"cells": [
|
|
494
|
-
{
|
|
495
|
-
"content": "Per plan"
|
|
496
|
-
},
|
|
497
|
-
{
|
|
498
|
-
"content": "50% of plan"
|
|
499
|
-
},
|
|
500
|
-
{
|
|
501
|
-
"content": "Unlimited"
|
|
502
|
-
}
|
|
503
|
-
]
|
|
504
|
-
}
|
|
505
|
-
]
|
|
506
|
-
}
|
|
507
|
-
},
|
|
508
|
-
{
|
|
509
|
-
"name": "heading",
|
|
510
|
-
"props": {
|
|
511
|
-
"text": "Quick Start",
|
|
512
|
-
"level": 2
|
|
513
|
-
}
|
|
514
|
-
},
|
|
515
|
-
{
|
|
516
|
-
"name": "paragraph",
|
|
517
|
-
"props": {
|
|
518
|
-
"text": "Install the SDK, configure your credentials, and make your first API call:",
|
|
519
|
-
"font": {
|
|
520
|
-
"bold": true
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
},
|
|
524
|
-
{
|
|
525
|
-
"name": "paragraph",
|
|
526
|
-
"props": {
|
|
527
|
-
"text": "npm install @arcline/sdk",
|
|
528
|
-
"font": {
|
|
529
|
-
"family": "Consolas",
|
|
530
|
-
"size": 10
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
},
|
|
534
|
-
{
|
|
535
|
-
"name": "paragraph",
|
|
536
|
-
"props": {
|
|
537
|
-
"text": "import { ArclineClient } from '@arcline/sdk';\n\nconst client = new ArclineClient({\n clientId: process.env.ARCLINE_CLIENT_ID,\n clientSecret: process.env.ARCLINE_CLIENT_SECRET,\n});\n\nconst users = await client.users.list({ limit: 10 });\nconsole.log(users.data);",
|
|
538
|
-
"font": {
|
|
539
|
-
"family": "Consolas",
|
|
540
|
-
"size": 10
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
]
|
|
545
|
-
},
|
|
546
|
-
{
|
|
547
|
-
"name": "section",
|
|
548
|
-
"props": {
|
|
549
|
-
"meta": {
|
|
550
|
-
"title": "Authentication"
|
|
551
|
-
},
|
|
552
|
-
"pageBreak": true,
|
|
553
|
-
"header": "linkToPrevious",
|
|
554
|
-
"footer": "linkToPrevious"
|
|
555
|
-
},
|
|
556
|
-
"children": [
|
|
557
|
-
{
|
|
558
|
-
"name": "heading",
|
|
559
|
-
"props": {
|
|
560
|
-
"text": "Authentication",
|
|
561
|
-
"level": 1
|
|
562
|
-
}
|
|
563
|
-
},
|
|
564
|
-
{
|
|
565
|
-
"name": "paragraph",
|
|
566
|
-
"props": {
|
|
567
|
-
"text": "All API requests require a valid bearer token. Tokens are obtained via the OAuth 2.0 client credentials flow and expire after 3600 seconds (1 hour). The SDK handles token refresh automatically."
|
|
568
|
-
}
|
|
569
|
-
},
|
|
570
|
-
{
|
|
571
|
-
"name": "heading",
|
|
572
|
-
"props": {
|
|
573
|
-
"text": "Token Exchange",
|
|
574
|
-
"level": 2
|
|
575
|
-
}
|
|
576
|
-
},
|
|
577
|
-
{
|
|
578
|
-
"name": "paragraph",
|
|
579
|
-
"props": {
|
|
580
|
-
"text": "Request:",
|
|
581
|
-
"font": {
|
|
582
|
-
"bold": true
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
},
|
|
586
|
-
{
|
|
587
|
-
"name": "paragraph",
|
|
588
|
-
"props": {
|
|
589
|
-
"text": "POST https://auth.arcline.io/oauth/token\nContent-Type: application/x-www-form-urlencoded\n\ngrant_type=client_credentials\n&client_id=YOUR_CLIENT_ID\n&client_secret=YOUR_CLIENT_SECRET\n&scope=read:data write:data",
|
|
590
|
-
"font": {
|
|
591
|
-
"family": "Consolas",
|
|
592
|
-
"size": 10
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
},
|
|
596
|
-
{
|
|
597
|
-
"name": "paragraph",
|
|
598
|
-
"props": {
|
|
599
|
-
"text": "Response:",
|
|
600
|
-
"font": {
|
|
601
|
-
"bold": true
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
},
|
|
605
|
-
{
|
|
606
|
-
"name": "paragraph",
|
|
607
|
-
"props": {
|
|
608
|
-
"text": "{\n \"access_token\": \"eyJhbGciOiJSUzI1NiIs...\",\n \"token_type\": \"Bearer\",\n \"expires_in\": 3600,\n \"scope\": \"read:data write:data\"\n}",
|
|
609
|
-
"font": {
|
|
610
|
-
"family": "Consolas",
|
|
611
|
-
"size": 10
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
},
|
|
615
|
-
{
|
|
616
|
-
"name": "paragraph",
|
|
617
|
-
"props": {
|
|
618
|
-
"text": "Include the token in subsequent requests via the Authorization header:",
|
|
619
|
-
"font": {
|
|
620
|
-
"bold": true
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
},
|
|
624
|
-
{
|
|
625
|
-
"name": "paragraph",
|
|
626
|
-
"props": {
|
|
627
|
-
"text": "Authorization: Bearer eyJhbGciOiJSUzI1NiIs...",
|
|
628
|
-
"font": {
|
|
629
|
-
"family": "Consolas",
|
|
630
|
-
"size": 10
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
},
|
|
634
|
-
{
|
|
635
|
-
"name": "heading",
|
|
636
|
-
"props": {
|
|
637
|
-
"text": "Available Scopes",
|
|
638
|
-
"level": 2
|
|
639
|
-
}
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
"name": "table",
|
|
643
|
-
"props": {
|
|
644
|
-
"headerCellDefaults": {
|
|
645
|
-
"font": {
|
|
646
|
-
"bold": true,
|
|
647
|
-
"size": 10
|
|
648
|
-
},
|
|
649
|
-
"padding": {
|
|
650
|
-
"top": 8,
|
|
651
|
-
"right": 10,
|
|
652
|
-
"bottom": 8,
|
|
653
|
-
"left": 10
|
|
654
|
-
}
|
|
655
|
-
},
|
|
656
|
-
"cellDefaults": {
|
|
657
|
-
"padding": {
|
|
658
|
-
"top": 5,
|
|
659
|
-
"right": 10,
|
|
660
|
-
"bottom": 5,
|
|
661
|
-
"left": 10
|
|
662
|
-
},
|
|
663
|
-
"verticalAlignment": "middle",
|
|
664
|
-
"font": {
|
|
665
|
-
"size": 10
|
|
666
|
-
}
|
|
667
|
-
},
|
|
668
|
-
"borderColor": "EFEAE4",
|
|
669
|
-
"borderSize": 1,
|
|
670
|
-
"hideBorders": {
|
|
671
|
-
"insideVertical": true
|
|
672
|
-
},
|
|
673
|
-
"columns": [
|
|
674
|
-
{
|
|
675
|
-
"header": {
|
|
676
|
-
"content": "Scope"
|
|
677
|
-
},
|
|
678
|
-
"cells": [
|
|
679
|
-
{
|
|
680
|
-
"content": "read:data"
|
|
681
|
-
},
|
|
682
|
-
{
|
|
683
|
-
"content": "write:data"
|
|
684
|
-
},
|
|
685
|
-
{
|
|
686
|
-
"content": "read:analytics"
|
|
687
|
-
},
|
|
688
|
-
{
|
|
689
|
-
"content": "admin:users"
|
|
690
|
-
},
|
|
691
|
-
{
|
|
692
|
-
"content": "admin:config"
|
|
693
|
-
},
|
|
694
|
-
{
|
|
695
|
-
"content": "webhooks:manage"
|
|
696
|
-
}
|
|
697
|
-
]
|
|
698
|
-
},
|
|
699
|
-
{
|
|
700
|
-
"header": {
|
|
701
|
-
"content": "Access Level"
|
|
702
|
-
},
|
|
703
|
-
"cells": [
|
|
704
|
-
{
|
|
705
|
-
"content": "Read-only"
|
|
706
|
-
},
|
|
707
|
-
{
|
|
708
|
-
"content": "Read/Write"
|
|
709
|
-
},
|
|
710
|
-
{
|
|
711
|
-
"content": "Analytics queries"
|
|
712
|
-
},
|
|
713
|
-
{
|
|
714
|
-
"content": "User management"
|
|
715
|
-
},
|
|
716
|
-
{
|
|
717
|
-
"content": "Configuration"
|
|
718
|
-
},
|
|
719
|
-
{
|
|
720
|
-
"content": "Webhook CRUD"
|
|
721
|
-
}
|
|
722
|
-
]
|
|
723
|
-
},
|
|
724
|
-
{
|
|
725
|
-
"header": {
|
|
726
|
-
"content": "Use Case"
|
|
727
|
-
},
|
|
728
|
-
"cells": [
|
|
729
|
-
{
|
|
730
|
-
"content": "Dashboards, reporting, data sync"
|
|
731
|
-
},
|
|
732
|
-
{
|
|
733
|
-
"content": "Data ingestion, imports, updates"
|
|
734
|
-
},
|
|
735
|
-
{
|
|
736
|
-
"content": "Custom reports, BI integration"
|
|
737
|
-
},
|
|
738
|
-
{
|
|
739
|
-
"content": "Provisioning, SSO/SCIM, RBAC"
|
|
740
|
-
},
|
|
741
|
-
{
|
|
742
|
-
"content": "Settings, feature flags, themes"
|
|
743
|
-
},
|
|
744
|
-
{
|
|
745
|
-
"content": "Event subscriptions, delivery mgmt"
|
|
746
|
-
}
|
|
747
|
-
]
|
|
748
|
-
},
|
|
749
|
-
{
|
|
750
|
-
"header": {
|
|
751
|
-
"content": "Min Plan"
|
|
752
|
-
},
|
|
753
|
-
"cells": [
|
|
754
|
-
{
|
|
755
|
-
"content": "Free"
|
|
756
|
-
},
|
|
757
|
-
{
|
|
758
|
-
"content": "Pro"
|
|
759
|
-
},
|
|
760
|
-
{
|
|
761
|
-
"content": "Pro"
|
|
762
|
-
},
|
|
763
|
-
{
|
|
764
|
-
"content": "Enterprise"
|
|
765
|
-
},
|
|
766
|
-
{
|
|
767
|
-
"content": "Enterprise"
|
|
768
|
-
},
|
|
769
|
-
{
|
|
770
|
-
"content": "Pro"
|
|
771
|
-
}
|
|
772
|
-
]
|
|
773
|
-
}
|
|
774
|
-
]
|
|
775
|
-
}
|
|
776
|
-
},
|
|
777
|
-
{
|
|
778
|
-
"name": "heading",
|
|
779
|
-
"props": {
|
|
780
|
-
"text": "Token Security Best Practices",
|
|
781
|
-
"level": 2
|
|
782
|
-
}
|
|
783
|
-
},
|
|
784
|
-
{
|
|
785
|
-
"name": "list",
|
|
786
|
-
"props": {
|
|
787
|
-
"format": "bullet",
|
|
788
|
-
"items": [
|
|
789
|
-
"Never embed client secrets in client-side code or version control",
|
|
790
|
-
"Use environment variables or a secrets manager (AWS Secrets Manager, HashiCorp Vault)",
|
|
791
|
-
"Rotate client secrets every 90 days — the API supports two active secrets for zero-downtime rotation",
|
|
792
|
-
"Request only the scopes your integration needs (principle of least privilege)",
|
|
793
|
-
"Monitor the /oauth/audit endpoint for unauthorized token requests"
|
|
794
|
-
]
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
]
|
|
798
|
-
},
|
|
799
|
-
{
|
|
800
|
-
"name": "section",
|
|
801
|
-
"props": {
|
|
802
|
-
"meta": {
|
|
803
|
-
"title": "API Reference"
|
|
804
|
-
},
|
|
805
|
-
"pageBreak": true,
|
|
806
|
-
"header": "linkToPrevious",
|
|
807
|
-
"footer": "linkToPrevious"
|
|
808
|
-
},
|
|
809
|
-
"children": [
|
|
810
|
-
{
|
|
811
|
-
"name": "heading",
|
|
812
|
-
"props": {
|
|
813
|
-
"text": "API Reference",
|
|
814
|
-
"level": 1
|
|
815
|
-
}
|
|
816
|
-
},
|
|
817
|
-
{
|
|
818
|
-
"name": "heading",
|
|
819
|
-
"props": {
|
|
820
|
-
"text": "Resource Endpoints",
|
|
821
|
-
"level": 2
|
|
822
|
-
}
|
|
823
|
-
},
|
|
824
|
-
{
|
|
825
|
-
"name": "columns",
|
|
826
|
-
"props": {
|
|
827
|
-
"columns": 2,
|
|
828
|
-
"gap": 0.5
|
|
829
|
-
},
|
|
830
|
-
"children": [
|
|
831
|
-
{
|
|
832
|
-
"name": "list",
|
|
833
|
-
"props": {
|
|
834
|
-
"format": "bullet",
|
|
835
|
-
"items": [
|
|
836
|
-
"/users — User management and profiles",
|
|
837
|
-
"/teams — Team operations and membership",
|
|
838
|
-
"/projects — Project CRUD and permissions",
|
|
839
|
-
"/pipelines — Data pipeline orchestration",
|
|
840
|
-
"/webhooks — Event subscriptions"
|
|
841
|
-
]
|
|
842
|
-
}
|
|
843
|
-
},
|
|
844
|
-
{
|
|
845
|
-
"name": "list",
|
|
846
|
-
"props": {
|
|
847
|
-
"format": "bullet",
|
|
848
|
-
"items": [
|
|
849
|
-
"/events — Activity log and audit trail",
|
|
850
|
-
"/files — File storage and versioning",
|
|
851
|
-
"/search — Full-text search across resources",
|
|
852
|
-
"/analytics — Usage metrics and custom queries",
|
|
853
|
-
"/exports — Scheduled data exports"
|
|
854
|
-
]
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
]
|
|
858
|
-
},
|
|
859
|
-
{
|
|
860
|
-
"name": "heading",
|
|
861
|
-
"props": {
|
|
862
|
-
"text": "Common Operations",
|
|
863
|
-
"level": 2
|
|
864
|
-
}
|
|
865
|
-
},
|
|
866
|
-
{
|
|
867
|
-
"name": "table",
|
|
868
|
-
"props": {
|
|
869
|
-
"headerCellDefaults": {
|
|
870
|
-
"font": {
|
|
871
|
-
"bold": true,
|
|
872
|
-
"size": 10
|
|
873
|
-
},
|
|
874
|
-
"padding": {
|
|
875
|
-
"top": 8,
|
|
876
|
-
"right": 10,
|
|
877
|
-
"bottom": 8,
|
|
878
|
-
"left": 10
|
|
879
|
-
}
|
|
880
|
-
},
|
|
881
|
-
"cellDefaults": {
|
|
882
|
-
"padding": {
|
|
883
|
-
"top": 5,
|
|
884
|
-
"right": 10,
|
|
885
|
-
"bottom": 5,
|
|
886
|
-
"left": 10
|
|
887
|
-
},
|
|
888
|
-
"verticalAlignment": "middle",
|
|
889
|
-
"font": {
|
|
890
|
-
"size": 10
|
|
891
|
-
}
|
|
892
|
-
},
|
|
893
|
-
"borderColor": "EFEAE4",
|
|
894
|
-
"borderSize": 1,
|
|
895
|
-
"hideBorders": {
|
|
896
|
-
"insideVertical": true
|
|
897
|
-
},
|
|
898
|
-
"columns": [
|
|
899
|
-
{
|
|
900
|
-
"header": {
|
|
901
|
-
"content": "Operation"
|
|
902
|
-
},
|
|
903
|
-
"cells": [
|
|
904
|
-
{
|
|
905
|
-
"content": "List resources"
|
|
906
|
-
},
|
|
907
|
-
{
|
|
908
|
-
"content": "Get single resource"
|
|
909
|
-
},
|
|
910
|
-
{
|
|
911
|
-
"content": "Create resource"
|
|
912
|
-
},
|
|
913
|
-
{
|
|
914
|
-
"content": "Update resource"
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
"content": "Delete resource"
|
|
918
|
-
},
|
|
919
|
-
{
|
|
920
|
-
"content": "Batch operations"
|
|
921
|
-
}
|
|
922
|
-
]
|
|
923
|
-
},
|
|
924
|
-
{
|
|
925
|
-
"header": {
|
|
926
|
-
"content": "Method"
|
|
927
|
-
},
|
|
928
|
-
"cells": [
|
|
929
|
-
{
|
|
930
|
-
"content": "GET",
|
|
931
|
-
"font": {
|
|
932
|
-
"family": "Consolas"
|
|
933
|
-
}
|
|
934
|
-
},
|
|
935
|
-
{
|
|
936
|
-
"content": "GET",
|
|
937
|
-
"font": {
|
|
938
|
-
"family": "Consolas"
|
|
939
|
-
}
|
|
940
|
-
},
|
|
941
|
-
{
|
|
942
|
-
"content": "POST",
|
|
943
|
-
"font": {
|
|
944
|
-
"family": "Consolas"
|
|
945
|
-
}
|
|
946
|
-
},
|
|
947
|
-
{
|
|
948
|
-
"content": "PATCH",
|
|
949
|
-
"font": {
|
|
950
|
-
"family": "Consolas"
|
|
951
|
-
}
|
|
952
|
-
},
|
|
953
|
-
{
|
|
954
|
-
"content": "DELETE",
|
|
955
|
-
"font": {
|
|
956
|
-
"family": "Consolas"
|
|
957
|
-
}
|
|
958
|
-
},
|
|
959
|
-
{
|
|
960
|
-
"content": "POST",
|
|
961
|
-
"font": {
|
|
962
|
-
"family": "Consolas"
|
|
963
|
-
}
|
|
964
|
-
}
|
|
965
|
-
]
|
|
966
|
-
},
|
|
967
|
-
{
|
|
968
|
-
"header": {
|
|
969
|
-
"content": "Path"
|
|
970
|
-
},
|
|
971
|
-
"cells": [
|
|
972
|
-
{
|
|
973
|
-
"content": "/{resource}",
|
|
974
|
-
"font": {
|
|
975
|
-
"family": "Consolas"
|
|
976
|
-
}
|
|
977
|
-
},
|
|
978
|
-
{
|
|
979
|
-
"content": "/{resource}/{id}",
|
|
980
|
-
"font": {
|
|
981
|
-
"family": "Consolas"
|
|
982
|
-
}
|
|
983
|
-
},
|
|
984
|
-
{
|
|
985
|
-
"content": "/{resource}",
|
|
986
|
-
"font": {
|
|
987
|
-
"family": "Consolas"
|
|
988
|
-
}
|
|
989
|
-
},
|
|
990
|
-
{
|
|
991
|
-
"content": "/{resource}/{id}",
|
|
992
|
-
"font": {
|
|
993
|
-
"family": "Consolas"
|
|
994
|
-
}
|
|
995
|
-
},
|
|
996
|
-
{
|
|
997
|
-
"content": "/{resource}/{id}",
|
|
998
|
-
"font": {
|
|
999
|
-
"family": "Consolas"
|
|
1000
|
-
}
|
|
1001
|
-
},
|
|
1002
|
-
{
|
|
1003
|
-
"content": "/{resource}/batch",
|
|
1004
|
-
"font": {
|
|
1005
|
-
"family": "Consolas"
|
|
1006
|
-
}
|
|
1007
|
-
}
|
|
1008
|
-
]
|
|
1009
|
-
},
|
|
1010
|
-
{
|
|
1011
|
-
"header": {
|
|
1012
|
-
"content": "Notes"
|
|
1013
|
-
},
|
|
1014
|
-
"cells": [
|
|
1015
|
-
{
|
|
1016
|
-
"content": "Supports ?limit, ?offset, ?sort, ?filter"
|
|
1017
|
-
},
|
|
1018
|
-
{
|
|
1019
|
-
"content": "Returns 404 if not found"
|
|
1020
|
-
},
|
|
1021
|
-
{
|
|
1022
|
-
"content": "Returns 201 with Location header"
|
|
1023
|
-
},
|
|
1024
|
-
{
|
|
1025
|
-
"content": "Partial updates (merge semantics)"
|
|
1026
|
-
},
|
|
1027
|
-
{
|
|
1028
|
-
"content": "Returns 204 No Content"
|
|
1029
|
-
},
|
|
1030
|
-
{
|
|
1031
|
-
"content": "Up to 100 operations per request"
|
|
1032
|
-
}
|
|
1033
|
-
]
|
|
1034
|
-
}
|
|
1035
|
-
]
|
|
1036
|
-
}
|
|
1037
|
-
},
|
|
1038
|
-
{
|
|
1039
|
-
"name": "heading",
|
|
1040
|
-
"props": {
|
|
1041
|
-
"text": "Pagination",
|
|
1042
|
-
"level": 2
|
|
1043
|
-
}
|
|
1044
|
-
},
|
|
1045
|
-
{
|
|
1046
|
-
"name": "paragraph",
|
|
1047
|
-
"props": {
|
|
1048
|
-
"text": "All list endpoints support cursor-based pagination. The response includes a meta object with pagination details:",
|
|
1049
|
-
"font": {
|
|
1050
|
-
"bold": true
|
|
1051
|
-
}
|
|
1052
|
-
}
|
|
1053
|
-
},
|
|
1054
|
-
{
|
|
1055
|
-
"name": "paragraph",
|
|
1056
|
-
"props": {
|
|
1057
|
-
"text": "{\n \"data\": [...],\n \"meta\": {\n \"total\": 1247,\n \"limit\": 25,\n \"has_more\": true,\n \"next_cursor\": \"eyJpZCI6MTI0N30=\"\n }\n}",
|
|
1058
|
-
"font": {
|
|
1059
|
-
"family": "Consolas",
|
|
1060
|
-
"size": 10
|
|
1061
|
-
}
|
|
1062
|
-
}
|
|
1063
|
-
},
|
|
1064
|
-
{
|
|
1065
|
-
"name": "paragraph",
|
|
1066
|
-
"props": {
|
|
1067
|
-
"text": "Pass the next_cursor value as the ?cursor query parameter to fetch the next page. Maximum limit is 100 items per request.",
|
|
1068
|
-
"font": {
|
|
1069
|
-
"color": "textSecondary"
|
|
1070
|
-
}
|
|
1071
|
-
}
|
|
1072
|
-
},
|
|
1073
|
-
{
|
|
1074
|
-
"name": "heading",
|
|
1075
|
-
"props": {
|
|
1076
|
-
"text": "Rate Limits",
|
|
1077
|
-
"level": 2
|
|
1078
|
-
}
|
|
1079
|
-
},
|
|
1080
|
-
{
|
|
1081
|
-
"name": "paragraph",
|
|
1082
|
-
"props": {
|
|
1083
|
-
"text": "API requests are rate-limited per token. Exceeding the limit returns HTTP 429 Too Many Requests. Use the Retry-After header (in seconds) to determine when to retry. The SDK handles retries with exponential backoff automatically."
|
|
1084
|
-
}
|
|
1085
|
-
},
|
|
1086
|
-
{
|
|
1087
|
-
"name": "table",
|
|
1088
|
-
"props": {
|
|
1089
|
-
"headerCellDefaults": {
|
|
1090
|
-
"font": {
|
|
1091
|
-
"bold": true,
|
|
1092
|
-
"size": 10
|
|
1093
|
-
},
|
|
1094
|
-
"padding": {
|
|
1095
|
-
"top": 8,
|
|
1096
|
-
"right": 10,
|
|
1097
|
-
"bottom": 8,
|
|
1098
|
-
"left": 10
|
|
1099
|
-
}
|
|
1100
|
-
},
|
|
1101
|
-
"cellDefaults": {
|
|
1102
|
-
"padding": {
|
|
1103
|
-
"top": 5,
|
|
1104
|
-
"right": 10,
|
|
1105
|
-
"bottom": 5,
|
|
1106
|
-
"left": 10
|
|
1107
|
-
},
|
|
1108
|
-
"verticalAlignment": "middle",
|
|
1109
|
-
"font": {
|
|
1110
|
-
"size": 10
|
|
1111
|
-
}
|
|
1112
|
-
},
|
|
1113
|
-
"borderColor": "EFEAE4",
|
|
1114
|
-
"borderSize": 1,
|
|
1115
|
-
"hideBorders": {
|
|
1116
|
-
"insideVertical": true
|
|
1117
|
-
},
|
|
1118
|
-
"columns": [
|
|
1119
|
-
{
|
|
1120
|
-
"header": {
|
|
1121
|
-
"content": "Plan"
|
|
1122
|
-
},
|
|
1123
|
-
"cells": [
|
|
1124
|
-
{
|
|
1125
|
-
"content": "Free"
|
|
1126
|
-
},
|
|
1127
|
-
{
|
|
1128
|
-
"content": "Pro"
|
|
1129
|
-
},
|
|
1130
|
-
{
|
|
1131
|
-
"content": "Enterprise"
|
|
1132
|
-
}
|
|
1133
|
-
]
|
|
1134
|
-
},
|
|
1135
|
-
{
|
|
1136
|
-
"header": {
|
|
1137
|
-
"content": "Requests/min"
|
|
1138
|
-
},
|
|
1139
|
-
"cells": [
|
|
1140
|
-
{
|
|
1141
|
-
"content": "60"
|
|
1142
|
-
},
|
|
1143
|
-
{
|
|
1144
|
-
"content": "600"
|
|
1145
|
-
},
|
|
1146
|
-
{
|
|
1147
|
-
"content": "6,000"
|
|
1148
|
-
}
|
|
1149
|
-
]
|
|
1150
|
-
},
|
|
1151
|
-
{
|
|
1152
|
-
"header": {
|
|
1153
|
-
"content": "Burst"
|
|
1154
|
-
},
|
|
1155
|
-
"cells": [
|
|
1156
|
-
{
|
|
1157
|
-
"content": "10"
|
|
1158
|
-
},
|
|
1159
|
-
{
|
|
1160
|
-
"content": "100"
|
|
1161
|
-
},
|
|
1162
|
-
{
|
|
1163
|
-
"content": "1,000"
|
|
1164
|
-
}
|
|
1165
|
-
]
|
|
1166
|
-
},
|
|
1167
|
-
{
|
|
1168
|
-
"header": {
|
|
1169
|
-
"content": "Concurrent"
|
|
1170
|
-
},
|
|
1171
|
-
"cells": [
|
|
1172
|
-
{
|
|
1173
|
-
"content": "5"
|
|
1174
|
-
},
|
|
1175
|
-
{
|
|
1176
|
-
"content": "25"
|
|
1177
|
-
},
|
|
1178
|
-
{
|
|
1179
|
-
"content": "100"
|
|
1180
|
-
}
|
|
1181
|
-
]
|
|
1182
|
-
},
|
|
1183
|
-
{
|
|
1184
|
-
"header": {
|
|
1185
|
-
"content": "Daily Quota"
|
|
1186
|
-
},
|
|
1187
|
-
"cells": [
|
|
1188
|
-
{
|
|
1189
|
-
"content": "10,000"
|
|
1190
|
-
},
|
|
1191
|
-
{
|
|
1192
|
-
"content": "500,000"
|
|
1193
|
-
},
|
|
1194
|
-
{
|
|
1195
|
-
"content": "Unlimited"
|
|
1196
|
-
}
|
|
1197
|
-
]
|
|
1198
|
-
}
|
|
1199
|
-
]
|
|
1200
|
-
}
|
|
1201
|
-
}
|
|
1202
|
-
]
|
|
1203
|
-
},
|
|
1204
|
-
{
|
|
1205
|
-
"name": "section",
|
|
1206
|
-
"props": {
|
|
1207
|
-
"meta": {
|
|
1208
|
-
"title": "Webhooks"
|
|
1209
|
-
},
|
|
1210
|
-
"pageBreak": true,
|
|
1211
|
-
"header": "linkToPrevious",
|
|
1212
|
-
"footer": "linkToPrevious"
|
|
1213
|
-
},
|
|
1214
|
-
"children": [
|
|
1215
|
-
{
|
|
1216
|
-
"name": "heading",
|
|
1217
|
-
"props": {
|
|
1218
|
-
"text": "Webhooks",
|
|
1219
|
-
"level": 1
|
|
1220
|
-
}
|
|
1221
|
-
},
|
|
1222
|
-
{
|
|
1223
|
-
"name": "paragraph",
|
|
1224
|
-
"props": {
|
|
1225
|
-
"text": "Webhooks deliver real-time event notifications to your endpoint via HTTP POST. Configure webhooks in the dashboard (Settings > Webhooks) or via the /webhooks API. All payloads are signed with HMAC-SHA256 using your webhook secret for verification."
|
|
1226
|
-
}
|
|
1227
|
-
},
|
|
1228
|
-
{
|
|
1229
|
-
"name": "heading",
|
|
1230
|
-
"props": {
|
|
1231
|
-
"text": "Supported Events",
|
|
1232
|
-
"level": 2
|
|
1233
|
-
}
|
|
1234
|
-
},
|
|
1235
|
-
{
|
|
1236
|
-
"name": "columns",
|
|
1237
|
-
"props": {
|
|
1238
|
-
"columns": 2
|
|
1239
|
-
},
|
|
1240
|
-
"children": [
|
|
1241
|
-
{
|
|
1242
|
-
"name": "table",
|
|
1243
|
-
"props": {
|
|
1244
|
-
"headerCellDefaults": {
|
|
1245
|
-
"font": {
|
|
1246
|
-
"bold": true,
|
|
1247
|
-
"size": 9
|
|
1248
|
-
},
|
|
1249
|
-
"padding": {
|
|
1250
|
-
"top": 6,
|
|
1251
|
-
"right": 8,
|
|
1252
|
-
"bottom": 6,
|
|
1253
|
-
"left": 8
|
|
1254
|
-
}
|
|
1255
|
-
},
|
|
1256
|
-
"cellDefaults": {
|
|
1257
|
-
"padding": {
|
|
1258
|
-
"top": 4,
|
|
1259
|
-
"right": 8,
|
|
1260
|
-
"bottom": 4,
|
|
1261
|
-
"left": 8
|
|
1262
|
-
},
|
|
1263
|
-
"verticalAlignment": "middle",
|
|
1264
|
-
"font": {
|
|
1265
|
-
"size": 9
|
|
1266
|
-
}
|
|
1267
|
-
},
|
|
1268
|
-
"borderColor": "EFEAE4",
|
|
1269
|
-
"borderSize": 1,
|
|
1270
|
-
"hideBorders": {
|
|
1271
|
-
"insideVertical": true
|
|
1272
|
-
},
|
|
1273
|
-
"columns": [
|
|
1274
|
-
{
|
|
1275
|
-
"header": {
|
|
1276
|
-
"content": "Event"
|
|
1277
|
-
},
|
|
1278
|
-
"cells": [
|
|
1279
|
-
{
|
|
1280
|
-
"content": "user.created"
|
|
1281
|
-
},
|
|
1282
|
-
{
|
|
1283
|
-
"content": "user.updated"
|
|
1284
|
-
},
|
|
1285
|
-
{
|
|
1286
|
-
"content": "user.deleted"
|
|
1287
|
-
},
|
|
1288
|
-
{
|
|
1289
|
-
"content": "project.created"
|
|
1290
|
-
},
|
|
1291
|
-
{
|
|
1292
|
-
"content": "project.archived"
|
|
1293
|
-
},
|
|
1294
|
-
{
|
|
1295
|
-
"content": "pipeline.completed"
|
|
1296
|
-
}
|
|
1297
|
-
]
|
|
1298
|
-
},
|
|
1299
|
-
{
|
|
1300
|
-
"header": {
|
|
1301
|
-
"content": "Trigger"
|
|
1302
|
-
},
|
|
1303
|
-
"cells": [
|
|
1304
|
-
{
|
|
1305
|
-
"content": "New user signup or SSO provision"
|
|
1306
|
-
},
|
|
1307
|
-
{
|
|
1308
|
-
"content": "Profile or permission change"
|
|
1309
|
-
},
|
|
1310
|
-
{
|
|
1311
|
-
"content": "Account deactivation"
|
|
1312
|
-
},
|
|
1313
|
-
{
|
|
1314
|
-
"content": "New project created"
|
|
1315
|
-
},
|
|
1316
|
-
{
|
|
1317
|
-
"content": "Project archived by owner"
|
|
1318
|
-
},
|
|
1319
|
-
{
|
|
1320
|
-
"content": "Pipeline run finished"
|
|
1321
|
-
}
|
|
1322
|
-
]
|
|
1323
|
-
}
|
|
1324
|
-
]
|
|
1325
|
-
}
|
|
1326
|
-
},
|
|
1327
|
-
{
|
|
1328
|
-
"name": "table",
|
|
1329
|
-
"props": {
|
|
1330
|
-
"headerCellDefaults": {
|
|
1331
|
-
"font": {
|
|
1332
|
-
"bold": true,
|
|
1333
|
-
"size": 9
|
|
1334
|
-
},
|
|
1335
|
-
"padding": {
|
|
1336
|
-
"top": 6,
|
|
1337
|
-
"right": 8,
|
|
1338
|
-
"bottom": 6,
|
|
1339
|
-
"left": 8
|
|
1340
|
-
}
|
|
1341
|
-
},
|
|
1342
|
-
"cellDefaults": {
|
|
1343
|
-
"padding": {
|
|
1344
|
-
"top": 4,
|
|
1345
|
-
"right": 8,
|
|
1346
|
-
"bottom": 4,
|
|
1347
|
-
"left": 8
|
|
1348
|
-
},
|
|
1349
|
-
"verticalAlignment": "middle",
|
|
1350
|
-
"font": {
|
|
1351
|
-
"size": 9
|
|
1352
|
-
}
|
|
1353
|
-
},
|
|
1354
|
-
"borderColor": "EFEAE4",
|
|
1355
|
-
"borderSize": 1,
|
|
1356
|
-
"hideBorders": {
|
|
1357
|
-
"insideVertical": true
|
|
1358
|
-
},
|
|
1359
|
-
"columns": [
|
|
1360
|
-
{
|
|
1361
|
-
"header": {
|
|
1362
|
-
"content": "Event"
|
|
1363
|
-
},
|
|
1364
|
-
"cells": [
|
|
1365
|
-
{
|
|
1366
|
-
"content": "pipeline.failed"
|
|
1367
|
-
},
|
|
1368
|
-
{
|
|
1369
|
-
"content": "file.uploaded"
|
|
1370
|
-
},
|
|
1371
|
-
{
|
|
1372
|
-
"content": "file.deleted"
|
|
1373
|
-
},
|
|
1374
|
-
{
|
|
1375
|
-
"content": "team.member_added"
|
|
1376
|
-
},
|
|
1377
|
-
{
|
|
1378
|
-
"content": "billing.invoice"
|
|
1379
|
-
},
|
|
1380
|
-
{
|
|
1381
|
-
"content": "export.ready"
|
|
1382
|
-
}
|
|
1383
|
-
]
|
|
1384
|
-
},
|
|
1385
|
-
{
|
|
1386
|
-
"header": {
|
|
1387
|
-
"content": "Trigger"
|
|
1388
|
-
},
|
|
1389
|
-
"cells": [
|
|
1390
|
-
{
|
|
1391
|
-
"content": "Pipeline run errored"
|
|
1392
|
-
},
|
|
1393
|
-
{
|
|
1394
|
-
"content": "New file uploaded"
|
|
1395
|
-
},
|
|
1396
|
-
{
|
|
1397
|
-
"content": "File permanently removed"
|
|
1398
|
-
},
|
|
1399
|
-
{
|
|
1400
|
-
"content": "User added to team"
|
|
1401
|
-
},
|
|
1402
|
-
{
|
|
1403
|
-
"content": "Monthly invoice generated"
|
|
1404
|
-
},
|
|
1405
|
-
{
|
|
1406
|
-
"content": "Scheduled export completed"
|
|
1407
|
-
}
|
|
1408
|
-
]
|
|
1409
|
-
}
|
|
1410
|
-
]
|
|
1411
|
-
}
|
|
1412
|
-
}
|
|
1413
|
-
]
|
|
1414
|
-
},
|
|
1415
|
-
{
|
|
1416
|
-
"name": "heading",
|
|
1417
|
-
"props": {
|
|
1418
|
-
"text": "Payload Structure",
|
|
1419
|
-
"level": 2
|
|
1420
|
-
}
|
|
1421
|
-
},
|
|
1422
|
-
{
|
|
1423
|
-
"name": "paragraph",
|
|
1424
|
-
"props": {
|
|
1425
|
-
"text": "Every webhook delivery includes the following envelope:",
|
|
1426
|
-
"font": {
|
|
1427
|
-
"bold": true
|
|
1428
|
-
}
|
|
1429
|
-
}
|
|
1430
|
-
},
|
|
1431
|
-
{
|
|
1432
|
-
"name": "paragraph",
|
|
1433
|
-
"props": {
|
|
1434
|
-
"text": "{\n \"id\": \"evt_a1b2c3d4e5\",\n \"type\": \"user.created\",\n \"created_at\": \"2026-04-01T14:30:00Z\",\n \"data\": { ... },\n \"metadata\": {\n \"delivery_id\": \"dlv_x9y8z7\",\n \"attempt\": 1,\n \"webhook_id\": \"whk_m4n5o6\"\n }\n}",
|
|
1435
|
-
"font": {
|
|
1436
|
-
"family": "Consolas",
|
|
1437
|
-
"size": 10
|
|
1438
|
-
}
|
|
1439
|
-
}
|
|
1440
|
-
},
|
|
1441
|
-
{
|
|
1442
|
-
"name": "heading",
|
|
1443
|
-
"props": {
|
|
1444
|
-
"text": "Signature Verification",
|
|
1445
|
-
"level": 2
|
|
1446
|
-
}
|
|
1447
|
-
},
|
|
1448
|
-
{
|
|
1449
|
-
"name": "paragraph",
|
|
1450
|
-
"props": {
|
|
1451
|
-
"text": "Verify the X-Arcline-Signature header to ensure the payload was sent by Arcline and has not been tampered with:",
|
|
1452
|
-
"font": {
|
|
1453
|
-
"bold": true
|
|
1454
|
-
}
|
|
1455
|
-
}
|
|
1456
|
-
},
|
|
1457
|
-
{
|
|
1458
|
-
"name": "paragraph",
|
|
1459
|
-
"props": {
|
|
1460
|
-
"text": "import crypto from 'crypto';\n\nfunction verifySignature(payload, signature, secret) {\n const expected = crypto\n .createHmac('sha256', secret)\n .update(payload)\n .digest('hex');\n return crypto.timingSafeEqual(\n Buffer.from(signature),\n Buffer.from(expected)\n );\n}",
|
|
1461
|
-
"font": {
|
|
1462
|
-
"family": "Consolas",
|
|
1463
|
-
"size": 10
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
},
|
|
1467
|
-
{
|
|
1468
|
-
"name": "heading",
|
|
1469
|
-
"props": {
|
|
1470
|
-
"text": "Retry Policy",
|
|
1471
|
-
"level": 2
|
|
1472
|
-
}
|
|
1473
|
-
},
|
|
1474
|
-
{
|
|
1475
|
-
"name": "paragraph",
|
|
1476
|
-
"props": {
|
|
1477
|
-
"text": "Failed deliveries (non-2xx response or timeout after 30 seconds) are retried with exponential backoff:"
|
|
1478
|
-
}
|
|
1479
|
-
},
|
|
1480
|
-
{
|
|
1481
|
-
"name": "table",
|
|
1482
|
-
"props": {
|
|
1483
|
-
"headerCellDefaults": {
|
|
1484
|
-
"font": {
|
|
1485
|
-
"bold": true,
|
|
1486
|
-
"size": 10
|
|
1487
|
-
},
|
|
1488
|
-
"padding": {
|
|
1489
|
-
"top": 8,
|
|
1490
|
-
"right": 10,
|
|
1491
|
-
"bottom": 8,
|
|
1492
|
-
"left": 10
|
|
1493
|
-
}
|
|
1494
|
-
},
|
|
1495
|
-
"cellDefaults": {
|
|
1496
|
-
"padding": {
|
|
1497
|
-
"top": 5,
|
|
1498
|
-
"right": 10,
|
|
1499
|
-
"bottom": 5,
|
|
1500
|
-
"left": 10
|
|
1501
|
-
},
|
|
1502
|
-
"verticalAlignment": "middle",
|
|
1503
|
-
"font": {
|
|
1504
|
-
"size": 10
|
|
1505
|
-
}
|
|
1506
|
-
},
|
|
1507
|
-
"borderColor": "EFEAE4",
|
|
1508
|
-
"borderSize": 1,
|
|
1509
|
-
"hideBorders": {
|
|
1510
|
-
"insideVertical": true
|
|
1511
|
-
},
|
|
1512
|
-
"columns": [
|
|
1513
|
-
{
|
|
1514
|
-
"header": {
|
|
1515
|
-
"content": "Attempt"
|
|
1516
|
-
},
|
|
1517
|
-
"cells": [
|
|
1518
|
-
{
|
|
1519
|
-
"content": "1st retry"
|
|
1520
|
-
},
|
|
1521
|
-
{
|
|
1522
|
-
"content": "2nd retry"
|
|
1523
|
-
},
|
|
1524
|
-
{
|
|
1525
|
-
"content": "3rd retry"
|
|
1526
|
-
},
|
|
1527
|
-
{
|
|
1528
|
-
"content": "4th retry"
|
|
1529
|
-
},
|
|
1530
|
-
{
|
|
1531
|
-
"content": "5th retry (final)"
|
|
1532
|
-
}
|
|
1533
|
-
]
|
|
1534
|
-
},
|
|
1535
|
-
{
|
|
1536
|
-
"header": {
|
|
1537
|
-
"content": "Delay"
|
|
1538
|
-
},
|
|
1539
|
-
"cells": [
|
|
1540
|
-
{
|
|
1541
|
-
"content": "1 minute"
|
|
1542
|
-
},
|
|
1543
|
-
{
|
|
1544
|
-
"content": "5 minutes"
|
|
1545
|
-
},
|
|
1546
|
-
{
|
|
1547
|
-
"content": "30 minutes"
|
|
1548
|
-
},
|
|
1549
|
-
{
|
|
1550
|
-
"content": "2 hours"
|
|
1551
|
-
},
|
|
1552
|
-
{
|
|
1553
|
-
"content": "24 hours"
|
|
1554
|
-
}
|
|
1555
|
-
]
|
|
1556
|
-
},
|
|
1557
|
-
{
|
|
1558
|
-
"header": {
|
|
1559
|
-
"content": "Cumulative"
|
|
1560
|
-
},
|
|
1561
|
-
"cells": [
|
|
1562
|
-
{
|
|
1563
|
-
"content": "~1 min"
|
|
1564
|
-
},
|
|
1565
|
-
{
|
|
1566
|
-
"content": "~6 min"
|
|
1567
|
-
},
|
|
1568
|
-
{
|
|
1569
|
-
"content": "~36 min"
|
|
1570
|
-
},
|
|
1571
|
-
{
|
|
1572
|
-
"content": "~2.5 hours"
|
|
1573
|
-
},
|
|
1574
|
-
{
|
|
1575
|
-
"content": "~26.5 hours"
|
|
1576
|
-
}
|
|
1577
|
-
]
|
|
1578
|
-
}
|
|
1579
|
-
]
|
|
1580
|
-
}
|
|
1581
|
-
},
|
|
1582
|
-
{
|
|
1583
|
-
"name": "paragraph",
|
|
1584
|
-
"props": {
|
|
1585
|
-
"text": "After 5 failed attempts, the event is marked as failed and visible in the dashboard. Webhooks with > 95% failure rate over 48 hours are automatically disabled with an email notification to the account owner."
|
|
1586
|
-
}
|
|
1587
|
-
}
|
|
1588
|
-
]
|
|
1589
|
-
},
|
|
1590
|
-
{
|
|
1591
|
-
"name": "section",
|
|
1592
|
-
"props": {
|
|
1593
|
-
"meta": {
|
|
1594
|
-
"title": "Error Handling"
|
|
1595
|
-
},
|
|
1596
|
-
"pageBreak": true,
|
|
1597
|
-
"header": "linkToPrevious",
|
|
1598
|
-
"footer": "linkToPrevious"
|
|
1599
|
-
},
|
|
1600
|
-
"children": [
|
|
1601
|
-
{
|
|
1602
|
-
"name": "heading",
|
|
1603
|
-
"props": {
|
|
1604
|
-
"text": "Error Handling",
|
|
1605
|
-
"level": 1
|
|
1606
|
-
}
|
|
1607
|
-
},
|
|
1608
|
-
{
|
|
1609
|
-
"name": "paragraph",
|
|
1610
|
-
"props": {
|
|
1611
|
-
"text": "The API uses standard HTTP status codes. All error responses include a JSON body with code, message, request_id, and optional details fields."
|
|
1612
|
-
}
|
|
1613
|
-
},
|
|
1614
|
-
{
|
|
1615
|
-
"name": "heading",
|
|
1616
|
-
"props": {
|
|
1617
|
-
"text": "Error Response Format",
|
|
1618
|
-
"level": 2
|
|
1619
|
-
}
|
|
1620
|
-
},
|
|
1621
|
-
{
|
|
1622
|
-
"name": "paragraph",
|
|
1623
|
-
"props": {
|
|
1624
|
-
"text": "{\n \"error\": {\n \"code\": \"validation_error\",\n \"message\": \"Invalid request parameters\",\n \"request_id\": \"req_abc123\",\n \"details\": [\n { \"field\": \"email\", \"message\": \"must be a valid email address\" }\n ]\n }\n}",
|
|
1625
|
-
"font": {
|
|
1626
|
-
"family": "Consolas",
|
|
1627
|
-
"size": 10
|
|
1628
|
-
}
|
|
1629
|
-
}
|
|
1630
|
-
},
|
|
1631
|
-
{
|
|
1632
|
-
"name": "heading",
|
|
1633
|
-
"props": {
|
|
1634
|
-
"text": "Status Code Reference",
|
|
1635
|
-
"level": 2
|
|
1636
|
-
}
|
|
1637
|
-
},
|
|
1638
|
-
{
|
|
1639
|
-
"name": "table",
|
|
1640
|
-
"props": {
|
|
1641
|
-
"headerCellDefaults": {
|
|
1642
|
-
"font": {
|
|
1643
|
-
"bold": true,
|
|
1644
|
-
"size": 10
|
|
1645
|
-
},
|
|
1646
|
-
"padding": {
|
|
1647
|
-
"top": 8,
|
|
1648
|
-
"right": 10,
|
|
1649
|
-
"bottom": 8,
|
|
1650
|
-
"left": 10
|
|
1651
|
-
}
|
|
1652
|
-
},
|
|
1653
|
-
"cellDefaults": {
|
|
1654
|
-
"padding": {
|
|
1655
|
-
"top": 5,
|
|
1656
|
-
"right": 10,
|
|
1657
|
-
"bottom": 5,
|
|
1658
|
-
"left": 10
|
|
1659
|
-
},
|
|
1660
|
-
"verticalAlignment": "middle",
|
|
1661
|
-
"font": {
|
|
1662
|
-
"size": 10
|
|
1663
|
-
}
|
|
1664
|
-
},
|
|
1665
|
-
"borderColor": "EFEAE4",
|
|
1666
|
-
"borderSize": 1,
|
|
1667
|
-
"hideBorders": {
|
|
1668
|
-
"insideVertical": true
|
|
1669
|
-
},
|
|
1670
|
-
"columns": [
|
|
1671
|
-
{
|
|
1672
|
-
"header": {
|
|
1673
|
-
"content": "Code"
|
|
1674
|
-
},
|
|
1675
|
-
"cells": [
|
|
1676
|
-
{
|
|
1677
|
-
"content": "400"
|
|
1678
|
-
},
|
|
1679
|
-
{
|
|
1680
|
-
"content": "401"
|
|
1681
|
-
},
|
|
1682
|
-
{
|
|
1683
|
-
"content": "403"
|
|
1684
|
-
},
|
|
1685
|
-
{
|
|
1686
|
-
"content": "404"
|
|
1687
|
-
},
|
|
1688
|
-
{
|
|
1689
|
-
"content": "409"
|
|
1690
|
-
},
|
|
1691
|
-
{
|
|
1692
|
-
"content": "422"
|
|
1693
|
-
},
|
|
1694
|
-
{
|
|
1695
|
-
"content": "429"
|
|
1696
|
-
},
|
|
1697
|
-
{
|
|
1698
|
-
"content": "500"
|
|
1699
|
-
},
|
|
1700
|
-
{
|
|
1701
|
-
"content": "503"
|
|
1702
|
-
}
|
|
1703
|
-
]
|
|
1704
|
-
},
|
|
1705
|
-
{
|
|
1706
|
-
"header": {
|
|
1707
|
-
"content": "Meaning"
|
|
1708
|
-
},
|
|
1709
|
-
"cells": [
|
|
1710
|
-
{
|
|
1711
|
-
"content": "Bad Request"
|
|
1712
|
-
},
|
|
1713
|
-
{
|
|
1714
|
-
"content": "Unauthorized"
|
|
1715
|
-
},
|
|
1716
|
-
{
|
|
1717
|
-
"content": "Forbidden"
|
|
1718
|
-
},
|
|
1719
|
-
{
|
|
1720
|
-
"content": "Not Found"
|
|
1721
|
-
},
|
|
1722
|
-
{
|
|
1723
|
-
"content": "Conflict"
|
|
1724
|
-
},
|
|
1725
|
-
{
|
|
1726
|
-
"content": "Unprocessable Entity"
|
|
1727
|
-
},
|
|
1728
|
-
{
|
|
1729
|
-
"content": "Rate Limited"
|
|
1730
|
-
},
|
|
1731
|
-
{
|
|
1732
|
-
"content": "Internal Error"
|
|
1733
|
-
},
|
|
1734
|
-
{
|
|
1735
|
-
"content": "Service Unavailable"
|
|
1736
|
-
}
|
|
1737
|
-
]
|
|
1738
|
-
},
|
|
1739
|
-
{
|
|
1740
|
-
"header": {
|
|
1741
|
-
"content": "Common Cause"
|
|
1742
|
-
},
|
|
1743
|
-
"cells": [
|
|
1744
|
-
{
|
|
1745
|
-
"content": "Malformed JSON or invalid query parameters"
|
|
1746
|
-
},
|
|
1747
|
-
{
|
|
1748
|
-
"content": "Missing or expired bearer token"
|
|
1749
|
-
},
|
|
1750
|
-
{
|
|
1751
|
-
"content": "Insufficient scope for the operation"
|
|
1752
|
-
},
|
|
1753
|
-
{
|
|
1754
|
-
"content": "Resource does not exist or was deleted"
|
|
1755
|
-
},
|
|
1756
|
-
{
|
|
1757
|
-
"content": "Duplicate resource or concurrent modification"
|
|
1758
|
-
},
|
|
1759
|
-
{
|
|
1760
|
-
"content": "Valid JSON but semantic validation failed"
|
|
1761
|
-
},
|
|
1762
|
-
{
|
|
1763
|
-
"content": "Rate limit exceeded — check Retry-After header"
|
|
1764
|
-
},
|
|
1765
|
-
{
|
|
1766
|
-
"content": "Unexpected server error — include request_id in support tickets"
|
|
1767
|
-
},
|
|
1768
|
-
{
|
|
1769
|
-
"content": "Temporary outage — retry with backoff"
|
|
1770
|
-
}
|
|
1771
|
-
]
|
|
1772
|
-
},
|
|
1773
|
-
{
|
|
1774
|
-
"header": {
|
|
1775
|
-
"content": "Retryable?"
|
|
1776
|
-
},
|
|
1777
|
-
"cells": [
|
|
1778
|
-
{
|
|
1779
|
-
"content": "No"
|
|
1780
|
-
},
|
|
1781
|
-
{
|
|
1782
|
-
"content": "No (refresh token)"
|
|
1783
|
-
},
|
|
1784
|
-
{
|
|
1785
|
-
"content": "No"
|
|
1786
|
-
},
|
|
1787
|
-
{
|
|
1788
|
-
"content": "No"
|
|
1789
|
-
},
|
|
1790
|
-
{
|
|
1791
|
-
"content": "Maybe"
|
|
1792
|
-
},
|
|
1793
|
-
{
|
|
1794
|
-
"content": "No (fix input)"
|
|
1795
|
-
},
|
|
1796
|
-
{
|
|
1797
|
-
"content": "Yes"
|
|
1798
|
-
},
|
|
1799
|
-
{
|
|
1800
|
-
"content": "Yes"
|
|
1801
|
-
},
|
|
1802
|
-
{
|
|
1803
|
-
"content": "Yes"
|
|
1804
|
-
}
|
|
1805
|
-
]
|
|
1806
|
-
}
|
|
1807
|
-
]
|
|
1808
|
-
}
|
|
1809
|
-
},
|
|
1810
|
-
{
|
|
1811
|
-
"name": "heading",
|
|
1812
|
-
"props": {
|
|
1813
|
-
"text": "Idempotency",
|
|
1814
|
-
"level": 2
|
|
1815
|
-
}
|
|
1816
|
-
},
|
|
1817
|
-
{
|
|
1818
|
-
"name": "paragraph",
|
|
1819
|
-
"props": {
|
|
1820
|
-
"text": "For POST and PATCH requests, include an Idempotency-Key header to safely retry failed requests without creating duplicates:",
|
|
1821
|
-
"font": {
|
|
1822
|
-
"bold": true
|
|
1823
|
-
}
|
|
1824
|
-
}
|
|
1825
|
-
},
|
|
1826
|
-
{
|
|
1827
|
-
"name": "paragraph",
|
|
1828
|
-
"props": {
|
|
1829
|
-
"text": "POST /v3/users\nIdempotency-Key: idk_unique-request-id-12345\nContent-Type: application/json\n\n{ \"email\": \"jane@example.com\", \"name\": \"Jane Doe\" }",
|
|
1830
|
-
"font": {
|
|
1831
|
-
"family": "Consolas",
|
|
1832
|
-
"size": 10
|
|
1833
|
-
}
|
|
1834
|
-
}
|
|
1835
|
-
},
|
|
1836
|
-
{
|
|
1837
|
-
"name": "paragraph",
|
|
1838
|
-
"props": {
|
|
1839
|
-
"text": "Idempotency keys are valid for 24 hours. Replayed requests within this window return the original response without executing the operation again."
|
|
1840
|
-
}
|
|
1841
|
-
}
|
|
1842
|
-
]
|
|
1843
|
-
},
|
|
1844
|
-
{
|
|
1845
|
-
"name": "section",
|
|
1846
|
-
"props": {
|
|
1847
|
-
"meta": {
|
|
1848
|
-
"title": "Troubleshooting"
|
|
1849
|
-
},
|
|
1850
|
-
"pageBreak": true,
|
|
1851
|
-
"header": "linkToPrevious",
|
|
1852
|
-
"footer": "linkToPrevious"
|
|
1853
|
-
},
|
|
1854
|
-
"children": [
|
|
1855
|
-
{
|
|
1856
|
-
"name": "heading",
|
|
1857
|
-
"props": {
|
|
1858
|
-
"text": "Troubleshooting",
|
|
1859
|
-
"level": 1
|
|
1860
|
-
}
|
|
1861
|
-
},
|
|
1862
|
-
{
|
|
1863
|
-
"name": "heading",
|
|
1864
|
-
"props": {
|
|
1865
|
-
"text": "Common Issues",
|
|
1866
|
-
"level": 2
|
|
1867
|
-
}
|
|
1868
|
-
},
|
|
1869
|
-
{
|
|
1870
|
-
"name": "table",
|
|
1871
|
-
"props": {
|
|
1872
|
-
"headerCellDefaults": {
|
|
1873
|
-
"font": {
|
|
1874
|
-
"bold": true,
|
|
1875
|
-
"size": 10
|
|
1876
|
-
},
|
|
1877
|
-
"padding": {
|
|
1878
|
-
"top": 8,
|
|
1879
|
-
"right": 10,
|
|
1880
|
-
"bottom": 8,
|
|
1881
|
-
"left": 10
|
|
1882
|
-
}
|
|
1883
|
-
},
|
|
1884
|
-
"cellDefaults": {
|
|
1885
|
-
"padding": {
|
|
1886
|
-
"top": 5,
|
|
1887
|
-
"right": 10,
|
|
1888
|
-
"bottom": 5,
|
|
1889
|
-
"left": 10
|
|
1890
|
-
},
|
|
1891
|
-
"verticalAlignment": "middle",
|
|
1892
|
-
"font": {
|
|
1893
|
-
"size": 10
|
|
1894
|
-
}
|
|
1895
|
-
},
|
|
1896
|
-
"borderColor": "EFEAE4",
|
|
1897
|
-
"borderSize": 1,
|
|
1898
|
-
"hideBorders": {
|
|
1899
|
-
"insideVertical": true
|
|
1900
|
-
},
|
|
1901
|
-
"columns": [
|
|
1902
|
-
{
|
|
1903
|
-
"header": {
|
|
1904
|
-
"content": "Symptom"
|
|
1905
|
-
},
|
|
1906
|
-
"cells": [
|
|
1907
|
-
{
|
|
1908
|
-
"content": "401 on every request"
|
|
1909
|
-
},
|
|
1910
|
-
{
|
|
1911
|
-
"content": "Webhook not firing"
|
|
1912
|
-
},
|
|
1913
|
-
{
|
|
1914
|
-
"content": "Slow list queries"
|
|
1915
|
-
},
|
|
1916
|
-
{
|
|
1917
|
-
"content": "Missing data in responses"
|
|
1918
|
-
},
|
|
1919
|
-
{
|
|
1920
|
-
"content": "CORS errors in browser"
|
|
1921
|
-
}
|
|
1922
|
-
]
|
|
1923
|
-
},
|
|
1924
|
-
{
|
|
1925
|
-
"header": {
|
|
1926
|
-
"content": "Likely Cause"
|
|
1927
|
-
},
|
|
1928
|
-
"cells": [
|
|
1929
|
-
{
|
|
1930
|
-
"content": "Expired or malformed token"
|
|
1931
|
-
},
|
|
1932
|
-
{
|
|
1933
|
-
"content": "Endpoint unreachable or auto-disabled"
|
|
1934
|
-
},
|
|
1935
|
-
{
|
|
1936
|
-
"content": "Missing index on filter field"
|
|
1937
|
-
},
|
|
1938
|
-
{
|
|
1939
|
-
"content": "Insufficient scope on token"
|
|
1940
|
-
},
|
|
1941
|
-
{
|
|
1942
|
-
"content": "Origin not in allowed list"
|
|
1943
|
-
}
|
|
1944
|
-
]
|
|
1945
|
-
},
|
|
1946
|
-
{
|
|
1947
|
-
"header": {
|
|
1948
|
-
"content": "Resolution"
|
|
1949
|
-
},
|
|
1950
|
-
"cells": [
|
|
1951
|
-
{
|
|
1952
|
-
"content": "Refresh token; verify client_id/secret; check clock skew < 60s"
|
|
1953
|
-
},
|
|
1954
|
-
{
|
|
1955
|
-
"content": "Check dashboard > Webhooks > Delivery Log; re-enable if disabled"
|
|
1956
|
-
},
|
|
1957
|
-
{
|
|
1958
|
-
"content": "Use ?limit to reduce page size; add ?fields to select specific columns"
|
|
1959
|
-
},
|
|
1960
|
-
{
|
|
1961
|
-
"content": "Re-issue token with required scopes; check admin:users for user data"
|
|
1962
|
-
},
|
|
1963
|
-
{
|
|
1964
|
-
"content": "Add your domain in Settings > API Keys > Allowed Origins"
|
|
1965
|
-
}
|
|
1966
|
-
]
|
|
1967
|
-
}
|
|
1968
|
-
]
|
|
1969
|
-
}
|
|
1970
|
-
},
|
|
1971
|
-
{
|
|
1972
|
-
"name": "heading",
|
|
1973
|
-
"props": {
|
|
1974
|
-
"text": "Debug Mode",
|
|
1975
|
-
"level": 2
|
|
1976
|
-
}
|
|
1977
|
-
},
|
|
1978
|
-
{
|
|
1979
|
-
"name": "paragraph",
|
|
1980
|
-
"props": {
|
|
1981
|
-
"text": "Enable verbose logging in the SDK to inspect request/response details:",
|
|
1982
|
-
"font": {
|
|
1983
|
-
"bold": true
|
|
1984
|
-
}
|
|
1985
|
-
}
|
|
1986
|
-
},
|
|
1987
|
-
{
|
|
1988
|
-
"name": "paragraph",
|
|
1989
|
-
"props": {
|
|
1990
|
-
"text": "const client = new ArclineClient({\n clientId: process.env.ARCLINE_CLIENT_ID,\n clientSecret: process.env.ARCLINE_CLIENT_SECRET,\n debug: true, // Logs full request/response to stdout\n timeout: 30000, // 30s timeout (default: 15s)\n});",
|
|
1991
|
-
"font": {
|
|
1992
|
-
"family": "Consolas",
|
|
1993
|
-
"size": 10
|
|
1994
|
-
}
|
|
1995
|
-
}
|
|
1996
|
-
},
|
|
1997
|
-
{
|
|
1998
|
-
"name": "heading",
|
|
1999
|
-
"props": {
|
|
2000
|
-
"text": "Support & Resources",
|
|
2001
|
-
"level": 2
|
|
2002
|
-
}
|
|
2003
|
-
},
|
|
2004
|
-
{
|
|
2005
|
-
"name": "columns",
|
|
2006
|
-
"props": {
|
|
2007
|
-
"columns": 2,
|
|
2008
|
-
"gap": 0.5
|
|
2009
|
-
},
|
|
2010
|
-
"children": [
|
|
2011
|
-
{
|
|
2012
|
-
"name": "list",
|
|
2013
|
-
"props": {
|
|
2014
|
-
"format": "bullet",
|
|
2015
|
-
"items": [
|
|
2016
|
-
"API Status: status.arcline.io",
|
|
2017
|
-
"Developer Docs: docs.arcline.io",
|
|
2018
|
-
"SDK Source: github.com/arcline/sdk",
|
|
2019
|
-
"Community: community.arcline.io"
|
|
2020
|
-
]
|
|
2021
|
-
}
|
|
2022
|
-
},
|
|
2023
|
-
{
|
|
2024
|
-
"name": "list",
|
|
2025
|
-
"props": {
|
|
2026
|
-
"format": "bullet",
|
|
2027
|
-
"items": [
|
|
2028
|
-
"Email: support@arcline.io",
|
|
2029
|
-
"Enterprise Support: 24/7 Slack channel",
|
|
2030
|
-
"Office Hours: Thursdays 2-3pm PT",
|
|
2031
|
-
"Security: security@arcline.io (PGP key on docs)"
|
|
2032
|
-
]
|
|
2033
|
-
}
|
|
2034
|
-
}
|
|
2035
|
-
]
|
|
2036
|
-
}
|
|
2037
|
-
]
|
|
2038
|
-
}
|
|
2039
|
-
]
|
|
2040
|
-
}
|