[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/phrase.json","definitions":{"project_id":{"description":"ID of the project","type":"string"},"file_format":{"description":"File format name. See the format guide in the documentation for all supported file formats","type":"string","default":"yml"},"locale_id":{"description":"Locale that should be downloaded. Locale ID or locale name are valid options","type":"string"},"encoding":{"description":"Enforces a specific encoding on the file contents. Valid options are \"UTF-8\", \"UTF-16\" and \"ISO-8859-1\"","type":"string","default":"UTF-8"},"format_options":{"description":"Additional options available for specific formats. See our format guide for complete list.","type":"object","properties":{"column_separator":{"description":"Column separator character","type":"string","default":";"}}}},"properties":{"phrase":{"description":"Root element of the Phrase config","type":"object","properties":{"host":{"description":"API URL. Set to https://api.us.app.phrase.com/v2 when using the US datacenter","type":"string"},"access_token":{"description":"Access Token for authorization. Can be created in the user profile","type":"string"},"file_format":{"$ref":"#/definitions/file_format"},"project_id":{"$ref":"#/definitions/project_id"},"push":{"type":"object","properties":{"sources":{"description":"Source files that will be uploaded on push","minItems":1,"type":"array","items":{"type":"object","properties":{"file":{"description":"Translation file(s) which should be uploaded. You can either specify a single file or a pattern. The glob pattern will be expanded to all files matching the pattern. Besides '*' and '**', you can use the following placeholders: <locale_name> for the locale name and <locale_code> for the locale code","type":"string","examples":["en.yml","translations/*.yml","./src/<locale_name>.yml"]},"params":{"description":"Locale upload parameter","type":"object","properties":{"file_format":{"$ref":"#/definitions/file_format"},"locale_id":{"$ref":"#/definitions/locale_id"},"branch":{"description":"Branch name","type":"string"},"tags":{"description":"List of tags separated by comma to be associated with the new keys contained in the upload","type":"string"},"update_translations":{"description":"Indicates whether existing translations should be updated with the file content","type":"boolean","default":false},"update_descriptions":{"description":"Existing key descriptions will be updated with the file content. Empty descriptions overwrite existing descriptions","type":"boolean","default":false},"convert_emoji":{"description":"Indicates whether the file contains Emoji symbols that should be converted","type":"boolean","deprecated":"Emojis are now supported natively","default":false},"skip_upload_tags":{"description":"Indicates whether the upload should not create upload tags","type":"boolean","default":false},"skip_unverification":{"description":"Indicates whether the upload should unverify updated translations","type":"boolean","default":false},"tag_only_affected_keys":{"description":"Indicates whether only keys affected (created or updated) by the upload should be tagged","type":"boolean","default":false},"autotranslate":{"description":"If set, translations for the uploaded language will be fetched automatically","type":"boolean","default":false},"mark_reviewed":{"description":"Indicates whether the imported translations should be marked as reviewed","type":"boolean","default":false},"file_encoding":{"$ref":"#/definitions/encoding"},"translation_key_prefix":{"description":"Prefix all the created keys with the given prefix. This can be used to prevent collisions from multiple different sources","type":"string"},"locale_mapping":{"description":"Optional, format specific mapping between locale names and the columns the translations to those locales are contained in","type":"object"},"format_options":{"$ref":"#/definitions/format_options"}}}}}}}},"pull":{"type":"object","properties":{"targets":{"description":"List of files that will be downloaded on pull","minItems":1,"type":"array","items":{"type":"object","properties":{"file":{"description":"Translation file which will be downloaded. You can either specify a single file or a pattern. The pattern can contain the following placeholders: <locale_name> for the locale name, <locale_code> for the locale code, and <tag>, which will go through the tag list and create a file for each tag. The placeholders will be replaced with the corresponding values.","type":"string","examples":["en.yml","translations/<locale_name>.yml"]},"project_id":{"$ref":"#/definitions/project_id"},"params":{"description":"Locale download parameter","type":"object","properties":{"branch":{"description":"Branch name","type":"string"},"file_format":{"$ref":"#/definitions/file_format"},"tags":{"description":"Limit results to keys tagged with a list of comma separated tag names","type":"string","default":""},"locale_id":{"$ref":"#/definitions/locale_id"},"include_empty_translations":{"description":"Indicates whether keys without translations should be included in the output as well","type":"boolean","default":false},"exclude_empty_zero_forms":{"description":"Indicates whether the upload should exclude empty zero forms","type":"boolean","default":false},"include_translated_keys":{"description":"Include translated keys in the locale file. Use in combination with include_empty_translations to obtain only untranslated keys","type":"boolean","default":true},"keep_notranslate_tags":{"description":"Indicates whether [NOTRANSLATE] tags should be kept","type":"boolean","default":false},"include_unverified_translations":{"description":"Indicates whether unverified translations should be included in the locale file","type":"boolean","default":true},"convert_emoji":{"description":"Indicates whether Emoji symbols should be converted to actual Emojis","type":"boolean","deprecated":"Emojis are now supported natively","default":false},"encoding":{"$ref":"#/definitions/encoding"},"skip_unverified_translations":{"description":"Indicates whether the locale file should skip all unverified translations","type":"boolean","deprecated":"Should be replaced with include_unverified_translations","default":false},"use_last_reviewed_version":{"description":"If set to true the last reviewed version of a translation is used. This is only available if the review workflow is enabled for the project","type":"boolean","default":false},"fallback_locale_id":{"description":"If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the public ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to true","type":"string"},"custom_metadata_filters":{"description":"Custom metadata filters. Provide the name of the metadata field and the value to filter by. Only keys with matching metadata will be included in the download","type":"object"},"filter_by_prefix":{"description":"Filters keys by prefix. Only keys starting with the given prefix will be included in the download, and the prefix will be removed from the key name in the files","type":"string"},"translation_key_prefix":{"description":"If a key name starts with the given prefix, the prefix will be removed from the key name in the files","type":"string"},"format_options":{"$ref":"#/definitions/format_options"}}}}}}}}}}},"title":"JSON schema for Phrase configuration files"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Phrase configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

ID of the project

File format name. See the format guide in the documentation for all supported file formats

Locale that should be downloaded. Locale ID or locale name are valid options

Enforces a specific encoding on the file contents. Valid options are "UTF-8", "UTF-16" and "ISO-8859-1"

Additional options available for specific formats. See our format guide for complete list.

Column separator character

Root element of the Phrase config

API URL. Set to https://api.us.app.phrase.com/v2 when using the US datacenter

Access Token for authorization. Can be created in the user profile

Source files that will be uploaded on push

Translation file(s) which should be uploaded. You can either specify a single file or a pattern. The glob pattern will be expanded to all files matching the pattern. Besides '*' and '**', you can use the following placeholders: <locale_name> for the locale name and <locale_code> for the locale code

Locale upload parameter

Branch name

List of tags separated by comma to be associated with the new keys contained in the upload

Indicates whether existing translations should be updated with the file content

Existing key descriptions will be updated with the file content. Empty descriptions overwrite existing descriptions

Indicates whether the file contains Emoji symbols that should be converted

Indicates whether the upload should not create upload tags

Indicates whether the upload should unverify updated translations

Indicates whether only keys affected (created or updated) by the upload should be tagged

If set, translations for the uploaded language will be fetched automatically

Indicates whether the imported translations should be marked as reviewed

Prefix all the created keys with the given prefix. This can be used to prevent collisions from multiple different sources

Optional, format specific mapping between locale names and the columns the translations to those locales are contained in

List of files that will be downloaded on pull

Translation file which will be downloaded. You can either specify a single file or a pattern. The pattern can contain the following placeholders: <locale_name> for the locale name, <locale_code> for the locale code, and <tag>, which will go through the tag list and create a file for each tag. The placeholders will be replaced with the corresponding values.

Locale download parameter

Branch name

Limit results to keys tagged with a list of comma separated tag names

Indicates whether keys without translations should be included in the output as well

Indicates whether the upload should exclude empty zero forms

Include translated keys in the locale file. Use in combination with include_empty_translations to obtain only untranslated keys

Indicates whether [NOTRANSLATE] tags should be kept

Indicates whether unverified translations should be included in the locale file

Indicates whether Emoji symbols should be converted to actual Emojis

Indicates whether the locale file should skip all unverified translations

Should be replaced with include_unverified_translations

If set to true the last reviewed version of a translation is used. This is only available if the review workflow is enabled for the project

If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the public ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to true

Custom metadata filters. Provide the name of the metadata field and the value to filter by. Only keys with matching metadata will be included in the download

Filters keys by prefix. Only keys starting with the given prefix will be included in the download, and the prefix will be removed from the key name in the files

If a key name starts with the given prefix, the prefix will be removed from the key name in the files

