{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://www.codifycli.com/codify-schema.json", "title": "JSON schema for Codify configuration files", "type": "array", "items": { "oneOf": [ { "type": "object", "properties": { "type": { "description": "All project configs are of the type project", "type": "string", "const": "project" }, "version": { "description": "Semver version. Codify will throw an error if this is not satisfied", "type": "string", "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z-]+)?$" }, "plugins": { "type": "object", "patternProperties": { ".*": { "type": "string" } } }, "description": { "description": "An optional description of the codify project", "type": "string" } }, "required": ["type"], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/git/git/", "description": "Set and manage global git settings (email and username)", "type": "object", "properties": { "email": { "type": "string", "description": "The global email to set for git" }, "username": { "type": "string", "description": "The global username to set for git" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "git", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "type": "object", "properties": { "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "xcode-tools", "type": "string" } }, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/path/", "description": "Manages user paths. It will permanently save paths by adding them to the shell startup script.", "type": "object", "properties": { "path": { "type": "string", "description": "The path to append. This parameter cannot be used at the same time as paths" }, "paths": { "type": "array", "description": "Multiple paths to append. This parameter cannot be used at the same time as path", "items": { "type": "string" } }, "prepend": { "type": "boolean", "description": "Whether or not to prepend to the path." }, "declarationsOnly": { "type": "boolean", "default": false, "description": "Only plan and manage explicitly declared paths found in shell startup scripts. This value is forced to true for stateful mode" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "path", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/alias/", "description": "Manages user aliases. It permanently saves the alias by adding it to the shell startup script.", "type": "object", "properties": { "alias": { "type": "string", "pattern": "^[^ \t\n/\\$`=|&;()<>'\"]*$", "description": "The name of the alias" }, "value": { "type": "string", "description": "The alias value" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "alias", "type": "string" } }, "required": [ "alias", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/homebrew/", "description": "Install homebrew and manages formulae, casks and taps.", "type": "object", "properties": { "formulae": { "type": "array", "items": { "type": "string" } }, "casks": { "type": "array", "items": { "type": "string" } }, "taps": { "type": "array", "items": { "type": "string" } }, "directory": { "type": "string" }, "skipAlreadyInstalledCasks": { "type": "boolean", "description": "Skips installing an casks which has already been installed externally. This prevents homebrew from conflicting with the existing install. Defaults to true." }, "onlyPlanUserInstalled": { "type": "boolean", "description": "Only consider packages that the user has explicitly specified in the plan and ignore any dependent packages" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "homebrew", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/python/pyenv/", "type": "object", "description": "Install and manage Python versions using pyenv.", "properties": { "pythonVersions": { "type": "array", "description": "An array of Python versions to install using pyenv. Partial matching is supported (3.9 instead of 3.9.11)", "items": { "type": "string" } }, "global": { "type": "string", "description": "The global Python version set by pyenv." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "pyenv", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/git/git-lfs/", "description": "Installs git-lfs. This resource will automatically activate git-lfs as well.", "type": "object", "properties": { "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "git-lfs", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/aws-cli/", "type": "object", "description": "Installs aws-cli.", "properties": { "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "aws-cli", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/aws-profile/", "type": "object", "description": "Configures AWS profiles.", "properties": { "profile": { "type": "string", "description": "The aws profile that is being configured", "default": "default" }, "awsAccessKeyId": { "type": "string", "description": "The access key id from AWS" }, "awsSecretAccessKey": { "type": "string", "description": "The access key secret from AWS" }, "csvCredentials": { "type": "string", "description": "An AWS credentials file with access credentials" }, "region": { "type": "string", "description": "The region from AWS" }, "output": { "type": "string", "description": "The output format secret from AWS" }, "metadataServiceTimeout": { "type": "string", "description": "The metadata service timeout" }, "metadataServiceNumAttempts": { "type": "string", "description": "The metadata service num attempts" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "aws-profile", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/terraform/", "description": "Installs Terraform.", "type": "object", "properties": { "directory": { "type": "string", "description": "The directory to install Terraform. Defaults to /usr/local/bin." }, "version": { "type": "string", "description": "The specific version of Terraform to install. Defaults to latest." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "terraform", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/javascript/nvm/", "description": "Install and manage Node versions using nvm.", "type": "object", "properties": { "nodeVersions": { "type": "array", "description": "An array of node versions to install using nvm. Partial matching is supported (20 instead of 20.15.1)", "items": { "type": "string" } }, "global": { "description": "The global Node version set by nvm.", "type": "string" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "nvm", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/jenv/", "type": "object", "description": "Install jenv and manage Java versions using jenv. Jenv cannot install Java directly, it needs to be installed separately and added to Jenv.", "properties": { "add": { "type": "array", "description": "The java_home path to add to jenv. Jenv does not directly install Java. This resources optionally allows users to specify a LTS version instead of a path (8, 11, 17, 21, 22) and install it via Homebrew", "items": { "type": "string" } }, "global": { "description": "Set the global Java version using Jenv.", "type": "string" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "jenv", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/pgcli/", "type": "object", "description": "Installs pgcli.", "properties": { "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "pgcli", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/vscode/", "description": "Installs Vscode.", "type": "object", "properties": { "directory": { "type": "string", "description": "The directory to install VSCode into. Defaults to /Applications.", "default": "/Applications" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "vscode", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/git/git-repository/", "description": "Git clone a repository. Choose either to specify the exact directory to clone into or the parent directory (it deduces the folder name using the repository name).", "type": "object", "properties": { "repository": { "type": "string", "description": "Remote repository to clone repo from." }, "parentDirectory": { "type": "string", "description": "Parent directory to clone into. The folder name will use default git semantics which extracts the last part of the clone url. Only one of parentDirectory or directory can be specified" }, "directory": { "type": "string", "description": "Directory to clone contents into. This value is directly passed into git clone. This differs from parent directory in that the last part of the path will be the folder name of the repo" }, "autoVerifySSH": { "type": "boolean", "description": "Automatically verifies the ssh connection for ssh git clones. Defaults to true." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "git-repository", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/android-studio/", "type": "object", "description": "Install Android Studios.", "properties": { "version": { "type": "string", "description": "Android studios version. Visit: https://developer.android.com/studio/releases for version info" }, "directory": { "type": "string", "description": "The directory to install Android Studios into. Defaults to /Applications", "default": "/Applications" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "android-studio", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/asdf/asdf/", "type": "object", "description": "Installs asdf and manages asdf plugins. Use 'asdf-install' or 'asdf-plugin' to install the actual tool. Use 'asdf-global' or 'asdf-local' to activate the tool in the shell.", "properties": { "plugins": { "type": "array", "description": "Asdf plugins to install. See: https://github.com/asdf-community for a full list", "items": { "type": "string" } }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "asdf", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/asdf/asdf-plugin/", "description": "Installs a plugin and manages specific tool versions.", "type": "object", "properties": { "plugin": { "type": "string", "description": "Asdf plugin name" }, "versions": { "type": "array", "description": "A list of versions to install", "items": { "type": "string" } }, "gitUrl": { "type": "string", "description": "The gitUrl of the plugin" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "asdf-plugin", "type": "string" } }, "required": [ "plugin", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/asdf/asdf-global/", "type": "object", "description": "Manage the asdf global version for a tool. An asdf-global or asdf-local resource must be specified before a tool installed with asdf is active in the shell.", "properties": { "plugin": { "type": "string", "description": "Asdf plugin name" }, "version": { "type": "string", "description": "A version to install" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "asdf-global", "type": "string" } }, "required": [ "plugin", "version", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/asdf/asdf-local/", "description": "Manage the asdf local version for a tool. An asdf-global or asdf-local resource must be specified before a tool installed with asdf is active in the shell.", "type": "object", "properties": { "plugin": { "type": "string", "description": "Asdf plugin name" }, "version": { "type": "string", "description": "A version to install" }, "directory": { "type": "string", "description": "A local install of the version. Provide the location to install the version. For the current directory use '.'" }, "directories": { "type": "array", "description": "An array of install locations for the specified version. For the current directory use '.", "items": { "type": "string" } }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "asdf-local", "type": "string" } }, "required": [ "plugin", "version", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/asdf/asdf-install/", "type": "object", "description": "Install a .tools-version file or directly install an asdf plugin + tool version.", "properties": { "plugin": { "type": "string", "description": "Asdf plugin name" }, "versions": { "type": "array", "description": "A list of versions to install", "items": { "type": "string" } }, "directory": { "type": "string", "description": "The directory to run the install command" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "asdf-install", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/ssh/ssh-key/", "description": "Generate and manage a ssh private/public key.", "type": "object", "properties": { "keyType": { "type": "string", "description": "The type of key to create (the encryption algorithm used). This corresponds to the -t flag of ssh-keygen. This value defaults to ed25519.", "enum": [ "ecdsa", "ecdsa-sk", "ed25519", "ed25519-sk", "rsa" ] }, "comment": { "type": "string", "description": "Comment to add to the ssh key. Changing this value will not re-create the ssh key" }, "fileName": { "type": "string", "description": "Specifies the filename of the key file. This corresponds to the -f flag of ssh-keygen" }, "bits": { "type": "number", "description": "Specifies the number of bits in the key to create. This corresponds to the -b flag of ssh-keygen." }, "passphrase": { "type": "string", "description": "The passphrase to use. This parameter is required. To set an empty password set the value to the empty string: \"\"" }, "folder": { "type": "string", "description": "The folder to generate the ssh key in. Defaults to `$HOME/.ssh`" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "ssh-key", "type": "string" } }, "required": [ "passphrase", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/ssh/ssh-config/", "description": "Configures the ssh config file.", "type": "object", "properties": { "hosts": { "description": "The host blocks inside of the ~/.ssh/config file. See http://man.openbsd.org/OpenBSD-current/man5/ssh_config.5 ", "type": "array", "items": { "type": "object", "description": "The individual host blocks inside of the ~/.ssh/config file", "properties": { "Host": { "type": "string", "description": "The host is usually the hostname argument given on the command line. Can accept ! and *" }, "Match": { "type": "string", "description": "Restricts the following declarations (up to the next Host or Match keyword) to be used only when the conditions following the Match keyword are satisfied" }, "AddKeysToAgent": { "type": "boolean", "description": "Specifies whether keys should be automatically added to a running ssh-agent(1)" }, "User": { "type": "string", "description": "Specifies the user to log in as. This can be useful when a different user name is used on different machines" }, "UseKeychain": { "type": "boolean", "description": "A UseKeychain option was introduced in macOS Sierra allowing users to specify whether they would like for the passphrase to be stored in the keychain" }, "IgnoreUnknown": { "type": "string", "description": "Specifies a pattern-list of unknown options to be ignored if they are encountered in configuration parsing" }, "Port": { "type": "number", "description": "Specifies the port number to connect on the remote host. The default is 22." }, "IdentityFile": { "type": "string", "description": "Specifies a file from which the user's ECDSA, authenticator-hosted ECDSA, Ed25519, authenticator-hosted Ed25519 or RSA authentication identity is read" }, "LogLevel": { "type": "string", "description": "Gives the verbosity level that is used when logging messages from ssh(1)." }, "Compression": { "type": "boolean", "description": "Specifies whether to use compression. The argument must be yes or no (the default)." }, "PreferredAuthentications": { "type": "string", "description": "Specifies the order in which the client should try authentication methods." }, "PasswordAuthentication": { "type": "boolean", "description": "Specifies whether to use password authentication." } } } }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "ssh-config", "type": "string" } }, "required": [ "hosts", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/ssh/ssh-add/", "description": "Adds ssh private keys to the ssh agent.", "type": "object", "properties": { "path": { "type": "string", "description": "The path to the ssh key to add" }, "appleUseKeychain": { "type": "boolean", "description": "Corresponds to the --apple-use-keychain parameter. Controls whether the key should be loaded into the apple keychain. Only keys with a passphrase can be loaded" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "ssh-add", "type": "string" } }, "required": [ "path", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/scripting/action/", "description": "Run custom scripts using the action resource. A condition can be specified to conditionally trigger a script.", "type": "object", "properties": { "condition": { "type": "string", "description": "A condition (in bash) that decides if the action is triggered. Return 0 to trigger and any non-zero exit code to skip." }, "action": { "type": "string", "description": "A bash command to run." }, "cwd": { "type": "string", "description": "The directory that the action should be ran in." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "action", "type": "string" } }, "required": [ "action", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/files/file/", "description": "Manages a file.", "type": "object", "properties": { "path": { "type": "string", "description": "The location of the file." }, "contents": { "type": "string", "description": "The contents of the file." }, "onlyCreate": { "type": "boolean", "description": "Forces the resource to only create the file if it doesn't exist but don't detect any content changes." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "file", "type": "string" } }, "required": [ "path", "contents", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/files/remote-file/", "description": "Represents a file stored on codify cloud. Use apply to pull changes from remote and save to local. Use refresh and import to upload changes to remote.", "type": "object", "properties": { "path": { "type": "string", "description": "The local path of the file." }, "remote": { "type": "string", "description": "The remote codify cloud file path. This should be in the format of codify://:" }, "hash": { "type": "string", "description": "Leave empty. The md5 hash of the file." }, "onlyCreate": { "type": "boolean", "description": "Forces the resource to only create the file if it doesn't exist but don't detect any content changes. Also skips uploading the file to Codify cloud on refresh and import." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "remote-file", "type": "string" } }, "required": [ "path", "remote", "type" ], "additionalProperties": false }, { "$comment": "https://docs.codifycli.com/core-resources/python/virtualenv-project/", "type": "object", "description": "Install and manage local packages with virtualenv", "properties": { "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "virtualenv", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/python/virtualenv-project/", "type": "object", "description": "Install and manage local packages for a project with virtualenv", "properties": { "dest": { "type": "string", "description": "The directory to create virtualenv at" }, "python": { "type": "string", "description": "A path to the python interpreter to use to create the virtualenv. This defaults to the global python3 version." }, "noVcsIgnore": { "type": "boolean", "description": "Don't create VCS ignore directive in the destination directory (default: false)" }, "systemSitePackages": { "type": "boolean", "description": "Give the virtual environment access to the system site-packages dir (default: false)" }, "symlinks": { "type": "boolean", "description": " Try to use symlinks rather than copies (default: true)" }, "cwd": { "type": "string", "description": "The cwd to create virtualenv from. This allows a relative path to be used for dest." }, "automaticallyInstallRequirementsTxt": { "type": "boolean", "description": "If an requirements.txt is available in the cwd, automatically install it when a virtual env is first created." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "virtualenv-project", "type": "string" } }, "additionalProperties": false, "required": [ "dest", "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/javascript/pnpm/", "description": "Install and manage Node dependencies and versions using pnpm.", "type": "object", "properties": { "version": { "type": "string", "description": "A specific version of pnpm to install. (defaults to the latest)" }, "globalEnvNodeVersion": { "type": "string", "description": "Set the global node version. Corresponds to pnpm env --global use" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "pnpm", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "type": "object", "properties": { "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "wait-github-ssh-key", "type": "string" } }, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/python/venv-project/", "type": "object", "description": "Install and manage local packages for a project with venv", "properties": { "envDir": { "type": "string", "description": "A directory to create the environment in." }, "systemSitePackages": { "type": "boolean", "description": "Give the virtual environment access to the system site-packages dir." }, "symlinks": { "type": "boolean", "description": "Try to use symlinks rather than copies, when symlinks are not the default for the platform." }, "copies": { "type": "boolean", "description": "Delete the contents of the environment directory if it already exists, before environment creation." }, "clear": { "type": "boolean", "description": "Try to use symlinks rather than copies (default: true)." }, "upgrade": { "type": "boolean", "description": "Upgrade the environment directory to use this version of Python, assuming Python has been upgraded in-place." }, "withoutPip": { "type": "boolean", "description": "Skips installing or upgrading pip in the virtual environment (pip is bootstrapped by default)." }, "prompt": { "type": "string", "description": "Provides an alternative prompt prefix for this environment." }, "upgradeDeps": { "type": "boolean", "description": "Upgrade core dependencies: pip setuptools to the latest version in PyPI." }, "cwd": { "type": "string", "description": "The cwd to create virtualenv from. This allows a relative path to be used for dest." }, "automaticallyInstallRequirementsTxt": { "type": "boolean", "description": "If an requirements.txt is available in the cwd, automatically install it when a virtual env is first created." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "venv-project", "type": "string" } }, "additionalProperties": false, "required": [ "envDir", "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/python/pip/", "type": "object", "description": "Install and manage packages using pip", "properties": { "virtualEnv": { "type": "string", "description": "A virtual env to activate before issuing pip commands." }, "install": { "type": "array", "description": "Packages to install.", "items": { "oneOf": [ { "type": "string" }, { "type": "object", "properties": { "name": { "type": "string" }, "version": { "type": "string" } }, "required": [ "name" ] } ] } }, "installFiles": { "description": "A list of requirement files to install.", "type": "array", "items": { "type": "string" } }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "pip", "type": "string" } }, "additionalProperties": false, "required": [ "install", "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/python/pip-sync/", "type": "object", "description": "Install and manage though pip-tools by installing + uninstalling packages using pip-sync", "properties": { "virtualEnv": { "type": "string", "description": "A virtual env to activate before issuing commands." }, "requirementFiles": { "type": "array", "items": { "type": "string" }, "description": "A list of requirement files to supply pip-sync." }, "cwd": { "type": "string", "description": "The working directory to run commands from. If cwd is supplied, the other parameters can be specified as relative to cwd." }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "pip-sync", "type": "string" } }, "additionalProperties": false, "required": [ "requirementFiles", "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/macports/", "description": "Install macports and manage packages.", "type": "object", "properties": { "install": { "type": "array", "description": "Installs packages.", "items": { "oneOf": [ { "type": "string" }, { "type": "object", "properties": { "name": { "type": "string" }, "version": { "type": "string" } }, "required": [ "name" ] } ] } }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "macports", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/javascript/npm/", "description": "Install and manage packages using NPM.", "type": "object", "properties": { "globalInstall": { "type": "array", "description": "An array of", "items": { "oneOf": [ { "type": "string", "description": "Npm packages to install globally" }, { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the package to install" }, "version": { "type": "string", "description": "The version of package to install" } }, "required": [ "name" ] } ] } }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "npm", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] }, { "$comment": "https://docs.codifycli.com/core-resources/docker/", "type": "object", "description": "Installs docker.", "properties": { "acceptLicense": { "type": "boolean", "description": "Accepts the license agreement. Defaults to true" }, "useCurrentUser": { "type": "boolean", "description": "Use the current user to install docker. Defaults to true" }, "name": { "description": "Optional name. Useful for specifying multiple resources of the same type", "type": "string", "pattern": "^[\\w-]+$" }, "dependsOn": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": { "const": "docker", "type": "string" } }, "additionalProperties": false, "required": [ "type" ] } ] } }