feat(saas): coordinate tenant deployment with fenced recovery

This commit is contained in:
2026-09-11 19:37:57 +08:00
parent 3059e37a2e
commit cd4ac54da4
6 changed files with 265 additions and 50 deletions

View File

@@ -1,8 +1,8 @@
{ {
"moduleCode": "demo", "moduleCode": "demo",
"candidateVersion": "1.0.9-rc.9", "candidateVersion": "1.0.10-rc.10",
"buildRevision": 9, "buildRevision": 10,
"buildChecksum": "0f974905c1f29b5e4f9a001de3d704c7282cfd2a92fd456511d9b364c0277180", "buildChecksum": "e4556add96ae3edd54c453115fb677f52d7f9eccb2232093e13f78fb92bed762",
"schemaInputChecksum": "8a55cecb643f802ef0f39ade2f31fe8313ad437d72d12b64525c0b1a6892813d", "schemaInputChecksum": "5a47ef42d5af4736ae307150625beb1cea177c191c30864747f3a4a66f9aad23",
"branchName": "release/1.0.9-rc.9" "branchName": "release/1.0.10-rc.10"
} }

View File

@@ -8,6 +8,7 @@ import {
import type { SaasCrudAfterChange, SaasCrudBeforeChange, SaasEventEnvelope } from '@cool-midway/module-runtime'; import type { SaasCrudAfterChange, SaasCrudBeforeChange, SaasEventEnvelope } from '@cool-midway/module-runtime';
export type GoodsAddInput = { export type GoodsAddInput = {
description?: string | null;
price: string; price: string;
status?: number; status?: number;
stock?: number; stock?: number;
@@ -15,6 +16,7 @@ export type GoodsAddInput = {
}; };
export type GoodsAddOutput = { export type GoodsAddOutput = {
description?: string | null;
id: string; id: string;
price: string; price: string;
status: number; status: number;
@@ -43,6 +45,7 @@ export type GoodsInfoInput = {
}; };
export type GoodsInfoOutput = { export type GoodsInfoOutput = {
description?: string | null;
id: string; id: string;
price: string; price: string;
status: number; status: number;
@@ -66,13 +69,14 @@ export type GoodsListInput = {
}; };
}; };
export type GoodsListOutput = { export type GoodsListOutput = ({
description?: string | null;
id: string; id: string;
price: string; price: string;
status: number; status: number;
stock: number; stock: number;
title: string; title: string;
}[]; })[];
export type GoodsPageInput = { export type GoodsPageInput = {
keyword?: string; keyword?: string;
@@ -92,13 +96,14 @@ export type GoodsPageInput = {
}; };
export type GoodsPageOutput = { export type GoodsPageOutput = {
list: { list: ({
description?: string | null;
id: string; id: string;
price: string; price: string;
status: number; status: number;
stock: number; stock: number;
title: string; title: string;
}[]; })[];
pagination: { pagination: {
page: number; page: number;
size: number; size: number;
@@ -128,6 +133,7 @@ export type GoodsReserveStockOutput = {
}; };
export type GoodsUpdateInput = { export type GoodsUpdateInput = {
description?: string | null;
id: string; id: string;
price?: string; price?: string;
status?: number; status?: number;
@@ -192,6 +198,13 @@ export const Actions = {
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -199,7 +212,7 @@ export const Actions = {
"price" "price"
] ]
}, },
"inputChecksum": "c2984884419729416e6cd81e4cddc6d82486b6dde2d9de0ca17533f69f55816a", "inputChecksum": "1631b9abe9afce3e828787e355f4c380fc3d6210f58260797109014763bddab7",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -221,6 +234,13 @@ export const Actions = {
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -231,7 +251,7 @@ export const Actions = {
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:add" "permission": "demo:goods:add"
@@ -240,6 +260,7 @@ export const Actions = {
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -456,6 +477,13 @@ export const Actions = {
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -466,7 +494,7 @@ export const Actions = {
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:info" "permission": "demo:goods:info"
@@ -475,6 +503,7 @@ export const Actions = {
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -587,6 +616,13 @@ export const Actions = {
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -598,7 +634,7 @@ export const Actions = {
] ]
} }
}, },
"outputChecksum": "2182ab26245d80a9a40216cce7cadbe8217ea12813f1cf536b7a59ba0a4ed4ae", "outputChecksum": "909ff0a80769ea17a9a6159097c45c5097286e53f5010a514491df4d1f177518",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:list" "permission": "demo:goods:list"
@@ -607,6 +643,7 @@ export const Actions = {
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -727,6 +764,13 @@ export const Actions = {
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -768,7 +812,7 @@ export const Actions = {
"pagination" "pagination"
] ]
}, },
"outputChecksum": "15ee81575d900276aaa2437afa5ee6f41321e5b00ab58706322e5d5c0809bf8d", "outputChecksum": "476124b6a81b38277a80b1f773dffad01acee546c6140689abea6532d4216d2f",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:page" "permission": "demo:goods:page"
@@ -777,6 +821,7 @@ export const Actions = {
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -964,6 +1009,13 @@ export const Actions = {
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -971,7 +1023,7 @@ export const Actions = {
], ],
"minProperties": 2 "minProperties": 2
}, },
"inputChecksum": "ced49f501c83dd1dce9725c913a1761566828004c851779a5db85ddd2bb9123c", "inputChecksum": "103a179289c7ad50a87b38efeb58b281ee2cc03c3dabbe20814e26f2b804cee8",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -994,6 +1046,7 @@ export const Actions = {
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -1044,7 +1097,7 @@ export const Crud = {
moduleCode: "demo", moduleCode: "demo",
tableCode: "goods", tableCode: "goods",
operations: ["add","delete","update","info","list","page"], operations: ["add","delete","update","info","list","page"],
descriptorChecksum: "22211efee07c5c1aada51d508d9c053e0d7388ad6fc0da12c95a4d1de2e3ca53", descriptorChecksum: "57f429f54ea377c92d648e4ffcc92611cbc288f227790cc1ff386f083bb7ce29",
actions: { actions: {
add: Actions.GoodsAdd, add: Actions.GoodsAdd,
delete: Actions.GoodsDelete, delete: Actions.GoodsDelete,

View File

@@ -12,15 +12,16 @@ export interface GoodsRow extends Record<string, unknown> {
price: string; price: string;
stock: number; stock: number;
status: number; status: number;
description?: string | null;
} }
export class Goods extends SaasTableModel<GoodsRow> { export class Goods extends SaasTableModel<GoodsRow> {
static readonly definition = defineSaasTableModel({ static readonly definition = defineSaasTableModel({
"kind": "table", "kind": "table",
"moduleCode": "demo", "moduleCode": "demo",
"revision": 9, "revision": 10,
"schemaVersion": 9, "schemaVersion": 10,
"schemaInputChecksum": "8a55cecb643f802ef0f39ade2f31fe8313ad437d72d12b64525c0b1a6892813d", "schemaInputChecksum": "5a47ef42d5af4736ae307150625beb1cea177c191c30864747f3a4a66f9aad23",
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
{ {
@@ -72,6 +73,16 @@ export class Goods extends SaasTableModel<GoodsRow> {
"writable": true, "writable": true,
"filterable": true, "filterable": true,
"sortable": true "sortable": true
},
{
"code": "description",
"type": "varchar",
"nullable": true,
"primary": false,
"readable": true,
"writable": true,
"filterable": false,
"sortable": false
} }
] ]
}); });

View File

@@ -4,9 +4,9 @@ import { defineGeneratedSaasModule } from '@cool-midway/module-runtime';
export const GeneratedSaasModule = defineGeneratedSaasModule({ export const GeneratedSaasModule = defineGeneratedSaasModule({
"formatVersion": 2, "formatVersion": 2,
"moduleCode": "demo", "moduleCode": "demo",
"revision": 9, "revision": 10,
"schemaVersion": 9, "schemaVersion": 10,
"schemaInputChecksum": "8a55cecb643f802ef0f39ade2f31fe8313ad437d72d12b64525c0b1a6892813d", "schemaInputChecksum": "5a47ef42d5af4736ae307150625beb1cea177c191c30864747f3a4a66f9aad23",
"runtimeContractChecksum": "c1327810dd08dfd0cc1afeee99d7e9707fe14595272a3aa92ee13fc1d54aa0e5", "runtimeContractChecksum": "9ec90874dd2f0087423106ecffa0c17c9aa4362c597eca9eef9f25326b556c1e",
"implementationManifestChecksum": "d18964a3d40e3c9a65d83996ca3141a56043986c395f5d4cac57c60aa72f4236" "implementationManifestChecksum": "d18964a3d40e3c9a65d83996ca3141a56043986c395f5d4cac57c60aa72f4236"
}); });

View File

@@ -1,11 +1,11 @@
{ {
"manifestVersion": 1, "manifestVersion": 1,
"moduleCode": "demo", "moduleCode": "demo",
"revision": 9, "revision": 10,
"schemaChecksum": null, "schemaChecksum": null,
"schemaInputChecksum": "8a55cecb643f802ef0f39ade2f31fe8313ad437d72d12b64525c0b1a6892813d", "schemaInputChecksum": "5a47ef42d5af4736ae307150625beb1cea177c191c30864747f3a4a66f9aad23",
"actionManifestChecksum": null, "actionManifestChecksum": null,
"runtimeContractChecksum": "c1327810dd08dfd0cc1afeee99d7e9707fe14595272a3aa92ee13fc1d54aa0e5", "runtimeContractChecksum": "9ec90874dd2f0087423106ecffa0c17c9aa4362c597eca9eef9f25326b556c1e",
"implementationManifestChecksum": "d18964a3d40e3c9a65d83996ca3141a56043986c395f5d4cac57c60aa72f4236", "implementationManifestChecksum": "d18964a3d40e3c9a65d83996ca3141a56043986c395f5d4cac57c60aa72f4236",
"actions": [ "actions": [
"GoodsAdd", "GoodsAdd",
@@ -50,7 +50,7 @@
"list", "list",
"page" "page"
], ],
"descriptorChecksum": "22211efee07c5c1aada51d508d9c053e0d7388ad6fc0da12c95a4d1de2e3ca53", "descriptorChecksum": "57f429f54ea377c92d648e4ffcc92611cbc288f227790cc1ff386f083bb7ce29",
"actions": { "actions": {
"add": "GoodsAdd", "add": "GoodsAdd",
"delete": "GoodsDelete", "delete": "GoodsDelete",
@@ -86,6 +86,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -93,7 +100,7 @@
"price" "price"
] ]
}, },
"inputChecksum": "c2984884419729416e6cd81e4cddc6d82486b6dde2d9de0ca17533f69f55816a", "inputChecksum": "1631b9abe9afce3e828787e355f4c380fc3d6210f58260797109014763bddab7",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -115,6 +122,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -125,7 +139,7 @@
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:add" "permission": "demo:goods:add"
@@ -134,6 +148,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -343,6 +358,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -353,7 +375,7 @@
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:info" "permission": "demo:goods:info"
@@ -362,6 +384,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -472,6 +495,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -483,7 +513,7 @@
] ]
} }
}, },
"outputChecksum": "2182ab26245d80a9a40216cce7cadbe8217ea12813f1cf536b7a59ba0a4ed4ae", "outputChecksum": "909ff0a80769ea17a9a6159097c45c5097286e53f5010a514491df4d1f177518",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:list" "permission": "demo:goods:list"
@@ -492,6 +522,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -610,6 +641,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -651,7 +689,7 @@
"pagination" "pagination"
] ]
}, },
"outputChecksum": "15ee81575d900276aaa2437afa5ee6f41321e5b00ab58706322e5d5c0809bf8d", "outputChecksum": "476124b6a81b38277a80b1f773dffad01acee546c6140689abea6532d4216d2f",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:page" "permission": "demo:goods:page"
@@ -660,6 +698,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -842,6 +881,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -849,7 +895,7 @@
], ],
"minProperties": 2 "minProperties": 2
}, },
"inputChecksum": "ced49f501c83dd1dce9725c913a1761566828004c851779a5db85ddd2bb9123c", "inputChecksum": "103a179289c7ad50a87b38efeb58b281ee2cc03c3dabbe20814e26f2b804cee8",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -872,6 +918,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",

