@carthooks/arcubase-cli 0.1.2 → 0.1.4
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/bundle/arcubase-admin.mjs +1238 -16
- package/bundle/arcubase.mjs +1238 -16
- package/dist/bin/arcubase-admin.js +0 -0
- package/dist/bin/arcubase.js +0 -0
- package/dist/runtime/command_registry.d.ts +8 -0
- package/dist/runtime/command_registry.d.ts.map +1 -1
- package/dist/runtime/command_registry.js +35 -0
- package/dist/runtime/entity_save_schema.d.ts +15 -0
- package/dist/runtime/entity_save_schema.d.ts.map +1 -0
- package/dist/runtime/entity_save_schema.js +641 -0
- package/dist/runtime/errors.d.ts +11 -0
- package/dist/runtime/errors.d.ts.map +1 -1
- package/dist/runtime/execute.d.ts.map +1 -1
- package/dist/runtime/execute.js +294 -12
- package/dist/runtime/upload.d.ts +13 -0
- package/dist/runtime/upload.d.ts.map +1 -0
- package/dist/runtime/upload.js +148 -0
- package/dist/runtime/zod_registry.d.ts +6 -0
- package/dist/runtime/zod_registry.d.ts.map +1 -1
- package/dist/runtime/zod_registry.js +136 -0
- package/dist/tests/command_registry.test.js +5 -0
- package/dist/tests/entity_save_schema.test.d.ts +2 -0
- package/dist/tests/entity_save_schema.test.d.ts.map +1 -0
- package/dist/tests/entity_save_schema.test.js +221 -0
- package/dist/tests/execute_validation.test.js +603 -0
- package/dist/tests/help.test.js +49 -0
- package/dist/tests/upload.test.d.ts +2 -0
- package/dist/tests/upload.test.d.ts.map +1 -0
- package/dist/tests/upload.test.js +107 -0
- package/package.json +1 -1
- package/sdk-dist/docs/runtime-reference/README.md +187 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/README.md +120 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/address.md +34 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/boolean.md +37 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/button.md +47 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/checkbox.md +61 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/datasets.md +35 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/datetime.md +40 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/department.md +33 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/departments.md +34 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/divider.md +39 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/file.md +53 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/formula.md +44 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/image.md +52 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/linkto.md +67 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/location.md +32 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/lookup.md +41 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/member.md +37 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/members.md +31 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/number.md +70 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/query.md +50 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/radio.md +53 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/relation.md +55 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/relationfield.md +38 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/rollup.md +54 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/select.md +63 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/selects.md +51 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/serialnumber.md +48 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/signature.md +31 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/status.md +70 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/subform.md +74 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/tags.md +19 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/text.md +76 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/textarea.md +47 -0
- package/sdk-dist/docs/runtime-reference/entity-schema/workflow_status.md +17 -0
- package/sdk-dist/docs/runtime-reference/entity-schema.md +197 -0
- package/sdk-dist/docs/runtime-reference/examples/README.md +51 -0
- package/sdk-dist/docs/runtime-reference/examples/crm-01/README.md +20 -0
- package/sdk-dist/docs/runtime-reference/examples/mes-01/README.md +21 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/README.md +183 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/app-overview.md +79 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/create-app.json +3 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/goods-receipt.create-entity.json +3 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/goods-receipt.schema.json +159 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/item-master.create-entity.json +3 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/item-master.schema.json +179 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/picking-list.create-entity.json +3 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/picking-list.schema.json +168 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/purchase-order.create-entity.json +3 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/purchase-order.schema.json +417 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.bulk-update.json +22 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.create-entity.json +3 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.query.json +10 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.row.insert.json +28 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.schema.json +398 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.selection.condition.json +13 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.selection.ids.json +7 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/stock-issue.create-entity.json +3 -0
- package/sdk-dist/docs/runtime-reference/examples/oms-01/stock-issue.schema.json +137 -0
- package/sdk-dist/docs/runtime-reference/examples/wms-01/README.md +21 -0
- package/sdk-dist/docs/runtime-reference/row-crud.md +188 -0
- package/sdk-dist/docs/runtime-reference/search-and-bulk-actions.md +494 -0
- package/sdk-dist/docs/runtime-reference/table-lifecycle.md +135 -0
- package/sdk-dist/docs/runtime-reference/uploads.md +106 -0
- package/sdk-dist/docs/runtime-reference/workflow/README.md +19 -0
- package/src/runtime/command_registry.ts +47 -0
- package/src/runtime/entity_save_schema.ts +708 -0
- package/src/runtime/errors.ts +12 -0
- package/src/runtime/execute.ts +367 -12
- package/src/runtime/upload.ts +196 -0
- package/src/runtime/zod_registry.ts +156 -0
- package/src/tests/command_registry.test.ts +6 -0
- package/src/tests/entity_save_schema.test.ts +236 -0
- package/src/tests/execute_validation.test.ts +781 -0
- package/src/tests/help.test.ts +60 -0
- package/src/tests/upload.test.ts +133 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# relationfield
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Derived field that reads a target value through an existing relation field.
|
|
6
|
+
|
|
7
|
+
## Minimal shape
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"type": "relationfield",
|
|
12
|
+
"options": {
|
|
13
|
+
"relation": {
|
|
14
|
+
"app_id": 1,
|
|
15
|
+
"entity_id": 2,
|
|
16
|
+
"type": "entity"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Available options
|
|
23
|
+
|
|
24
|
+
- `relation.app_id`
|
|
25
|
+
- `relation.entity_id`
|
|
26
|
+
- `relation.type`
|
|
27
|
+
- `relation.show_fields`
|
|
28
|
+
- `relation.queryFields`
|
|
29
|
+
- `relation.condition`
|
|
30
|
+
- `relation.sorts`
|
|
31
|
+
- `relation.subform_id`
|
|
32
|
+
|
|
33
|
+
## Constraints
|
|
34
|
+
|
|
35
|
+
- `options.relation` is required
|
|
36
|
+
- `relation.app_id` and `relation.entity_id` are required
|
|
37
|
+
- use `relation.type = "entity"` in the current direct-write path
|
|
38
|
+
- do not send empty `options`
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# rollup
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Aggregation field built on top of a `linkto` field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `group: advanced`
|
|
10
|
+
- `readonly: true`
|
|
11
|
+
- `notImportAble: true`
|
|
12
|
+
|
|
13
|
+
## Minimal shape
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"type": "rollup",
|
|
18
|
+
"options": {
|
|
19
|
+
"relation": {
|
|
20
|
+
"local_linkto_field_id": 1012,
|
|
21
|
+
"target_field_id": 2004,
|
|
22
|
+
"target_field_type": "number"
|
|
23
|
+
},
|
|
24
|
+
"aggregation_formula": {
|
|
25
|
+
"code": "COUNT([[Value]])",
|
|
26
|
+
"jsonlogic": {
|
|
27
|
+
"COUNT": [
|
|
28
|
+
{ "value": "Value" }
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Common options
|
|
37
|
+
|
|
38
|
+
- `relation.local_linkto_field_id`
|
|
39
|
+
- `relation.target_field_id`
|
|
40
|
+
- `relation.target_field_type`
|
|
41
|
+
- `aggregation_formula.code`
|
|
42
|
+
- `aggregation_formula.jsonlogic`
|
|
43
|
+
|
|
44
|
+
## Constraints
|
|
45
|
+
|
|
46
|
+
- `local_linkto_field_id` must point to a real `linkto`
|
|
47
|
+
- `target_field_id` is required
|
|
48
|
+
- `target_field_type` should be explicit
|
|
49
|
+
- `aggregation_formula` must exist
|
|
50
|
+
- keep `aggregation_formula.code` and `aggregation_formula.jsonlogic` aligned
|
|
51
|
+
- common aggregation formulas include `COUNT([[Value]])`, `sum([[Value]])`, `AVG([[Value]])`, `MAX([[Value]])`, and `MIN([[Value]])`
|
|
52
|
+
- in the current direct-write path, keep only these top-level `options` keys:
|
|
53
|
+
- `relation`
|
|
54
|
+
- `aggregation_formula`
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# select
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Single-select dropdown field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `group: normal`
|
|
10
|
+
- `operator: text`
|
|
11
|
+
- `switchgroup: text`
|
|
12
|
+
- `useFormula: true`
|
|
13
|
+
- `useRelation: true`
|
|
14
|
+
- `inlineEdtiable: true`
|
|
15
|
+
- `events: ['change']`
|
|
16
|
+
|
|
17
|
+
## Minimal shape
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"type": "select",
|
|
22
|
+
"options": {
|
|
23
|
+
"horizontal": false,
|
|
24
|
+
"numberMax": "",
|
|
25
|
+
"numberMin": "",
|
|
26
|
+
"numberRange": false,
|
|
27
|
+
"repeatRemind": "This value already exists and duplicate submission is not allowed",
|
|
28
|
+
"options": {
|
|
29
|
+
"mode": "custom",
|
|
30
|
+
"colorful": false,
|
|
31
|
+
"items": [
|
|
32
|
+
{ "key": 1, "value": "Option 1" }
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Common options
|
|
40
|
+
|
|
41
|
+
- `horizontal`
|
|
42
|
+
- `placeholder`
|
|
43
|
+
- `numberMax`
|
|
44
|
+
- `numberMin`
|
|
45
|
+
- `numberRange`
|
|
46
|
+
- `repeatRemind`
|
|
47
|
+
- `hideInList`
|
|
48
|
+
- `width`
|
|
49
|
+
- `options.items`
|
|
50
|
+
- `options.mode`
|
|
51
|
+
- `options.colorful`
|
|
52
|
+
- `options.relation`
|
|
53
|
+
- `options.relation_filter`
|
|
54
|
+
- `options.international`
|
|
55
|
+
- `options.has_other`
|
|
56
|
+
- `options.other_label`
|
|
57
|
+
|
|
58
|
+
## Constraints
|
|
59
|
+
|
|
60
|
+
- `options.items` at least one item
|
|
61
|
+
- `options.mode` common values are `custom` or `relation`
|
|
62
|
+
- when `options.has_other = true`, also provide `options.other_label`
|
|
63
|
+
- keep `options.options.items[*].key` stable once the field is live
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# selects
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Multi-select dropdown field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `group: normal`
|
|
10
|
+
- `useFormula: true`
|
|
11
|
+
- `useRelation: true`
|
|
12
|
+
- `inlineEdtiable: true`
|
|
13
|
+
- `events: ['change']`
|
|
14
|
+
|
|
15
|
+
## Minimal shape
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"type": "selects",
|
|
20
|
+
"options": {
|
|
21
|
+
"placeholder": "",
|
|
22
|
+
"lengthLimit": false,
|
|
23
|
+
"lengthMin": 0,
|
|
24
|
+
"lengthMax": 10,
|
|
25
|
+
"options": {
|
|
26
|
+
"mode": "custom",
|
|
27
|
+
"colorful": false,
|
|
28
|
+
"items": [
|
|
29
|
+
{ "key": 1, "value": "Option 1" }
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Common options
|
|
37
|
+
|
|
38
|
+
- `placeholder`
|
|
39
|
+
- `lengthLimit`
|
|
40
|
+
- `lengthMin`
|
|
41
|
+
- `lengthMax`
|
|
42
|
+
- `options.items`
|
|
43
|
+
- `options.mode`
|
|
44
|
+
- `options.colorful`
|
|
45
|
+
- `options.relation`
|
|
46
|
+
- `options.relation_filter`
|
|
47
|
+
- `options.international`
|
|
48
|
+
|
|
49
|
+
## Constraints
|
|
50
|
+
|
|
51
|
+
- `options.items` at least one item
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# serialnumber
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Serial number field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `group: advanced`
|
|
10
|
+
- `operator: text`
|
|
11
|
+
- `switchgroup: text`
|
|
12
|
+
- `inlineEdtiable: true`
|
|
13
|
+
- `oncopy` clears the copied value
|
|
14
|
+
|
|
15
|
+
## Minimal shape
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"type": "serialnumber",
|
|
20
|
+
"options": {
|
|
21
|
+
"parts": [
|
|
22
|
+
{
|
|
23
|
+
"mode": "buildin",
|
|
24
|
+
"type": "serial",
|
|
25
|
+
"options": {
|
|
26
|
+
"length": 6,
|
|
27
|
+
"lenfixed": true,
|
|
28
|
+
"random": false,
|
|
29
|
+
"reset": "no"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Common parts
|
|
38
|
+
|
|
39
|
+
- `buildin/string`
|
|
40
|
+
- `buildin/date`
|
|
41
|
+
- `buildin/serial`
|
|
42
|
+
- `field`
|
|
43
|
+
|
|
44
|
+
## Constraints
|
|
45
|
+
|
|
46
|
+
- `parts` at least one item
|
|
47
|
+
- `buildin/date` requires `format` or `perdefinedFormat`
|
|
48
|
+
- `buildin/serial` requires `length`
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# signature
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Signature field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `notImportAble: true`
|
|
10
|
+
- `notExportAble: true`
|
|
11
|
+
- `events: ['change']`
|
|
12
|
+
|
|
13
|
+
## Minimal shape
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"type": "signature",
|
|
18
|
+
"options": {
|
|
19
|
+
"placeholder": ""
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Common options
|
|
25
|
+
|
|
26
|
+
- `placeholder`
|
|
27
|
+
|
|
28
|
+
## Constraints
|
|
29
|
+
|
|
30
|
+
- `required` is controlled by generic field flags
|
|
31
|
+
- In the current direct-write pathyou may keep only an empty `placeholder`
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# status
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Status field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `group: normal`
|
|
10
|
+
- `operator: enum`
|
|
11
|
+
- `switchgroup: enum`
|
|
12
|
+
- `useFormula: true`
|
|
13
|
+
- `useRelation: true`
|
|
14
|
+
- `inlineEdtiable: true`
|
|
15
|
+
- `events: ['change']`
|
|
16
|
+
|
|
17
|
+
## Minimal shape
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"type": "status",
|
|
22
|
+
"options": {
|
|
23
|
+
"horizontal": false,
|
|
24
|
+
"numberMax": "",
|
|
25
|
+
"numberMin": "",
|
|
26
|
+
"numberRange": false,
|
|
27
|
+
"repeatRemind": "This value already exists and duplicate submission is not allowed",
|
|
28
|
+
"options": {
|
|
29
|
+
"mode": "custom",
|
|
30
|
+
"colorful": false,
|
|
31
|
+
"items": [
|
|
32
|
+
{ "key": 1, "code": 1, "value": "Pending" }
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Common options
|
|
40
|
+
|
|
41
|
+
- `horizontal`
|
|
42
|
+
- `numberMax`
|
|
43
|
+
- `numberMin`
|
|
44
|
+
- `numberRange`
|
|
45
|
+
- `repeatRemind`
|
|
46
|
+
- `hideInList`
|
|
47
|
+
- `options.items`
|
|
48
|
+
- `options.mode`
|
|
49
|
+
- `options.colorful`
|
|
50
|
+
|
|
51
|
+
## Constraints
|
|
52
|
+
|
|
53
|
+
- each item must contain at least `code` and `value`
|
|
54
|
+
- keep `code` stable once the field is live
|
|
55
|
+
- row values should use the status `code`
|
|
56
|
+
|
|
57
|
+
## Save-ready reminder
|
|
58
|
+
|
|
59
|
+
For `arcubase-admin entity admin-save-entity`, keep the full base `FieldVO`.
|
|
60
|
+
|
|
61
|
+
The field-specific part only covers `options`. The saved field still needs:
|
|
62
|
+
|
|
63
|
+
- `id`
|
|
64
|
+
- `label`
|
|
65
|
+
- `required`
|
|
66
|
+
- `editable`
|
|
67
|
+
- `visible`
|
|
68
|
+
- `number_decimal`
|
|
69
|
+
- `key`
|
|
70
|
+
- `children: null`
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# subform
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Subform field.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Frontend capability flags
|
|
10
|
+
|
|
11
|
+
- `group: advanced`
|
|
12
|
+
- `useFormula: true`
|
|
13
|
+
- `useRelation: true`
|
|
14
|
+
|
|
15
|
+
## Minimal shape
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"type": "subform",
|
|
20
|
+
"options": {},
|
|
21
|
+
"children": []
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Available options
|
|
26
|
+
|
|
27
|
+
- `lengthLimit`
|
|
28
|
+
- `lengthMin`
|
|
29
|
+
- `lengthMax`
|
|
30
|
+
- `new_record_btn`
|
|
31
|
+
- `hideInList`
|
|
32
|
+
|
|
33
|
+
## Constraints
|
|
34
|
+
|
|
35
|
+
- `children: FieldVO[]`
|
|
36
|
+
- Child ids also consume the global field-id space
|
|
37
|
+
- Do not write `layout` separately in the current saved payload
|
|
38
|
+
- The display order of child fields is the order of `children[]`
|
|
39
|
+
- when `new_record_btn` is not configured, prefer `0`
|
|
40
|
+
- when `lengthLimit=true`, it is recommended to provide both `lengthMin` and `lengthMax`
|
|
41
|
+
|
|
42
|
+
## Row payload
|
|
43
|
+
|
|
44
|
+
For row commands such as:
|
|
45
|
+
|
|
46
|
+
- `arcubase workflow insert-entity`
|
|
47
|
+
- `arcubase workflow update-entity-row`
|
|
48
|
+
|
|
49
|
+
the current writable row shape is:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
[
|
|
53
|
+
{
|
|
54
|
+
"id": 0,
|
|
55
|
+
"fields": {
|
|
56
|
+
"1007": "SKU-001",
|
|
57
|
+
"1008": 2
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Use `id: 0` for a new child row.
|
|
64
|
+
|
|
65
|
+
Do not use this incorrect shape:
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
[
|
|
69
|
+
{
|
|
70
|
+
"1007": "SKU-001",
|
|
71
|
+
"1008": 2
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# tags
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
System tags field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `operator: $in`
|
|
10
|
+
- `useFormula: false`
|
|
11
|
+
- `useRelation: false`
|
|
12
|
+
- `notImportAble: true`
|
|
13
|
+
- `notExportAble: true`
|
|
14
|
+
- `readonly: true`
|
|
15
|
+
|
|
16
|
+
## Usage rules
|
|
17
|
+
|
|
18
|
+
- Do not manually add `tags` when creating a normal business schema
|
|
19
|
+
- This is a system-managed field and is not part of normal manual schema modeling
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# text
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Single-line text field.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Frontend capability flags
|
|
10
|
+
|
|
11
|
+
- `group: normal`
|
|
12
|
+
- `uniqueAble: true`
|
|
13
|
+
- `useFormula: true`
|
|
14
|
+
- `useRelation: true`
|
|
15
|
+
- `switchgroup: text`
|
|
16
|
+
- `inlineEdtiable: true`
|
|
17
|
+
- `events: ['change']`
|
|
18
|
+
|
|
19
|
+
## Minimal shape
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"type": "text",
|
|
24
|
+
"options": {
|
|
25
|
+
"placeholder": "",
|
|
26
|
+
"type": "text",
|
|
27
|
+
"lengthLimit": false,
|
|
28
|
+
"lengthMin": 0,
|
|
29
|
+
"lengthMax": 255
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Available options
|
|
35
|
+
|
|
36
|
+
- `placeholder`
|
|
37
|
+
- `type`
|
|
38
|
+
- `lengthLimit`
|
|
39
|
+
- `lengthMin`
|
|
40
|
+
- `lengthMax`
|
|
41
|
+
- `link`
|
|
42
|
+
|
|
43
|
+
## Constraints
|
|
44
|
+
|
|
45
|
+
- it can participate in formula and relation conditions
|
|
46
|
+
- it may be marked `unique`
|
|
47
|
+
- when `lengthLimit=true`, it is recommended to provide both `lengthMin` and `lengthMax`
|
|
48
|
+
- in the current direct-write path, prefer the default `"text"` type
|
|
49
|
+
|
|
50
|
+
## Save-ready reminder
|
|
51
|
+
|
|
52
|
+
For `arcubase-admin entity admin-save-entity`, do not send only `type + options`.
|
|
53
|
+
|
|
54
|
+
Wrap this field-specific shape in the full base `FieldVO` described in `entity-schema.md`, including:
|
|
55
|
+
|
|
56
|
+
- `id`
|
|
57
|
+
- `label`
|
|
58
|
+
- `required`
|
|
59
|
+
- `unique`
|
|
60
|
+
- `editable`
|
|
61
|
+
- `visible`
|
|
62
|
+
- `show_label`
|
|
63
|
+
- `scannable`
|
|
64
|
+
- `default_value_mode`
|
|
65
|
+
- `description`
|
|
66
|
+
- `value`
|
|
67
|
+
- `number_decimal`
|
|
68
|
+
- `depends`
|
|
69
|
+
- `key`
|
|
70
|
+
- `code_index`
|
|
71
|
+
- `transfers`
|
|
72
|
+
- `children`
|
|
73
|
+
|
|
74
|
+
## Common mistakes
|
|
75
|
+
|
|
76
|
+
- `lengthLimit=true` but `lengthMax` is missing
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# textarea
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Multi-line text field.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Frontend capability flags
|
|
10
|
+
|
|
11
|
+
- `group: normal`
|
|
12
|
+
- `useFormula: true`
|
|
13
|
+
- `useRelation: true`
|
|
14
|
+
- `hideInList: true`
|
|
15
|
+
- `inlineEdtiable: false`
|
|
16
|
+
- `events: ['change']`
|
|
17
|
+
|
|
18
|
+
## Minimal shape
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"type": "textarea",
|
|
23
|
+
"options": {
|
|
24
|
+
"placeholder": "",
|
|
25
|
+
"html": false,
|
|
26
|
+
"size": "default",
|
|
27
|
+
"lengthLimit": false,
|
|
28
|
+
"lengthMin": 0,
|
|
29
|
+
"lengthMax": 2000
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Available options
|
|
35
|
+
|
|
36
|
+
- `placeholder`
|
|
37
|
+
- `html`
|
|
38
|
+
- `size`
|
|
39
|
+
- `lengthLimit`
|
|
40
|
+
- `lengthMin`
|
|
41
|
+
- `lengthMax`
|
|
42
|
+
|
|
43
|
+
## Constraints
|
|
44
|
+
|
|
45
|
+
- `placeholder` matters only when `html=false`
|
|
46
|
+
- when `lengthLimit=true`, it is recommended to provide both `lengthMin` and `lengthMax`
|
|
47
|
+
- keep `size` within the values returned by the current editor; do not invent extra enum values
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# workflow_status
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Workflow system status field.
|
|
6
|
+
|
|
7
|
+
## Frontend capability flags
|
|
8
|
+
|
|
9
|
+
- `useFormula: false`
|
|
10
|
+
- `useRelation: false`
|
|
11
|
+
- `notImportAble: true`
|
|
12
|
+
- `notExportAble: true`
|
|
13
|
+
|
|
14
|
+
## Usage rules
|
|
15
|
+
|
|
16
|
+
- Do not manually add `workflow_status` when creating a normal business schema
|
|
17
|
+
- This is a system-managed field and is not part of normal manual schema modeling
|