@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.
Files changed (106) hide show
  1. package/bundle/arcubase-admin.mjs +1238 -16
  2. package/bundle/arcubase.mjs +1238 -16
  3. package/dist/bin/arcubase-admin.js +0 -0
  4. package/dist/bin/arcubase.js +0 -0
  5. package/dist/runtime/command_registry.d.ts +8 -0
  6. package/dist/runtime/command_registry.d.ts.map +1 -1
  7. package/dist/runtime/command_registry.js +35 -0
  8. package/dist/runtime/entity_save_schema.d.ts +15 -0
  9. package/dist/runtime/entity_save_schema.d.ts.map +1 -0
  10. package/dist/runtime/entity_save_schema.js +641 -0
  11. package/dist/runtime/errors.d.ts +11 -0
  12. package/dist/runtime/errors.d.ts.map +1 -1
  13. package/dist/runtime/execute.d.ts.map +1 -1
  14. package/dist/runtime/execute.js +294 -12
  15. package/dist/runtime/upload.d.ts +13 -0
  16. package/dist/runtime/upload.d.ts.map +1 -0
  17. package/dist/runtime/upload.js +148 -0
  18. package/dist/runtime/zod_registry.d.ts +6 -0
  19. package/dist/runtime/zod_registry.d.ts.map +1 -1
  20. package/dist/runtime/zod_registry.js +136 -0
  21. package/dist/tests/command_registry.test.js +5 -0
  22. package/dist/tests/entity_save_schema.test.d.ts +2 -0
  23. package/dist/tests/entity_save_schema.test.d.ts.map +1 -0
  24. package/dist/tests/entity_save_schema.test.js +221 -0
  25. package/dist/tests/execute_validation.test.js +603 -0
  26. package/dist/tests/help.test.js +49 -0
  27. package/dist/tests/upload.test.d.ts +2 -0
  28. package/dist/tests/upload.test.d.ts.map +1 -0
  29. package/dist/tests/upload.test.js +107 -0
  30. package/package.json +1 -1
  31. package/sdk-dist/docs/runtime-reference/README.md +187 -0
  32. package/sdk-dist/docs/runtime-reference/entity-schema/README.md +120 -0
  33. package/sdk-dist/docs/runtime-reference/entity-schema/address.md +34 -0
  34. package/sdk-dist/docs/runtime-reference/entity-schema/boolean.md +37 -0
  35. package/sdk-dist/docs/runtime-reference/entity-schema/button.md +47 -0
  36. package/sdk-dist/docs/runtime-reference/entity-schema/checkbox.md +61 -0
  37. package/sdk-dist/docs/runtime-reference/entity-schema/datasets.md +35 -0
  38. package/sdk-dist/docs/runtime-reference/entity-schema/datetime.md +40 -0
  39. package/sdk-dist/docs/runtime-reference/entity-schema/department.md +33 -0
  40. package/sdk-dist/docs/runtime-reference/entity-schema/departments.md +34 -0
  41. package/sdk-dist/docs/runtime-reference/entity-schema/divider.md +39 -0
  42. package/sdk-dist/docs/runtime-reference/entity-schema/file.md +53 -0
  43. package/sdk-dist/docs/runtime-reference/entity-schema/formula.md +44 -0
  44. package/sdk-dist/docs/runtime-reference/entity-schema/image.md +52 -0
  45. package/sdk-dist/docs/runtime-reference/entity-schema/linkto.md +67 -0
  46. package/sdk-dist/docs/runtime-reference/entity-schema/location.md +32 -0
  47. package/sdk-dist/docs/runtime-reference/entity-schema/lookup.md +41 -0
  48. package/sdk-dist/docs/runtime-reference/entity-schema/member.md +37 -0
  49. package/sdk-dist/docs/runtime-reference/entity-schema/members.md +31 -0
  50. package/sdk-dist/docs/runtime-reference/entity-schema/number.md +70 -0
  51. package/sdk-dist/docs/runtime-reference/entity-schema/query.md +50 -0
  52. package/sdk-dist/docs/runtime-reference/entity-schema/radio.md +53 -0
  53. package/sdk-dist/docs/runtime-reference/entity-schema/relation.md +55 -0
  54. package/sdk-dist/docs/runtime-reference/entity-schema/relationfield.md +38 -0
  55. package/sdk-dist/docs/runtime-reference/entity-schema/rollup.md +54 -0
  56. package/sdk-dist/docs/runtime-reference/entity-schema/select.md +63 -0
  57. package/sdk-dist/docs/runtime-reference/entity-schema/selects.md +51 -0
  58. package/sdk-dist/docs/runtime-reference/entity-schema/serialnumber.md +48 -0
  59. package/sdk-dist/docs/runtime-reference/entity-schema/signature.md +31 -0
  60. package/sdk-dist/docs/runtime-reference/entity-schema/status.md +70 -0
  61. package/sdk-dist/docs/runtime-reference/entity-schema/subform.md +74 -0
  62. package/sdk-dist/docs/runtime-reference/entity-schema/tags.md +19 -0
  63. package/sdk-dist/docs/runtime-reference/entity-schema/text.md +76 -0
  64. package/sdk-dist/docs/runtime-reference/entity-schema/textarea.md +47 -0
  65. package/sdk-dist/docs/runtime-reference/entity-schema/workflow_status.md +17 -0
  66. package/sdk-dist/docs/runtime-reference/entity-schema.md +197 -0
  67. package/sdk-dist/docs/runtime-reference/examples/README.md +51 -0
  68. package/sdk-dist/docs/runtime-reference/examples/crm-01/README.md +20 -0
  69. package/sdk-dist/docs/runtime-reference/examples/mes-01/README.md +21 -0
  70. package/sdk-dist/docs/runtime-reference/examples/oms-01/README.md +183 -0
  71. package/sdk-dist/docs/runtime-reference/examples/oms-01/app-overview.md +79 -0
  72. package/sdk-dist/docs/runtime-reference/examples/oms-01/create-app.json +3 -0
  73. package/sdk-dist/docs/runtime-reference/examples/oms-01/goods-receipt.create-entity.json +3 -0
  74. package/sdk-dist/docs/runtime-reference/examples/oms-01/goods-receipt.schema.json +159 -0
  75. package/sdk-dist/docs/runtime-reference/examples/oms-01/item-master.create-entity.json +3 -0
  76. package/sdk-dist/docs/runtime-reference/examples/oms-01/item-master.schema.json +179 -0
  77. package/sdk-dist/docs/runtime-reference/examples/oms-01/picking-list.create-entity.json +3 -0
  78. package/sdk-dist/docs/runtime-reference/examples/oms-01/picking-list.schema.json +168 -0
  79. package/sdk-dist/docs/runtime-reference/examples/oms-01/purchase-order.create-entity.json +3 -0
  80. package/sdk-dist/docs/runtime-reference/examples/oms-01/purchase-order.schema.json +417 -0
  81. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.bulk-update.json +22 -0
  82. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.create-entity.json +3 -0
  83. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.query.json +10 -0
  84. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.row.insert.json +28 -0
  85. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.schema.json +398 -0
  86. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.selection.condition.json +13 -0
  87. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.selection.ids.json +7 -0
  88. package/sdk-dist/docs/runtime-reference/examples/oms-01/stock-issue.create-entity.json +3 -0
  89. package/sdk-dist/docs/runtime-reference/examples/oms-01/stock-issue.schema.json +137 -0
  90. package/sdk-dist/docs/runtime-reference/examples/wms-01/README.md +21 -0
  91. package/sdk-dist/docs/runtime-reference/row-crud.md +188 -0
  92. package/sdk-dist/docs/runtime-reference/search-and-bulk-actions.md +494 -0
  93. package/sdk-dist/docs/runtime-reference/table-lifecycle.md +135 -0
  94. package/sdk-dist/docs/runtime-reference/uploads.md +106 -0
  95. package/sdk-dist/docs/runtime-reference/workflow/README.md +19 -0
  96. package/src/runtime/command_registry.ts +47 -0
  97. package/src/runtime/entity_save_schema.ts +708 -0
  98. package/src/runtime/errors.ts +12 -0
  99. package/src/runtime/execute.ts +367 -12
  100. package/src/runtime/upload.ts +196 -0
  101. package/src/runtime/zod_registry.ts +156 -0
  102. package/src/tests/command_registry.test.ts +6 -0
  103. package/src/tests/entity_save_schema.test.ts +236 -0
  104. package/src/tests/execute_validation.test.ts +781 -0
  105. package/src/tests/help.test.ts +60 -0
  106. 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