{"type":"object","additionalProperties":false,"title":"Salesforce DX Project File","description":"The properties and shape of the SFDX project","$id":"http://schemas.salesforce.com/sfdx-project.json","$schema":"http://json-schema.org/draft-07/schema#","required":["packageDirectories"],"properties":{"packageDirectories":{"type":"array","minItems":1,"additionalItems":false,"title":"Package Directories","description":"Package directories indicate which directories to target when syncing source to and from the scratch org. These directories can contain source from your managed package, unmanaged package, or unpackaged source, for example, ant tool or change set.","$comment":"The properties ancestorId & ancestorVersion cannot be included together, but this schema optimizes for VS Code code completion rather than pure validation.","items":{}},"namespace":{"type":"string","title":"Namespace","description":"The global namespace that is used with a package. The namespace must be registered with an org that is associated with your Dev Hub org. This namespace is assigned to scratch orgs created with the org:create command. If you’re creating an unlocked package, you have the option to create a package with no namespace."},"sourceApiVersion":{"type":"string","title":"Source API Version","description":"The API version that the source is compatible with. The default is the same version as the Salesforce CLI.","default":"48.0"},"sfdcLoginUrl":{"type":"string","title":"SFDC Login URL","description":"The login URL that the force:auth commands use. If not specified, the default is login.salesforce.com. Override the default value if you want users to authorize to a specific Salesforce instance. For example, if you want to authorize into a sandbox org, set this parameter to test.salesforce.com.","default":"https://login.salesforce.com"},"signupTargetLoginUrl":{"type":"string","description":"The url that is used when creating new scratch orgs. This is typically only used for testing prerelease environments."},"oauthLocalPort":{"type":"number","description":"By default, the OAuth port is 1717. However, change this port if this port is already in use, and you plan to create a connected app in your Dev Hub org to support JWT-based authorization."},"plugins":{"type":"object","additionalProperties":true,"title":"CLI Plugins custom settings","description":"Salesforce CLI plugin configurations used with this project."},"packageAliases":{"type":"object","title":"Aliases for packaging ids","description":"The Salesforce CLI updates this file with the aliases when you create a package or package version. You can also manually update this section for existing packages or package versions. You can use the alias instead of the cryptic package ID when running CLI force:package commands.","patternProperties":{"^[ -~]+$":{"type":"string","pattern":"^(0Ho|033|05i|04t)([a-zA-Z0-9]{15}|[a-zA-Z0-9]{12})$"}}}}}
Property schema packageDirectories
Annotations
Title Package Directories
Description Package directories indicate which directories to target when syncing source to and from the scratch org. These directories can contain source from your managed package, unmanaged package, or unpackaged source, for example, ant tool or change set.
"packageDirectories":{"type":"array","minItems":1,"additionalItems":false,"title":"Package Directories","description":"Package directories indicate which directories to target when syncing source to and from the scratch org. These directories can contain source from your managed package, unmanaged package, or unpackaged source, for example, ant tool or change set.","$comment":"The properties ancestorId & ancestorVersion cannot be included together, but this schema optimizes for VS Code code completion rather than pure validation.","items":{"type":"object","dependencies":{"ancestorId":["versionNumber","package"],"ancestorVersion":["versionNumber","package"],"definitionFile":["versionNumber","package"],"dependencies":["versionNumber","package"],"package":["versionNumber"],"postInstallScript":["versionNumber","package"],"postInstallUrl":["versionNumber","package"],"releaseNotesUrl":["versionNumber","package"],"uninstallScript":["versionNumber","package"],"versionDescription":["versionNumber","package"],"versionName":["versionNumber","package"],"versionNumber":["package"]},"additionalProperties":false,"required":["path"],"properties":{"ancestorId":{"$ref":"#/definitions/packageDirectory.ancestorId"},"ancestorVersion":{"$ref":"#/definitions/packageDirectory.ancestorVersion"},"default":{"$ref":"#/definitions/packageDirectory.default"},"definitionFile":{"$ref":"#/definitions/packageDirectory.definitionFile"},"dependencies":{"$ref":"#/definitions/packageDirectory.dependencies"},"includeProfileUserLicenses":{"$ref":"#/definitions/packageDirectory.includeProfileUserLicenses"},"package":{"$ref":"#/definitions/packageDirectory.package"},"path":{"$ref":"#/definitions/packageDirectory.path"},"postInstallScript":{"$ref":"#/definitions/packageDirectory.postInstallScript"},"postInstallUrl":{"$ref":"#/definitions/packageDirectory.postInstallUrl"},"releaseNotesUrl":{"$ref":"#/definitions/packageDirectory.releaseNotesUrl"},"uninstallScript":{"$ref":"#/definitions/packageDirectory.uninstallScript"},"versionDescription":{"$ref":"#/definitions/packageDirectory.versionDescription"},"versionName":{"$ref":"#/definitions/packageDirectory.versionName"},"versionNumber":{"$ref":"#/definitions/packageDirectory.versionNumber"}}}}
"packageDirectory.ancestorId":{"type":"string","title":"Ancestor ID","description":"The ancestor that’s the immediate parent of the version that you’re creating. The package version ID to supply starts with '05i'."}
Description The ancestor that’s the immediate parent of the version that you’re creating. The ancestor version uses the format major.minor.patch.build.
"packageDirectory.ancestorVersion":{"type":"string","title":"Ancestor Version","description":"The ancestor that’s the immediate parent of the version that you’re creating. The ancestor version uses the format major.minor.patch.build."}
"packageDirectory.default":{"title":"Default","description":"If you have specified more than one path, include this parameter for the default path to indicate which is the default package directory.","default":true,"type":"boolean"}
Description Reference an external .json file to specify the features and org preferences required for the metadata of your package, such as the scratch org definition.
"packageDirectory.definitionFile":{"type":"string","title":"Definition File","description":"Reference an external .json file to specify the features and org preferences required for the metadata of your package, such as the scratch org definition."}
Description To specify dependencies for 2GP within the same Dev Hub, use either the package version alias or a combination of the package name and the version number.
"packageDirectory.dependencies":{"type":"array","description":"To specify dependencies for 2GP within the same Dev Hub, use either the package version alias or a combination of the package name and the version number.","items":{"type":"object","required":["package"],"properties":{"package":{"type":"string"},"versionNumber":{"type":"string"}}}}
"packageDirectory.includeProfileUserLicenses":{"title":"Include Profile User Licenses","description":"Whether to include <userLicense> elements in profile metadata ","type":"boolean"}
"packageDirectory.path":{"type":"string","title":"Path","description":"If you don’t specify a path, the Salesforce CLI uses a placeholder when you create a package."}
"packageDirectory.versionDescription":{"type":"string","title":"Version Description","description":"Human readable version information, format not specified."}
"packageDirectory.versionName":{"type":"string","title":"Version Name","description":"If not specified, the CLI uses versionNumber as the version name."}
"packageDirectory.versionNumber":{"type":"string","title":"Version Number","description":"Version numbers are formatted as major.minor.patch.build. For example, 1.2.1.8."}
Description The global namespace that is used with a package. The namespace must be registered with an org that is associated with your Dev Hub org. This namespace is assigned to scratch orgs created with the org:create command. If you’re creating an unlocked package, you have the option to create a package with no namespace.
"namespace":{"type":"string","title":"Namespace","description":"The global namespace that is used with a package. The namespace must be registered with an org that is associated with your Dev Hub org. This namespace is assigned to scratch orgs created with the org:create command. If you’re creating an unlocked package, you have the option to create a package with no namespace."}
Property schema sourceApiVersion
Annotations
Title Source API Version
Description The API version that the source is compatible with. The default is the same version as the Salesforce CLI.
"sourceApiVersion":{"type":"string","title":"Source API Version","description":"The API version that the source is compatible with. The default is the same version as the Salesforce CLI.","default":"48.0"}
Property schema sfdcLoginUrl
Annotations
Title SFDC Login URL
Description The login URL that the force:auth commands use. If not specified, the default is login.salesforce.com. Override the default value if you want users to authorize to a specific Salesforce instance. For example, if you want to authorize into a sandbox org, set this parameter to test.salesforce.com.
"sfdcLoginUrl":{"type":"string","title":"SFDC Login URL","description":"The login URL that the force:auth commands use. If not specified, the default is login.salesforce.com. Override the default value if you want users to authorize to a specific Salesforce instance. For example, if you want to authorize into a sandbox org, set this parameter to test.salesforce.com.","default":"https://login.salesforce.com"}
Property schema signupTargetLoginUrl
Annotations
Description The url that is used when creating new scratch orgs. This is typically only used for testing prerelease environments.
"signupTargetLoginUrl":{"type":"string","description":"The url that is used when creating new scratch orgs. This is typically only used for testing prerelease environments."}
Property schema oauthLocalPort
Annotations
Description By default, the OAuth port is 1717. However, change this port if this port is already in use, and you plan to create a connected app in your Dev Hub org to support JWT-based authorization.
"oauthLocalPort":{"type":"number","description":"By default, the OAuth port is 1717. However, change this port if this port is already in use, and you plan to create a connected app in your Dev Hub org to support JWT-based authorization."}
Property schema plugins
Annotations
Title CLI Plugins custom settings
Description Salesforce CLI plugin configurations used with this project.
"plugins":{"type":"object","additionalProperties":true,"title":"CLI Plugins custom settings","description":"Salesforce CLI plugin configurations used with this project."}
Property schema packageAliases
Annotations
Title Aliases for packaging ids
Description The Salesforce CLI updates this file with the aliases when you create a package or package version. You can also manually update this section for existing packages or package versions. You can use the alias instead of the cryptic package ID when running CLI force:package commands.
"packageAliases":{"type":"object","title":"Aliases for packaging ids","description":"The Salesforce CLI updates this file with the aliases when you create a package or package version. You can also manually update this section for existing packages or package versions. You can use the alias instead of the cryptic package ID when running CLI force:package commands.","patternProperties":{"^[ -~]+$":{"type":"string","pattern":"^(0Ho|033|05i|04t)([a-zA-Z0-9]{15}|[a-zA-Z0-9]{12})$"}}}