Provide a JSON object that satisfies the schema "JSON schema for Phrase configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","definitions":{"project_id":{"description":"ID of the project","type":"string"},"file_format":{"description":"File format name. See the format guide in the documentation for all supported file formats.","type":"string","default":"yml"},"locale_id":{"description":"Locale that should be downloaded. Locale ID or locale name are valid options","type":"string"},"encoding":{"description":"Enforces a specific encoding on the file contents. Valid options are \"UTF-8\", \"UTF-16\" and \"ISO-8859-1\"","type":"string","default":"UTF-8"}},"id":"https://json.schemastore.org/phraseapp.json","properties":{"phraseapp":{"description":"Root element of the PhraseApp config","type":"object","properties":{"defaults":{"description":"Default configuration for API endpoints","type":"object","properties":{"keys/list":{"type":"object","properties":{"sort":{"type":"string","default":"updated_at"},"order":{"type":"string","default":"desc"}}}}},"host":{"description":"API host URL. Only needs to be changed for OnPremise usage","type":"string"},"access_token":{"description":"Access Token for authorization. Can be created in the user profile","type":"string"},"file_format":{"$ref":"#/definitions/file_format"},"project_id":{"$ref":"#/definitions/project_id"},"push":{"type":"object","properties":{"sources":{"description":"Source files that will be uploaded on push","minItems":1,"type":"array","items":{"type":"object","properties":{"file":{"description":"Translation file which will be uploaded","type":"string","default":"<locale_name>.yml"},"params":{"description":"Locale upload parameter","type":"object","properties":{"branch":{"description":"Branch name","type":"string"},"file_format":{"$ref":"#/definitions/file_format"},"locale_id":{"$ref":"#/definitions/locale_id"},"tags":{"description":"List of tags separated by comma to be associated with the new keys contained in the upload","type":"string"},"update_translations":{"description":"Indicates whether existing translations should be updated with the file content","type":"boolean","default":false},"update_descriptions":{"description":"Existing key descriptions will be updated with the file content. Empty descriptions overwrite existing descriptions","type":"boolean","default":false},"convert_emoji":{"description":"Indicates whether the file contains Emoji symbols that should be converted","type":"boolean","default":false},"skip_upload_tags":{"description":"Indicates whether the upload should not create upload tags","type":"boolean","default":false},"skip_unverification":{"description":"Indicates whether the upload should unverify updated translations","type":"boolean","default":false},"file_encoding":{"$ref":"#/definitions/encoding"},"format_options":{"description":"Additional options available for specific formats. See our format guide for complete list","type":"object","properties":{"column_separator":{"description":"Column separator character","type":"string","default":";"}}}}}}}}}},"pull":{"type":"object","properties":{"targets":{"description":"List of files that will be downloaded on pull","minItems":1,"type":"array","items":{"type":"object","properties":{"file":{"description":"Translation file which will be downloaded","type":"string","default":"<locale_name>.yml"},"project_id":{"$ref":"#/definitions/project_id"},"params":{"description":"Locale download parameter","type":"object","properties":{"branch":{"description":"Branch name","type":"string"},"file_format":{"$ref":"#/definitions/file_format"},"tag":{"description":"Limit result to keys tagged with the given tag (identified by its name)","type":"string","default":""},"locale_id":{"$ref":"#/definitions/locale_id"},"include_empty_translations":{"description":"Indicates whether keys without translations should be included in the output as well","type":"boolean","default":false},"keep_notranslate_tags":{"description":"Indicates whether [NOTRANSLATE] tags should be kept","type":"boolean","default":false},"convert_emoji":{"description":"Indicates whether Emoji symbols should be converted to actual Emojis","type":"boolean","default":false},"encoding":{"$ref":"#/definitions/encoding"},"skip_unverified_translations":{"description":"Indicates whether the locale file should skip all unverified translations","type":"boolean","default":false},"fallback_locale_id":{"description":"If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the public ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to true","type":"string"}}}}}}}}}}},"title":"JSON schema for PhraseApp configuration files"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for PhraseApp configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

ID of the project

File format name. See the format guide in the documentation for all supported file formats.

Locale that should be downloaded. Locale ID or locale name are valid options

Enforces a specific encoding on the file contents. Valid options are "UTF-8", "UTF-16" and "ISO-8859-1"

Root element of the PhraseApp config

Default configuration for API endpoints

API host URL. Only needs to be changed for OnPremise usage

Access Token for authorization. Can be created in the user profile

Source files that will be uploaded on push

Translation file which will be uploaded

Locale upload parameter

Branch name

List of tags separated by comma to be associated with the new keys contained in the upload

Indicates whether existing translations should be updated with the file content

Existing key descriptions will be updated with the file content. Empty descriptions overwrite existing descriptions

Indicates whether the file contains Emoji symbols that should be converted

Indicates whether the upload should not create upload tags

Indicates whether the upload should unverify updated translations

Additional options available for specific formats. See our format guide for complete list

Column separator character

List of files that will be downloaded on pull

Translation file which will be downloaded

Locale download parameter

Branch name

Limit result to keys tagged with the given tag (identified by its name)

Indicates whether keys without translations should be included in the output as well

Indicates whether [NOTRANSLATE] tags should be kept

Indicates whether Emoji symbols should be converted to actual Emojis

Indicates whether the locale file should skip all unverified translations

If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the public ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to true

Provide a JSON object that satisfies the schema "JSON schema for PhraseApp configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "Erda pipeline.yml Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Erda pipeline.yml Schema

pipeline.yml 语法规范版本

步骤

流水线参数

输出

生命周期

