@jskit-ai/jskit-cli 0.2.140 → 0.2.142
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": "@jskit-ai/jskit-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.142",
|
|
4
4
|
"description": "Bundle and package orchestration CLI for JSKIT apps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"test": "node --test"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@jskit-ai/jskit-catalog": "0.1.
|
|
25
|
-
"@jskit-ai/kernel": "0.1.
|
|
26
|
-
"@jskit-ai/shell-web": "0.1.
|
|
24
|
+
"@jskit-ai/jskit-catalog": "0.1.137",
|
|
25
|
+
"@jskit-ai/kernel": "0.1.124",
|
|
26
|
+
"@jskit-ai/shell-web": "0.1.125",
|
|
27
27
|
"@vue/compiler-sfc": "^3.5.29",
|
|
28
28
|
"ts-morph": "^28.0.0",
|
|
29
29
|
"yaml": "^2.8.3"
|
|
@@ -1659,11 +1659,22 @@ function createHealthCommands(ctx = {}) {
|
|
|
1659
1659
|
const crudOwnership = crudOwnershipByTable.get(tableName) || null;
|
|
1660
1660
|
if (crudOwnership) {
|
|
1661
1661
|
const missingRequiredOwnerKinds = subtractStringSet(crudOwnership.requiredOwnerKinds, directOwnerKinds);
|
|
1662
|
+
const unexpectedOwnerKinds = subtractStringSet(directOwnerKinds, crudOwnership.requiredOwnerKinds);
|
|
1662
1663
|
if (missingRequiredOwnerKinds.size > 0) {
|
|
1663
1664
|
issues.push(
|
|
1664
1665
|
`${crudOwnership.providerPath}: [crud-ownership:missing-owner-columns] ownershipFilter "${crudOwnership.ownershipFilter}" requires live table "${tableName}" to carry direct owner column(s) ${formatOwnerColumns(missingRequiredOwnerKinds)}. JSKIT CRUD ownership must be materialized on the row, not recovered through joins.`
|
|
1665
1666
|
);
|
|
1666
1667
|
}
|
|
1668
|
+
if (unexpectedOwnerKinds.size > 0) {
|
|
1669
|
+
issues.push(
|
|
1670
|
+
`${crudOwnership.providerPath}: [crud-ownership:unexpected-owner-columns] ownershipFilter "${crudOwnership.ownershipFilter}" conflicts with reserved owner column(s) ${formatOwnerColumns(unexpectedOwnerKinds)} on live table "${tableName}". The exact direct columns "workspace_id" and "user_id" define JSKIT ownership; change the filter to match, or rename a domain relationship to a specific foreign-key name.`
|
|
1671
|
+
);
|
|
1672
|
+
}
|
|
1673
|
+
|
|
1674
|
+
// Direct workspace_id and user_id columns define this CRUD's ownership, and the checks
|
|
1675
|
+
// above require its filter to agree. Foreign-key reachability through domain relationships
|
|
1676
|
+
// such as recipient_user_id and created_by_user_id does not add another owner.
|
|
1677
|
+
continue;
|
|
1667
1678
|
}
|
|
1668
1679
|
|
|
1669
1680
|
if (inheritedOwnerKinds.size < 1 || allowsAuxiliaryInheritedOwnership) {
|
|
@@ -33,7 +33,7 @@ Cover:
|
|
|
33
33
|
- The role of each surface: app, admin, console, settings, public, workspace, or any app-specific surface from the brief.
|
|
34
34
|
- Global view of the main product areas and navigation destinations.
|
|
35
35
|
- Key domain concepts and data objects, without inventing database schemas unless the brief clearly requires them.
|
|
36
|
-
- Ownership model per persistent entity when it is already clear: public, user, workspace, or workspace_user.
|
|
36
|
+
- Ownership model per persistent entity when it is already clear: public, user, workspace, or workspace_user. Treat only the exact columns `workspace_id` and `user_id` as standard JSKIT ownership, and require the selected ownership filter to match those columns exactly. Treat specific foreign keys such as `recipient_user_id`, `created_by_user_id`, and `assignee_user_id` as domain relationships, not ownership aliases. Never rename a domain relationship to an ownership column to satisfy tooling.
|
|
37
37
|
- Baseline JSKIT package workflows to accept as defaults and any intended overrides.
|
|
38
38
|
- Package install, generator, and custom-code areas at a high level.
|
|
39
39
|
- CRUDs likely to need server ownership, and any narrow exceptions that should be called out later.
|