@objectstack/spec 0.3.1 → 0.3.2
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/api/contract.zod.d.ts +4 -4
- package/dist/ui/view.zod.d.ts +2315 -54
- package/dist/ui/view.zod.d.ts.map +1 -1
- package/dist/ui/view.zod.js +102 -3
- package/json-schema/ui/FormField.json +61 -0
- package/json-schema/ui/FormSection.json +60 -1
- package/json-schema/ui/FormView.json +257 -2
- package/json-schema/ui/HttpMethod.json +16 -0
- package/json-schema/ui/HttpRequest.json +46 -0
- package/json-schema/ui/ListColumn.json +57 -0
- package/json-schema/ui/ListView.json +249 -4
- package/json-schema/ui/PaginationConfig.json +26 -0
- package/json-schema/ui/SelectionConfig.json +22 -0
- package/json-schema/ui/View.json +1012 -12
- package/json-schema/ui/ViewData.json +142 -0
- package/package.json +1 -1
package/json-schema/ui/View.json
CHANGED
|
@@ -24,11 +24,206 @@
|
|
|
24
24
|
],
|
|
25
25
|
"default": "grid"
|
|
26
26
|
},
|
|
27
|
+
"data": {
|
|
28
|
+
"anyOf": [
|
|
29
|
+
{
|
|
30
|
+
"type": "object",
|
|
31
|
+
"properties": {
|
|
32
|
+
"provider": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"const": "object"
|
|
35
|
+
},
|
|
36
|
+
"object": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Target object name"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"required": [
|
|
42
|
+
"provider",
|
|
43
|
+
"object"
|
|
44
|
+
],
|
|
45
|
+
"additionalProperties": false
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"provider": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"const": "api"
|
|
53
|
+
},
|
|
54
|
+
"read": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"properties": {
|
|
57
|
+
"url": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "API endpoint URL"
|
|
60
|
+
},
|
|
61
|
+
"method": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": [
|
|
64
|
+
"GET",
|
|
65
|
+
"POST",
|
|
66
|
+
"PUT",
|
|
67
|
+
"PATCH",
|
|
68
|
+
"DELETE"
|
|
69
|
+
],
|
|
70
|
+
"default": "GET",
|
|
71
|
+
"description": "HTTP method"
|
|
72
|
+
},
|
|
73
|
+
"headers": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": {
|
|
76
|
+
"type": "string"
|
|
77
|
+
},
|
|
78
|
+
"description": "Custom HTTP headers"
|
|
79
|
+
},
|
|
80
|
+
"params": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"additionalProperties": {},
|
|
83
|
+
"description": "Query parameters"
|
|
84
|
+
},
|
|
85
|
+
"body": {
|
|
86
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"required": [
|
|
90
|
+
"url"
|
|
91
|
+
],
|
|
92
|
+
"additionalProperties": false,
|
|
93
|
+
"description": "Configuration for fetching data"
|
|
94
|
+
},
|
|
95
|
+
"write": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"properties": {
|
|
98
|
+
"url": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": "API endpoint URL"
|
|
101
|
+
},
|
|
102
|
+
"method": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"enum": [
|
|
105
|
+
"GET",
|
|
106
|
+
"POST",
|
|
107
|
+
"PUT",
|
|
108
|
+
"PATCH",
|
|
109
|
+
"DELETE"
|
|
110
|
+
],
|
|
111
|
+
"default": "GET",
|
|
112
|
+
"description": "HTTP method"
|
|
113
|
+
},
|
|
114
|
+
"headers": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"additionalProperties": {
|
|
117
|
+
"type": "string"
|
|
118
|
+
},
|
|
119
|
+
"description": "Custom HTTP headers"
|
|
120
|
+
},
|
|
121
|
+
"params": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"additionalProperties": {},
|
|
124
|
+
"description": "Query parameters"
|
|
125
|
+
},
|
|
126
|
+
"body": {
|
|
127
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"required": [
|
|
131
|
+
"url"
|
|
132
|
+
],
|
|
133
|
+
"additionalProperties": false,
|
|
134
|
+
"description": "Configuration for submitting data (for forms/editable tables)"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"required": [
|
|
138
|
+
"provider"
|
|
139
|
+
],
|
|
140
|
+
"additionalProperties": false
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"type": "object",
|
|
144
|
+
"properties": {
|
|
145
|
+
"provider": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"const": "value"
|
|
148
|
+
},
|
|
149
|
+
"items": {
|
|
150
|
+
"type": "array",
|
|
151
|
+
"items": {},
|
|
152
|
+
"description": "Static data array"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"provider",
|
|
157
|
+
"items"
|
|
158
|
+
],
|
|
159
|
+
"additionalProperties": false
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"description": "Data source configuration (defaults to \"object\" provider)"
|
|
163
|
+
},
|
|
27
164
|
"columns": {
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
165
|
+
"anyOf": [
|
|
166
|
+
{
|
|
167
|
+
"type": "array",
|
|
168
|
+
"items": {
|
|
169
|
+
"type": "string"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"type": "array",
|
|
174
|
+
"items": {
|
|
175
|
+
"type": "object",
|
|
176
|
+
"properties": {
|
|
177
|
+
"field": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"description": "Field name (snake_case)"
|
|
180
|
+
},
|
|
181
|
+
"label": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"description": "Display label override"
|
|
184
|
+
},
|
|
185
|
+
"width": {
|
|
186
|
+
"type": "number",
|
|
187
|
+
"exclusiveMinimum": 0,
|
|
188
|
+
"description": "Column width in pixels"
|
|
189
|
+
},
|
|
190
|
+
"align": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"enum": [
|
|
193
|
+
"left",
|
|
194
|
+
"center",
|
|
195
|
+
"right"
|
|
196
|
+
],
|
|
197
|
+
"description": "Text alignment"
|
|
198
|
+
},
|
|
199
|
+
"hidden": {
|
|
200
|
+
"type": "boolean",
|
|
201
|
+
"description": "Hide column by default"
|
|
202
|
+
},
|
|
203
|
+
"sortable": {
|
|
204
|
+
"type": "boolean",
|
|
205
|
+
"description": "Allow sorting by this column"
|
|
206
|
+
},
|
|
207
|
+
"resizable": {
|
|
208
|
+
"type": "boolean",
|
|
209
|
+
"description": "Allow resizing this column"
|
|
210
|
+
},
|
|
211
|
+
"wrap": {
|
|
212
|
+
"type": "boolean",
|
|
213
|
+
"description": "Allow text wrapping"
|
|
214
|
+
},
|
|
215
|
+
"type": {
|
|
216
|
+
"type": "string",
|
|
217
|
+
"description": "Renderer type override (e.g., \"currency\", \"date\")"
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"required": [
|
|
221
|
+
"field"
|
|
222
|
+
],
|
|
223
|
+
"additionalProperties": false
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
],
|
|
32
227
|
"description": "Fields to display as columns"
|
|
33
228
|
},
|
|
34
229
|
"filter": {
|
|
@@ -72,6 +267,56 @@
|
|
|
72
267
|
},
|
|
73
268
|
"description": "Fields enabled for search"
|
|
74
269
|
},
|
|
270
|
+
"resizable": {
|
|
271
|
+
"type": "boolean",
|
|
272
|
+
"description": "Enable column resizing"
|
|
273
|
+
},
|
|
274
|
+
"striped": {
|
|
275
|
+
"type": "boolean",
|
|
276
|
+
"description": "Striped row styling"
|
|
277
|
+
},
|
|
278
|
+
"bordered": {
|
|
279
|
+
"type": "boolean",
|
|
280
|
+
"description": "Show borders"
|
|
281
|
+
},
|
|
282
|
+
"selection": {
|
|
283
|
+
"type": "object",
|
|
284
|
+
"properties": {
|
|
285
|
+
"type": {
|
|
286
|
+
"type": "string",
|
|
287
|
+
"enum": [
|
|
288
|
+
"none",
|
|
289
|
+
"single",
|
|
290
|
+
"multiple"
|
|
291
|
+
],
|
|
292
|
+
"default": "none",
|
|
293
|
+
"description": "Selection mode"
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"additionalProperties": false,
|
|
297
|
+
"description": "Row selection configuration"
|
|
298
|
+
},
|
|
299
|
+
"pagination": {
|
|
300
|
+
"type": "object",
|
|
301
|
+
"properties": {
|
|
302
|
+
"pageSize": {
|
|
303
|
+
"type": "integer",
|
|
304
|
+
"exclusiveMinimum": 0,
|
|
305
|
+
"default": 25,
|
|
306
|
+
"description": "Number of records per page"
|
|
307
|
+
},
|
|
308
|
+
"pageSizeOptions": {
|
|
309
|
+
"type": "array",
|
|
310
|
+
"items": {
|
|
311
|
+
"type": "integer",
|
|
312
|
+
"exclusiveMinimum": 0
|
|
313
|
+
},
|
|
314
|
+
"description": "Available page size options"
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
"additionalProperties": false,
|
|
318
|
+
"description": "Pagination configuration"
|
|
319
|
+
},
|
|
75
320
|
"kanban": {
|
|
76
321
|
"type": "object",
|
|
77
322
|
"properties": {
|
|
@@ -163,6 +408,143 @@
|
|
|
163
408
|
],
|
|
164
409
|
"default": "simple"
|
|
165
410
|
},
|
|
411
|
+
"data": {
|
|
412
|
+
"anyOf": [
|
|
413
|
+
{
|
|
414
|
+
"type": "object",
|
|
415
|
+
"properties": {
|
|
416
|
+
"provider": {
|
|
417
|
+
"type": "string",
|
|
418
|
+
"const": "object"
|
|
419
|
+
},
|
|
420
|
+
"object": {
|
|
421
|
+
"type": "string",
|
|
422
|
+
"description": "Target object name"
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
"required": [
|
|
426
|
+
"provider",
|
|
427
|
+
"object"
|
|
428
|
+
],
|
|
429
|
+
"additionalProperties": false
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"type": "object",
|
|
433
|
+
"properties": {
|
|
434
|
+
"provider": {
|
|
435
|
+
"type": "string",
|
|
436
|
+
"const": "api"
|
|
437
|
+
},
|
|
438
|
+
"read": {
|
|
439
|
+
"type": "object",
|
|
440
|
+
"properties": {
|
|
441
|
+
"url": {
|
|
442
|
+
"type": "string",
|
|
443
|
+
"description": "API endpoint URL"
|
|
444
|
+
},
|
|
445
|
+
"method": {
|
|
446
|
+
"type": "string",
|
|
447
|
+
"enum": [
|
|
448
|
+
"GET",
|
|
449
|
+
"POST",
|
|
450
|
+
"PUT",
|
|
451
|
+
"PATCH",
|
|
452
|
+
"DELETE"
|
|
453
|
+
],
|
|
454
|
+
"default": "GET",
|
|
455
|
+
"description": "HTTP method"
|
|
456
|
+
},
|
|
457
|
+
"headers": {
|
|
458
|
+
"type": "object",
|
|
459
|
+
"additionalProperties": {
|
|
460
|
+
"type": "string"
|
|
461
|
+
},
|
|
462
|
+
"description": "Custom HTTP headers"
|
|
463
|
+
},
|
|
464
|
+
"params": {
|
|
465
|
+
"type": "object",
|
|
466
|
+
"additionalProperties": {},
|
|
467
|
+
"description": "Query parameters"
|
|
468
|
+
},
|
|
469
|
+
"body": {
|
|
470
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
"required": [
|
|
474
|
+
"url"
|
|
475
|
+
],
|
|
476
|
+
"additionalProperties": false,
|
|
477
|
+
"description": "Configuration for fetching data"
|
|
478
|
+
},
|
|
479
|
+
"write": {
|
|
480
|
+
"type": "object",
|
|
481
|
+
"properties": {
|
|
482
|
+
"url": {
|
|
483
|
+
"type": "string",
|
|
484
|
+
"description": "API endpoint URL"
|
|
485
|
+
},
|
|
486
|
+
"method": {
|
|
487
|
+
"type": "string",
|
|
488
|
+
"enum": [
|
|
489
|
+
"GET",
|
|
490
|
+
"POST",
|
|
491
|
+
"PUT",
|
|
492
|
+
"PATCH",
|
|
493
|
+
"DELETE"
|
|
494
|
+
],
|
|
495
|
+
"default": "GET",
|
|
496
|
+
"description": "HTTP method"
|
|
497
|
+
},
|
|
498
|
+
"headers": {
|
|
499
|
+
"type": "object",
|
|
500
|
+
"additionalProperties": {
|
|
501
|
+
"type": "string"
|
|
502
|
+
},
|
|
503
|
+
"description": "Custom HTTP headers"
|
|
504
|
+
},
|
|
505
|
+
"params": {
|
|
506
|
+
"type": "object",
|
|
507
|
+
"additionalProperties": {},
|
|
508
|
+
"description": "Query parameters"
|
|
509
|
+
},
|
|
510
|
+
"body": {
|
|
511
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"required": [
|
|
515
|
+
"url"
|
|
516
|
+
],
|
|
517
|
+
"additionalProperties": false,
|
|
518
|
+
"description": "Configuration for submitting data (for forms/editable tables)"
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
"required": [
|
|
522
|
+
"provider"
|
|
523
|
+
],
|
|
524
|
+
"additionalProperties": false
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"type": "object",
|
|
528
|
+
"properties": {
|
|
529
|
+
"provider": {
|
|
530
|
+
"type": "string",
|
|
531
|
+
"const": "value"
|
|
532
|
+
},
|
|
533
|
+
"items": {
|
|
534
|
+
"type": "array",
|
|
535
|
+
"items": {},
|
|
536
|
+
"description": "Static data array"
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
"required": [
|
|
540
|
+
"provider",
|
|
541
|
+
"items"
|
|
542
|
+
],
|
|
543
|
+
"additionalProperties": false
|
|
544
|
+
}
|
|
545
|
+
],
|
|
546
|
+
"description": "Data source configuration (defaults to \"object\" provider)"
|
|
547
|
+
},
|
|
166
548
|
"sections": {
|
|
167
549
|
"type": "array",
|
|
168
550
|
"items": {
|
|
@@ -192,7 +574,66 @@
|
|
|
192
574
|
"fields": {
|
|
193
575
|
"type": "array",
|
|
194
576
|
"items": {
|
|
195
|
-
"
|
|
577
|
+
"anyOf": [
|
|
578
|
+
{
|
|
579
|
+
"type": "string"
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"type": "object",
|
|
583
|
+
"properties": {
|
|
584
|
+
"field": {
|
|
585
|
+
"type": "string",
|
|
586
|
+
"description": "Field name (snake_case)"
|
|
587
|
+
},
|
|
588
|
+
"label": {
|
|
589
|
+
"type": "string",
|
|
590
|
+
"description": "Display label override"
|
|
591
|
+
},
|
|
592
|
+
"placeholder": {
|
|
593
|
+
"type": "string",
|
|
594
|
+
"description": "Placeholder text"
|
|
595
|
+
},
|
|
596
|
+
"helpText": {
|
|
597
|
+
"type": "string",
|
|
598
|
+
"description": "Help/hint text"
|
|
599
|
+
},
|
|
600
|
+
"readonly": {
|
|
601
|
+
"type": "boolean",
|
|
602
|
+
"description": "Read-only override"
|
|
603
|
+
},
|
|
604
|
+
"required": {
|
|
605
|
+
"type": "boolean",
|
|
606
|
+
"description": "Required override"
|
|
607
|
+
},
|
|
608
|
+
"hidden": {
|
|
609
|
+
"type": "boolean",
|
|
610
|
+
"description": "Hidden override"
|
|
611
|
+
},
|
|
612
|
+
"colSpan": {
|
|
613
|
+
"type": "integer",
|
|
614
|
+
"minimum": 1,
|
|
615
|
+
"maximum": 4,
|
|
616
|
+
"description": "Column span in grid layout (1-4)"
|
|
617
|
+
},
|
|
618
|
+
"widget": {
|
|
619
|
+
"type": "string",
|
|
620
|
+
"description": "Custom widget/component name"
|
|
621
|
+
},
|
|
622
|
+
"dependsOn": {
|
|
623
|
+
"type": "string",
|
|
624
|
+
"description": "Parent field name for cascading"
|
|
625
|
+
},
|
|
626
|
+
"visibleOn": {
|
|
627
|
+
"type": "string",
|
|
628
|
+
"description": "Visibility condition expression"
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
"required": [
|
|
632
|
+
"field"
|
|
633
|
+
],
|
|
634
|
+
"additionalProperties": false
|
|
635
|
+
}
|
|
636
|
+
]
|
|
196
637
|
}
|
|
197
638
|
}
|
|
198
639
|
},
|
|
@@ -231,7 +672,66 @@
|
|
|
231
672
|
"fields": {
|
|
232
673
|
"type": "array",
|
|
233
674
|
"items": {
|
|
234
|
-
"
|
|
675
|
+
"anyOf": [
|
|
676
|
+
{
|
|
677
|
+
"type": "string"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"type": "object",
|
|
681
|
+
"properties": {
|
|
682
|
+
"field": {
|
|
683
|
+
"type": "string",
|
|
684
|
+
"description": "Field name (snake_case)"
|
|
685
|
+
},
|
|
686
|
+
"label": {
|
|
687
|
+
"type": "string",
|
|
688
|
+
"description": "Display label override"
|
|
689
|
+
},
|
|
690
|
+
"placeholder": {
|
|
691
|
+
"type": "string",
|
|
692
|
+
"description": "Placeholder text"
|
|
693
|
+
},
|
|
694
|
+
"helpText": {
|
|
695
|
+
"type": "string",
|
|
696
|
+
"description": "Help/hint text"
|
|
697
|
+
},
|
|
698
|
+
"readonly": {
|
|
699
|
+
"type": "boolean",
|
|
700
|
+
"description": "Read-only override"
|
|
701
|
+
},
|
|
702
|
+
"required": {
|
|
703
|
+
"type": "boolean",
|
|
704
|
+
"description": "Required override"
|
|
705
|
+
},
|
|
706
|
+
"hidden": {
|
|
707
|
+
"type": "boolean",
|
|
708
|
+
"description": "Hidden override"
|
|
709
|
+
},
|
|
710
|
+
"colSpan": {
|
|
711
|
+
"type": "integer",
|
|
712
|
+
"minimum": 1,
|
|
713
|
+
"maximum": 4,
|
|
714
|
+
"description": "Column span in grid layout (1-4)"
|
|
715
|
+
},
|
|
716
|
+
"widget": {
|
|
717
|
+
"type": "string",
|
|
718
|
+
"description": "Custom widget/component name"
|
|
719
|
+
},
|
|
720
|
+
"dependsOn": {
|
|
721
|
+
"type": "string",
|
|
722
|
+
"description": "Parent field name for cascading"
|
|
723
|
+
},
|
|
724
|
+
"visibleOn": {
|
|
725
|
+
"type": "string",
|
|
726
|
+
"description": "Visibility condition expression"
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
"required": [
|
|
730
|
+
"field"
|
|
731
|
+
],
|
|
732
|
+
"additionalProperties": false
|
|
733
|
+
}
|
|
734
|
+
]
|
|
235
735
|
}
|
|
236
736
|
}
|
|
237
737
|
},
|
|
@@ -266,11 +766,206 @@
|
|
|
266
766
|
],
|
|
267
767
|
"default": "grid"
|
|
268
768
|
},
|
|
769
|
+
"data": {
|
|
770
|
+
"anyOf": [
|
|
771
|
+
{
|
|
772
|
+
"type": "object",
|
|
773
|
+
"properties": {
|
|
774
|
+
"provider": {
|
|
775
|
+
"type": "string",
|
|
776
|
+
"const": "object"
|
|
777
|
+
},
|
|
778
|
+
"object": {
|
|
779
|
+
"type": "string",
|
|
780
|
+
"description": "Target object name"
|
|
781
|
+
}
|
|
782
|
+
},
|
|
783
|
+
"required": [
|
|
784
|
+
"provider",
|
|
785
|
+
"object"
|
|
786
|
+
],
|
|
787
|
+
"additionalProperties": false
|
|
788
|
+
},
|
|
789
|
+
{
|
|
790
|
+
"type": "object",
|
|
791
|
+
"properties": {
|
|
792
|
+
"provider": {
|
|
793
|
+
"type": "string",
|
|
794
|
+
"const": "api"
|
|
795
|
+
},
|
|
796
|
+
"read": {
|
|
797
|
+
"type": "object",
|
|
798
|
+
"properties": {
|
|
799
|
+
"url": {
|
|
800
|
+
"type": "string",
|
|
801
|
+
"description": "API endpoint URL"
|
|
802
|
+
},
|
|
803
|
+
"method": {
|
|
804
|
+
"type": "string",
|
|
805
|
+
"enum": [
|
|
806
|
+
"GET",
|
|
807
|
+
"POST",
|
|
808
|
+
"PUT",
|
|
809
|
+
"PATCH",
|
|
810
|
+
"DELETE"
|
|
811
|
+
],
|
|
812
|
+
"default": "GET",
|
|
813
|
+
"description": "HTTP method"
|
|
814
|
+
},
|
|
815
|
+
"headers": {
|
|
816
|
+
"type": "object",
|
|
817
|
+
"additionalProperties": {
|
|
818
|
+
"type": "string"
|
|
819
|
+
},
|
|
820
|
+
"description": "Custom HTTP headers"
|
|
821
|
+
},
|
|
822
|
+
"params": {
|
|
823
|
+
"type": "object",
|
|
824
|
+
"additionalProperties": {},
|
|
825
|
+
"description": "Query parameters"
|
|
826
|
+
},
|
|
827
|
+
"body": {
|
|
828
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
829
|
+
}
|
|
830
|
+
},
|
|
831
|
+
"required": [
|
|
832
|
+
"url"
|
|
833
|
+
],
|
|
834
|
+
"additionalProperties": false,
|
|
835
|
+
"description": "Configuration for fetching data"
|
|
836
|
+
},
|
|
837
|
+
"write": {
|
|
838
|
+
"type": "object",
|
|
839
|
+
"properties": {
|
|
840
|
+
"url": {
|
|
841
|
+
"type": "string",
|
|
842
|
+
"description": "API endpoint URL"
|
|
843
|
+
},
|
|
844
|
+
"method": {
|
|
845
|
+
"type": "string",
|
|
846
|
+
"enum": [
|
|
847
|
+
"GET",
|
|
848
|
+
"POST",
|
|
849
|
+
"PUT",
|
|
850
|
+
"PATCH",
|
|
851
|
+
"DELETE"
|
|
852
|
+
],
|
|
853
|
+
"default": "GET",
|
|
854
|
+
"description": "HTTP method"
|
|
855
|
+
},
|
|
856
|
+
"headers": {
|
|
857
|
+
"type": "object",
|
|
858
|
+
"additionalProperties": {
|
|
859
|
+
"type": "string"
|
|
860
|
+
},
|
|
861
|
+
"description": "Custom HTTP headers"
|
|
862
|
+
},
|
|
863
|
+
"params": {
|
|
864
|
+
"type": "object",
|
|
865
|
+
"additionalProperties": {},
|
|
866
|
+
"description": "Query parameters"
|
|
867
|
+
},
|
|
868
|
+
"body": {
|
|
869
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
870
|
+
}
|
|
871
|
+
},
|
|
872
|
+
"required": [
|
|
873
|
+
"url"
|
|
874
|
+
],
|
|
875
|
+
"additionalProperties": false,
|
|
876
|
+
"description": "Configuration for submitting data (for forms/editable tables)"
|
|
877
|
+
}
|
|
878
|
+
},
|
|
879
|
+
"required": [
|
|
880
|
+
"provider"
|
|
881
|
+
],
|
|
882
|
+
"additionalProperties": false
|
|
883
|
+
},
|
|
884
|
+
{
|
|
885
|
+
"type": "object",
|
|
886
|
+
"properties": {
|
|
887
|
+
"provider": {
|
|
888
|
+
"type": "string",
|
|
889
|
+
"const": "value"
|
|
890
|
+
},
|
|
891
|
+
"items": {
|
|
892
|
+
"type": "array",
|
|
893
|
+
"items": {},
|
|
894
|
+
"description": "Static data array"
|
|
895
|
+
}
|
|
896
|
+
},
|
|
897
|
+
"required": [
|
|
898
|
+
"provider",
|
|
899
|
+
"items"
|
|
900
|
+
],
|
|
901
|
+
"additionalProperties": false
|
|
902
|
+
}
|
|
903
|
+
],
|
|
904
|
+
"description": "Data source configuration (defaults to \"object\" provider)"
|
|
905
|
+
},
|
|
269
906
|
"columns": {
|
|
270
|
-
"
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
907
|
+
"anyOf": [
|
|
908
|
+
{
|
|
909
|
+
"type": "array",
|
|
910
|
+
"items": {
|
|
911
|
+
"type": "string"
|
|
912
|
+
}
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
"type": "array",
|
|
916
|
+
"items": {
|
|
917
|
+
"type": "object",
|
|
918
|
+
"properties": {
|
|
919
|
+
"field": {
|
|
920
|
+
"type": "string",
|
|
921
|
+
"description": "Field name (snake_case)"
|
|
922
|
+
},
|
|
923
|
+
"label": {
|
|
924
|
+
"type": "string",
|
|
925
|
+
"description": "Display label override"
|
|
926
|
+
},
|
|
927
|
+
"width": {
|
|
928
|
+
"type": "number",
|
|
929
|
+
"exclusiveMinimum": 0,
|
|
930
|
+
"description": "Column width in pixels"
|
|
931
|
+
},
|
|
932
|
+
"align": {
|
|
933
|
+
"type": "string",
|
|
934
|
+
"enum": [
|
|
935
|
+
"left",
|
|
936
|
+
"center",
|
|
937
|
+
"right"
|
|
938
|
+
],
|
|
939
|
+
"description": "Text alignment"
|
|
940
|
+
},
|
|
941
|
+
"hidden": {
|
|
942
|
+
"type": "boolean",
|
|
943
|
+
"description": "Hide column by default"
|
|
944
|
+
},
|
|
945
|
+
"sortable": {
|
|
946
|
+
"type": "boolean",
|
|
947
|
+
"description": "Allow sorting by this column"
|
|
948
|
+
},
|
|
949
|
+
"resizable": {
|
|
950
|
+
"type": "boolean",
|
|
951
|
+
"description": "Allow resizing this column"
|
|
952
|
+
},
|
|
953
|
+
"wrap": {
|
|
954
|
+
"type": "boolean",
|
|
955
|
+
"description": "Allow text wrapping"
|
|
956
|
+
},
|
|
957
|
+
"type": {
|
|
958
|
+
"type": "string",
|
|
959
|
+
"description": "Renderer type override (e.g., \"currency\", \"date\")"
|
|
960
|
+
}
|
|
961
|
+
},
|
|
962
|
+
"required": [
|
|
963
|
+
"field"
|
|
964
|
+
],
|
|
965
|
+
"additionalProperties": false
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
],
|
|
274
969
|
"description": "Fields to display as columns"
|
|
275
970
|
},
|
|
276
971
|
"filter": {
|
|
@@ -314,6 +1009,56 @@
|
|
|
314
1009
|
},
|
|
315
1010
|
"description": "Fields enabled for search"
|
|
316
1011
|
},
|
|
1012
|
+
"resizable": {
|
|
1013
|
+
"type": "boolean",
|
|
1014
|
+
"description": "Enable column resizing"
|
|
1015
|
+
},
|
|
1016
|
+
"striped": {
|
|
1017
|
+
"type": "boolean",
|
|
1018
|
+
"description": "Striped row styling"
|
|
1019
|
+
},
|
|
1020
|
+
"bordered": {
|
|
1021
|
+
"type": "boolean",
|
|
1022
|
+
"description": "Show borders"
|
|
1023
|
+
},
|
|
1024
|
+
"selection": {
|
|
1025
|
+
"type": "object",
|
|
1026
|
+
"properties": {
|
|
1027
|
+
"type": {
|
|
1028
|
+
"type": "string",
|
|
1029
|
+
"enum": [
|
|
1030
|
+
"none",
|
|
1031
|
+
"single",
|
|
1032
|
+
"multiple"
|
|
1033
|
+
],
|
|
1034
|
+
"default": "none",
|
|
1035
|
+
"description": "Selection mode"
|
|
1036
|
+
}
|
|
1037
|
+
},
|
|
1038
|
+
"additionalProperties": false,
|
|
1039
|
+
"description": "Row selection configuration"
|
|
1040
|
+
},
|
|
1041
|
+
"pagination": {
|
|
1042
|
+
"type": "object",
|
|
1043
|
+
"properties": {
|
|
1044
|
+
"pageSize": {
|
|
1045
|
+
"type": "integer",
|
|
1046
|
+
"exclusiveMinimum": 0,
|
|
1047
|
+
"default": 25,
|
|
1048
|
+
"description": "Number of records per page"
|
|
1049
|
+
},
|
|
1050
|
+
"pageSizeOptions": {
|
|
1051
|
+
"type": "array",
|
|
1052
|
+
"items": {
|
|
1053
|
+
"type": "integer",
|
|
1054
|
+
"exclusiveMinimum": 0
|
|
1055
|
+
},
|
|
1056
|
+
"description": "Available page size options"
|
|
1057
|
+
}
|
|
1058
|
+
},
|
|
1059
|
+
"additionalProperties": false,
|
|
1060
|
+
"description": "Pagination configuration"
|
|
1061
|
+
},
|
|
317
1062
|
"kanban": {
|
|
318
1063
|
"type": "object",
|
|
319
1064
|
"properties": {
|
|
@@ -409,6 +1154,143 @@
|
|
|
409
1154
|
],
|
|
410
1155
|
"default": "simple"
|
|
411
1156
|
},
|
|
1157
|
+
"data": {
|
|
1158
|
+
"anyOf": [
|
|
1159
|
+
{
|
|
1160
|
+
"type": "object",
|
|
1161
|
+
"properties": {
|
|
1162
|
+
"provider": {
|
|
1163
|
+
"type": "string",
|
|
1164
|
+
"const": "object"
|
|
1165
|
+
},
|
|
1166
|
+
"object": {
|
|
1167
|
+
"type": "string",
|
|
1168
|
+
"description": "Target object name"
|
|
1169
|
+
}
|
|
1170
|
+
},
|
|
1171
|
+
"required": [
|
|
1172
|
+
"provider",
|
|
1173
|
+
"object"
|
|
1174
|
+
],
|
|
1175
|
+
"additionalProperties": false
|
|
1176
|
+
},
|
|
1177
|
+
{
|
|
1178
|
+
"type": "object",
|
|
1179
|
+
"properties": {
|
|
1180
|
+
"provider": {
|
|
1181
|
+
"type": "string",
|
|
1182
|
+
"const": "api"
|
|
1183
|
+
},
|
|
1184
|
+
"read": {
|
|
1185
|
+
"type": "object",
|
|
1186
|
+
"properties": {
|
|
1187
|
+
"url": {
|
|
1188
|
+
"type": "string",
|
|
1189
|
+
"description": "API endpoint URL"
|
|
1190
|
+
},
|
|
1191
|
+
"method": {
|
|
1192
|
+
"type": "string",
|
|
1193
|
+
"enum": [
|
|
1194
|
+
"GET",
|
|
1195
|
+
"POST",
|
|
1196
|
+
"PUT",
|
|
1197
|
+
"PATCH",
|
|
1198
|
+
"DELETE"
|
|
1199
|
+
],
|
|
1200
|
+
"default": "GET",
|
|
1201
|
+
"description": "HTTP method"
|
|
1202
|
+
},
|
|
1203
|
+
"headers": {
|
|
1204
|
+
"type": "object",
|
|
1205
|
+
"additionalProperties": {
|
|
1206
|
+
"type": "string"
|
|
1207
|
+
},
|
|
1208
|
+
"description": "Custom HTTP headers"
|
|
1209
|
+
},
|
|
1210
|
+
"params": {
|
|
1211
|
+
"type": "object",
|
|
1212
|
+
"additionalProperties": {},
|
|
1213
|
+
"description": "Query parameters"
|
|
1214
|
+
},
|
|
1215
|
+
"body": {
|
|
1216
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
1217
|
+
}
|
|
1218
|
+
},
|
|
1219
|
+
"required": [
|
|
1220
|
+
"url"
|
|
1221
|
+
],
|
|
1222
|
+
"additionalProperties": false,
|
|
1223
|
+
"description": "Configuration for fetching data"
|
|
1224
|
+
},
|
|
1225
|
+
"write": {
|
|
1226
|
+
"type": "object",
|
|
1227
|
+
"properties": {
|
|
1228
|
+
"url": {
|
|
1229
|
+
"type": "string",
|
|
1230
|
+
"description": "API endpoint URL"
|
|
1231
|
+
},
|
|
1232
|
+
"method": {
|
|
1233
|
+
"type": "string",
|
|
1234
|
+
"enum": [
|
|
1235
|
+
"GET",
|
|
1236
|
+
"POST",
|
|
1237
|
+
"PUT",
|
|
1238
|
+
"PATCH",
|
|
1239
|
+
"DELETE"
|
|
1240
|
+
],
|
|
1241
|
+
"default": "GET",
|
|
1242
|
+
"description": "HTTP method"
|
|
1243
|
+
},
|
|
1244
|
+
"headers": {
|
|
1245
|
+
"type": "object",
|
|
1246
|
+
"additionalProperties": {
|
|
1247
|
+
"type": "string"
|
|
1248
|
+
},
|
|
1249
|
+
"description": "Custom HTTP headers"
|
|
1250
|
+
},
|
|
1251
|
+
"params": {
|
|
1252
|
+
"type": "object",
|
|
1253
|
+
"additionalProperties": {},
|
|
1254
|
+
"description": "Query parameters"
|
|
1255
|
+
},
|
|
1256
|
+
"body": {
|
|
1257
|
+
"description": "Request body for POST/PUT/PATCH"
|
|
1258
|
+
}
|
|
1259
|
+
},
|
|
1260
|
+
"required": [
|
|
1261
|
+
"url"
|
|
1262
|
+
],
|
|
1263
|
+
"additionalProperties": false,
|
|
1264
|
+
"description": "Configuration for submitting data (for forms/editable tables)"
|
|
1265
|
+
}
|
|
1266
|
+
},
|
|
1267
|
+
"required": [
|
|
1268
|
+
"provider"
|
|
1269
|
+
],
|
|
1270
|
+
"additionalProperties": false
|
|
1271
|
+
},
|
|
1272
|
+
{
|
|
1273
|
+
"type": "object",
|
|
1274
|
+
"properties": {
|
|
1275
|
+
"provider": {
|
|
1276
|
+
"type": "string",
|
|
1277
|
+
"const": "value"
|
|
1278
|
+
},
|
|
1279
|
+
"items": {
|
|
1280
|
+
"type": "array",
|
|
1281
|
+
"items": {},
|
|
1282
|
+
"description": "Static data array"
|
|
1283
|
+
}
|
|
1284
|
+
},
|
|
1285
|
+
"required": [
|
|
1286
|
+
"provider",
|
|
1287
|
+
"items"
|
|
1288
|
+
],
|
|
1289
|
+
"additionalProperties": false
|
|
1290
|
+
}
|
|
1291
|
+
],
|
|
1292
|
+
"description": "Data source configuration (defaults to \"object\" provider)"
|
|
1293
|
+
},
|
|
412
1294
|
"sections": {
|
|
413
1295
|
"type": "array",
|
|
414
1296
|
"items": {
|
|
@@ -438,7 +1320,66 @@
|
|
|
438
1320
|
"fields": {
|
|
439
1321
|
"type": "array",
|
|
440
1322
|
"items": {
|
|
441
|
-
"
|
|
1323
|
+
"anyOf": [
|
|
1324
|
+
{
|
|
1325
|
+
"type": "string"
|
|
1326
|
+
},
|
|
1327
|
+
{
|
|
1328
|
+
"type": "object",
|
|
1329
|
+
"properties": {
|
|
1330
|
+
"field": {
|
|
1331
|
+
"type": "string",
|
|
1332
|
+
"description": "Field name (snake_case)"
|
|
1333
|
+
},
|
|
1334
|
+
"label": {
|
|
1335
|
+
"type": "string",
|
|
1336
|
+
"description": "Display label override"
|
|
1337
|
+
},
|
|
1338
|
+
"placeholder": {
|
|
1339
|
+
"type": "string",
|
|
1340
|
+
"description": "Placeholder text"
|
|
1341
|
+
},
|
|
1342
|
+
"helpText": {
|
|
1343
|
+
"type": "string",
|
|
1344
|
+
"description": "Help/hint text"
|
|
1345
|
+
},
|
|
1346
|
+
"readonly": {
|
|
1347
|
+
"type": "boolean",
|
|
1348
|
+
"description": "Read-only override"
|
|
1349
|
+
},
|
|
1350
|
+
"required": {
|
|
1351
|
+
"type": "boolean",
|
|
1352
|
+
"description": "Required override"
|
|
1353
|
+
},
|
|
1354
|
+
"hidden": {
|
|
1355
|
+
"type": "boolean",
|
|
1356
|
+
"description": "Hidden override"
|
|
1357
|
+
},
|
|
1358
|
+
"colSpan": {
|
|
1359
|
+
"type": "integer",
|
|
1360
|
+
"minimum": 1,
|
|
1361
|
+
"maximum": 4,
|
|
1362
|
+
"description": "Column span in grid layout (1-4)"
|
|
1363
|
+
},
|
|
1364
|
+
"widget": {
|
|
1365
|
+
"type": "string",
|
|
1366
|
+
"description": "Custom widget/component name"
|
|
1367
|
+
},
|
|
1368
|
+
"dependsOn": {
|
|
1369
|
+
"type": "string",
|
|
1370
|
+
"description": "Parent field name for cascading"
|
|
1371
|
+
},
|
|
1372
|
+
"visibleOn": {
|
|
1373
|
+
"type": "string",
|
|
1374
|
+
"description": "Visibility condition expression"
|
|
1375
|
+
}
|
|
1376
|
+
},
|
|
1377
|
+
"required": [
|
|
1378
|
+
"field"
|
|
1379
|
+
],
|
|
1380
|
+
"additionalProperties": false
|
|
1381
|
+
}
|
|
1382
|
+
]
|
|
442
1383
|
}
|
|
443
1384
|
}
|
|
444
1385
|
},
|
|
@@ -477,7 +1418,66 @@
|
|
|
477
1418
|
"fields": {
|
|
478
1419
|
"type": "array",
|
|
479
1420
|
"items": {
|
|
480
|
-
"
|
|
1421
|
+
"anyOf": [
|
|
1422
|
+
{
|
|
1423
|
+
"type": "string"
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"type": "object",
|
|
1427
|
+
"properties": {
|
|
1428
|
+
"field": {
|
|
1429
|
+
"type": "string",
|
|
1430
|
+
"description": "Field name (snake_case)"
|
|
1431
|
+
},
|
|
1432
|
+
"label": {
|
|
1433
|
+
"type": "string",
|
|
1434
|
+
"description": "Display label override"
|
|
1435
|
+
},
|
|
1436
|
+
"placeholder": {
|
|
1437
|
+
"type": "string",
|
|
1438
|
+
"description": "Placeholder text"
|
|
1439
|
+
},
|
|
1440
|
+
"helpText": {
|
|
1441
|
+
"type": "string",
|
|
1442
|
+
"description": "Help/hint text"
|
|
1443
|
+
},
|
|
1444
|
+
"readonly": {
|
|
1445
|
+
"type": "boolean",
|
|
1446
|
+
"description": "Read-only override"
|
|
1447
|
+
},
|
|
1448
|
+
"required": {
|
|
1449
|
+
"type": "boolean",
|
|
1450
|
+
"description": "Required override"
|
|
1451
|
+
},
|
|
1452
|
+
"hidden": {
|
|
1453
|
+
"type": "boolean",
|
|
1454
|
+
"description": "Hidden override"
|
|
1455
|
+
},
|
|
1456
|
+
"colSpan": {
|
|
1457
|
+
"type": "integer",
|
|
1458
|
+
"minimum": 1,
|
|
1459
|
+
"maximum": 4,
|
|
1460
|
+
"description": "Column span in grid layout (1-4)"
|
|
1461
|
+
},
|
|
1462
|
+
"widget": {
|
|
1463
|
+
"type": "string",
|
|
1464
|
+
"description": "Custom widget/component name"
|
|
1465
|
+
},
|
|
1466
|
+
"dependsOn": {
|
|
1467
|
+
"type": "string",
|
|
1468
|
+
"description": "Parent field name for cascading"
|
|
1469
|
+
},
|
|
1470
|
+
"visibleOn": {
|
|
1471
|
+
"type": "string",
|
|
1472
|
+
"description": "Visibility condition expression"
|
|
1473
|
+
}
|
|
1474
|
+
},
|
|
1475
|
+
"required": [
|
|
1476
|
+
"field"
|
|
1477
|
+
],
|
|
1478
|
+
"additionalProperties": false
|
|
1479
|
+
}
|
|
1480
|
+
]
|
|
481
1481
|
}
|
|
482
1482
|
}
|
|
483
1483
|
},
|