Provide a JSON object that satisfies the schema "Erda pipeline.yml Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"https://bitbucket.org/product/features/pipelines","$ref":"#/components/schemas/pipelines_configuration","$schema":"http://json-schema.org/draft-07/schema#","components":{"schemas":{"artifacts":{"oneOf":[{"$ref":"#/components/schemas/artifacts_paths"},{"$ref":"#/components/schemas/artifacts_expanded"}]},"artifacts_expanded":{"properties":{"download":{"oneOf":[{"default":true,"description":"Enables downloading of all available artifacts at the end of a step.","type":"boolean"},{"description":"Define the list of filtered artifacts to be downloaded by the step.","items":{"type":"string"},"minItems":1,"type":"array"}]},"paths":{"$ref":"#/components/schemas/artifacts_paths"},"upload":{"items":{"$ref":"#/components/schemas/artifacts_upload"},"minItems":1,"type":"array"}},"type":"object"},"artifacts_paths":{"items":{"description":"Glob pattern for the path to the artifacts.","title":"Artifact Path Pattern","type":"string"},"minItems":1,"type":"array"},"artifacts_upload":{"description":"The artifact to be uploaded.","properties":{"capture-on":{"description":"The capture on field for the artifact.","enum":["success","failed","always"],"title":"Artifact Capture On","type":"string"},"depth":{"description":"The depth to search for the artifact files.","minimum":1,"title":"Artifact Depth","type":"integer"},"ignore-paths":{"description":"The ignore paths for the artifact.","items":{"description":"Glob pattern for paths to ignore when capturing artifacts.","title":"Ignore Path Pattern","type":"string"},"title":"Artifact Ignore Paths","type":"array"},"name":{"description":"The name of the artifact.","title":"Artifact Name","type":"string"},"paths":{"$ref":"#/components/schemas/artifacts_paths"},"type":{"default":"shared","description":"The type of the artifact.","enum":["shared","unshared","test-reports"],"title":"Artifact Type","type":"string"}},"required":["name","paths"],"title":"Artifact Upload object","type":"object"},"cache":{"oneOf":[{"$ref":"#/components/schemas/cache_path"},{"$ref":"#/components/schemas/cache_expanded"}]},"cache_expanded":{"properties":{"key":{"properties":{"files":{"description":"Checksum of these file paths will be used to generate the cache key.","items":{"description":"Path to a file or glob pattern of files in the repository which form the cache key.","type":"string"},"minItems":1,"type":"array"}},"required":["files"],"title":"Cache Key","type":"object"},"path":{"$ref":"#/components/schemas/cache_path"}},"required":["path"],"title":"Cache","type":"object"},"cache_path":{"description":"Path to the directory to be cached, can be absolute or relative to the clone directory.","title":"Cache Path","type":"string"},"clone":{"description":"Settings for cloning a repository into a container.","properties":{"depth":{"default":50,"description":"The depth argument of Git clone operation. It can be either number or \"full\" value","example":"full","oneOf":[{"minimum":1,"type":"integer"},{"enum":["full"],"type":"string"}],"title":"Git Clone Depth"},"enabled":{"default":true,"description":"Enables cloning of the repository.","type":"boolean"},"lfs":{"default":false,"description":"Enables the download of files from LFS storage when cloning.","type":"boolean"},"skip-ssl-verify":{"default":false,"description":"Disables SSL verification during Git clone operation, allowing the use of self-signed certificates.","type":"boolean"}},"title":"Clone Repository Settings","type":"object"},"cloud":{"description":"Custom cloud step runtime","properties":{"arch":{"default":"x86","description":"Architecture type used to run the step.","enum":["x86","arm"],"type":"string"},"atlassian-ip-ranges":{"default":false,"description":"Whether it uses Atlassian ip ranges.","type":"boolean"},"version":{"description":"Cloud Runtime version.","type":"string"}},"title":"Cloud step runtime","type":"object"},"condition":{"properties":{"changesets":{"additionalProperties":false,"description":"Condition on the changesets involved in the pipeline.","maxProperties":1,"properties":{"excludePaths":{"description":"Condition which holds only if all of the modified files match any of the specified patterns.","items":{"description":"Glob pattern to match the file path.","title":"File Path Pattern","type":"string"},"minItems":1,"title":"Exclude Paths","type":"array"},"includePaths":{"description":"Condition which holds only if any of the modified files match any of the specified patterns.","items":{"description":"Glob pattern to match the file path.","title":"File Path Pattern","type":"string"},"minItems":1,"title":"Include Paths","type":"array"}},"title":"Changeset Condition","type":"object"}},"required":["changesets"],"type":"object"},"custom_pipeline":{"oneOf":[{"$ref":"#/components/schemas/items_with_variables"},{"$ref":"#/components/schemas/import_pipeline"}]},"fail_fast":{"default":false,"title":"Fail Fast","type":"boolean"},"image":{"oneOf":[{"$ref":"#/components/schemas/image_no_auth"},{"$ref":"#/components/schemas/image_basic_auth"},{"$ref":"#/components/schemas/image_aws_auth"},{"$ref":"#/components/schemas/image_name"}]},"image_aws_auth":{"allOf":[{"$ref":"#/components/schemas/image_base"},{"properties":{"aws":{"oneOf":[{"properties":{"access-key":{"description":"The access key for Amazon Elastic Container Registry (AWS ECR).","title":"AWS Access Key","type":"string"},"secret-key":{"description":"The secret key for Amazon Elastic Container Registry (AWS ECR).","title":"AWS Secret Key","type":"string"}},"required":["access-key","secret-key"],"type":"object"},{"properties":{"oidc-role":{"description":"OIDC role with access to private Docker images hosted in Amazon Elastic Container Registry (AWS ECR).","title":"OpenID Connect Role","type":"string"}},"required":["oidc-role"],"type":"object"}]}},"required":["aws"],"type":"object"}]},"image_base":{"description":"The parameters of the Docker image to use when running a step.","properties":{"name":{"$ref":"#/components/schemas/image_name"},"run-as-user":{"default":0,"description":"The UID of a user in the docker image to run as. Overrides image's default user, specified user UID must be an existing user in the image with a valid home directory.","title":"User ID","type":"integer"}},"required":["name"],"title":"Docker Image Configuration","type":"object"},"image_basic_auth":{"allOf":[{"$ref":"#/components/schemas/image_base"},{"properties":{"password":{"description":"The password to use when fetching the Docker image.","title":"Docker Registry Password","type":"string"},"username":{"description":"The username to use when fetching the Docker image.","title":"Docker Registry Username","type":"string"}},"required":["username","password"],"type":"object"}]},"image_name":{"default":"atlassian/default-image:latest","description":"The name of the Docker image which may or may not include registry URL, tag, and digest value.","title":"Docker Image Name","type":"string"},"image_no_auth":{"allOf":[{"$ref":"#/components/schemas/image_base"},{"properties":{"aws":{"not":{}},"password":{"not":{}},"username":{"not":{}}},"type":"object"}]},"import_pipeline":{"additionalProperties":false,"properties":{"import":{"description":"The import needs to match the following format: {repo-slug|repo-uuid}:{tag-name|branch-name}:{pipeline-name}.","pattern":"^[^:]+:[^:]+:[^:]+$","title":"Identifier of the pipeline configuration to import","type":"string"}},"required":["import"],"type":"object"},"items":{"description":"List of steps, stages and parallel groups of the pipeline.","items":{"oneOf":[{"$ref":"#/components/schemas/step_item"},{"$ref":"#/components/schemas/parallel_item"},{"$ref":"#/components/schemas/stage_item"}]},"minItems":1,"title":"Pipeline Items","type":"array"},"items_with_variables":{"description":"List of variables, steps, stages and parallel groups of the custom pipeline.","items":{"oneOf":[{"$ref":"#/components/schemas/variables_item"},{"$ref":"#/components/schemas/step_item"},{"$ref":"#/components/schemas/parallel_item"},{"$ref":"#/components/schemas/stage_item"}]},"minItems":1,"title":"Custom Pipeline Items","type":"array"},"max_time":{"default":120,"description":"The maximum time a step can execute for in minutes.","example":60,"exclusiveMinimum":0,"type":"integer"},"parallel":{"oneOf":[{"$ref":"#/components/schemas/parallel_steps"},{"$ref":"#/components/schemas/parallel_expanded"}]},"parallel_expanded":{"properties":{"fail-fast":{"$ref":"#/components/schemas/fail_fast","description":"Stop the whole parallel group in case one of its steps fails."},"steps":{"$ref":"#/components/schemas/parallel_steps"}},"required":["steps"],"type":"object"},"parallel_item":{"additionalProperties":false,"properties":{"parallel":{"$ref":"#/components/schemas/parallel"}},"type":"object"},"parallel_steps":{"description":"List of steps in the parallel group to run concurrently.","items":{"$ref":"#/components/schemas/step_item"},"minItems":1,"title":"Parallel Group Steps","type":"array"},"pipe":{"description":"The pipe to execute.","example":{"pipe":"atlassian/test-pipe:2.2.0","variables":{"BAZ":["QUX","QUZ"],"FOO":"BAR"}},"properties":{"pipe":{"description":"The full pipe identifier.","title":"Pipe Identifier","type":"string"},"variables":{"additionalProperties":{"description":"Environment variable value","oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"description":"Environment variables passed to the pipe container.","title":"Pipe Variables","type":"object"}},"required":["pipe"],"title":"Pipe","type":"object"},"pipeline":{"oneOf":[{"$ref":"#/components/schemas/items"},{"$ref":"#/components/schemas/import_pipeline"}]},"pipelines_configuration":{"properties":{"clone":{"$ref":"#/components/schemas/clone"},"definitions":{"description":"The definitions of caches and services used in the declared pipelines.","properties":{"caches":{"additionalProperties":{"$ref":"#/components/schemas/cache"},"title":"Custom cache definitions","type":"object"},"pipelines":{"additionalProperties":{"$ref":"#/components/schemas/custom_pipeline"},"description":"Definitions of the pipelines which can be used in other repositories of the same Bitbucket workspace.","title":"Shared pipeline definitions","type":"object"},"services":{"additionalProperties":{"$ref":"#/components/schemas/service"},"title":"Service definitions","type":"object"}},"title":"Global Definitions","type":"object"},"export":{"default":false,"description":"Allows other Bitbucket repositories to import pipeline definitions from this file. A shared pipeline definition can't contain another `import` property.","title":"Enables shared pipelines definitions.","type":"boolean"},"image":{"$ref":"#/components/schemas/image"},"labels":{"description":"Additional key value data supplied in the configuration YAML.","example":{"buildTool":"maven","jvm":"jdk17"},"title":"Pipeline Labels","type":"object"},"options":{"description":"Global options allow to override the default values applied to all steps in all declared pipelines.","properties":{"docker":{"default":false,"description":"Enables Docker service for every step.","type":"boolean"},"max-time":{"$ref":"#/components/schemas/max_time"},"runtime":{"$ref":"#/components/schemas/runtime"},"size":{"$ref":"#/components/schemas/size"}},"title":"Global Options","type":"object"},"pipelines":{"properties":{"branches":{"additionalProperties":{"$ref":"#/components/schemas/pipeline"},"description":"Branch-specific build pipelines.","title":"Branch Pipelines","type":"object"},"custom":{"additionalProperties":{"$ref":"#/components/schemas/custom_pipeline"},"description":"Pipelines that can only be triggered manually or be scheduled.","title":"Custom Pipelines","type":"object"},"default":{"$ref":"#/components/schemas/pipeline","description":"Default pipeline runs on every push except for tags unless a branch-specific pipeline is defined.","title":"Default Pipeline"},"pull-requests":{"additionalProperties":{"$ref":"#/components/schemas/pull_requests_pipeline"},"description":"Pull-request-specific build pipelines.","title":"Pull Request Pipelines","type":"object"},"tags":{"additionalProperties":{"$ref":"#/components/schemas/pipeline"},"description":"Tag-specific build pipelines.","title":"Tag Pipelines","type":"object"}},"title":"Pipelines","type":"object"}},"type":"object"},"pull_requests_pipeline":{"oneOf":[{"$ref":"#/components/schemas/items"},{"properties":{"destinations":{"additionalProperties":{"$ref":"#/components/schemas/pipeline"},"type":"object"}},"type":"object"}]},"runs_on":{"oneOf":[{"$ref":"#/components/schemas/runs_on_item"},{"$ref":"#/components/schemas/runs_on_expanded"}]},"runs_on_expanded":{"description":"Required labels of a runner to run the step.","example":["self.hosted","linux"],"items":{"$ref":"#/components/schemas/runs_on_item"},"maxItems":10,"minItems":1,"title":"Step Runner Labels","type":"array"},"runs_on_item":{"description":"Label of a runner.","maxLength":50,"title":"Step Runner Label","type":"string"},"runtime":{"description":"Custom step runtime","properties":{"cloud":{"$ref":"#/components/schemas/cloud"}},"title":"Step Runtime","type":"object"},"script":{"items":{"oneOf":[{"description":"The command to execute.","example":"echo \"hello world\"","title":"Script Command","type":"string"},{"$ref":"#/components/schemas/pipe"}]},"minItems":1,"type":"array"},"service":{"description":"Custom service properties","properties":{"image":{"$ref":"#/components/schemas/image"},"memory":{"default":1024,"description":"Memory limit for the service container, in megabytes.","minimum":128,"title":"Service Memory","type":"integer"},"type":{"description":"Specifies Docker service container (to run Docker-in-Docker).","enum":["docker"],"type":"string"},"variables":{"additionalProperties":{"description":"Environment variable value","title":"Service Variable","type":"string"},"description":"Environment variables passed to the service container.","minProperties":1,"title":"Service Variables","type":"object"}},"title":"Service definition","type":"object"},"size":{"default":"1x","description":"The size of the step, sets the amount of resources allocated.","enum":["1x","2x","4x","8x","16x","32x"],"title":"Step Size","type":"string"},"stage":{"properties":{"condition":{"$ref":"#/components/schemas/condition","description":"The condition to execute the stage.","title":"Stage Condition"},"deployment":{"description":"The deployment environment for the stage.","title":"Stage Deployment Environment","type":"string"},"environment":{"description":"The environment for the stage.","title":"Stage Environment","type":"string"},"name":{"description":"The name of the stage.","title":"Stage Name","type":"string"},"steps":{"description":"List of steps in the stage.","items":{"properties":{"step":{"allOf":[{"$ref":"#/components/schemas/step_base"},{"properties":{"condition":{"not":{}}},"type":"object"}]}},"type":"object"},"minItems":1,"title":"Stage Steps","type":"array"},"trigger":{"$ref":"#/components/schemas/trigger","description":"The trigger used for the pipeline stage.","title":"Stage Trigger"}},"required":["steps"],"type":"object"},"stage_item":{"additionalProperties":false,"properties":{"stage":{"$ref":"#/components/schemas/stage"}},"type":"object"},"step":{"allOf":[{"$ref":"#/components/schemas/step_base"},{"properties":{"condition":{"$ref":"#/components/schemas/condition","description":"The condition to execute the step.","title":"Step Condition"}},"type":"object"}]},"step_base":{"properties":{"after-script":{"$ref":"#/components/schemas/script","description":"List of commands to execute after the step succeeds or fails.","title":"Step Post Script"},"artifacts":{"$ref":"#/components/schemas/artifacts"},"caches":{"description":"Caches enabled for the step.","items":{"description":"Reference to a cache defined under global definitions.","title":"Cache Name","type":"string"},"minItems":1,"title":"Step Caches","type":"array"},"clone":{"$ref":"#/components/schemas/clone"},"concurrency-group":{"description":"The concurrency group for the step.","maxLength":50,"title":"Concurrency group","type":"string"},"deployment":{"description":"The deployment environment for the step.","title":"Step Deployment Environment","type":"string"},"environment":{"description":"The environment for the step.","title":"Step Environment","type":"string"},"fail-fast":{"$ref":"#/components/schemas/fail_fast","description":"Stop the parent parallel group in case this step fails."},"image":{"$ref":"#/components/schemas/image"},"max-time":{"$ref":"#/components/schemas/max_time","title":"Step Maximum Time"},"name":{"description":"The name of the step.","example":"Build and test","title":"Step Name","type":"string"},"oidc":{"description":"Enables the use of OpenID Connect to connect a pipeline step to a resource server.","type":"boolean"},"runs-on":{"$ref":"#/components/schemas/runs_on"},"runtime":{"$ref":"#/components/schemas/runtime"},"script":{"$ref":"#/components/schemas/script","description":"List of commands that are executed in sequence.","title":"Step Script"},"services":{"description":"Services enabled for the step.","items":{"description":"Reference to a service defined under global definitions.","title":"Service Name","type":"string"},"maxItems":5,"minItems":1,"title":"Step Services","type":"array"},"size":{"$ref":"#/components/schemas/size"},"trigger":{"$ref":"#/components/schemas/trigger","description":"The trigger used for the pipeline step.","title":"Step Trigger"}},"required":["script"],"title":"Pipeline Step","type":"object"},"step_item":{"additionalProperties":false,"properties":{"step":{"$ref":"#/components/schemas/step"}},"type":"object"},"trigger":{"default":"automatic","enum":["automatic","manual"],"type":"string"},"variables_item":{"additionalProperties":false,"properties":{"variables":{"description":"List of variables for the custom pipeline.","items":{"description":"Settings for the custom variable.","properties":{"allowed-values":{"description":"A list of values that are allowed for the variable.","items":{"title":"Allowed Variable Value","type":"string"},"minItems":1,"title":"Allowed Variable Values","type":"array"},"default":{"title":"Default Variable Value","type":"string"},"description":{"title":"Variable Description","type":"string"},"name":{"title":"Variable Name","type":"string"}},"required":["name"],"title":"Custom Pipeline Variable","type":"object"},"minItems":1,"title":"Custom Pipeline Variables","type":"array"}},"type":"object"}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "pipelines-configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Enables downloading of all available artifacts at the end of a step.