View File

@@ -1,13 +1,13 @@
{ {
"formatVersion": 2, "formatVersion": 2,
"moduleCode": "demo", "moduleCode": "demo",
"revision": 9, "revision": 10,
"releaseVersion": null, "releaseVersion": null,
"schemaVersion": 9, "schemaVersion": 10,
"schemaInputChecksum": "8a55cecb643f802ef0f39ade2f31fe8313ad437d72d12b64525c0b1a6892813d", "schemaInputChecksum": "5a47ef42d5af4736ae307150625beb1cea177c191c30864747f3a4a66f9aad23",
"schemaChecksum": null, "schemaChecksum": null,
"actionManifestChecksum": null, "actionManifestChecksum": null,
"runtimeContractChecksum": "c1327810dd08dfd0cc1afeee99d7e9707fe14595272a3aa92ee13fc1d54aa0e5", "runtimeContractChecksum": "9ec90874dd2f0087423106ecffa0c17c9aa4362c597eca9eef9f25326b556c1e",
"implementationManifestChecksum": "d18964a3d40e3c9a65d83996ca3141a56043986c395f5d4cac57c60aa72f4236", "implementationManifestChecksum": "d18964a3d40e3c9a65d83996ca3141a56043986c395f5d4cac57c60aa72f4236",
"models": [ "models": [
{ {
@@ -65,6 +65,16 @@
"writable": true, "writable": true,
"filterable": true, "filterable": true,
"sortable": true "sortable": true
},
{
"code": "description",
"type": "varchar",
"nullable": true,
"primary": false,
"readable": true,
"writable": true,
"filterable": false,
"sortable": false
} }
] ]
} }
@@ -128,6 +138,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -135,7 +152,7 @@
"price" "price"
] ]
}, },
"inputChecksum": "c2984884419729416e6cd81e4cddc6d82486b6dde2d9de0ca17533f69f55816a", "inputChecksum": "1631b9abe9afce3e828787e355f4c380fc3d6210f58260797109014763bddab7",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -157,6 +174,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -167,7 +191,7 @@
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:add" "permission": "demo:goods:add"
@@ -176,6 +200,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -236,6 +261,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -243,7 +275,7 @@
"price" "price"
] ]
}, },
"inputChecksum": "c2984884419729416e6cd81e4cddc6d82486b6dde2d9de0ca17533f69f55816a", "inputChecksum": "1631b9abe9afce3e828787e355f4c380fc3d6210f58260797109014763bddab7",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -265,6 +297,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -275,7 +314,7 @@
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:add" "permission": "demo:goods:add"
@@ -284,6 +323,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -626,6 +666,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -636,7 +683,7 @@
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:info" "permission": "demo:goods:info"
@@ -645,6 +692,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -696,6 +744,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -706,7 +761,7 @@
"status" "status"
] ]
}, },
"outputChecksum": "bb691ac7eaa19bb231f9da14a80848262965255fb37726ab155fb9804c9a55b1", "outputChecksum": "744f5d2ad90a1c4e21a1ff66eaae83a3f900cdd685d6ee409f03555336c9a067",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:info" "permission": "demo:goods:info"
@@ -715,6 +770,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -828,6 +884,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -839,7 +902,7 @@
] ]
} }
}, },
"outputChecksum": "2182ab26245d80a9a40216cce7cadbe8217ea12813f1cf536b7a59ba0a4ed4ae", "outputChecksum": "909ff0a80769ea17a9a6159097c45c5097286e53f5010a514491df4d1f177518",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:list" "permission": "demo:goods:list"
@@ -848,6 +911,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -956,6 +1020,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -967,7 +1038,7 @@
] ]
} }
}, },
"outputChecksum": "2182ab26245d80a9a40216cce7cadbe8217ea12813f1cf536b7a59ba0a4ed4ae", "outputChecksum": "909ff0a80769ea17a9a6159097c45c5097286e53f5010a514491df4d1f177518",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:list" "permission": "demo:goods:list"
@@ -976,6 +1047,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -1097,6 +1169,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -1138,7 +1217,7 @@
"pagination" "pagination"
] ]
}, },
"outputChecksum": "15ee81575d900276aaa2437afa5ee6f41321e5b00ab58706322e5d5c0809bf8d", "outputChecksum": "476124b6a81b38277a80b1f773dffad01acee546c6140689abea6532d4216d2f",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:page" "permission": "demo:goods:page"
@@ -1147,6 +1226,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -1263,6 +1343,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -1304,7 +1391,7 @@
"pagination" "pagination"
] ]
}, },
"outputChecksum": "15ee81575d900276aaa2437afa5ee6f41321e5b00ab58706322e5d5c0809bf8d", "outputChecksum": "476124b6a81b38277a80b1f773dffad01acee546c6140689abea6532d4216d2f",
"callerPolicy": { "callerPolicy": {
"kind": "permission", "kind": "permission",
"permission": "demo:goods:page" "permission": "demo:goods:page"
@@ -1313,6 +1400,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -1642,6 +1730,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -1649,7 +1744,7 @@
], ],
"minProperties": 2 "minProperties": 2
}, },
"inputChecksum": "ced49f501c83dd1dce9725c913a1761566828004c851779a5db85ddd2bb9123c", "inputChecksum": "103a179289c7ad50a87b38efeb58b281ee2cc03c3dabbe20814e26f2b804cee8",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -1672,6 +1767,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -1736,6 +1832,13 @@
}, },
"status": { "status": {
"type": "integer" "type": "integer"
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 500
} }
}, },
"required": [ "required": [
@@ -1743,7 +1846,7 @@
], ],
"minProperties": 2 "minProperties": 2
}, },
"inputChecksum": "ced49f501c83dd1dce9725c913a1761566828004c851779a5db85ddd2bb9123c", "inputChecksum": "103a179289c7ad50a87b38efeb58b281ee2cc03c3dabbe20814e26f2b804cee8",
"outputSchema": { "outputSchema": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -1766,6 +1869,7 @@
{ {
"tableCode": "goods", "tableCode": "goods",
"fields": [ "fields": [
"description",
"id", "id",
"price", "price",
"status", "status",
@@ -1821,7 +1925,7 @@
"list", "list",
"page" "page"
], ],
"descriptorChecksum": "22211efee07c5c1aada51d508d9c053e0d7388ad6fc0da12c95a4d1de2e3ca53", "descriptorChecksum": "57f429f54ea377c92d648e4ffcc92611cbc288f227790cc1ff386f083bb7ce29",
"actions": { "actions": {
"add": "GoodsAdd", "add": "GoodsAdd",
"delete": "GoodsDelete", "delete": "GoodsDelete",