openxiangda-skill-kit 2.0.0-alpha.126 → 2.0.0-alpha.128
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda-skill-kit",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.128",
|
|
4
4
|
"description": "Validation and deterministic packaging for OpenXiangda 2.0 AI skills.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"README.md"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"openxiangda-devkit-core": "2.0.0-alpha.
|
|
20
|
+
"openxiangda-devkit-core": "2.0.0-alpha.105"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"tsx": "4.23.12",
|
|
@@ -113,15 +113,20 @@ normal authorized role union with that Perspective before capability, field,
|
|
|
113
113
|
row-policy and RLS evaluation. Omit the header for the complete union. Never
|
|
114
114
|
use Perspective to guard writes, workflows or custom actions.
|
|
115
115
|
|
|
116
|
-
`required: true`
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
`required: true` is a logical application rule: generated forms show it as
|
|
117
|
+
required, and the Native Data API rejects omission on create or explicit null
|
|
118
|
+
on create/update. It does not create PostgreSQL `NOT NULL`; every authored
|
|
119
|
+
business column remains physically nullable so fields can be added or made
|
|
120
|
+
required without a historical-data backfill. Older rows may therefore contain
|
|
121
|
+
null when they predate the rule. A field without `access` inherits the resource
|
|
122
|
+
read/create/update capability. Each access array is all-of; `false` is explicit
|
|
123
|
+
deny. The same arrays drive the generated UI and platform field policies.
|
|
120
124
|
|
|
121
125
|
For `uuid` fields, omission never generates a value. Only the resource system
|
|
122
126
|
field `id` is platform-generated. An omitted optional UUID remains `null`; a
|
|
123
|
-
required UUID must be supplied
|
|
124
|
-
database default.
|
|
127
|
+
required UUID must be supplied by a current create request and cannot rely on
|
|
128
|
+
an implicit database default. This is Data API validation, not a physical
|
|
129
|
+
`NOT NULL` constraint.
|
|
125
130
|
|
|
126
131
|
Field types are semantic, not PostgreSQL storage aliases. Use the catalog in the generated `AGENTS.md`: for example `text.short`, `number.integer`, `user.single`, `department.multiple`, `resource-ref.single`, `file`, `address` and `subtable`. The compiler alone chooses storage columns and constraints. Reference fields store JSON display values. For `resource-ref.*`, `resourceCode`, `value`, `label`, optional `description` and optional `snapshot` are convenient historical display data only: the target resource remains authoritative, the platform does not create a foreign key or refresh/check the stored JSON, and business actions that need current target state must query it by `resourceCode` plus `value`. A resource source `labelField` must point to `text.short` or `text.long`; a `serial-number` field can be listed in `searchFields`, `descriptionFields` or `snapshotFields`, but it is not a display label. File limits exist only under `file`; `maxCount` owns the single/multiple bound and `maxSizeMb` owns the per-file size bound. There is no `file.multiple` key.
|
|
127
132
|
|