Define the list of filtered artifacts to be downloaded by the step.

Glob pattern for the path to the artifacts.

Artifact Path Pattern

The artifact to be uploaded.

The capture on field for the artifact.

Artifact Capture On

The depth to search for the artifact files.

Artifact Depth

The ignore paths for the artifact.

Glob pattern for paths to ignore when capturing artifacts.

Ignore Path Pattern

Artifact Ignore Paths

The name of the artifact.

Artifact Name

The type of the artifact.

Artifact Type

Artifact Upload object

Checksum of these file paths will be used to generate the cache key.

Path to a file or glob pattern of files in the repository which form the cache key.

Cache Key

Cache

Path to the directory to be cached, can be absolute or relative to the clone directory.

Cache Path

Settings for cloning a repository into a container.

The depth argument of Git clone operation. It can be either number or "full" value

Git Clone Depth

Enables cloning of the repository.

Enables the download of files from LFS storage when cloning.

Disables SSL verification during Git clone operation, allowing the use of self-signed certificates.

Clone Repository Settings

Custom cloud step runtime

Architecture type used to run the step.

Whether it uses Atlassian ip ranges.

Cloud Runtime version.

Cloud step runtime

Condition on the changesets involved in the pipeline.

Condition which holds only if all of the modified files match any of the specified patterns.

Glob pattern to match the file path.

File Path Pattern

Exclude Paths

Condition which holds only if any of the modified files match any of the specified patterns.

Glob pattern to match the file path.

File Path Pattern

Include Paths

Changeset Condition

Fail Fast

The access key for Amazon Elastic Container Registry (AWS ECR).

AWS Access Key

The secret key for Amazon Elastic Container Registry (AWS ECR).

AWS Secret Key

OIDC role with access to private Docker images hosted in Amazon Elastic Container Registry (AWS ECR).

OpenID Connect Role

The parameters of the Docker image to use when running a step.

The UID of a user in the docker image to run as. Overrides image's default user, specified user UID must be an existing user in the image with a valid home directory.

User ID

Docker Image Configuration

The password to use when fetching the Docker image.

Docker Registry Password

The username to use when fetching the Docker image.

Docker Registry Username

The name of the Docker image which may or may not include registry URL, tag, and digest value.

Docker Image Name

The import needs to match the following format: {repo-slug|repo-uuid}:{tag-name|branch-name}:{pipeline-name}.

Identifier of the pipeline configuration to import

List of steps, stages and parallel groups of the pipeline.

Pipeline Items

List of variables, steps, stages and parallel groups of the custom pipeline.

Custom Pipeline Items

The maximum time a step can execute for in minutes.

Stop the whole parallel group in case one of its steps fails.

List of steps in the parallel group to run concurrently.

Parallel Group Steps

The pipe to execute.

The full pipe identifier.

Pipe Identifier

Environment variable value

Environment variables passed to the pipe container.

Pipe Variables

Pipe

The definitions of caches and services used in the declared pipelines.

Custom cache definitions

Definitions of the pipelines which can be used in other repositories of the same Bitbucket workspace.

Shared pipeline definitions

Service definitions

Global Definitions

Allows other Bitbucket repositories to import pipeline definitions from this file. A shared pipeline definition can't contain another `import` property.

Enables shared pipelines definitions.

Additional key value data supplied in the configuration YAML.

Pipeline Labels

Global options allow to override the default values applied to all steps in all declared pipelines.

Enables Docker service for every step.

Global Options

Branch-specific build pipelines.

Branch Pipelines

Pipelines that can only be triggered manually or be scheduled.

Custom Pipelines

Default pipeline runs on every push except for tags unless a branch-specific pipeline is defined.

Default Pipeline

Pull-request-specific build pipelines.

Pull Request Pipelines

Tag-specific build pipelines.

Tag Pipelines

Pipelines

Required labels of a runner to run the step.

Step Runner Labels

Label of a runner.

Step Runner Label

Custom step runtime

Step Runtime

The command to execute.

Script Command

Custom service properties

Memory limit for the service container, in megabytes.

Service Memory

Specifies Docker service container (to run Docker-in-Docker).

Environment variable value

Service Variable

Environment variables passed to the service container.

Service Variables

Service definition

The size of the step, sets the amount of resources allocated.

Step Size

The condition to execute the stage.

Stage Condition

The deployment environment for the stage.

Stage Deployment Environment

The environment for the stage.

Stage Environment

The name of the stage.

Stage Name

List of steps in the stage.

Stage Steps

The trigger used for the pipeline stage.

Stage Trigger

The condition to execute the step.

Step Condition

List of commands to execute after the step succeeds or fails.

Step Post Script

Caches enabled for the step.

Reference to a cache defined under global definitions.

Cache Name

Step Caches

The concurrency group for the step.

Concurrency group

The deployment environment for the step.

Step Deployment Environment

The environment for the step.

Step Environment

Stop the parent parallel group in case this step fails.

Step Maximum Time

The name of the step.

Step Name

Enables the use of OpenID Connect to connect a pipeline step to a resource server.

List of commands that are executed in sequence.

Step Script

Services enabled for the step.

Reference to a service defined under global definitions.

Service Name

Step Services

The trigger used for the pipeline step.

Step Trigger

Pipeline Step

