@cxtms/cx-schema 1.7.17 → 1.8.1
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/.claude/skills/cx-core/SKILL.md +38 -20
- package/.claude/skills/cx-core/ref-entity-accounting.md +0 -7
- package/.claude/skills/cx-core/ref-entity-commodity.md +0 -12
- package/.claude/skills/cx-core/ref-entity-contact.md +0 -10
- package/.claude/skills/cx-core/ref-entity-geography.md +0 -9
- package/.claude/skills/cx-core/ref-entity-notification.md +85 -0
- package/.claude/skills/cx-core/ref-entity-order-sub.md +7 -7
- package/.claude/skills/cx-core/ref-entity-order.md +1 -14
- package/.claude/skills/cx-core/ref-entity-rate.md +0 -8
- package/.claude/skills/cx-core/ref-entity-shared.md +20 -9
- package/.claude/skills/cx-core/ref-entity-warehouse.md +0 -5
- package/.claude/skills/cx-module/SKILL.md +28 -103
- package/.claude/skills/cx-module/ref-components-data.md +0 -7
- package/.claude/skills/cx-module/ref-components-display.md +0 -13
- package/.claude/skills/cx-module/ref-components-forms.md +1 -6
- package/.claude/skills/cx-module/ref-components-interactive.md +0 -11
- package/.claude/skills/cx-module/ref-components-layout.md +0 -11
- package/.claude/skills/cx-module/ref-components-specialized.md +0 -50
- package/.claude/skills/cx-workflow/SKILL.md +21 -130
- package/.claude/skills/cx-workflow/ref-communication.md +0 -8
- package/.claude/skills/cx-workflow/ref-entity.md +62 -17
- package/.claude/skills/cx-workflow/ref-expressions.md +272 -0
- package/.claude/skills/cx-workflow/ref-flow.md +5 -11
- package/.claude/skills/cx-workflow/ref-other.md +33 -14
- package/.claude/skills/cx-workflow/ref-utilities.md +111 -14
- package/README.md +34 -34
- package/dist/cli.js +166 -2394
- package/dist/cli.js.map +1 -1
- package/dist/types.d.ts +0 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/validator.d.ts +0 -8
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +2 -54
- package/dist/validator.js.map +1 -1
- package/dist/workflowValidator.d.ts +0 -4
- package/dist/workflowValidator.d.ts.map +1 -1
- package/dist/workflowValidator.js +2 -28
- package/dist/workflowValidator.js.map +1 -1
- package/package.json +2 -3
- package/schemas/actions/all.json +2 -1
- package/schemas/actions/clipboard.json +46 -0
- package/schemas/components/appComponent.json +0 -8
- package/schemas/components/module.json +2 -31
- package/schemas/components/timelineGrid.json +0 -4
- package/schemas/schemas.json +0 -12
- package/schemas/workflows/flow/entity.json +19 -0
- package/schemas/workflows/tasks/all.json +9 -0
- package/schemas/workflows/tasks/authentication.json +12 -26
- package/schemas/workflows/tasks/edi.json +93 -1
- package/schemas/workflows/tasks/httpRequest.json +4 -0
- package/schemas/workflows/tasks/order.json +45 -0
- package/schemas/workflows/tasks/resolve-timezone.json +65 -0
- package/schemas/workflows/tasks/transmission.json +185 -0
- package/schemas/workflows/tasks/unzip-file.json +68 -0
- package/schemas/workflows/variable.json +5 -1
- package/schemas/workflows/workflow.json +4 -0
- package/scripts/postinstall.js +1 -1
- package/templates/module-configuration.yaml +89 -23
- package/templates/module-form.yaml +3 -3
- package/templates/module-grid.yaml +3 -3
- package/templates/module-select.yaml +3 -3
- package/templates/module.yaml +2 -3
- package/templates/workflow-api-tracking.yaml +1 -1
- package/templates/workflow-basic.yaml +1 -1
- package/templates/workflow-document.yaml +1 -1
- package/templates/workflow-entity-trigger.yaml +1 -1
- package/templates/workflow-ftp-edi.yaml +1 -1
- package/templates/workflow-ftp-tracking.yaml +1 -1
- package/templates/workflow-mcp-tool.yaml +1 -1
- package/templates/workflow-public-api.yaml +1 -1
- package/templates/workflow-scheduled.yaml +1 -1
- package/templates/workflow-utility.yaml +1 -1
- package/templates/workflow-webhook.yaml +1 -1
- package/templates/workflow.yaml +1 -1
- package/.claude/skills/cx-core/ref-cli-auth.md +0 -120
- package/.claude/skills/cx-core/ref-graphql-query.md +0 -320
- package/.claude/skills/cx-workflow/ref-expressions-ncalc.md +0 -111
- package/.claude/skills/cx-workflow/ref-expressions-template.md +0 -148
|
@@ -34,39 +34,25 @@
|
|
|
34
34
|
},
|
|
35
35
|
"inputs": {
|
|
36
36
|
"type": "object",
|
|
37
|
-
"description": "
|
|
37
|
+
"description": "Authentication operation inputs",
|
|
38
38
|
"properties": {
|
|
39
|
-
"
|
|
40
|
-
"type": "object",
|
|
41
|
-
"description": "OAuth2 credentials object (e.g., grant_type, client_id, client_secret)",
|
|
42
|
-
"additionalProperties": true
|
|
43
|
-
},
|
|
44
|
-
"tokenUrl": {
|
|
39
|
+
"provider": {
|
|
45
40
|
"type": "string",
|
|
46
|
-
"description": "
|
|
41
|
+
"description": "OAuth2 provider name"
|
|
47
42
|
},
|
|
48
|
-
"
|
|
49
|
-
"type": "
|
|
50
|
-
"description": "
|
|
51
|
-
"items": {
|
|
52
|
-
"type": "object",
|
|
53
|
-
"additionalProperties": {
|
|
54
|
-
"type": "string"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
43
|
+
"clientId": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "OAuth2 client ID"
|
|
57
46
|
},
|
|
58
|
-
"
|
|
59
|
-
"type": "
|
|
60
|
-
"description": "
|
|
61
|
-
"additionalProperties": true
|
|
47
|
+
"clientSecret": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "OAuth2 client secret"
|
|
62
50
|
},
|
|
63
|
-
"
|
|
64
|
-
"type": "
|
|
65
|
-
"description": "
|
|
66
|
-
"default": true
|
|
51
|
+
"tokenUrl": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "Token endpoint URL"
|
|
67
54
|
}
|
|
68
55
|
},
|
|
69
|
-
"required": ["credentials", "tokenUrl"],
|
|
70
56
|
"additionalProperties": true
|
|
71
57
|
},
|
|
72
58
|
"outputs": {
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"type": "string",
|
|
9
9
|
"enum": [
|
|
10
10
|
"EDI/Parse@1",
|
|
11
|
+
"EDIFACT/Parse@1",
|
|
12
|
+
"EDIFACT/Generate@1",
|
|
11
13
|
"StructuredFile/Parse"
|
|
12
14
|
],
|
|
13
15
|
"description": "Task type identifier"
|
|
@@ -39,11 +41,101 @@
|
|
|
39
41
|
"properties": {
|
|
40
42
|
"content": {
|
|
41
43
|
"type": "string",
|
|
42
|
-
"description": "File content to parse"
|
|
44
|
+
"description": "File content to parse (EDI/Parse)"
|
|
43
45
|
},
|
|
44
46
|
"format": {
|
|
45
47
|
"type": "string",
|
|
46
48
|
"description": "EDI format (e.g., X12, EDIFACT)"
|
|
49
|
+
},
|
|
50
|
+
"edifactData": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Raw EDIFACT data string (EDIFACT/Parse, EDIFACT/Generate)"
|
|
53
|
+
},
|
|
54
|
+
"messageType": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"enum": ["IFTMIN", "CONTRL", "APERAK"],
|
|
57
|
+
"description": "EDIFACT message type for parse/generate tasks"
|
|
58
|
+
},
|
|
59
|
+
"sender": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"description": "Sender identification for EDIFACT/Generate",
|
|
62
|
+
"properties": {
|
|
63
|
+
"id": { "type": "string", "description": "Sender ID (Trading Partner ID)" },
|
|
64
|
+
"qualifier": { "type": "string", "description": "Partner ID code qualifier (e.g., ZZZ)" }
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"recipient": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"description": "Recipient identification for EDIFACT/Generate",
|
|
70
|
+
"properties": {
|
|
71
|
+
"id": { "type": "string", "description": "Recipient ID (e.g., INTTRA)" },
|
|
72
|
+
"qualifier": { "type": "string", "description": "Partner ID code qualifier" }
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"documentNumber": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"description": "Shipment Identification Number"
|
|
78
|
+
},
|
|
79
|
+
"messageFunctionCode": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"enum": ["5", "9"],
|
|
82
|
+
"description": "9 = Original, 5 = Replace"
|
|
83
|
+
},
|
|
84
|
+
"references": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"description": "Business references (BN=Booking, BM=B/L, etc.)",
|
|
87
|
+
"items": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"properties": {
|
|
90
|
+
"qualifier": { "type": "string" },
|
|
91
|
+
"identifier": { "type": "string" }
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"parties": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"description": "Party details (HI=Requestor, CZ=Shipper, CA=Carrier, CN=Consignee)",
|
|
98
|
+
"items": {
|
|
99
|
+
"type": "object",
|
|
100
|
+
"properties": {
|
|
101
|
+
"functionCode": { "type": "string" },
|
|
102
|
+
"identification": { "type": "string" },
|
|
103
|
+
"name": { "type": "string" }
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"goodsItems": {
|
|
108
|
+
"type": "array",
|
|
109
|
+
"description": "Goods item details (GID segment group). Numeric fields (itemNumber, numberOfPackages) are serialized as strings.",
|
|
110
|
+
"items": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"properties": {
|
|
113
|
+
"itemNumber": { "type": ["integer", "string"], "description": "Goods item number (GID/0). Auto-incremented." },
|
|
114
|
+
"numberOfPackages": { "type": ["integer", "string"], "description": "Number of outer packages (C213/7224)" },
|
|
115
|
+
"packageType": { "type": "string", "description": "Package type code, UN/ECE rec. 21 (C213/7065, e.g. CT, PK, PL)" },
|
|
116
|
+
"packageTypeDescription": { "type": "string", "description": "Package type description (C213/7065 text)" },
|
|
117
|
+
"packageTypeAgencyCode": { "type": "string", "description": "Code list responsible agency (C213/3055). Auto-set to '6' (UN/ECE) when packageType is provided." },
|
|
118
|
+
"packageTypeDescriptionText": { "type": "string", "description": "Package type description text for B/L printing (C213/7064)" },
|
|
119
|
+
"innerPackageCount": { "type": ["integer", "string"], "description": "Number of inner packages (second C213/7224)" },
|
|
120
|
+
"innerPackageType": { "type": "string", "description": "Inner package type code (second C213/7065)" },
|
|
121
|
+
"grossWeight": { "type": ["number", "string"], "description": "Gross weight value" },
|
|
122
|
+
"weightUnit": { "type": "string", "description": "Weight unit (KGM, LBR)" },
|
|
123
|
+
"description": { "type": "string", "description": "Goods description free text" }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"equipment": {
|
|
128
|
+
"type": "array",
|
|
129
|
+
"description": "Container/equipment details",
|
|
130
|
+
"items": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"properties": {
|
|
133
|
+
"equipmentQualifier": { "type": "string" },
|
|
134
|
+
"equipmentIdentification": { "type": "string" },
|
|
135
|
+
"sizeTypeCode": { "type": "string" },
|
|
136
|
+
"fullEmptyIndicator": { "type": "string" }
|
|
137
|
+
}
|
|
138
|
+
}
|
|
47
139
|
}
|
|
48
140
|
},
|
|
49
141
|
"additionalProperties": true
|
|
@@ -105,6 +105,10 @@
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
|
+
"saveToFile": {
|
|
109
|
+
"type": "boolean",
|
|
110
|
+
"description": "When true, saves response body to a temp file instead of returning it in memory. Response returns { StatusCode, Headers, FilePath } instead of body content."
|
|
111
|
+
},
|
|
108
112
|
"cache": {
|
|
109
113
|
"type": "object",
|
|
110
114
|
"properties": {
|
|
@@ -69,6 +69,51 @@
|
|
|
69
69
|
"validateOnly": {
|
|
70
70
|
"type": "boolean",
|
|
71
71
|
"description": "Only validate, don't persist"
|
|
72
|
+
},
|
|
73
|
+
"data": {
|
|
74
|
+
"description": "Structured import data (for Order/Import@1)",
|
|
75
|
+
"additionalProperties": true
|
|
76
|
+
},
|
|
77
|
+
"options": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"description": "Import options (for Order/Import@1)",
|
|
80
|
+
"properties": {
|
|
81
|
+
"orderMatchByFields": {
|
|
82
|
+
"type": "array",
|
|
83
|
+
"items": { "type": "string" },
|
|
84
|
+
"description": "Fields to match existing orders. If null, creates new orders."
|
|
85
|
+
},
|
|
86
|
+
"contactMatchByFields": {
|
|
87
|
+
"type": "array",
|
|
88
|
+
"items": { "type": "string" },
|
|
89
|
+
"description": "Fields to match existing contacts for order entities."
|
|
90
|
+
},
|
|
91
|
+
"contactAddressMatchByFields": {
|
|
92
|
+
"type": "array",
|
|
93
|
+
"items": { "type": "string" },
|
|
94
|
+
"description": "Fields to match existing contact addresses within order entities."
|
|
95
|
+
},
|
|
96
|
+
"inventoryItemMatchByFields": {
|
|
97
|
+
"type": "array",
|
|
98
|
+
"items": { "type": "string" },
|
|
99
|
+
"description": "Fields to match existing inventory items on commodities."
|
|
100
|
+
},
|
|
101
|
+
"tagMatchByFields": {
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": { "type": "string" },
|
|
104
|
+
"description": "Fields to match existing tags."
|
|
105
|
+
},
|
|
106
|
+
"commodityMatchByFields": {
|
|
107
|
+
"type": "array",
|
|
108
|
+
"items": { "type": "string" },
|
|
109
|
+
"description": "Fields to match existing commodities."
|
|
110
|
+
},
|
|
111
|
+
"linkTrackingEventsToCommodities": {
|
|
112
|
+
"type": "boolean",
|
|
113
|
+
"description": "When true, imported tracking events are linked to the order's first-level (non-container) commodities. Default: false."
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"additionalProperties": true
|
|
72
117
|
}
|
|
73
118
|
},
|
|
74
119
|
"additionalProperties": true
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "ResolveTimezone Task",
|
|
4
|
+
"description": "Resolve IANA timezone ID and UTC offset from geographic coordinates",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"task": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": ["Utilities/ResolveTimezone@1"],
|
|
10
|
+
"description": "Task type identifier"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Step name identifier"
|
|
15
|
+
},
|
|
16
|
+
"description": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Step description"
|
|
19
|
+
},
|
|
20
|
+
"conditions": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"expression": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"required": ["expression"]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"continueOnError": {
|
|
33
|
+
"type": "boolean"
|
|
34
|
+
},
|
|
35
|
+
"inputs": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"description": "ResolveTimezone inputs",
|
|
38
|
+
"properties": {
|
|
39
|
+
"latitude": {
|
|
40
|
+
"type": ["string", "number"],
|
|
41
|
+
"description": "Latitude coordinate (decimal degrees)"
|
|
42
|
+
},
|
|
43
|
+
"longitude": {
|
|
44
|
+
"type": ["string", "number"],
|
|
45
|
+
"description": "Longitude coordinate (decimal degrees)"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"required": ["latitude", "longitude"],
|
|
49
|
+
"additionalProperties": true
|
|
50
|
+
},
|
|
51
|
+
"outputs": {
|
|
52
|
+
"type": "array",
|
|
53
|
+
"items": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"properties": {
|
|
56
|
+
"name": { "type": "string" },
|
|
57
|
+
"mapping": { "type": "string" }
|
|
58
|
+
},
|
|
59
|
+
"required": ["name", "mapping"]
|
|
60
|
+
},
|
|
61
|
+
"description": "Outputs: timezoneId (IANA timezone string, e.g. 'America/Chicago'), utcOffset (number, hours from UTC, e.g. -5)"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"required": ["task", "name", "inputs"]
|
|
65
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Transmission Tasks",
|
|
4
|
+
"description": "Create, update, and delete transmission records linked to orders",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"task": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": [
|
|
10
|
+
"Transmission/Create@1",
|
|
11
|
+
"Transmission/Update@1",
|
|
12
|
+
"Transmission/Delete@1"
|
|
13
|
+
],
|
|
14
|
+
"description": "Task type identifier"
|
|
15
|
+
},
|
|
16
|
+
"name": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Step name identifier"
|
|
19
|
+
},
|
|
20
|
+
"description": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Step description"
|
|
23
|
+
},
|
|
24
|
+
"conditions": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"items": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {
|
|
29
|
+
"expression": {
|
|
30
|
+
"type": "string"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"required": ["expression"]
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"continueOnError": {
|
|
37
|
+
"type": "boolean"
|
|
38
|
+
},
|
|
39
|
+
"inputs": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"description": "Task inputs — shape depends on task type",
|
|
42
|
+
"properties": {
|
|
43
|
+
"organizationId": {
|
|
44
|
+
"type": ["string", "integer"],
|
|
45
|
+
"description": "Organization ID (required for all task types)"
|
|
46
|
+
},
|
|
47
|
+
"transmissionId": {
|
|
48
|
+
"type": ["string", "integer"],
|
|
49
|
+
"description": "Transmission ID (required for Update and Delete)"
|
|
50
|
+
},
|
|
51
|
+
"transmission": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"description": "Transmission field values (Create: full object; Update: partial/dynamic)",
|
|
54
|
+
"properties": {
|
|
55
|
+
"orderIds": {
|
|
56
|
+
"type": ["array", "string"],
|
|
57
|
+
"items": { "type": ["integer", "string"] },
|
|
58
|
+
"description": "Order IDs to link (required for Create, at least one)"
|
|
59
|
+
},
|
|
60
|
+
"channel": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"maxLength": 20,
|
|
63
|
+
"description": "Communication channel (e.g. EDI, API, EMAIL, WEBHOOK)"
|
|
64
|
+
},
|
|
65
|
+
"direction": {
|
|
66
|
+
"type": ["string", "integer"],
|
|
67
|
+
"enum": ["Inbound", "Outbound", 0, 1],
|
|
68
|
+
"description": "Inbound (0) or Outbound (1)"
|
|
69
|
+
},
|
|
70
|
+
"messageType": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"maxLength": 50,
|
|
73
|
+
"description": "Message type identifier (e.g. 204, 990, 214)"
|
|
74
|
+
},
|
|
75
|
+
"sender": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"maxLength": 100,
|
|
78
|
+
"description": "Sender identifier"
|
|
79
|
+
},
|
|
80
|
+
"receiver": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"maxLength": 100,
|
|
83
|
+
"description": "Receiver identifier"
|
|
84
|
+
},
|
|
85
|
+
"correlationId": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"format": "uuid",
|
|
88
|
+
"description": "Correlation ID (auto-generated if omitted on Create)"
|
|
89
|
+
},
|
|
90
|
+
"parentId": {
|
|
91
|
+
"type": ["integer", "string", "null"],
|
|
92
|
+
"description": "Parent transmission ID for chaining"
|
|
93
|
+
},
|
|
94
|
+
"status": {
|
|
95
|
+
"type": ["string", "integer"],
|
|
96
|
+
"enum": ["Pending", "InProgress", "Sent", "Received", "Delivered", "Acknowledged", "Rejected", "Error", "RetryScheduled", "Cancelled", "Expired", "Accepted", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
|
|
97
|
+
"description": "Transmission status"
|
|
98
|
+
},
|
|
99
|
+
"endpoint": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"maxLength": 500,
|
|
102
|
+
"description": "Target endpoint URL"
|
|
103
|
+
},
|
|
104
|
+
"protocol": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"maxLength": 20,
|
|
107
|
+
"description": "Protocol (e.g. HTTPS, SFTP, AS2)"
|
|
108
|
+
},
|
|
109
|
+
"httpStatus": {
|
|
110
|
+
"type": ["integer", "string", "null"],
|
|
111
|
+
"description": "HTTP response status code"
|
|
112
|
+
},
|
|
113
|
+
"byteSize": {
|
|
114
|
+
"type": ["integer", "string", "null"],
|
|
115
|
+
"description": "Payload size in bytes"
|
|
116
|
+
},
|
|
117
|
+
"retryCount": {
|
|
118
|
+
"type": ["integer", "string"],
|
|
119
|
+
"description": "Current retry count (default: 0)"
|
|
120
|
+
},
|
|
121
|
+
"maxRetries": {
|
|
122
|
+
"type": ["integer", "string"],
|
|
123
|
+
"description": "Maximum retry attempts (default: 3)"
|
|
124
|
+
},
|
|
125
|
+
"nextRetryAt": {
|
|
126
|
+
"type": ["string", "null"],
|
|
127
|
+
"description": "Scheduled next retry time (ISO 8601)"
|
|
128
|
+
},
|
|
129
|
+
"errorCode": {
|
|
130
|
+
"type": ["string", "null"],
|
|
131
|
+
"maxLength": 50,
|
|
132
|
+
"description": "Error code"
|
|
133
|
+
},
|
|
134
|
+
"errorMessage": {
|
|
135
|
+
"type": ["string", "null"],
|
|
136
|
+
"description": "Error description"
|
|
137
|
+
},
|
|
138
|
+
"customValues": {
|
|
139
|
+
"type": ["object", "string", "null"],
|
|
140
|
+
"description": "Arbitrary key-value metadata (JSONB)"
|
|
141
|
+
},
|
|
142
|
+
"headers": {
|
|
143
|
+
"type": ["object", "string", "null"],
|
|
144
|
+
"description": "Message headers (JSONB)"
|
|
145
|
+
},
|
|
146
|
+
"payloadRef": {
|
|
147
|
+
"type": ["string", "null"],
|
|
148
|
+
"description": "Reference to stored payload (e.g. blob URI)"
|
|
149
|
+
},
|
|
150
|
+
"scheduledAt": {
|
|
151
|
+
"type": ["string", "null"],
|
|
152
|
+
"description": "Scheduled send time (ISO 8601)"
|
|
153
|
+
},
|
|
154
|
+
"startedAt": {
|
|
155
|
+
"type": ["string", "null"],
|
|
156
|
+
"description": "Processing start time (ISO 8601)"
|
|
157
|
+
},
|
|
158
|
+
"completedAt": {
|
|
159
|
+
"type": ["string", "null"],
|
|
160
|
+
"description": "Processing end time (ISO 8601)"
|
|
161
|
+
},
|
|
162
|
+
"durationMs": {
|
|
163
|
+
"type": ["integer", "string", "null"],
|
|
164
|
+
"description": "Processing duration in milliseconds"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"required": ["organizationId"]
|
|
170
|
+
},
|
|
171
|
+
"outputs": {
|
|
172
|
+
"type": "array",
|
|
173
|
+
"items": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"properties": {
|
|
176
|
+
"name": { "type": "string" },
|
|
177
|
+
"mapping": { "type": "string" }
|
|
178
|
+
},
|
|
179
|
+
"required": ["name", "mapping"]
|
|
180
|
+
},
|
|
181
|
+
"description": "Create outputs: transmission (TransmissionDto). Delete outputs: success (boolean)."
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"required": ["task", "name", "inputs"]
|
|
185
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "UnzipFile Task",
|
|
4
|
+
"description": "Extract files from a ZIP archive (local path or URL)",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"task": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": ["Utilities/UnzipFile@1"],
|
|
10
|
+
"description": "Task type identifier"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Step name identifier"
|
|
15
|
+
},
|
|
16
|
+
"description": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Step description"
|
|
19
|
+
},
|
|
20
|
+
"conditions": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"expression": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"required": ["expression"]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"continueOnError": {
|
|
33
|
+
"type": "boolean"
|
|
34
|
+
},
|
|
35
|
+
"inputs": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"description": "UnzipFile inputs — provide either filePath or fileUrl",
|
|
38
|
+
"properties": {
|
|
39
|
+
"filePath": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Local file path to ZIP archive (from saveToFile or previous step)"
|
|
42
|
+
},
|
|
43
|
+
"fileUrl": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "URL to ZIP archive (file://, http://, https://)"
|
|
46
|
+
},
|
|
47
|
+
"filePattern": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Glob-style pattern to filter extracted files (e.g. '*.csv', 'data_*.json'). If omitted, all files returned."
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"additionalProperties": true
|
|
53
|
+
},
|
|
54
|
+
"outputs": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"properties": {
|
|
59
|
+
"name": { "type": "string" },
|
|
60
|
+
"mapping": { "type": "string" }
|
|
61
|
+
},
|
|
62
|
+
"required": ["name", "mapping"]
|
|
63
|
+
},
|
|
64
|
+
"description": "Outputs: Files (string[] — full paths to extracted files), Count (int — number of matched files)"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"required": ["task", "name", "inputs"]
|
|
68
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"title": "Workflow Variable",
|
|
4
|
-
"description": "Definition of a workflow variable. Valid properties: name, value, fromConfig.",
|
|
4
|
+
"description": "Definition of a workflow variable. Valid properties: name, value, fromConfig, expression.",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
7
|
"name": {
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
"value": {
|
|
13
13
|
"description": "Static variable value or template expression"
|
|
14
14
|
},
|
|
15
|
+
"expression": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "NCalc expression to evaluate at runtime. Has access to all previously resolved variables. Mutually exclusive with value and fromConfig."
|
|
18
|
+
},
|
|
15
19
|
"fromConfig": {
|
|
16
20
|
"oneOf": [
|
|
17
21
|
{
|
|
@@ -102,6 +102,10 @@
|
|
|
102
102
|
"type": "string",
|
|
103
103
|
"description": "AI agent instruction describing how to use this workflow, expected inputs, and returned outputs"
|
|
104
104
|
},
|
|
105
|
+
"fileName": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "Path to the workflow YAML file (deprecated, use filePath)"
|
|
108
|
+
},
|
|
105
109
|
"actionEvent": {
|
|
106
110
|
"type": "object",
|
|
107
111
|
"description": "Workflow action event configuration",
|
package/scripts/postinstall.js
CHANGED
|
@@ -182,7 +182,7 @@ function main() {
|
|
|
182
182
|
|
|
183
183
|
console.log('✓ CX Schema Validator installed successfully!');
|
|
184
184
|
console.log('\nUsage:');
|
|
185
|
-
console.log(' npx
|
|
185
|
+
console.log(' npx cx-cli modules/your-module.yaml');
|
|
186
186
|
console.log(' node .cx-schema/validate.js modules/your-module.yaml');
|
|
187
187
|
console.log(' /cx-module <description> (Claude Code skill - UI modules)');
|
|
188
188
|
console.log(' /cx-workflow <description> (Claude Code skill - workflows)');
|