Setting the file. One moment.
Schema · Rp Target Wix · wix/skills · Skills Docs
ContentsBack to the top of the page (opens in a new tab)
domains/ schema.json
JSON · 232 lines · 7 KB
"entity"
,
11 "displayName" ,
12 "target" ,
13 "sourceAliases" ,
14 "preferredWrite" ,
15 "reliability" ,
16 "pitfalls" ,
17 "mappingGuidance" ,
18 "evidence"
19 ],
20 "properties" : {
21 "schemaVersion" : { "const" : 1 },
22 "mappingRules" : {
23 "type" : "array" ,
24 "description" : "Reviewed reusable mapping templates; apply only when all source, schema and semantic predicates match." ,
25 "items" : {
26 "type" : "object" ,
27 "required" : [
28 "id" ,
29 "applicability" ,
30 "sourcePaths" ,
31 "disposition" ,
32 "outputs" ,
33 "transform" ,
34 "valuePolicy" ,
35 "evidence" ,
36 "reason" ,
37 "examples"
38 ],
39 "properties" : {
40 "id" : {
41 "type" : "string" ,
42 "minLength" : 1
43 },
44 "applicability" : {
45 "type" : "object" ,
46 "required" : [
47 "sourceSystem" ,
48 "sourceEntity" ,
49 "predicates"
50 ],
51 "properties" : {
52 "sourceSystem" : {
53 "type" : "string"
54 },
55 "sourceEntity" : {
56 "type" : "string"
57 },
58 "predicates" : {
59 "type" : "array" ,
60 "minItems" : 1 ,
61 "items" : {
62 "type" : "object" ,
63 "required" : [
64 "path" ,
65 "semantic" ,
66 "type"
67 ]
68 }
69 }
70 }
71 },
72 "sourcePaths" : {
73 "type" : "array" ,
74 "items" : {
75 "type" : "string"
76 }
77 },
78 "disposition" : {
79 "enum" : [
80 "native" ,
81 "extended-field" ,
82 "cms" ,
83 "excluded" ,
84 "unresolved"
85 ]
86 },
87 "outputs" : {
88 "type" : "array" ,
89 "items" : {
90 "type" : "object" ,
91 "required" : [
92 "id" ,
93 "sourcePaths" ,
94 "targetRef" ,
95 "writeOperation" ,
96 "writeInput" ,
97 "targetPath"
98 ]
99 }
100 },
101 "transform" : {
102 "type" : "object"
103 },
104 "valuePolicy" : {
105 "type" : "object"
106 },
107 "evidence" : {
108 "type" : "array"
109 },
110 "reason" : {
111 "type" : "string"
112 },
113 "examples" : {
114 "type" : "array"
115 }
116 }
117 }
118 },
119 "domain" : { "type" : "string" , "minLength" : 1 },
120 "entity" : { "type" : "string" , "minLength" : 1 },
121 "displayName" : { "type" : "string" , "minLength" : 1 },
122 "capability" : {
123 "type" : "string" ,
124 "minLength" : 1 ,
125 "description" : "Business capability this target serves, e.g. \" commerce.catalog-product \" . Source adapters (including WordPress plugin profiles) resolve capabilities to target refs through this field, so one vocabulary serves every source platform."
126 },
127 "target" : {
128 "type" : "object" ,
129 "required" : [ "classification" , "idPolicy" , "crosswalkRequired" ],
130 "properties" : {
131 "classification" : {
132 "enum" : [
133 "native" ,
134 "cms" ,
135 "native-plus-cms" ,
136 "setup-config" ,
137 "skip-by-default" ,
138 "unsupported-native-gap" ,
139 "manual-mapping"
140 ]
141 },
142 "nativeEntity" : { "type" : [ "string" , "null" ] },
143 "verifiedFqdn" : { "type" : [ "string" , "null" ] },
144 "idPolicy" : {
145 "enum" : [ "client-assigned" , "server-assigned" , "natural-key" , "not-applicable" ]
146 },
147 "crosswalkRequired" : { "type" : "boolean" }
148 }
149 },
150 "preferredWrite" : {
151 "type" : "object" ,
152 "required" : [ "surface" , "endpoint" , "writerId" , "verification" , "importSafe" , "bulk" ],
153 "properties" : {
154 "surface" : { "type" : "string" },
155 "endpoint" : { "type" : [ "string" , "null" ] },
156 "writerId" : { "type" : [ "string" , "null" ] },
157 "verification" : {
158 "enum" : [ "verified-live" , "docs" , "source-review" , "internal-only" , "unverified" , "none" ]
159 },
160 "importSafe" : { "type" : [ "boolean" , "null" ], "description" : "True unless the writer has a non-notification side effect site mute cannot cover (e.g. moving stock or money); notifications are never a reason. null only for manual-mapping. false requires importSafeReason." },
161 "importSafeReason" : {
162 "type" : "object" ,
163 "required" : [ "pitfall" , "summary" ],
164 "properties" : { "pitfall" : { "type" : "string" }, "summary" : { "type" : "string" } }
165 },
166 "bulk" : { "type" : "boolean" }
167 }
168 },
169 "alternateWrites" : {
170 "type" : "array" ,
171 "description" : "Other writers for the same entity. One with a string writerId counts as the entity's writer only when it is exported, importSafe is true and verification is verified-live." ,
172 "items" : {
173 "type" : "object" ,
174 "required" : [ "surface" , "endpoint" ],
175 "properties" : {
176 "surface" : { "type" : "string" },
177 "endpoint" : { "type" : [ "string" , "null" ] },
178 "writerId" : { "type" : [ "string" , "null" ] },
179 "verification" : { "enum" : [ "verified-live" , "docs" , "source-review" , "internal-only" , "unverified" , "none" ] },
180 "importSafe" : { "type" : "boolean" },
181 "bulk" : { "type" : "boolean" },
182 "when" : { "type" : "string" }
183 },
184 "if" : { "properties" : { "writerId" : { "type" : "string" } }, "required" : [ "writerId" ] },
185 "then" : { "required" : [ "writerId" , "verification" , "importSafe" ] }
186 }
187 },
188 "reliability" : {
189 "type" : "object" ,
190 "required" : [ "status" , "flags" ],
191 "properties" : {
192 "status" : { "enum" : [ "reliable" , "partially-reliable" , "unreliable" , "unknown" ] },
193 "flags" : { "type" : "array" , "items" : { "type" : "string" } }
194 }
195 },
196 "manualSteps" : {
197 "type" : "object" ,
198 "description" : "Required when target.classification is manual-mapping: a runbook to render to the merchant instead of a write." ,
199 "properties" : {
200 "prerequisite" : { "type" : [ "string" , "null" ] },
201 "steps" : {
202 "type" : "array" ,
203 "minItems" : 1 ,
204 "items" : {
205 "type" : "object" ,
206 "required" : [ "actor" , "text" ],
207 "properties" : {
208 "actor" : { "enum" : [ "merchant" , "external" , "wix-automatable" ] },
209 "text" : { "type" : "string" , "minLength" : 1 }
210 }
211 }
212 },
213 "mechanism" : { "type" : "string" },
214 "evidence" : { "type" : "array" }
215 }
216 },
217 "contactFields" : {
218 "type" : "array" ,
219 "items" : {
220 "type" : "object" ,
221 "required" : [ "kind" , "targetPath" , "source" ],
222 "properties" : {
223 "kind" : { "enum" : [ "email" , "phone" ] },
224 "targetPath" : { "type" : "string" , "minLength" : 1 },
225 "source" : { "type" : "string" , "minLength" : 1 },
226 "notes" : { "type" : "string" }
227 },
228 "additionalProperties" : true
229 }
230 }
231 }
232 }