List of variables for the custom pipeline.

Settings for the custom variable.

A list of values that are allowed for the variable.

Allowed Variable Value

Allowed Variable Values

Default Variable Value

Variable Description

Variable Name

Custom Pipeline Variable

Custom Pipeline Variables

Provide a JSON object that satisfies the schema "pipelines-configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://raw.githubusercontent.com/candrewlee14/webman/main/schema/pkg_schema.json","title":"Webman package recipe","description":"A package recipe for webman","type":"object","required":["tagline","about","filename_format","base_download_url","latest_strategy","os_map","arch_map"],"additionalProperties":false,"properties":{"tagline":{"description":"Package tagline","type":"string"},"about":{"description":"Package description","type":"string"},"install_note":{"description":"Installation notes for this package","type":"string"},"remove_note":{"description":"Removal notes for this package","type":"string"},"info_url":{"description":"URL for information/documentation","type":"string"},"releases_url":{"description":"URL for releases","type":"string"},"base_download_url":{"description":"Base URL for downloading","type":"string"},"git_user":{"description":"Git username","type":"string"},"git_repo":{"description":"Git repository","type":"string"},"gitea_url":{"description":"Gitea URL","type":"string"},"source_url":{"description":"Source URL","type":"string"},"filename_format":{"description":"Filename format","type":"string"},"version_format":{"description":"Version format","type":"string"},"latest_strategy":{"description":"Strategy for resolving latest release","type":"string","enum":["github-release","arch-linux-community","gitea-release"]},"force_latest":{"description":"Force latest release","type":"boolean"},"allow_prerelease":{"description":"Allow pre-releases","type":"boolean"},"arch_linux_pkg_name":{"description":"Arch Linux package name","type":"string"},"os_map":{"description":"OS mappings","type":"object","additionalProperties":false,"properties":{"win":{"$ref":"#/$defs/os_mapping"},"macos":{"$ref":"#/$defs/os_mapping"},"linux":{"$ref":"#/$defs/os_mapping"}}},"arch_map":{"description":"Architecture mappings","type":"object","additionalProperties":false,"properties":{"ppc64":{"type":"string"},"386":{"type":"string"},"amd64":{"type":"string"},"arm":{"type":"string"},"arm64":{"type":"string"},"wasm":{"type":"string"},"mips":{"type":"string"},"mips64":{"type":"string"},"mips64le":{"type":"string"},"mipsle":{"type":"string"},"ppc64le":{"type":"string"},"riscv64":{"type":"string"},"s390x":{"type":"string"}}},"ignore":{"description":"Ignore mappings","type":"array","items":{"type":"object","required":["os","arch"],"additionalProperties":false,"properties":{"os":{"$ref":"#/$defs/os"},"arch":{"$ref":"#/$defs/arch"}}}}},"anyOf":[{"properties":{"latest_strategy":{"const":"github-release"}},"required":["git_user","git_repo"]},{"properties":{"latest_strategy":{"const":"arch-linux-community"}},"required":["arch_linux_pkg_name"]},{"properties":{"latest_strategy":{"const":"gitea-release"}},"required":["git_user","git_repo","gitea_url"]}],"$defs":{"os":{"$comment":"go tool dist list","description":"Operating system","type":"string","enum":["win","macos","linux"]},"arch":{"$comment":"go tool dist list","description":"Architecture","type":"string","enum":["ppc64","386","amd64","arm","arm64","wasm","mips","mips64","mips64le","mipsle","ppc64le","riscv64","s390x"]},"os_mapping":{"description":"OS mapping","type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"ext":{"type":"string"},"bin_path":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"extract_has_root":{"description":"Extraction has root directory, generally the same name as the archive","type":"boolean"},"is_raw_binary":{"description":"Download is a raw binary","type":"boolean"},"filename_format_override":{"description":"Override for the global filename format","type":"string"},"renames":{"description":"List of from-to pairs for renaming links to binaries","type":"array","items":{"properties":{"from":{"description":"string to replace","type":"string"},"to":{"description":"string to insert","type":"string"}}}},"install_note":{"description":"Installation notes for this OS","type":"string"},"remove_note":{"description":"Removal notes for this OS","type":"string"}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Webman package recipe". Here are the required top‑level fields: tagline, about, filename_format, base_download_url, latest_strategy, os_map, arch_map. Return only the valid JSON object.

Webman package recipe

A package recipe for webman

Package tagline

Package description

Installation notes for this package

Removal notes for this package

URL for information/documentation

URL for releases

Base URL for downloading

Git username

Git repository

Gitea URL

Source URL

Filename format

Version format

Strategy for resolving latest release

Force latest release

Allow pre-releases

Arch Linux package name

OS mappings

Architecture mappings

Ignore mappings

Operating system

Architecture

OS mapping

Extraction has root directory, generally the same name as the archive

Download is a raw binary

Override for the global filename format

List of from-to pairs for renaming links to binaries

string to replace

string to insert

Installation notes for this OS

Removal notes for this OS

Provide a JSON object that satisfies the schema "Webman package recipe". Here are the required top‑level fields: tagline, about, filename_format, base_download_url, latest_strategy, os_map, arch_map. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":false,"definitions":{"moveItems":{"type":"object","required":["to","names"],"properties":{"to":{"type":"string","description":"The path to move the directory to"},"names":{"type":"array","items":{"type":"string","description":"The directories to move"}}}},"mergeJson":{"description":"Merge json file with jq command line tool pattern matching","required":["type","path"],"additionalProperties":false,"properties":{"type":{"type":"string","description":"Merge type","enum":["jq"]},"path":{"type":"string","description":"Path to file to merge"},"replace":{"type":"array","description":"JQ pattern of property to replace","items":{"type":"string"}},"create":{"type":"array","description":"JQ pattern of property to create if the property does not exist in target project file","items":{"type":"string"}},"replaceIf":{"type":"array","description":"A set of properties to replace if the condition evaluates to truthy","items":{"type":"object","description":"Configuration for property to replace if condition evaluates to truthy","required":["condition","pattern"],"properties":{"condition":{"type":"string","description":"The condition to evaluate for truthiness. If truthy will replace property matched by pattern"},"pattern":{"type":"string","description":"JQ pattern of property to replace"}}}},"set":{"type":"object","description":"Set the value of these items to the value. So `'.license':MIT` would set the `license` property of the json file to 'MIT'","additionalProperties":{"type":"string"}},"skip":{"type":"array","description":"A list of items to not create, copy, replace, or remove in target file","items":{"type":"string"}},"skipIfNotSameFileName":{"type":"array","items":{"type":"string"}}}},"mergeYaml":{"description":"Merge yaml file with yq command line tool pattern matching","required":["type","path"],"additionalProperties":false,"properties":{"type":{"type":"string","description":"Merge type","enum":["yq"]},"path":{"type":"string","description":"Path to file to merge"},"replace":{"type":"array","description":"YQ pattern of property to replace","items":{"type":"string"}},"create":{"type":"array","description":"YQ pattern of property to create if the property does not exist in target project file","items":{"type":"string"}},"replaceIf":{"type":"array","description":"A set of properties to replace if the condition evaluates to truthy","items":{"type":"object","description":"Configuration for property to replace if condition evaluates to truthy","required":["condition","pattern"],"properties":{"condition":{"type":"string","description":"The condition to evaluate for truthiness. If truthy will replace property matched by pattern"},"pattern":{"type":"string","description":"YQ pattern of property to replace"}}}},"set":{"type":"object","description":"Set the value of these items to the value. So `'license':MIT` would set the `license` property of the yaml file to 'MIT'","additionalProperties":{"type":"string"}},"skip":{"type":"array","description":"A list of items to not create, copy, replace, or remove in target file","items":{"type":"string"}},"skipIfNotSameFileName":{"type":"array","items":{"type":"string"}}}},"mergeGit":{"description":"Merge file using git merge (use with varied reliability)","required":["type","path"],"additionalProperties":false,"properties":{"type":{"type":"string","description":"Merge type","enum":["git"]},"path":{"type":"string","description":"Path to file to merge"}}},"mergeEnv":{"type":"object","additionalProperties":false,"required":["type","path"],"properties":{"type":{"type":"string","enum":["env"]},"path":{"type":"string"},"set":{"type":"object","additionalProperties":{"type":"string"}},"skip":{"type":"array","items":{"type":"string"}},"create":{"type":"array","description":"List of Environment variable names to create in target project if they are not already created","items":{"type":"string","description":"The Environment variable name"}},"skipIfNotSameFileName":{"type":"array","items":{"type":"string"}}}}},"description":"plagiarize-me.yaml configuration schema","id":"https://json.schemastore.org/plagiarize-me","properties":{"repo":{"type":"object","description":"Git repo of where this plagiarizable project is hosted","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","description":"The git repo url of this project"},"checkout":{"type":"string","description":"The default branch that downstream projects should checkout when plagiarizing this project","default":"master"}}},"move":{"type":"object","description":"Files to move in target project from their previous locations","properties":{"directories":{"type":"array","description":"Directories to move from the target repo to the target repo. Useful for refactoring project structures","items":{"$ref":"#/definitions/moveItems"}},"files":{"type":"array","description":"Files to move from the target repo to the target repo. Useful for refactoring","items":{"$ref":"#/definitions/moveItems"}}}},"run":{"type":"array","description":"Shell commands to run after plagiarize files are done being copied and updated","items":{"type":"object","required":["command"],"properties":{"command":{"type":"string","description":"The shell command to run"},"parallel":{"type":"boolean","description":"Whether or not to run this command synchronously or in parallel to other commands where `parallel: true`"},"when":{"oneOf":[{"type":"string","enum":["always"],"description":"Condition type"},{"type":"object","description":"Run this command only if configured file does not exist in target project","required":["type","options"],"additionalProperties":false,"properties":{"type":{"type":"string","description":"Condition type","enum":["if-missing"]},"options":{"type":"object","required":["path"],"properties":{"path":{"type":"string"}}}}},{"type":"object","description":"Always run this command","required":["type"],"additionalProperties":false,"properties":{"type":{"description":"Condition type","type":"string","enum":["always"]}}}]}}}},"replace":{"required":["strings"],"type":"object","description":"Configuration for strings, files, and file paths to replace in target file","properties":{"strings":{"description":"Strings to find in target project and be replaced with plagiarized project's values","type":"object","additionalProperties":{"type":["string","integer","boolean"]},"required":["project"],"properties":{"project":{"type":"string"}}},"vars":{"description":"Variables available to be used for finding and replacing by variable name. For example `$var_name: hello` would replace string '$var_name' with 'hello' in target project","type":"object","additionalProperties":{"type":["string","integer","boolean"]}},"files":{"description":"Relative path to target files that will be completely overwritten by source files in the same path","type":"array","items":{"type":"string"}}}},"create":{"type":"object","properties":{"files":{"type":"array","description":"Files to copy from plagiarized project if they do not exist in the target project","items":{"type":"string"}},"andClean":{"type":"array","description":"Files to remove commented sections from. Eg code between `// plagiarize:start:always:delete` and `// plagiarize:end:always:delete`","items":{"type":"string"}}}},"merge":{"type":"array","items":{"oneOf":[{"$ref":"#/definitions/mergeJson"},{"$ref":"#/definitions/mergeYaml"},{"$ref":"#/definitions/mergeGit"},{"$ref":"#/definitions/mergeEnv"}]}},"templates":{"type":"array","description":"Files that are used the have similarities between instances of that that. .env files for example are similar and could be templated","items":{"type":"object","additionalProperties":false,"required":["name","replace"],"properties":{"name":{"type":"string","description":"The name of the template"},"replace":{"type":"object","additionalProperties":false,"required":["strings"],"properties":{"strings":{"type":"object","description":"Values to be used as variables within the target project. So `var_name: hello` in the template configuration and `var_name: world` would replace instances of 'hello' found in the source file with with 'world' found in the target file","additionalProperties":{"type":["string","boolean","number"]}},"values":{"type":"object","description":"Values to be used as variables within the target project. So `var_name: hello` would replace instances of '$var_name' with 'hello' in the target file","additionalProperties":{"type":["string","boolean","number","null"]}},"vars":{"type":"object","description":"Values to be used as variables within the plagiarize-me.yaml file only. So `var_name: hello` would replace '$var_name' with 'hello' in plagiarize-me.yaml","additionalProperties":{"type":["string","boolean","number","null"]}}}},"merge":{"type":"array","items":{"oneOf":[{"$ref":"#/definitions/mergeJson"},{"$ref":"#/definitions/mergeYaml"},{"$ref":"#/definitions/mergeGit"},{"$ref":"#/definitions/mergeEnv"}]}},"create":{"type":"object","additionalProperties":false,"properties":{"files":{"type":"array","items":{"type":"string","description":"The path to the file to create if it does not already exist"}}}},"configs":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"strings":{"type":"object","additionalProperties":{"type":["string","boolean","number"]}},"vars":{"type":"object","additionalProperties":{"type":["string","boolean","number","null"]}}}}}}}},"push":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"values":{"type":"object","description":"Values to set when iterating through each instance","additionalProperties":{"type":"string"}},"instances":{"type":"array","items":{"type":"object","required":["project"],"additionalProperties":{"type":"string"}}},"git":{"type":"object","additionalProperties":false,"required":["repos","commit","branch","remotes"],"properties":{"repos":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["remote"],"properties":{"local":{"type":"string"},"remote":{"type":"object","additionalProperties":false,"required":["url","checkout","defaultName"],"properties":{"url":{"type":"string"},"checkout":{"type":"string"},"defaultName":{"type":"string"}}}}}},"commit":{"type":"object","additionalProperties":false,"required":["message"],"properties":{"create":{"type":"boolean","default":false},"message":{"type":"string"}}},"branch":{"type":"string"},"push":{"type":"boolean","default":false},"remotes":{"type":"array","description":"A list of removes to push to (if `push: true`)","items":{"type":"string","description":"name of the remote"}},"hooks":{"type":"object","additionalProperties":false,"properties":{"post-push":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","api","remote","targetBranch"],"properties":{"type":{"type":"string","enum":["create-merge-request"]},"api":{"type":"string","enum":["gitlab"]},"envVars":{"type":"object","additionalProperties":{"type":"string"}},"remote":{"type":"string"},"targetBranch":{"type":"string"},"removeSourceBranch":{"type":"boolean","default":false}}}]}}}}}}}}}},"required":["replace"],"title":"Plagiarize Me Configuration","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Plagiarize Me Configuration". Here are the required top‑level fields: replace. Return only the valid JSON object.

The path to move the directory to

The directories to move

Merge json file with jq command line tool pattern matching

Merge type

Path to file to merge

JQ pattern of property to replace

JQ pattern of property to create if the property does not exist in target project file

A set of properties to replace if the condition evaluates to truthy

Configuration for property to replace if condition evaluates to truthy

The condition to evaluate for truthiness. If truthy will replace property matched by pattern

JQ pattern of property to replace

Set the value of these items to the value. So `'.license':MIT` would set the `license` property of the json file to 'MIT'

A list of items to not create, copy, replace, or remove in target file

Merge yaml file with yq command line tool pattern matching

Merge type

Path to file to merge

YQ pattern of property to replace

YQ pattern of property to create if the property does not exist in target project file

YQ pattern of property to replace

Set the value of these items to the value. So `'license':MIT` would set the `license` property of the yaml file to 'MIT'

Merge file using git merge (use with varied reliability)

Merge type

Path to file to merge

List of Environment variable names to create in target project if they are not already created

The Environment variable name

plagiarize-me.yaml configuration schema

Git repo of where this plagiarizable project is hosted

The git repo url of this project

The default branch that downstream projects should checkout when plagiarizing this project

Files to move in target project from their previous locations

Directories to move from the target repo to the target repo. Useful for refactoring project structures

Files to move from the target repo to the target repo. Useful for refactoring

Shell commands to run after plagiarize files are done being copied and updated

The shell command to run

Whether or not to run this command synchronously or in parallel to other commands where `parallel: true`

Condition type

Run this command only if configured file does not exist in target project

Condition type

Always run this command

Condition type

Configuration for strings, files, and file paths to replace in target file

Strings to find in target project and be replaced with plagiarized project's values

Variables available to be used for finding and replacing by variable name. For example `$var_name: hello` would replace string '$var_name' with 'hello' in target project

Relative path to target files that will be completely overwritten by source files in the same path

Files to copy from plagiarized project if they do not exist in the target project

Files to remove commented sections from. Eg code between `// plagiarize:start:always:delete` and `// plagiarize:end:always:delete`

Files that are used the have similarities between instances of that that. .env files for example are similar and could be templated

The name of the template

Values to be used as variables within the target project. So `var_name: hello` in the template configuration and `var_name: world` would replace instances of 'hello' found in the source file with with 'world' found in the target file

Values to be used as variables within the target project. So `var_name: hello` would replace instances of '$var_name' with 'hello' in the target file

Values to be used as variables within the plagiarize-me.yaml file only. So `var_name: hello` would replace '$var_name' with 'hello' in plagiarize-me.yaml

The path to the file to create if it does not already exist

Values to set when iterating through each instance

A list of removes to push to (if `push: true`)

name of the remote

Plagiarize Me Configuration

Provide a JSON object that satisfies the schema "Plagiarize Me Configuration". Here are the required top‑level fields: replace. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","description":"plagiarize.yaml configuration schema","id":"https://json.schemastore.org/plagiarize","properties":{"repo":{"required":["url"],"type":"object","description":"Configuration for strings, files, and file paths to replace in target file","properties":{"url":{"description":"Git url of project to plagiarize","type":"string"},"checkout":{"description":"Branch, tag, or commit to checkout from project to be plagiarized","type":"string"}}},"strings":{"type":"object","description":"Strings to find in target project and be replaced with plagiarized project's values","additionalProperties":{"type":["string","integer","boolean"]},"required":["project"],"properties":{"project":{"type":"string"}}},"vars":{"type":"object","description":"Variables available to be used for finding and replacing by variable name. For example `$var_name: hello` would replace string '$var_name' with 'hello' in target project","additionalProperties":{"type":["string","integer","boolean"]}}},"required":["repo","strings"],"title":"Plagiarize configuration","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Plagiarize configuration". Here are the required top‑level fields: repo, strings. Return only the valid JSON object.

plagiarize.yaml configuration schema

Git url of project to plagiarize

Branch, tag, or commit to checkout from project to be plagiarized

Plagiarize configuration

Provide a JSON object that satisfies the schema "Plagiarize configuration". Here are the required top‑level fields: repo, strings. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"title":"Platform.sh application configuration file","$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"resources":{"type":"object","properties":{"base_memory":{"type":"integer","title":"The base memory for the container","default":64},"memory_ratio":{"type":"integer","title":"The amount of memory to allocate per units of CPU","default":128}},"additionalProperties":false,"nullable":true,"title":"Resources","default":null},"size":{"type":"string","title":"The container size for this application in production. Leave blank to allow it to be set dynamically.","default":"AUTO"},"disk":{"type":"integer","title":"The writeable disk size to reserve on this application container.","default":null},"access":{"type":"object","additionalProperties":{"type":"string"},"title":"Access information, a mapping between access type and roles.","default":{"ssh":"contributor"}},"relationships":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"null"},{"type":"object","properties":{"service":{"type":"string"},"endpoint":{"type":"string"}}}]},"title":"The relationships of the application to defined services.","default":{}},"mounts":{"type":"object","additionalProperties":{"type":"object","properties":{"source":{"type":"string","title":"The type of mount that will provide the data.","enum":["local","service","tmp"]},"source_path":{"type":"string","title":"The path to be mounted, relative to the root directory of the volume that's being mounted from."},"service":{"type":"string","title":"The name of the service that the volume will be mounted from. Must be a service in `services.yaml` of type `network-storage`."}},"required":["source"],"additionalProperties":false},"title":"Filesystem mounts of this application.  If not specified the application will have no writeable disk space.","default":{}},"timezone":{"type":"string","title":"The timezone of the application.  This primarily affects the timezone in which cron tasks will run.  It will not affect the application itself. Defaults to UTC if not specified.","default":null},"variables":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{}},"title":"Variables provide environment-sensitive information to control how your application behaves.  To set a Unix environment variable, specify a key of `env:`, and then each sub-item of that is a key/value pair that will be injected into the environment.","default":{}},"firewall":{"type":"object","properties":{"outbound":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","title":"The IP protocol to apply the restriction on.","default":"tcp"},"ips":{"type":"array","items":{"type":"string"},"title":"The IP range in CIDR notation to apply the restriction on.","default":[]},"domains":{"type":"array","items":{"type":"string"},"title":"Domains of the restriction.","default":[]},"ports":{"type":"array","items":{"type":"integer"},"title":"The port to apply the restriction on.","default":[]}},"additionalProperties":false},"title":"Outbound firewall restrictions","default":[]}},"additionalProperties":false,"nullable":true,"title":"Firewall","default":null},"name":{"type":"string","title":"The name of the application. Must be unique within a project."},"type":{"type":"string","title":"The base runtime (language) and version to use for this application."},"runtime":{"type":"object","title":"Runtime-specific configuration.","default":{}},"preflight":{"type":"object","properties":{"enabled":{"type":"boolean","title":"Whether the preflight security blocks are enabled."},"ignored_rules":{"type":"array","items":{"type":"string"},"title":"Specific rules to ignore during preflight security checks. See the documentation for options.","default":[]}},"required":["enabled"],"additionalProperties":false,"title":"Configuration for pre-flight checks.","default":{"enabled":true,"ignored_rules":[]}},"dependencies":{"type":"object","additionalProperties":{"type":"object"},"title":"External global dependencies of this application. They will be downloaded by the language's package manager.","default":{}},"build":{"type":"object","properties":{"flavor":{"type":"string","title":"The pre-set build tasks to use for this application.","default":null},"caches":{"type":"object","additionalProperties":{"type":"object","properties":{"directory":{"type":"string","title":"The directory, relative to the application root, that should be cached.","default":null},"watch":{"type":"array","items":{"type":"string"},"title":"The file or files whose hashed contents should be considered part of the cache key."},"allow_stale":{"type":"boolean","title":"If true, on a cache miss the last cache version will be used and can be updated in place.","default":false},"share_between_apps":{"type":"boolean","title":"Whether multiple applications in the project should share cached directories.","default":false}},"required":["watch"],"additionalProperties":false},"title":"The configuration of paths managed by the build cache.","default":{}}},"additionalProperties":false,"title":"The build configuration of the application.","default":{"flavor":null,"caches":{}}},"source":{"type":"object","properties":{"root":{"type":"string","title":"The root of the application relative to the repository root.","default":null},"operations":{"type":"object","additionalProperties":{"type":"object","properties":{"command":{"type":"string","title":"The command to use to update this application."}},"required":["command"],"additionalProperties":false},"title":"Operations that can be applied to the source code.","default":{}}},"additionalProperties":false,"title":"Configuration related to the source code of the application.","default":{"operations":{},"root":null}},"web":{"type":"object","properties":{"firewall":{"type":"object","properties":{"outbound":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","title":"The IP protocol to apply the restriction on.","default":"tcp"},"ips":{"type":"array","items":{"type":"string"},"title":"The IP range in CIDR notation to apply the restriction on.","default":[]},"domains":{"type":"array","items":{"type":"string"},"title":"Domains of the restriction.","default":[]},"ports":{"type":"array","items":{"type":"integer"},"title":"The port to apply the restriction on.","default":[]}},"additionalProperties":false},"title":"Outbound firewall restrictions","default":[]}},"additionalProperties":false,"nullable":true,"title":"Firewall"},"variables":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{}},"title":"Variables provide environment-sensitive information to control how your application behaves.  To set a Unix environment variable, specify a key of `env:`, and then each sub-item of that is a key/value pair that will be injected into the environment."},"timezone":{"type":"string","title":"The timezone of the application.  This primarily affects the timezone in which cron tasks will run.  It will not affect the application itself. Defaults to UTC if not specified."},"mounts":{"type":"object","additionalProperties":{"type":"object","properties":{"source":{"type":"string","title":"The type of mount that will provide the data.","enum":["local","service","tmp"]},"source_path":{"type":"string","title":"The path to be mounted, relative to the root directory of the volume that's being mounted from."},"service":{"type":"string","title":"The name of the service that the volume will be mounted from. Must be a service in `services.yaml` of type `network-storage`."}},"required":["source"],"additionalProperties":false},"title":"Filesystem mounts of this application.  If not specified the application will have no writeable disk space."},"relationships":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"null"},{"type":"object","properties":{"service":{"type":"string"},"endpoint":{"type":"string"}}}]},"title":"The relationships of the application to defined services.","default":{}},"access":{"type":"object","additionalProperties":{"type":"string"},"title":"Access information, a mapping between access type and roles."},"disk":{"type":"integer","title":"The writeable disk size to reserve on this application container."},"size":{"type":"string","title":"The container size for this application in production. Leave blank to allow it to be set dynamically."},"resources":{"type":"object","properties":{"base_memory":{"type":"integer","title":"The base memory for the container","default":64},"memory_ratio":{"type":"integer","title":"The amount of memory to allocate per units of CPU","default":128}},"additionalProperties":false,"nullable":true,"title":"Resources"},"locations":{"type":"object","additionalProperties":{"type":"object","properties":{"root":{"type":"string","title":"The folder from which to serve static assets for this location relative to the application root.","default":null},"expires":{"type":["integer","string"],"title":"Amount of time to cache static assets.","default":-1},"passthru":{"type":["string","boolean"],"title":"Whether to forward disallowed and missing resources from this location to the application. On PHP, set to the PHP front controller script, as a URL fragment. Otherwise set to `true`/`false`.","default":true},"scripts":{"type":"boolean","title":"Whether to execute scripts in this location (for script based runtimes).","default":true},"index":{"type":"array","items":{"type":"string"},"title":"Files to look for to serve directories."},"allow":{"type":"boolean","title":"Whether to allow access to this location by default.","default":true},"headers":{"type":"object","additionalProperties":{"type":"string"},"title":"A set of header fields set to the HTTP response. Applies only to static files, not responses from the application.","default":{}},"rules":{"type":"object","additionalProperties":{"type":"object","properties":{"expires":{"type":["integer","string"],"title":"Amount of time to cache static assets."},"passthru":{"type":"string","title":"Whether to forward disallowed and missing resources from this location to the application. On PHP, set to the PHP front controller script, as a URL fragment. Otherwise set to `true`/`false`."},"scripts":{"type":"boolean","title":"Whether to execute scripts in this location (for script based runtimes)."},"allow":{"type":"boolean","title":"Whether to allow access to this location by default."},"headers":{"type":"object","additionalProperties":{"type":"string"},"title":"A set of header fields set to the HTTP response. Replaces headers set on the location block."}},"additionalProperties":false},"title":"Specific overrides.","default":{}},"request_buffering":{"type":"object","properties":{"enabled":{"type":"boolean","title":"Enable request buffering.","default":true},"max_request_size":{"type":"string","title":"The maximum size request that can be buffered. Supports K, M, and G suffixes.","default":262144000}},"additionalProperties":false,"title":"Configuration for supporting request buffering."}},"additionalProperties":false},"title":"The specification of the web locations served by this application.","default":{}},"commands":{"type":"object","properties":{"pre_start":{"type":"string","title":"The command used to run before starting the application."},"start":{"type":"string","title":"The command used to start the application.  It will be restarted if it terminates. Do not use on PHP unless using a custom persistent process like React PHP."},"post_start":{"type":"string","title":"A command executed after the application is started."}},"required":["start"],"additionalProperties":false,"title":"Commands to manage the application's lifecycle."},"upstream":{"type":"object","properties":{"socket_family":{"type":"string","title":"If `tcp`, check the PORT environment variable on application startup. If `unix`, check SOCKET.","default":"tcp"},"protocol":{"type":"string","title":"Protocol","default":null}},"additionalProperties":false,"title":"Configuration on how the web server communicates with the application."},"document_root":{"type":"string","title":"The document root of this application, relative to its root."},"passthru":{"type":"string","title":"The URL to use as a passthru if a file doesn't match the whitelist."},"index_files":{"type":"array","items":{"type":"string"},"title":"Files to look for to serve directories."},"whitelist":{"type":"array","items":{"type":"string"},"title":"Whitelisted entries."},"blacklist":{"type":"array","items":{"type":"string"},"title":"Blacklisted entries."},"expires":{"type":["integer","string"],"title":"Amount of time to cache static assets."},"move_to_root":{"type":"boolean","title":"Whether to move the whole root of the app to the document root.","default":false}},"additionalProperties":false,"title":"Configuration for accessing this application via HTTP.","default":{"locations":{}}},"hooks":{"type":"object","properties":{"build":{"type":"string","title":"Hook executed after the build process.","default":null},"deploy":{"type":"string","title":"Hook executed after the deployment of new code.","default":null},"post_deploy":{"type":"string","title":"Hook executed after an environment is fully deployed.","default":null}},"additionalProperties":false,"title":"Scripts executed at various points in the lifecycle of the application.","default":{}},"crons":{"type":"object","additionalProperties":{"type":"object","properties":{"spec":{"type":"string","title":"The cron schedule specification."},"commands":{"type":"object","properties":{"start":{"type":"string","title":"The command used to start the cron job."},"stop":{"type":"string","title":"The command used to stop the cron job.","default":null}},"required":["start"],"additionalProperties":false,"title":"The start and stop commands definition."},"shutdown_timeout":{"type":"integer","title":"The timeout in seconds after which the cron job will be forcefully killed.","default":null},"cmd":{"type":"string","title":"The command to execute."}},"required":["spec"],"additionalProperties":false},"title":"Scheduled cron tasks executed by this application.","default":{}},"workers":{"type":"object","additionalProperties":{"type":"object","properties":{"firewall":{"type":"object","properties":{"outbound":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","title":"The IP protocol to apply the restriction on.","default":"tcp"},"ips":{"type":"array","items":{"type":"string"},"title":"The IP range in CIDR notation to apply the restriction on.","default":[]},"domains":{"type":"array","items":{"type":"string"},"title":"Domains of the restriction.","default":[]},"ports":{"type":"array","items":{"type":"integer"},"title":"The port to apply the restriction on.","default":[]}},"additionalProperties":false},"title":"Outbound firewall restrictions","default":[]}},"additionalProperties":false,"nullable":true,"title":"Firewall"},"variables":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{}},"title":"Variables provide environment-sensitive information to control how your application behaves.  To set a Unix environment variable, specify a key of `env:`, and then each sub-item of that is a key/value pair that will be injected into the environment."},"timezone":{"type":"string","title":"The timezone of the application.  This primarily affects the timezone in which cron tasks will run.  It will not affect the application itself. Defaults to UTC if not specified."},"mounts":{"type":"object","additionalProperties":{"type":"object","properties":{"source":{"type":"string","title":"The type of mount that will provide the data.","enum":["local","service","tmp"]},"source_path":{"type":"string","title":"The path to be mounted, relative to the root directory of the volume that's being mounted from."},"service":{"type":"string","title":"The name of the service that the volume will be mounted from. Must be a service in `services.yaml` of type `network-storage`."}},"required":["source"],"additionalProperties":false},"title":"Filesystem mounts of this application.  If not specified the application will have no writeable disk space."},"relationships":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"null"},{"type":"object","properties":{"service":{"type":"string"},"endpoint":{"type":"string"}}}]},"title":"The relationships of the application to defined services.","default":{}},"access":{"type":"object","additionalProperties":{"type":"string"},"title":"Access information, a mapping between access type and roles."},"disk":{"type":"integer","title":"The writeable disk size to reserve on this application container."},"size":{"type":"string","title":"The container size for this application in production. Leave blank to allow it to be set dynamically."},"resources":{"type":"object","properties":{"base_memory":{"type":"integer","title":"The base memory for the container","default":64},"memory_ratio":{"type":"integer","title":"The amount of memory to allocate per units of CPU","default":128}},"additionalProperties":false,"nullable":true,"title":"Resources"},"commands":{"type":"object","properties":{"pre_start":{"type":"string","title":"The command used to run before starting the cron job."},"start":{"type":"string","title":"The command used to start the application.  It will be restarted if it terminates. Do not use on PHP unless using a custom persistent process like React PHP."}},"required":["start"],"additionalProperties":false,"title":"The commands to manage the worker."}},"required":["commands"],"additionalProperties":false},"title":"Persistent worker containers created by this application.","default":{}},"additional_hosts":{"type":"object","additionalProperties":{"type":"string"},"title":"Resolve additional IPs to domain names."},"stack":{"oneOf":[{"type":"string"},{"type":"object"},{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"object"}]}}]}},"oneOf":[{"required":["name","type"]},{"required":["name","stack"]}],"additionalProperties":false}
</schema>

[User] Provide a JSON object that satisfies the schema "Platform.sh application configuration file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Platform.sh application configuration file

The base memory for the container

The amount of memory to allocate per units of CPU

Resources

The container size for this application in production. Leave blank to allow it to be set dynamically.

The writeable disk size to reserve on this application container.

Access information, a mapping between access type and roles.

The relationships of the application to defined services.

The type of mount that will provide the data.

The path to be mounted, relative to the root directory of the volume that's being mounted from.

The name of the service that the volume will be mounted from. Must be a service in `services.yaml` of type `network-storage`.

Filesystem mounts of this application.  If not specified the application will have no writeable disk space.

The timezone of the application.  This primarily affects the timezone in which cron tasks will run.  It will not affect the application itself. Defaults to UTC if not specified.

Variables provide environment-sensitive information to control how your application behaves.  To set a Unix environment variable, specify a key of `env:`, and then each sub-item of that is a key/value pair that will be injected into the environment.

The IP protocol to apply the restriction on.

The IP range in CIDR notation to apply the restriction on.

Domains of the restriction.

The port to apply the restriction on.

Outbound firewall restrictions

Firewall

The name of the application. Must be unique within a project.

The base runtime (language) and version to use for this application.

Runtime-specific configuration.

Whether the preflight security blocks are enabled.

Specific rules to ignore during preflight security checks. See the documentation for options.

Configuration for pre-flight checks.

External global dependencies of this application. They will be downloaded by the language's package manager.

The pre-set build tasks to use for this application.

The directory, relative to the application root, that should be cached.

The file or files whose hashed contents should be considered part of the cache key.

If true, on a cache miss the last cache version will be used and can be updated in place.

Whether multiple applications in the project should share cached directories.

The configuration of paths managed by the build cache.

The build configuration of the application.

The root of the application relative to the repository root.

The command to use to update this application.

Operations that can be applied to the source code.

Configuration related to the source code of the application.

The IP protocol to apply the restriction on.

Domains of the restriction.

The port to apply the restriction on.

Outbound firewall restrictions

Firewall

The type of mount that will provide the data.

The base memory for the container

The amount of memory to allocate per units of CPU

Resources

The folder from which to serve static assets for this location relative to the application root.

Amount of time to cache static assets.

Whether to forward disallowed and missing resources from this location to the application. On PHP, set to the PHP front controller script, as a URL fragment. Otherwise set to `true`/`false`.

Whether to execute scripts in this location (for script based runtimes).

Files to look for to serve directories.

Whether to allow access to this location by default.

A set of header fields set to the HTTP response. Applies only to static files, not responses from the application.

Amount of time to cache static assets.

A set of header fields set to the HTTP response. Replaces headers set on the location block.

Specific overrides.

Enable request buffering.

The maximum size request that can be buffered. Supports K, M, and G suffixes.

Configuration for supporting request buffering.

The specification of the web locations served by this application.

The command used to run before starting the application.

The command used to start the application.  It will be restarted if it terminates. Do not use on PHP unless using a custom persistent process like React PHP.

A command executed after the application is started.

Commands to manage the application's lifecycle.

If `tcp`, check the PORT environment variable on application startup. If `unix`, check SOCKET.

Protocol

Configuration on how the web server communicates with the application.

The document root of this application, relative to its root.

The URL to use as a passthru if a file doesn't match the whitelist.

Files to look for to serve directories.

Whitelisted entries.

Blacklisted entries.

Amount of time to cache static assets.

Whether to move the whole root of the app to the document root.

Configuration for accessing this application via HTTP.

Hook executed after the build process.

Hook executed after the deployment of new code.

Hook executed after an environment is fully deployed.

Scripts executed at various points in the lifecycle of the application.

The cron schedule specification.

The command used to start the cron job.

The command used to stop the cron job.

The start and stop commands definition.

The timeout in seconds after which the cron job will be forcefully killed.

The command to execute.

Scheduled cron tasks executed by this application.

The IP protocol to apply the restriction on.

Domains of the restriction.

The port to apply the restriction on.

Outbound firewall restrictions

Firewall

The type of mount that will provide the data.

The base memory for the container

The amount of memory to allocate per units of CPU

Resources

The command used to run before starting the cron job.

The commands to manage the worker.

Persistent worker containers created by this application.

Resolve additional IPs to domain names.

Provide a JSON object that satisfies the schema "Platform.sh application configuration file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Platform.sh application configuration file