1 | {
|
2 | "$schema": "http://json-schema.org/draft-04/schema#",
|
3 | "id": "sfdxProjectSchema.json#",
|
4 | "type": "object",
|
5 | "title": "SFDX Project",
|
6 | "description": "The properties and shape of the SFDX project",
|
7 | "properties": {
|
8 | "namespace": {
|
9 | "type": "string",
|
10 | "title": "Namespace",
|
11 | "description": "The project's namespace"
|
12 | },
|
13 | "sfdcLoginUrl": {
|
14 | "type": "string",
|
15 | "title": "SFDC Login URL",
|
16 | "description": "The Salesforce Login URL",
|
17 | "default": "https://login.salesforce.com"
|
18 | },
|
19 | "sourceApiVersion": {
|
20 | "type": "string",
|
21 | "title": "Source API Version",
|
22 | "description": "The API version of the Salesforce DX-formatted source",
|
23 | "default": "43.0"
|
24 | },
|
25 | "softExit": {
|
26 | "type": "boolean",
|
27 | "title": "Soft Exit",
|
28 | "description": "Enable or disable soft exit mode"
|
29 | },
|
30 | "enableTokenEncryption": {
|
31 | "type": "boolean",
|
32 | "title": "Enable Token Encryption",
|
33 | "description": "Enable or disable token encryption"
|
34 | },
|
35 | "plugins": {
|
36 | "type": "object",
|
37 | "title": "CLI Plugins custom settings",
|
38 | "description": "Plugins custom settings that users can set for a project.",
|
39 | "additionalProperties": true
|
40 | },
|
41 | "packageAliases": {
|
42 | "title": "Aliases for packaging ids",
|
43 | "type": "object",
|
44 | "description": "Acceptable alias name and alias value pairs",
|
45 | "patternProperties": {
|
46 | "^[ -~]+$": {
|
47 | "type": "string",
|
48 | "pattern": "^(0Ho|033|05i|04t)([a-zA-Z0-9]{15}|[a-zA-Z0-9]{12})$"
|
49 | }
|
50 | }
|
51 | },
|
52 | "packageDirectories": {
|
53 | "type": "array",
|
54 | "title": "Package Directories",
|
55 | "description": "The list of package source directories",
|
56 | "items": {
|
57 | "$ref": "#/definitions/packageDirectory"
|
58 | }
|
59 | }
|
60 | },
|
61 | "additionalProperties": false,
|
62 | "required": ["sfdcLoginUrl"],
|
63 | "definitions": {
|
64 | "features": {
|
65 | "type": "oneOf",
|
66 | "title": "Features",
|
67 | "description": "The list of features names to enable",
|
68 | "oneOf": [
|
69 | {
|
70 | "type": "string",
|
71 | "title": "Features",
|
72 | "description": "The list of feature names to enable as a string"
|
73 | },
|
74 | {
|
75 | "type": "array",
|
76 | "title": "Features",
|
77 | "description": "The list of feature names to enable as an array",
|
78 | "items": {
|
79 | "type": "string",
|
80 | "title": "Feature Name",
|
81 | "description": "Name of the feature to enable"
|
82 | }
|
83 | }
|
84 | ]
|
85 | },
|
86 | "orgPreferences": {
|
87 | "type": "object",
|
88 | "title": "Org Preferences",
|
89 | "description": "The list of org preferences",
|
90 | "properties": {
|
91 | "enabled": {
|
92 | "type": "array",
|
93 | "title": "Enabled Org Preferences",
|
94 | "description": "The list of org preferences to enable",
|
95 | "items": {
|
96 | "type": "string",
|
97 | "title": "Org Preference Name",
|
98 | "description": "Name of the org preference to enable"
|
99 | }
|
100 | },
|
101 | "disabled": {
|
102 | "type": "array",
|
103 | "title": "Disabled Org Preferences",
|
104 | "description": "The list of org preferences to disable",
|
105 | "items": {
|
106 | "type": "string",
|
107 | "title": "Org Preference Name",
|
108 | "description": "Name of the org preference to disable"
|
109 | }
|
110 | }
|
111 | }
|
112 | },
|
113 | "dependency": {
|
114 | "title": "Dependency",
|
115 | "description": "Package OR package & versionNumber OR (Deprecated) Dependency packageId & versionNumber OR (Deprecated) subscriberPackageVersionId",
|
116 | "oneOf": [
|
117 | {
|
118 | "type": "object",
|
119 | "properties": {
|
120 | "packageId": {
|
121 | "type": "string",
|
122 | "title": "Package ID",
|
123 | "description": "The dependency package2 ID (starts with 0Ho)"
|
124 | },
|
125 | "versionNumber": {
|
126 | "type": "string",
|
127 | "title": "Version Number",
|
128 | "description": "The dependency version number"
|
129 | }
|
130 | },
|
131 | "required": ["packageId", "versionNumber"]
|
132 | },
|
133 | {
|
134 | "type": "object",
|
135 | "properties": {
|
136 | "subscriberPackageVersionId": {
|
137 | "type": "string",
|
138 | "title": "Subscriber Package Version ID",
|
139 | "description": "The dependency subscriber package version ID (starts with 04t)"
|
140 | }
|
141 | },
|
142 | "required": ["subscriberPackageVersionId"]
|
143 | },
|
144 | {
|
145 | "type": "object",
|
146 | "properties": {
|
147 | "package": {
|
148 | "type": "string",
|
149 | "title": "Subscriber Package Version ID or alias",
|
150 | "description": "The dependency subscriber package version ID (starts with 04t) or alias for the ID"
|
151 | },
|
152 | "versionNumber": {
|
153 | "type": "string",
|
154 | "title": "Version Number",
|
155 | "description": "The dependency version number"
|
156 | }
|
157 | },
|
158 | "required": ["package"]
|
159 | }
|
160 | ]
|
161 | },
|
162 | "packageDirectory": {
|
163 | "type": "object",
|
164 | "title": "Directory Type",
|
165 | "description": "Package source directory type",
|
166 | "properties": {
|
167 | "path": {
|
168 | "type": "string",
|
169 | "title": "Path",
|
170 | "description": "The path name of the package directory"
|
171 | },
|
172 | "id": {
|
173 | "type": "string",
|
174 | "title": "ID",
|
175 | "description": "ID of the package2 for the source directory (starts with 0Ho)"
|
176 | },
|
177 | "package": {
|
178 | "type": "string",
|
179 | "title": "Package Identifier",
|
180 | "description": "The identifier (ID or alias) for the package."
|
181 | },
|
182 | "versionName": {
|
183 | "type": "string",
|
184 | "title": "Version Name",
|
185 | "description": "The package version name."
|
186 | },
|
187 | "versionDescription": {
|
188 | "type": "string",
|
189 | "title": "Version Description",
|
190 | "description": "The package version description"
|
191 | },
|
192 | "versionNumber": {
|
193 | "type": "string",
|
194 | "title": "Version Number",
|
195 | "description": "The package version number: Major.Minor.Patch.Build"
|
196 | },
|
197 | "definitionFile": {
|
198 | "type": "string",
|
199 | "title": "Definition File",
|
200 | "description": "Path to the definition json file that specifies org prefs and features"
|
201 | },
|
202 | "ancestorId": {
|
203 | "type": "string",
|
204 | "title": "Ancestor ID",
|
205 | "description": "The package2 version ancestor ID (starts with 05i)"
|
206 | },
|
207 | "ancestorVersion": {
|
208 | "type": "string",
|
209 | "title": "Ancestor Version",
|
210 | "description": "The package2 ancestor version number."
|
211 | },
|
212 | "releaseNotesUrl": {
|
213 | "type": "string",
|
214 | "title": "Release Notes Url",
|
215 | "description": "The release notes url."
|
216 | },
|
217 | "postInstallUrl": {
|
218 | "type": "string",
|
219 | "title": "Post Install Url",
|
220 | "description": "The post install url."
|
221 | },
|
222 | "postInstallScript": {
|
223 | "type": "string",
|
224 | "title": "Post Install Script",
|
225 | "description": "The post install script."
|
226 | },
|
227 | "uninstallScript": {
|
228 | "type": "string",
|
229 | "title": "Uninstall Script",
|
230 | "description": "The uninstall script."
|
231 | },
|
232 | "includeProfileUserLicenses": {
|
233 | "type": "boolean",
|
234 | "title": "Include Profile User Licenses",
|
235 | "description": "Whether to include <userLicense> elements in profile metadata "
|
236 | },
|
237 | "default": {
|
238 | "type": "boolean",
|
239 | "title": "Default",
|
240 | "description": "Enable / disable this package directory as default"
|
241 | },
|
242 | "features": {
|
243 | "$ref": "#/definitions/features"
|
244 | },
|
245 | "orgPreferences": {
|
246 | "$ref": "#/definitions/orgPreferences"
|
247 | },
|
248 | "unpackagedMetadata": {
|
249 | "type": "object",
|
250 | "title": "Unpackaged Metadata",
|
251 | "description": "Metadata not meant to be packaged, but deployed when testing packaged metadata",
|
252 | "properties": {
|
253 | "path": {
|
254 | "type": "string",
|
255 | "title": "Path",
|
256 | "description": "The path name of the package directory containing the unpackaged metadata"
|
257 | }
|
258 | }
|
259 | },
|
260 | "dependencies": {
|
261 | "type": "array",
|
262 | "title": "Dependencies",
|
263 | "description": "The list of package dependencies",
|
264 | "items": {
|
265 | "$ref": "#/definitions/dependency"
|
266 | },
|
267 | "plugins": {
|
268 | "type": "object",
|
269 | "title": "CLI Plugins custom settings",
|
270 | "description": "Plugins custom settings that users can set for a project.",
|
271 | "additionalProperties": true,
|
272 | "title": "Org Preferences",
|
273 | "description": "The list of org preferences",
|
274 | "properties": {
|
275 | "enabled": {
|
276 | "type": "array",
|
277 | "title": "Enabled Org Preferences",
|
278 | "description": "The list of org preferences to enable",
|
279 | "items": {
|
280 | "type": "string",
|
281 | "title": "Org Preference Name",
|
282 | "description": "Name of the org preference to enable"
|
283 | }
|
284 | },
|
285 | "disabled": {
|
286 | "type": "array",
|
287 | "title": "Disabled Org Preferences",
|
288 | "description": "The list of org preferences to disable",
|
289 | "items": {
|
290 | "type": "string",
|
291 | "title": "Org Preference Name",
|
292 | "description": "Name of the org preference to disable"
|
293 | }
|
294 | }
|
295 | }
|
296 | },
|
297 | "definitionFile": {
|
298 | "type": "string",
|
299 | "title": "Definition File",
|
300 | "description": "Path to the definition json file that specifies org prefs and features"
|
301 | },
|
302 | "features": {
|
303 | "type": "string",
|
304 | "title": "Features",
|
305 | "description": "The list of feature names to enable"
|
306 | },
|
307 | "orgPreferences": {
|
308 | "type": "object",
|
309 | "title": "Org Preferences",
|
310 | "description": "The list of org preferences",
|
311 | "properties": {
|
312 | "enabled": {
|
313 | "type": "array",
|
314 | "title": "Enabled Org Preferences",
|
315 | "description": "The list of org preferences to enable",
|
316 | "items": {
|
317 | "type": "string",
|
318 | "title": "Org Preference Name",
|
319 | "description": "Name of the org preference to enable"
|
320 | }
|
321 | },
|
322 | "disabled": {
|
323 | "type": "array",
|
324 | "title": "Disabled Org Preferences",
|
325 | "description": "The list of org preferences to disable",
|
326 | "items": {
|
327 | "type": "string",
|
328 | "title": "Org Preference Name",
|
329 | "description": "Name of the org preference to disable"
|
330 | }
|
331 | }
|
332 | }
|
333 | },
|
334 | "dependencies": {
|
335 | "type": "array",
|
336 | "title": "Dependencies",
|
337 | "description": "The list of package dependencies",
|
338 | "items": {
|
339 | "title": "Dependency",
|
340 | "description": "Dependency packageId & versionNumber or subscriberPackageVersionId",
|
341 | "oneOf": [
|
342 | {
|
343 | "type": "object",
|
344 | "properties": {
|
345 | "packageId": {
|
346 | "type": "string",
|
347 | "title": "Package ID",
|
348 | "description": "The dependency package2 ID (starts with 0Ho)"
|
349 | },
|
350 | "versionNumber": {
|
351 | "type": "string",
|
352 | "title": "Version Number",
|
353 | "description": "The dependency version number"
|
354 | }
|
355 | },
|
356 | "required": ["packageId", "versionNumber"]
|
357 | },
|
358 | {
|
359 | "type": "object",
|
360 | "properties": {
|
361 | "subscriberPackageVersionId": {
|
362 | "type": "string",
|
363 | "title": "Subscriber Package Version ID",
|
364 | "description": "The dependency subscriber package version ID (starts with 04t)"
|
365 | }
|
366 | },
|
367 | "required": ["subscriberPackageVersionId"]
|
368 | }
|
369 | ]
|
370 | }
|
371 | }
|
372 | }
|
373 | },
|
374 | "additionalProperties": false,
|
375 | "oneOf": [
|
376 | {
|
377 | "required": ["id", "path", "versionName", "versionNumber"]
|
378 | },
|
379 | {
|
380 | "required": ["package", "path", "versionName", "versionNumber"]
|
381 | }
|
382 | ]
|
383 | }
|
384 | }
|
385 | }
|