[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"https://example.com/product.schema.json","$schema":"http://json-schema.org/draft-07/schema#","title":"ezd","description":"The schema for `ezd`","type":"object","properties":{"env":{"type":"array","description":"Environment variables to set for all tasks"},"tasks":{"type":"object","properties":{"shell_exec":{"type":"object","patternProperties":{"":{"type":"object","description":"Configure and run shell tasks","properties":{"description":{"type":"string","description":"Describes the task for the user"},"env":{"type":"array","description":"Environment variables to set while executing these specific commands"},"commands":{"type":"array","description":"A list of commands to execute within the local shell"}}}},"additionalProperties":false},"docker_seq":{"type":"object","description":"Configure and run `docker-seq` tasks","patternProperties":{"":{"type":"object","properties":{"file":{"type":"string","description":"Path to a `docker-seq.yml` file"},"description":{"type":"string"},"config":{"description":"Embedded `docker-seq.yml` configuration","$ref":"https://gitlab.com/Veroxis/docker-seq/-/raw/master/docker-seq.schema.json"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"volumes":{"type":"object","description":"Declare docker volumes to use within docker_seq tasks","properties":{"driver":{"type":"string","description":"Specify volume driver name"},"label":{"type":"string","description":"Set metadata for a volume"},"opt":{"type":"array","description":"Set driver specific options"}}},"additionalProperties":false},"additionalProperties":false}
</schema>

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

ezd

The schema for `ezd`

Environment variables to set for all tasks

Configure and run shell tasks

Describes the task for the user

Environment variables to set while executing these specific commands

A list of commands to execute within the local shell

Configure and run `docker-seq` tasks

Path to a `docker-seq.yml` file

Embedded `docker-seq.yml` configuration

Declare docker volumes to use within docker_seq tasks

Specify volume driver name

Set metadata for a volume

Set driver specific options

Provide a JSON object that satisfies the schema "ezd". 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-07/schema#","$id":"https://json.schemastore.org/fabric.mod.json","definitions":{"entrypoint":{"oneOf":[{"type":"object","properties":{"adapter":{"type":"string","description":"The language adapter to use","default":"default"},"value":{"type":"string","description":"The entrypoint function or class"}},"required":["value"]},{"type":"string","description":"The entrypoint function or class"}]},"contactInfo":{"type":"object","properties":{"email":{"type":"string","description":"Contact e-mail pertaining to the mod"},"irc":{"type":"string","description":"IRC channel pertaining to the mod. Must be of a valid URL format"},"homepage":{"type":"string","description":"Project or user homepage. Must be a valid HTTP/HTTPS address"},"issues":{"type":"string","description":"Project issue tracker. Must be a valid HTTP/HTTPS address"},"sources":{"type":"string","description":"Project source code repository. Must be a valid URL"}},"additionalProperties":{"type":"string","description":"Custom contact or profile information"}},"environment":{"type":"string","enum":["*","client","server"],"description":"The environment where this mod will be loaded"},"nestedJar":{"type":"object","properties":{"file":{"type":"string","description":"A string value pointing to a path from the root of the JAR to a nested JAR which should be loaded alongside the outer mod JAR"}},"required":["file"]},"person":{"oneOf":[{"type":"string","description":"The name of the person"},{"type":"object","properties":{"name":{"type":"string","description":"The name of the person"},"contact":{"$ref":"#/definitions/contactInfo","description":"Contact information for the person"}},"required":["name"]}]},"versionRanges":{"oneOf":[{"$ref":"#/definitions/versionRange"},{"type":"array","description":"Multiple version ranges that are combined with an \"OR\" relationship - only one of the ranges needs to match","items":{"$ref":"#/definitions/versionRange"}}]},"versionRange":{"type":"string","description":"A version range that matches versions. The following variants are supported:\n\n- A single asterisk matches any version.\n- Ranges following NPM semver specification including >=, >, =, <, <=, X-ranges (1.x), tilde ranges (fixed minor) and caret ranges (fixed major).\n- Additionally exact string matches will always be performed.","x-intellij-html-description":"
A version range or an array of those that match versions. The following variants are supported:

* matches any version.

Ranges following NPM semver specification:

>=, >, =, < and <

X-ranges to specify variable components, e.g. 1.x

tilde ranges that allow patch version changes, e.g. ~1.2.3

caret ranges that allow up to minor version changes, e.g. ^1.2.3

Exact string matches are always performed as well.

If an array of ranges is used, they're treated as in an \"OR\" relationship - only one of the ranges needs to match.
","markdownDescription":"A version range or an array of those that match versions. The following variants are supported:\n\n- `*` matches any version.\n- Ranges following [NPM semver specification](https://docs.npmjs.com/about-semantic-versioning):\n  - `>=`, `>`, `=`, `<` and `<=`\n  - X-ranges to specify variable components, e.g. `1.x`\n  - tilde ranges that allow patch version changes, e.g. `~1.2.3`\n  - caret ranges that allow up to minor version changes, e.g. `^1.2.3`\n- Exact string matches are always performed as well.\n\nIf an array of ranges is used, they're treated as in an \"OR\" relationship - only one of the ranges needs to match."}},"properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9-_]{1,63}$","description":"The mod identifier"},"version":{"type":"string","description":"The mod version"},"schemaVersion":{"type":"integer","description":"The version of the fabric.mod.json schema","const":1},"environment":{"$ref":"#/definitions/environment"},"entrypoints":{"type":"object","properties":{"main":{"type":"array","items":{"$ref":"#/definitions/entrypoint"},"description":"The entrypoint for all environments (classes must implement ModInitializer)"},"client":{"type":"array","items":{"$ref":"#/definitions/entrypoint"},"description":"The entrypoint for the client environment (classes must implement ClientModInitializer)"},"server":{"type":"array","items":{"$ref":"#/definitions/entrypoint"},"description":"The entrypoint for the server environment (classes must implement DedicatedServerModInitializer)"},"preLaunch":{"type":"array","items":{"$ref":"#/definitions/entrypoint"},"description":"The entrypoint called just before the game instance is created (classes must implement PreLaunchEntrypoint)"},"fabric-datagen":{"type":"array","items":{"$ref":"#/definitions/entrypoint"},"description":"The entrypoint for the data generator environment (classes must implement DataGeneratorEntrypoint)"},"fabric-gametest":{"type":"array","items":{"$ref":"#/definitions/entrypoint"},"description":"The entrypoint for the Game Test environment (classes must implement FabricGameTest)"}},"additionalProperties":{"type":"array","items":{"$ref":"#/definitions/entrypoint"},"description":"Custom mod entrypoints"},"description":"The entrypoints used by this mod"},"jars":{"type":"array","description":"Contains an array of nestedJar objects","items":{"$ref":"#/definitions/nestedJar"}},"languageAdapters":{"type":"object","description":"A string\u2192string dictionary, connecting namespaces to LanguageAdapter implementations","additionalProperties":{"type":"string"}},"mixins":{"type":"array","items":{"oneOf":[{"type":"string","description":"Path to mixin file from the root of the JAR"},{"type":"object","properties":{"config":{"type":"string","description":"Path to mixin file from the root of the JAR"},"environment":{"$ref":"#/definitions/environment"}}}]}},"accessWidener":{"type":"string","description":"Path to an access widener definition file"},"depends":{"type":"object","description":"id\u2192versionRange map for dependencies. Failure to meet these causes a hard failure","additionalProperties":{"$ref":"#/definitions/versionRanges"}},"recommends":{"type":"object","description":"id\u2192versionRange map for dependencies. Failure to meet these causes a soft failure (warning)","additionalProperties":{"$ref":"#/definitions/versionRanges"}},"suggests":{"type":"object","description":"id\u2192versionRange map for dependencies. Are not matched and are mainly used as metadata","additionalProperties":{"$ref":"#/definitions/versionRanges"}},"conflicts":{"type":"object","description":"id\u2192versionRange map for dependencies. A successful match causes a soft failure (warning)","additionalProperties":{"$ref":"#/definitions/versionRanges"}},"breaks":{"type":"object","description":"id\u2192versionRange map for dependencies. A successful match causes a hard failure","additionalProperties":{"$ref":"#/definitions/versionRanges"}},"name":{"type":"string","description":"Name of the mod"},"description":{"type":"string","description":"Description of the mod"},"authors":{"type":"array","items":{"$ref":"#/definitions/person"},"description":"The direct authorship information"},"contributors":{"type":"array","items":{"$ref":"#/definitions/person"},"description":"Contributors to this mod"},"contact":{"$ref":"#/definitions/contactInfo","description":"Contact information for the mod"},"license":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The license the mod uses"},"icon":{"oneOf":[{"type":"string","description":"The path to a single .PNG file from the root of the JAR"},{"type":"object","description":"A string\u2192string dictionary, where the keys conform to widths of each PNG file, and the values are said files' paths","propertyNames":{"pattern":"^[1-9][0-9]*$"},"additionalProperties":{"type":"string","description":"The path to a single .PNG file from the root of the JAR"}}]},"custom":{"type":"object","description":"A map of namespace:id\u2192value for custom data fields."}},"required":["id","version","schemaVersion"],"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "fabric.mod". Here are the required top‑level fields: id, version, schemaVersion. Return only the valid JSON object.

The language adapter to use

The entrypoint function or class

The entrypoint function or class

Contact e-mail pertaining to the mod

IRC channel pertaining to the mod. Must be of a valid URL format

Project or user homepage. Must be a valid HTTP/HTTPS address

Project issue tracker. Must be a valid HTTP/HTTPS address

Project source code repository. Must be a valid URL

Custom contact or profile information

The environment where this mod will be loaded

A string value pointing to a path from the root of the JAR to a nested JAR which should be loaded alongside the outer mod JAR

The name of the person

The name of the person

Contact information for the person

Multiple version ranges that are combined with an "OR" relationship - only one of the ranges needs to match

A version range that matches versions. The following variants are supported:

- A single asterisk matches any version.
- Ranges following NPM semver specification including >=, >, =, <, <=, X-ranges (1.x), tilde ranges (fixed minor) and caret ranges (fixed major).
- Additionally exact string matches will always be performed.

A version range or an array of those that match versions. The following variants are supported:

* matches any version.

Ranges following NPM semver specification:

>=, >, =, < and <

X-ranges to specify variable components, e.g. 1.x

tilde ranges that allow patch version changes, e.g. ~1.2.3

caret ranges that allow up to minor version changes, e.g. ^1.2.3

Exact string matches are always performed as well.

If an array of ranges is used, they're treated as in an "OR" relationship - only one of the ranges needs to match.

A version range or an array of those that match versions. The following variants are supported:

- `*` matches any version.
- Ranges following [NPM semver specification](https://docs.npmjs.com/about-semantic-versioning):
  - `>=`, `>`, `=`, `<` and `<=`
  - X-ranges to specify variable components, e.g. `1.x`
  - tilde ranges that allow patch version changes, e.g. `~1.2.3`
  - caret ranges that allow up to minor version changes, e.g. `^1.2.3`
- Exact string matches are always performed as well.

If an array of ranges is used, they're treated as in an "OR" relationship - only one of the ranges needs to match.

The mod identifier

The mod version

The version of the fabric.mod.json schema

The entrypoint for all environments (classes must implement ModInitializer)

The entrypoint for the client environment (classes must implement ClientModInitializer)

The entrypoint for the server environment (classes must implement DedicatedServerModInitializer)

The entrypoint called just before the game instance is created (classes must implement PreLaunchEntrypoint)

The entrypoint for the data generator environment (classes must implement DataGeneratorEntrypoint)

The entrypoint for the Game Test environment (classes must implement FabricGameTest)

Custom mod entrypoints

The entrypoints used by this mod

Contains an array of nestedJar objects

A string→string dictionary, connecting namespaces to LanguageAdapter implementations

Path to mixin file from the root of the JAR

Path to an access widener definition file

id→versionRange map for dependencies. Failure to meet these causes a hard failure

id→versionRange map for dependencies. Failure to meet these causes a soft failure (warning)

id→versionRange map for dependencies. Are not matched and are mainly used as metadata

id→versionRange map for dependencies. A successful match causes a soft failure (warning)

id→versionRange map for dependencies. A successful match causes a hard failure

Name of the mod

Description of the mod

The direct authorship information

Contributors to this mod

Contact information for the mod

The license the mod uses

The path to a single .PNG file from the root of the JAR

A string→string dictionary, where the keys conform to widths of each PNG file, and the values are said files' paths

A map of namespace:id→value for custom data fields.

Provide a JSON object that satisfies the schema "fabric.mod". Here are the required top‑level fields: id, version, schemaVersion. Return only the valid JSON object.


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

Drupal breakpoints to CSS configuration

Drupal configuration

JavaScript configuration

CSS configuration

Toggle available extraction options

Prettier options

Provide a JSON object that satisfies the schema "factorial-drupal-breakpoints-css-0.2.0". 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#","additionalProperties":false,"definitions":{"item":{"required":["id"],"additionalProperties":false,"oneOf":[{"required":["content_html"],"not":{"required":["content_text"]}},{"required":["content_text"],"not":{"required":["content_html"]}},{"required":["content_text","content_html"]}],"patternProperties":{"^_[a-zA-Z]([^.]+)$":{"$ref":"https://json.schemastore.org/feed-1#/definitions/extension"}},"properties":{"attachments":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/attachments"},"author":{"description":"Use the \"authors\" key instead, even when there is only one author. Existing feeds can include both \"author\" and \"authors\" for compatibility with existing feed readers. Feed readers should always prefer `authors` if present.","deprecated":true,"allOf":[{"$ref":"https://json.schemastore.org/feed-1#/definitions/author"}]},"authors":{"type":"array","items":{"$ref":"https://json.schemastore.org/feed-1#/definitions/author"}},"banner_image":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/banner_image"},"content_html":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/content_html"},"content_text":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/content_text"},"date_modified":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/date_modified"},"date_published":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/date_published"},"external_url":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/external_url"},"id":{"description":"Is unique for that item for that feed over time. If an item is ever updated, the id should be unchanged. New items should never use a previously-used id. Ideally, the id is the full URL of the resource described by the item, since URLs make great unique identifiers.","type":["string"]},"image":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/image"},"language":{"description":"The language for this item, using the same format as the top-level \"language\" field. The value can be different than the primary language for the feed when a specific item is written in a different language than other items in the feed.","type":"string"},"summary":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/summary"},"tags":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/tags"},"title":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/title"},"url":{"$ref":"https://json.schemastore.org/feed-1#/definitions/item/properties/url"}}}},"id":"https://json.schemastore.org/feed.json","patternProperties":{"^_[a-zA-Z]([^.]+)$":{"$ref":"https://json.schemastore.org/feed-1#/definitions/extension"}},"properties":{"author":{"deprecated":true,"description":"Use the \"authors\" key instead, even when there is only one author. Existing feeds can include both \"author\" and \"authors\" for compatibility with existing feed readers. Feed readers should always prefer `authors` if present.","allOf":[{"$ref":"https://json.schemastore.org/feed-1#/definitions/author"}]},"authors":{"type":"array","items":{"$ref":"https://json.schemastore.org/feed-1#/definitions/author"}},"description":{"$ref":"https://json.schemastore.org/feed-1#/properties/description"},"expired":{"$ref":"https://json.schemastore.org/feed-1#/properties/expired"},"favicon":{"$ref":"https://json.schemastore.org/feed-1#/properties/description"},"feed_url":{"$ref":"https://json.schemastore.org/feed-1#/properties/feed_url"},"home_page_url":{"$ref":"https://json.schemastore.org/feed-1#/properties/home_page_url"},"hubs":{"$ref":"https://json.schemastore.org/feed-1#/properties/hubs"},"icon":{"$ref":"https://json.schemastore.org/feed-1#/properties/icon"},"items":{"type":"array","items":{"$ref":"#/definitions/item"}},"language":{"description":"The primary language for the feed in the format specified in RFC 5646. The value is usually a 2-letter language tag from ISO 639-1, optionally followed by a region tag. (Examples: \"en\" or \"en-US\".)","type":"string"},"next_url":{"$ref":"https://json.schemastore.org/feed-1#/properties/next_url"},"title":{"$ref":"https://json.schemastore.org/feed-1#/properties/title"},"user_comment":{"$ref":"https://json.schemastore.org/feed-1#/properties/user_comment"},"version":{"description":"The URL of the version of the format the feed uses. This should appear at the very top, though we recognize that not all JSON generators allow for ordering.","anyOf":[{"enum":["https://jsonfeed.org/version/1.1"]},{"$ref":"https://json.schemastore.org/feed-1#/definitions/uri"}]}},"required":["items","title","version"],"title":"JSON schema for the JSON Feed format","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for the JSON Feed format". Here are the required top‑level fields: items, title, version. Return only the valid JSON object.

Use the "authors" key instead, even when there is only one author. Existing feeds can include both "author" and "authors" for compatibility with existing feed readers. Feed readers should always prefer `authors` if present.

Is unique for that item for that feed over time. If an item is ever updated, the id should be unchanged. New items should never use a previously-used id. Ideally, the id is the full URL of the resource described by the item, since URLs make great unique identifiers.

The language for this item, using the same format as the top-level "language" field. The value can be different than the primary language for the feed when a specific item is written in a different language than other items in the feed.

The primary language for the feed in the format specified in RFC 5646. The value is usually a 2-letter language tag from ISO 639-1, optionally followed by a region tag. (Examples: "en" or "en-US".)

The URL of the version of the format the feed uses. This should appear at the very top, though we recognize that not all JSON generators allow for ordering.

JSON schema for the JSON Feed format

Provide a JSON object that satisfies the schema "JSON schema for the JSON Feed format". Here are the required top‑level fields: items, title, version. 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-07/schema#","title":"TemplateCfg","type":"object","properties":{"ignores":{"description":"list of path from the current template to ignore","default":[],"type":"array","items":{"type":"string"}},"imports":{"description":"list of template to import and to apply as part of this template","default":[],"type":"array","items":{"$ref":"#/definitions/ImportCfg"}},"scripts":{"description":"list of the scripts to apply at end of generation","default":[],"type":"array","items":{"$ref":"#/definitions/ScriptCfg"}},"use_template_dir":{"description":"set to true if the template content is under a `template` folder (not mixed with metadata)","default":false,"type":"boolean"},"variables":{"description":"list of variables/parameters of the template","default":[],"type":"array","items":{"$ref":"#/definitions/VariableCfg"}}},"additionalProperties":false,"definitions":{"AnyValue":true,"ImportCfg":{"description":"define a template layer to import","type":"object","required":["uri"],"properties":{"rev":{"type":["string","null"]},"subfolder":{"type":["string","null"]},"uri":{"type":"string"}}},"LabelValueCfg":{"type":"object","required":["label","value"],"properties":{"label":{"description":"display of the value (in select)","type":"string"},"value":{"description":"the value","allOf":[{"$ref":"#/definitions/AnyValue"}]}}},"ScriptCfg":{"type":"object","properties":{"cmd":{"description":"command to execute","type":["string","null"]},"default_confirm_answer":{"description":"default answer for confirmation of execution","type":["string","null"]},"message":{"description":"message to display","type":["string","null"]}}},"VariableCfg":{"type":"object","required":["name"],"properties":{"ask":{"description":"sentence to ask the value (default to the name on variable)","type":["string","null"]},"default_value":{"description":"optionnal default value","anyOf":[{"$ref":"#/definitions/AnyValue"},{"type":"null"}]},"hidden":{"description":"is the variable hidden to the user (could be usefull to cache shared variable/data)","type":["string","null"]},"name":{"description":"name of variable used in the template","type":"string"},"select_in_values":{"description":"if non-empty then the value should selected into the list of value","anyOf":[{"$ref":"#/definitions/VariableValuesCfg"},{"type":"null"}]}}},"VariableValuesCfg":{"anyOf":[{"type":"array","items":{"$ref":"#/definitions/LabelValueCfg"}},{"type":"array","items":{"$ref":"#/definitions/AnyValue"}},{"type":"string"}]}}}
</schema>

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

TemplateCfg

list of path from the current template to ignore

list of template to import and to apply as part of this template

list of the scripts to apply at end of generation

set to true if the template content is under a `template` folder (not mixed with metadata)

list of variables/parameters of the template

define a template layer to import

display of the value (in select)

the value

command to execute

default answer for confirmation of execution

message to display

sentence to ask the value (default to the name on variable)

optionnal default value

is the variable hidden to the user (could be usefull to cache shared variable/data)

name of variable used in the template

if non-empty then the value should selected into the list of value

Provide a JSON object that satisfies the schema "TemplateCfg". 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>
{"title":"JSON schema for OctoberCMS form fields","$schema":"http://json-schema.org/draft-07/schema","$comment":"https://octobercms.com/docs/backend/forms#form-fields","type":"object","definitions":{"fields":{"type":"object","patternProperties":{"^[^\\s]*$":{"description":"Model field name","$comment":"https://octobercms.com/docs/backend/forms#form-field-options","type":"object","properties":{"label":{"description":"a name when displaying the form field to the user","type":"string"},"type":{"description":"defines how this field should be rendered","default":"text","anyOf":[{"type":"string","enum":["text","number","password","email","textarea","dropdown","radio","balloon-selector","checkbox","checkboxlist","switch","section","partial","hint"]},{"type":"string","enum":["codeeditor","colorpicker","datatable","datepicker","fileupload","markdown","mediafinder","nestedform","recordfinder","relation","repeater","richeditor","taglist"]},{"type":"string"}]},"span":{"description":"aligns the form field to one side. The parameter storm allows you to display the form as a Bootstrap grid, using the cssClass property, for example, cssClass: col-xs-4.","type":"string","enum":["auto","left","right","row","full"],"default":"full"},"size":{"description":"specifies a field size for fields that use it, for example, the textarea field","type":"string","enum":["tiny","small","large","huge","giant"]},"placeholder":{"description":"if the field supports a placeholder value","type":"string"},"comment":{"description":"places a descriptive comment below the field","type":"string"},"commentAbove":{"description":"places a comment above the field","type":"string"},"commentHtml":{"description":"allow HTML markup inside the comment","type":"boolean"},"default":{"description":"specifies the default value for the field"},"defaultFrom":{"description":"takes the default value from the value of another field","type":"string"},"tab":{"description":"assigns the field to a tab","type":"string"},"cssClass":{"description":"assigns a CSS class to the field container","type":"string"},"readOnly":{"description":"prevents the field from being modified","type":"boolean"},"disabled":{"description":"prevents the field from being modified and excludes it from the saved data","type":"boolean"},"hidden":{"description":"hides the field from the view and excludes it from the saved data","type":"boolean"},"stretch":{"description":"specifies if this field stretches to fit the parent height","type":"boolean"},"context":{"description":"specifies what context should be used when displaying the field. Context can also be passed by using an @ symbol in the field name, for example, name@update.","type":"array","items":{"anyOf":[{"type":"string","enum":["create","update","preview"]},{"type":"string"}]},"uniqueItems":true},"dependsOn":{"description":"an array of other field names this field depends on, when the other fields are modified, this field will update","type":["array","string"]},"trigger":{"description":"specify conditions for this field using trigger events","type":"object","properties":{"action":{"description":"defines the action applied to this field when the condition is met","type":"string","enum":["show","hide","enable","disable","empty"]},"field":{"description":"defines the other field name that will trigger the action. Normally the field name refers to a field in the same level form. For example, if this field is in a repeater widget, only fields in that same repeater widget will be checked. However, if the field name is preceded by a caret symbol ^ like: ^parent_field, it will refer to a repeater widget or form one level higher than the field itself. Additionally, if more than one caret ^ is used, it will refer that many levels higher: ^^grand_parent_field, ^^^grand_grand_parent_field, etc.","type":"string"},"condition":{"description":"determines the condition the specified field should satisfy for the condition to be considered \"true\". Supported values: checked, unchecked, value[somevalue]","anyOf":[{"type":"string","enum":["checked","unchecked","value[somevalue]"]},{"type":"string","pattern":"^value\\[.*\\]$"}]}}},"preset":{"description":"allows the field value to be initially set by the value of another field, converted using the input preset converter","oneOf":[{"type":"object","properties":{"field":{"description":"defines the other field name to source the value from","type":"string"},"type":{"description":"specifies the conversion type","type":"string","enum":["exact","slug","url","camel","file"]},"prefixInput":{"description":"optional, prefixes the converted value with the value found in the supplied input element using a CSS selector","type":"string"}}},{"description":"value can be a string that refers to the field only, the type option will then default to slug","type":"string"}]},"required":{"description":"places a red asterisk next to the field label to indicate it is required (make sure to setup validation on the model as this is not enforced by the form controller)","type":"boolean"},"attributes":{"description":"specify custom HTML attributes to add to the form field element","type":"object","patternProperties":{".+":{"type":"string"}}},"containerAttributes":{"description":"specify custom HTML attributes to add to the form field container","type":"object","patternProperties":{".+":{"type":"string"}}},"permissions":{"description":"the permissions that the current backend user must have in order for the field to be used. Supports either a string for a single permission or an array of permissions of which only one is needed to grant access.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]}},"anyOf":[{"if":{"properties":{"type":{"enum":["number"]}}},"then":{"properties":{"step":{"description":"test","type":"integer"},"min":{"description":"test","type":"integer"},"max":{"description":"test","type":"integer"}}}},{"if":{"properties":{"type":{"enum":["dropdown"]}}},"then":{"properties":{"options":{"description":"define options list","anyOf":[{"description":"define drop-down options","type":"object","patternProperties":{".+":{"type":"string"}}},{"description":"uses a specific method declared in the model's class","type":"string"}]},"emptyOption":{"description":"define an empty option that can be reselected","type":"string"},"placeholder":{"description":"define a \"one-way\" empty option that cannot be reselected","type":"string"},"showSearch":{"description":"by default the dropdown has a searching feature, allowing quick selection of a value. This can be disabled by setting this option to false","type":"boolean","default":true}}}},{"if":{"properties":{"type":{"enum":["radio","balloon-selector","checkboxlist"]}}},"then":{"properties":{"options":{"description":"define options","anyOf":[{"description":"define drop-down options","type":"object","patternProperties":{".+":{"type":"string"}}},{"description":"uses a specific method declared in the model's class","type":"string"}]}}}},{"if":{"properties":{"type":{"enum":["switch"]}}},"then":{"properties":{"on":{"type":"string"},"off":{"type":"string"}}}},{"if":{"properties":{"type":{"enum":["partial","hint"]}}},"then":{"properties":{"path":{"description":"partial view","type":"string","examples":["$/acme/blog/models/comments/_content_field.htm"]}}}},{"if":{"properties":{"type":{"enum":["codeeditor"]}}},"then":{"properties":{"language":{"description":"code language","anyOf":[{"type":"string","enum":["php","css","js","html"],"default":"php"},{"type":"string"}]},"showGutter":{"description":"shows a gutter with line numbers","type":"boolean","default":true},"wrapWords":{"description":"breaks long lines on to a new line","type":"boolean","default":true},"fontSize":{"description":"the text font size","type":"number","default":12}}}},{"if":{"properties":{"type":{"enum":["colorpicker"]}}},"then":{"properties":{"availableColors":{"description":"list of available colors","type":["array","string"]},"allowEmpty":{"description":"allows empty input value","type":"boolean","default":false}}}},{"if":{"properties":{"type":{"enum":["datatable"]}}},"then":{"properties":{"adding":{"description":"allow records to be added to the data table","type":"boolean","default":false},"btnAddRowLabel":{"description":"defines a custom label for the \"Add Row Above\" button","type":"string"},"btnAddRowBelowLabel":{"description":"defines a custom label for the \"Add Row Below\" button","type":"string"},"btnDeleteRowLabel":{"description":"defines a custom label for the \"Delete Row\" button","type":"string"},"columns":{"description":"an array representing the column configuration of the data table","$ref":"#/definitions/datatableColumns"},"deleting":{"description":"allow records to be deleted from the data table","type":"boolean","default":false},"dynamicHeight":{"description":"if true, the data table's height will extend or shrink depending on the records added, up to the maximum size defined by the height configuration value","type":"string","default":false},"fieldName":{"description":"defines a custom field name to use in the POST data sent from the data table. Leave blank to use the default field alias","type":"string"},"height":{"description":"the data table's height, in pixels. If set to false, the data table will stretch to fit the field container","type":["integer","boolean"]},"keyFrom":{"description":"the data attribute to use for keying each record. This should usually be set to id","type":"string"},"postbackHandlerName":{"description":"defines a custom post-back handler to use when saving the data from the data table","type":"string"},"recordsPerPage":{"description":"the number of records to show per page. If set to false, the pagination will be disabled","type":["integer","boolean"]},"searching":{"description":"allow records to be searched via a search box","default":false},"toolbar":{"description":"an array representing the toolbar configuration of the data table","type":"array"}}}},{"if":{"properties":{"type":{"enum":["datepicker"]}}},"then":{"properties":{"mode":{"description":"the expected result, either date, datetime or time","type":"string","enum":["date","datetime","time"],"default":"datetime"},"format":{"description":"provide an explicit date display format","type":"string","examples":["Y-m-d"]},"minDate":{"description":"the minimum/earliest date that can be selected","type":"string","default":"2000-01-01"},"maxDate":{"description":"the maximum/latest date that can be selected","type":"string","default":"2020-12-31"},"firstDay":{"description":"the first day of the week. Default: 0 (Sunday)","type":"integer","default":0},"showWeekNumber":{"description":"show week numbers at head of row","type":"boolean","default":false},"ignoreTimezone":{"description":"display datetime exactly as it is stored, ignoring October's and the backend user's specified timezones","type":"boolean"}}}},{"if":{"properties":{"type":{"enum":["fileupload"]}}},"then":{"properties":{"mode":{"description":"the expected file type, either file or image","type":"string","enum":["file","image"],"default":"image"},"fileTypes":{"description":"file extensions that are accepted by the uploader, optional. Eg: zip,txt","type":"string","examples":["zip,txt"]},"mimeTypes":{"description":"MIME types that are accepted by the uploader, either as file extension or fully qualified name, optional. Eg: bin,txt","type":"string","examples":["bin,txt"]},"maxFilesize":{"description":"file size in Mb that are accepted by the uploader, optional. Default: from \"upload_max_filesize\" param value","type":"number"},"useCaption":{"description":"allows a title and description to be set for the file","type":"boolean","default":true},"attachOnUpload":{"description":"Automatically attaches the uploaded file on upload if the parent record exists instead of using deferred binding to attach on save of the parent record","type":"boolean","default":false}}}},{"if":{"properties":{"type":{"enum":["fileupload"]},"mode":{"enum":["image"]}}},"then":{"properties":{"imageWidth":{"description":"resize image to this width","type":"number"},"imageHeight":{"description":"resize image to this height","type":"number"},"thumbOptions":{"description":"options to pass to the thumbnail generating method for the file","$comment":"https://octobercms.com/docs/database/attachments#viewing-attachments","type":"object","properties":{"mode":{"description":"specify how the image should be resized","type":"string","enum":["auto","exact","portrait","landscape","crop","fit"],"default":"auto"},"quality":{"description":"image quality compression (0 - 100)","type":"integer","minimum":0,"maximum":100,"default":90},"interlace":{"description":"specify if the generated image should be interlaced","type":"boolean","default":false},"extension":{"type":"string","enum":["auto","jpg","png","gif"],"default":"jpg"}}}}}},{"if":{"properties":{"type":{"enum":["fileupload"]},"mode":{"enum":["file"]}}},"then":{"properties":{"prompt":{"description":"text to display for the upload button","type":"string"}}}},{"if":{"properties":{"type":{"enum":["markdown"]}}},"then":{"properties":{"mode":{"description":"the expected view mode, either tab or split","type":"string","enum":["tab","split"],"default":"tab"}}}},{"if":{"properties":{"type":{"enum":["mediafinder"]}}},"then":{"properties":{"mode":{"description":"the expected file type, either file or image","type":"string","enum":["file","image"],"default":"file"},"prompt":{"description":"text to display when there is no item selected. The %s character represents the media manager icon","type":"string"},"imageWidth":{"description":"text to display when there is no item selected. The %s character represents the media manager icon","type":"string"}}}},{"if":{"properties":{"type":{"enum":["mediafinder"]},"mode":{"enum":["image"]}}},"then":{"properties":{"imageWidth":{"description":"preview image to this width","type":"number"},"imageHeight":{"description":"preview image to this height","type":"number"}}}},{"if":{"properties":{"type":{"enum":["nestedform"]}}},"then":{"properties":{"form":{"type":"object","properties":{"fields":{"$ref":"#/definitions/fields"},"tabs":{"description":"Primary tabs","$ref":"#/definitions/tabs"},"secondaryTabs":{"description":"secondary tabs","$ref":"#/definitions/tabs"}}},"usePanelStyles":{"description":"defines if a panel like look is applied or not","type":"boolean","default":true}}}},{"if":{"properties":{"type":{"enum":["recordfinder"]}}},"then":{"properties":{"list":{"description":"configuration array or reference to a list column definition file, see list columns","$comment":"https://octobercms.com/docs/backend/lists#list-columns","type":["string","array"]},"keyFrom":{"description":"the name of column to use in the relation used for key","type":"string","default":"id"},"nameFrom":{"description":"the column name to use in the relation used for displaying the name","type":"string","default":"name"},"descriptionFrom":{"description":"the column name to use in the relation used for displaying a description","type":"string","default":"description"},"title":{"description":"text to display in the title section of the popup","type":"string"},"prompt":{"description":"text to display when there is no record selected. The %s character represents the search icon","type":"string"},"recordsPerPage":{"description":"records to display per page, use 0 for no pages","type":"integer","default":10},"conditions":{"description":"specifies a raw where query statement to apply to the list model query","type":"string"},"scope":{"description":"specifies a query scope method defined in the related form model to apply to the list query always. The first argument will contain the model that the widget will be attaching its value to, i.e. the parent model.","type":"string"},"searchMode":{"description":"defines the search strategy to either contain all words, any word or exact phrase. Supported options: all, any, exact","type":"string","enum":["all","any","exact"],"default":"all"},"searchScope":{"description":"specifies a query scope method defined in the related form model to apply to the search query, the first argument will contain the search term","type":"string"},"useRelation":{"description":"Flag for using the name of the field as a relation name to interact with directly on the parent model. Disable to return just the selected model's ID","type":"boolean","default":true}}}},{"if":{"properties":{"type":{"enum":["recordfinder"]},"useRelation":{"enum":[false]}}},"then":{"properties":{"modelClass":{"description":"Class of the model to use for listing records when useRelation = false","type":"string"}}}},{"if":{"properties":{"type":{"enum":["relation"]}}},"then":{"properties":{"nameFrom":{"description":"a model attribute name used for displaying the relation label","type":"string","default":"name"},"select":{"description":"a custom SQL select statement to use for the name","type":"string"},"order":{"description":"an order clause to sort options by. Example: name desc","type":"string"},"emptyOption":{"description":"text to display when there is no available selections","type":"string"},"scope":{"description":"specifies a query scope method defined in the related form model to apply to the list query always","type":"string"}}}},{"if":{"properties":{"type":{"enum":["repeater"]}}},"then":{"properties":{"form":{"type":"object","properties":{"fields":{"$ref":"#/definitions/fields"},"tabs":{"description":"Primary tabs","$ref":"#/definitions/tabs"},"secondaryTabs":{"description":"secondary tabs","$ref":"#/definitions/tabs"}}},"prompt":{"description":"text to display for the create button","type":"string","default":"Add new item"},"titleFrom":{"description":"name of field within items to use as the title for the collapsed item","type":"string"},"minItems":{"description":"minimum items required. Pre-displays those items when not using groups. For example if you set 'minItems: 1' the first row will be displayed and not hidden.","type":"integer"},"maxItems":{"description":"maximum number of items to allow within the repeater","type":"integer"},"groups":{"description":"references a group of form fields placing the repeater in group mode. An inline definition can also be used.","anyOf":[{"type":"object","patternProperties":{"^[^\\s]*$":{"description":"Group key","type":"object","required":["fields"],"properties":{"name":{"description":"the name of the group","type":"string"},"description":{"description":"a brief description of the group"},"icon":{"description":"defines an icon for the group, optional","type":"string","pattern":"^icon-"},"fields":{"$ref":"#/definitions/fields"}}}}},{"type":"string"}]}}}},{"if":{"properties":{"type":{"enum":["richeditor"]}}},"then":{"properties":{"toolbarButtons":{"description":"which buttons to show on the editor toolbar. \"|\" will insert a vertical separator line in the toolbar and \"-\" a horizontal one.","type":"string","default":"fullscreen, bold, italic, underline, strikeThrough, subscript, superscript, fontFamily, fontSize, |, color, emoticons, inlineStyle, paragraphStyle, |, paragraphFormat, align, formatOL, formatUL, outdent, indent, quote, insertHR, -, insertLink, insertImage, insertVideo, insertAudio, insertFile, insertTable, undo, redo, clearFormatting, selectAll, html"}}}},{"if":{"properties":{"type":{"enum":["taglist"]}}},"then":{"properties":{"mode":{"description":"controls how the value is returned, either string, array or relation","type":"string","enum":["string","array","relation"],"default":"string"},"separator":{"description":"separate tags with the specified character, either comma or space","type":"string","enum":["comma","space"],"default":"comma"},"customTags":{"description":"allows custom tags to be entered manually by the user","type":"boolean","default":true},"options":{"description":"specifies a method or array for predefined options. Set to true to use model get*Field*Options method. Optional","type":["string","array","boolean"]},"useKey":{"description":"use the key instead of value for saving and reading data","type":"boolean","default":false}}}},{"if":{"properties":{"type":{"enum":["taglist"]},"mode":{"enum":["relation"]}}},"then":{"properties":{"nameFrom":{"description":"if relation mode is used, a model attribute name for displaying the tag name","type":"string","default":"name"}}}}]}}},"tabs":{"$comment":"https://octobercms.com/docs/backend/forms#form-tab-options","description":"","type":"object","required":["fields"],"properties":{"fields":{"$ref":"#/definitions/fields"},"stretch":{"description":"specifies if this tab stretches to fit the parent height","type":"boolean"},"defaultTab":{"description":"the default tab to assign fields to","type":"string"},"icons":{"description":"assign icons to tabs using tab names as the key","type":"object","patternProperties":{".+":{"type":"string","pattern":"^icon-"}}},"lazy":{"description":"array of tabs to be loaded dynamically when clicked","type":"array","items":{"type":"string"}},"cssClass":{"description":"assigns a CSS class to the tab container","type":"string"},"paneCssClass":{"description":"assigns a CSS class to an individual tab pane. Value is an array, key is tab index or label, value is the CSS class. It can also be specified as a string, in which case the value will be applied to all tabs.","type":["object","string"],"patternProperties":{".+":{"description":"key is tab index or label, value is the CSS class","type":"string"}}}}},"datatableColumns":{"type":"object","patternProperties":{"^[^\\s]*$":{"description":"column name","type":"object","properties":{"type":{"description":"defines how this field should be rendered","type":"string","enum":["string","checkbox","dropdown","autocomplete"]},"readOnly":{"description":"whether this column is read-only","type":"boolean","default":false},"title":{"description":"defines the column's title.","type":"string"},"validation":{"type":"object","properties":{"float":{"description":"Validates the data as a float. An optional boolean allowNegative attribute can be provided, allowing for negative float numbers","type":"object","properties":{"allowNegative":{"type":"boolean"},"message":{"type":"string"}}},"integer":{"description":"Validates the data as an integer. An optional boolean allowNegative attribute can be provided, allowing for negative integers.","type":"object","properties":{"allowNegative":{"type":"boolean"},"message":{"type":"string"}}},"length":{"description":"Validates the data to be of a certain length. An integer min and max attribute must be provided, representing the minimum and maximum number of characters that must be entered.","type":"object","properties":{"min":{"type":"integer"},"max":{"type":"integer"},"message":{"type":"string"}}},"regex":{"description":"Validates the data against a regular expression. A string pattern attribute must be provided, defining the regular expression to test the data against.","type":"object","properties":{"pattern":{"type":"string"},"message":{"type":"string"}}},"required":{"description":"Validates that the data must be entered before saving.","type":"object","properties":{"message":{"type":"string"}}}}},"width":{"type":"integer"}},"anyOf":[{"if":{"properties":{"type":{"enum":["dropdown","autocomplete"]}}},"then":{"properties":{"options":{"description":"specifies the AJAX handler that will return the available options, as an array. The array key is used as the value of the option, and the array value is used as the option label.","type":"object","patternProperties":{".+":{"type":"string"}}}}}}]}}}},"properties":{"fields":{"$ref":"#/definitions/fields"},"tabs":{"description":"Primary tabs","$ref":"#/definitions/tabs"},"secondaryTabs":{"description":"secondary tabs","$ref":"#/definitions/tabs"}}}
</schema>

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

JSON schema for OctoberCMS form fields

Model field name

a name when displaying the form field to the user

defines how this field should be rendered

text number password email textarea dropdown radio balloon-selector checkbox checkboxlist switch section partial hint

codeeditor colorpicker datatable datepicker fileupload markdown mediafinder nestedform recordfinder relation repeater richeditor taglist

aligns the form field to one side. The parameter storm allows you to display the form as a Bootstrap grid, using the cssClass property, for example, cssClass: col-xs-4.

specifies a field size for fields that use it, for example, the textarea field

if the field supports a placeholder value

places a descriptive comment below the field

places a comment above the field

allow HTML markup inside the comment

specifies the default value for the field

takes the default value from the value of another field

assigns the field to a tab

assigns a CSS class to the field container

prevents the field from being modified

prevents the field from being modified and excludes it from the saved data

hides the field from the view and excludes it from the saved data

specifies if this field stretches to fit the parent height

specifies what context should be used when displaying the field. Context can also be passed by using an @ symbol in the field name, for example, name@update.

an array of other field names this field depends on, when the other fields are modified, this field will update

specify conditions for this field using trigger events

defines the action applied to this field when the condition is met

defines the other field name that will trigger the action. Normally the field name refers to a field in the same level form. For example, if this field is in a repeater widget, only fields in that same repeater widget will be checked. However, if the field name is preceded by a caret symbol ^ like: ^parent_field, it will refer to a repeater widget or form one level higher than the field itself. Additionally, if more than one caret ^ is used, it will refer that many levels higher: ^^grand_parent_field, ^^^grand_grand_parent_field, etc.

determines the condition the specified field should satisfy for the condition to be considered "true". Supported values: checked, unchecked, value[somevalue]

allows the field value to be initially set by the value of another field, converted using the input preset converter

defines the other field name to source the value from

specifies the conversion type

optional, prefixes the converted value with the value found in the supplied input element using a CSS selector

value can be a string that refers to the field only, the type option will then default to slug

places a red asterisk next to the field label to indicate it is required (make sure to setup validation on the model as this is not enforced by the form controller)

specify custom HTML attributes to add to the form field element

specify custom HTML attributes to add to the form field container

the permissions that the current backend user must have in order for the field to be used. Supports either a string for a single permission or an array of permissions of which only one is needed to grant access.

test

test

test

define options list

define drop-down options

uses a specific method declared in the model's class

define an empty option that can be reselected

define a "one-way" empty option that cannot be reselected

by default the dropdown has a searching feature, allowing quick selection of a value. This can be disabled by setting this option to false

define options

define drop-down options

partial view

code language

shows a gutter with line numbers

breaks long lines on to a new line

the text font size

list of available colors

allows empty input value

allow records to be added to the data table

defines a custom label for the "Add Row Above" button

defines a custom label for the "Add Row Below" button

defines a custom label for the "Delete Row" button

an array representing the column configuration of the data table

allow records to be deleted from the data table

if true, the data table's height will extend or shrink depending on the records added, up to the maximum size defined by the height configuration value

defines a custom field name to use in the POST data sent from the data table. Leave blank to use the default field alias

the data table's height, in pixels. If set to false, the data table will stretch to fit the field container

the data attribute to use for keying each record. This should usually be set to id

defines a custom post-back handler to use when saving the data from the data table

the number of records to show per page. If set to false, the pagination will be disabled

allow records to be searched via a search box

an array representing the toolbar configuration of the data table

the expected result, either date, datetime or time

provide an explicit date display format

the minimum/earliest date that can be selected

the maximum/latest date that can be selected

the first day of the week. Default: 0 (Sunday)

show week numbers at head of row

display datetime exactly as it is stored, ignoring October's and the backend user's specified timezones

the expected file type, either file or image

file extensions that are accepted by the uploader, optional. Eg: zip,txt

MIME types that are accepted by the uploader, either as file extension or fully qualified name, optional. Eg: bin,txt

file size in Mb that are accepted by the uploader, optional. Default: from "upload_max_filesize" param value

allows a title and description to be set for the file

Automatically attaches the uploaded file on upload if the parent record exists instead of using deferred binding to attach on save of the parent record

resize image to this width

resize image to this height

options to pass to the thumbnail generating method for the file

specify how the image should be resized

image quality compression (0 - 100)

specify if the generated image should be interlaced

text to display for the upload button

the expected view mode, either tab or split

text to display when there is no item selected. The %s character represents the media manager icon

text to display when there is no item selected. The %s character represents the media manager icon

preview image to this width

preview image to this height

Primary tabs

secondary tabs

defines if a panel like look is applied or not

configuration array or reference to a list column definition file, see list columns

the name of column to use in the relation used for key

the column name to use in the relation used for displaying the name

the column name to use in the relation used for displaying a description

text to display in the title section of the popup

text to display when there is no record selected. The %s character represents the search icon

records to display per page, use 0 for no pages

specifies a raw where query statement to apply to the list model query

specifies a query scope method defined in the related form model to apply to the list query always. The first argument will contain the model that the widget will be attaching its value to, i.e. the parent model.

defines the search strategy to either contain all words, any word or exact phrase. Supported options: all, any, exact

specifies a query scope method defined in the related form model to apply to the search query, the first argument will contain the search term

Flag for using the name of the field as a relation name to interact with directly on the parent model. Disable to return just the selected model's ID

Class of the model to use for listing records when useRelation = false

a model attribute name used for displaying the relation label

a custom SQL select statement to use for the name

an order clause to sort options by. Example: name desc

text to display when there is no available selections

Primary tabs

secondary tabs

text to display for the create button

name of field within items to use as the title for the collapsed item

minimum items required. Pre-displays those items when not using groups. For example if you set 'minItems: 1' the first row will be displayed and not hidden.

maximum number of items to allow within the repeater

references a group of form fields placing the repeater in group mode. An inline definition can also be used.

Group key

the name of the group

a brief description of the group

defines an icon for the group, optional

which buttons to show on the editor toolbar. "|" will insert a vertical separator line in the toolbar and "-" a horizontal one.

fullscreen, bold, italic, underline, strikeThrough, subscript, superscript, fontFamily, fontSize, |, color, emoticons, inlineStyle, paragraphStyle, |, paragraphFormat, align, formatOL, formatUL, outdent, indent, quote, insertHR, -, insertLink, insertImage, insertVideo, insertAudio, insertFile, insertTable, undo, redo, clearFormatting, selectAll, html

controls how the value is returned, either string, array or relation

separate tags with the specified character, either comma or space

allows custom tags to be entered manually by the user

specifies a method or array for predefined options. Set to true to use model get*Field*Options method. Optional

use the key instead of value for saving and reading data

if relation mode is used, a model attribute name for displaying the tag name

specifies if this tab stretches to fit the parent height

the default tab to assign fields to

assign icons to tabs using tab names as the key

array of tabs to be loaded dynamically when clicked

assigns a CSS class to the tab container

assigns a CSS class to an individual tab pane. Value is an array, key is tab index or label, value is the CSS class. It can also be specified as a string, in which case the value will be applied to all tabs.

key is tab index or label, value is the CSS class

column name

defines how this field should be rendered

whether this column is read-only

defines the column's title.

Validates the data as a float. An optional boolean allowNegative attribute can be provided, allowing for negative float numbers

Validates the data as an integer. An optional boolean allowNegative attribute can be provided, allowing for negative integers.

Validates the data to be of a certain length. An integer min and max attribute must be provided, representing the minimum and maximum number of characters that must be entered.

Validates the data against a regular expression. A string pattern attribute must be provided, defining the regular expression to test the data against.

Validates that the data must be entered before saving.

specifies the AJAX handler that will return the available options, as an array. The array key is used as the value of the option, and the array value is used as the option label.

Primary tabs

secondary tabs

Provide a JSON object that satisfies the schema "JSON schema for OctoberCMS form fields". 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-07/schema","title":"JFrog File Spec","description":"JFrog File Spec schema definition.","additionalProperties":false,"properties":{"files":{"type":"array","items":{"$ref":"#/$file"},"description":"Details of files to be uploaded or downloaded from Artifactory.","minItems":1,"uniqueItems":true,"default":[{"pattern":""}]},"$schema":{"type":"string","description":"The schema to verify this document against."}},"$file":{"additionalProperties":false,"properties":{"ant":{"type":"string","enum":["true","false"],"description":"If true, the command will interpret the patterns which describes the local file-system paths, as ANT patterns.","default":"false"},"aql":{"description":"An AQL query that specified artifacts in Artifactory.","additionalProperties":false,"properties":{"items.find":{}},"default":{"items.find":{"repo":"my-local-repo","path":"my-path","file":"my-file"}}},"pathMapping":{"description":"If specified, determines release-bundle source and target paths for artifacts that had been fetched using aql.","properties":{"input":{"type":"string","description":"The input path for mapping.","examples":["(.*)/old_folder/(.*)"]},"output":{"type":"string","description":"The output path for mapping.","examples":["$1/new_folder/$2"]}}},"archive":{"type":"string","enum":["zip"],"description":"Set to \"zip\" to pack and deploy the files to Artifactory inside a ZIP archive. Currently, the only packaging format supported is zip."},"archiveEntries":{"type":"string","description":"If specified, only archive artifacts containing entries matching this pattern are matched. You can use wildcards to specify multiple artifacts."},"build":{"type":"string","description":"If specified, only artifacts of the specified build are matched. The property format is build-name/build-number. If you do not specify the build number, the artifacts are filtered by the latest build number.","examples":["buildName","buildName/buildNumber"]},"bundle":{"type":"string","description":"If specified, only artifacts of the specified bundle are matched. The value format is bundle-name/bundle-version.","examples":["buildName/bundleVersion"]},"excludeArtifacts":{"type":"string","enum":["true","false"],"description":"If specified, build artifacts are not matched.","default":"false"},"excludeProps":{"type":"string","description":"List of \"key=value\" pairs separated by a semi-colon. Only artifacts without all of the specified properties names and values will be affected.","examples":["key1=value1;key2=value2;key3=value3"]},"exclusions":{"type":"array","description":"An array (enclosed with square brackets) of patterns to be excluded from uploading/downloading.","examples":[["*.sha1","*.md5"]]},"explode":{"type":"string","enum":["true","false"],"description":"If true, archive file is extracted after the operation. The archived file itself is deleted. The supported archive types are: zip, tar; tar.gz; and tgz.","default":"false"},"bypass-archive-inspection":{"type":"string","enum":["true","false"],"description":"If true, bypass the security inspection the archive go through before it is unarchived.","default":"false"},"flat":{"type":"string","enum":["true","false"],"description":"If true, artifacts are uploaded/downloaded to the exact target path specified and their hierarchy in the source file system is ignored.","default":"true"},"includeDeps":{"type":"string","enum":["true","false"],"description":"If specified, also dependencies of the specified build are matched.","default":"true"},"includeDirs":{"type":"string","enum":["true","false"],"description":"If true, the source path applies to bottom-chain directories and not only to files. Bottom-chain directories are either empty or do not include other directories that match the source path.","default":"false"},"limit":{"type":"integer","description":"The maximum number of items to fetch. Usually used with the sortBy option."},"offset":{"type":"integer","description":"The offset from which to fetch items (i.e. how many items should be skipped). Usually used with the 'sort-by' option."},"pattern":{"type":"string","description":"Specifies a local file system path or a path in Artifactory."},"props":{"type":"string","description":"List of \"key=value\" pairs separated by a semi-colon. Only artifacts with all of the specified properties names and values will be affected.","examples":["key1=value1;key2=value2;key3=value3"]},"recursive":{"type":"string","enum":["true","false"],"description":"If true, files are also collected from sub-folders of the source directory.","default":"true"},"regexp":{"type":"string","description":"If true, the command will interpret the patterns which describes the local file-system paths, as regular expressions.","default":"false"},"sortBy":{"type":"array","items":{"type":"string"},"description":"A list of fields to sort by. The fields must be part of the 'items' AQL domain.","examples":["repo","path","name","created","modified","updated","created_by","modified_by","type","depth","original_md5","actual_md5","original_sha1","actual_sha1","sha256","size","virtual_repos"]},"sortOrder":{"type":"string","enum":["asc","desc"],"description":"The order by which fields in the sortBy option should be sorted.","default":"asc"},"symlinks":{"type":"string","description":"If true, the command will preserve the soft links structure in Artifactory. The symlink file representation will contain the symbolic link and checksum properties.","default":"false"},"target":{"type":"string","description":"Specifies a local file system path or a path in Artifactory.","default":"./"},"targetProps":{"type":"string","description":"List of \"key=value\" pairs separated by a semi-colon. The specified properties will be attached to the affected artifacts.","examples":["key1=value1;key2=value2;key3=value3"]},"validateSymlinks":{"type":"string","description":"If true, the command will validate that symlinks are pointing to existing and unchanged files, by comparing their sha1. Applicable to files and not directories.","default":"false"},"include-dirs":{"type":"string","enum":["true","false"],"description":"Set to true if you'd like to also apply the source path pattern for directories and not just for files.","default":"false"},"from-rt":{"type":"string","enum":["true","false"],"description":"If true, search the files in Artifactory, rather than on the local file system. The --regexp option is not supported when --from-rt is set to true.","default":"false"},"gpg-key":{"type":"string","description":"Path to the public GPG key file located on the file system, used to validate downloaded release bundles."},"project":{"type":"string","description":"JFrog project key."}},"anyOf":[{"required":["pattern"]},{"required":["aql"]},{"required":["build"]},{"required":["bundle"]}],"dependencies":{"pattern":{"not":{"required":["aql"]}},"aql":{"not":{"required":["pattern","exclusions","props","targetProps","excludeProps","recursive","regexp","archiveEntries"]}},"pathMapping":{"required":["aql"]},"build":{"not":{"required":["bundle","limit","offset"]}},"bundle":{"not":{"required":["build","limit","offset"]}},"excludeArtifacts":{"required":["build"]},"includeDeps":{"required":["build"]}}}}
</schema>

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

JFrog File Spec

JFrog File Spec schema definition.

Details of files to be uploaded or downloaded from Artifactory.

The schema to verify this document against.

If true, the command will interpret the patterns which describes the local file-system paths, as ANT patterns.

An AQL query that specified artifacts in Artifactory.

If specified, determines release-bundle source and target paths for artifacts that had been fetched using aql.

The input path for mapping.

The output path for mapping.

Set to "zip" to pack and deploy the files to Artifactory inside a ZIP archive. Currently, the only packaging format supported is zip.

If specified, only archive artifacts containing entries matching this pattern are matched. You can use wildcards to specify multiple artifacts.

If specified, only artifacts of the specified build are matched. The property format is build-name/build-number. If you do not specify the build number, the artifacts are filtered by the latest build number.

If specified, only artifacts of the specified bundle are matched. The value format is bundle-name/bundle-version.

If specified, build artifacts are not matched.

List of "key=value" pairs separated by a semi-colon. Only artifacts without all of the specified properties names and values will be affected.

An array (enclosed with square brackets) of patterns to be excluded from uploading/downloading.

If true, archive file is extracted after the operation. The archived file itself is deleted. The supported archive types are: zip, tar; tar.gz; and tgz.

If true, bypass the security inspection the archive go through before it is unarchived.

If true, artifacts are uploaded/downloaded to the exact target path specified and their hierarchy in the source file system is ignored.

If specified, also dependencies of the specified build are matched.

If true, the source path applies to bottom-chain directories and not only to files. Bottom-chain directories are either empty or do not include other directories that match the source path.

The maximum number of items to fetch. Usually used with the sortBy option.

The offset from which to fetch items (i.e. how many items should be skipped). Usually used with the 'sort-by' option.

Specifies a local file system path or a path in Artifactory.

List of "key=value" pairs separated by a semi-colon. Only artifacts with all of the specified properties names and values will be affected.

If true, files are also collected from sub-folders of the source directory.

If true, the command will interpret the patterns which describes the local file-system paths, as regular expressions.

A list of fields to sort by. The fields must be part of the 'items' AQL domain.

The order by which fields in the sortBy option should be sorted.

If true, the command will preserve the soft links structure in Artifactory. The symlink file representation will contain the symbolic link and checksum properties.

List of "key=value" pairs separated by a semi-colon. The specified properties will be attached to the affected artifacts.

If true, the command will validate that symlinks are pointing to existing and unchanged files, by comparing their sha1. Applicable to files and not directories.

Set to true if you'd like to also apply the source path pattern for directories and not just for files.

If true, search the files in Artifactory, rather than on the local file system. The --regexp option is not supported when --from-rt is set to true.

Path to the public GPG key file located on the file system, used to validate downloaded release bundles.

JFrog project key.

pattern exclusions props targetProps excludeProps recursive regexp archiveEntries

Provide a JSON object that satisfies the schema "JFrog File Spec". 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-07/schema#","additionalProperties":false,"definitions":{"DataConnectSingle":{"additionalProperties":false,"properties":{"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"source":{"type":"string"}},"required":["source"],"type":"object"},"DatabaseSingle":{"additionalProperties":false,"properties":{"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"}},"required":["rules"],"type":"object"},"ExtensionsConfig":{"additionalProperties":false,"type":"object"},"FirestoreSingle":{"additionalProperties":false,"properties":{"database":{"type":"string"},"indexes":{"type":"string"},"location":{"type":"string"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"}},"type":"object"},"FrameworksBackendOptions":{"additionalProperties":false,"properties":{"concurrency":{"description":"Number of requests a function can serve at once.","type":"number"},"cors":{"description":"If true, allows CORS on requests to this function.\nIf this is a `string` or `RegExp`, allows requests from domains that match the provided value.\nIf this is an `Array`, allows requests from domains matching at least one entry of the array.\nDefaults to true for {@link https.CallableFunction} and false otherwise.","type":["string","boolean"]},"cpu":{"anyOf":[{"const":"gcf_gen1","type":"string"},{"type":"number"}],"description":"Fractional number of CPUs to allocate to a function."},"enforceAppCheck":{"description":"Determines whether Firebase AppCheck is enforced. Defaults to false.","type":"boolean"},"ingressSettings":{"description":"Ingress settings which control where this function can be called from.","enum":["ALLOW_ALL","ALLOW_INTERNAL_AND_GCLB","ALLOW_INTERNAL_ONLY"],"type":"string"},"invoker":{"const":"public","description":"Invoker to set access control on https functions.","type":"string"},"labels":{"$ref":"#/definitions/Record<string,string>","description":"User labels to set on the function."},"maxInstances":{"description":"Max number of instances to be running in parallel.","type":"number"},"memory":{"description":"Amount of memory to allocate to a function.","enum":["128MiB","16GiB","1GiB","256MiB","2GiB","32GiB","4GiB","512MiB","8GiB"],"type":"string"},"minInstances":{"description":"Min number of actual instances to be running at a given time.","type":"number"},"omit":{"description":"If true, do not deploy or emulate this function.","type":"boolean"},"preserveExternalChanges":{"description":"Controls whether function configuration modified outside of function source is preserved. Defaults to false.","type":"boolean"},"region":{"description":"HTTP functions can override global options and can specify multiple regions to deploy to.","type":"string"},"secrets":{"items":{"type":"string"},"type":"array"},"serviceAccount":{"description":"Specific service account for the function to run as.","type":"string"},"timeoutSeconds":{"description":"Timeout for the function in seconds, possible values are 0 to 540.\nHTTPS functions can specify a higher timeout.","type":"number"},"vpcConnector":{"description":"Connect cloud function to specified VPC connector.","type":"string"},"vpcConnectorEgressSettings":{"description":"Egress settings for VPC connector.","enum":["ALL_TRAFFIC","PRIVATE_RANGES_ONLY"],"type":"string"}},"type":"object"},"FunctionConfig":{"additionalProperties":false,"properties":{"codebase":{"type":"string"},"ignore":{"items":{"type":"string"},"type":"array"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"runtime":{"enum":["nodejs18","nodejs20","nodejs22","python310","python311","python312","python313"],"type":"string"},"source":{"type":"string"}},"type":"object"},"HostingHeaders":{"anyOf":[{"additionalProperties":false,"properties":{"glob":{"type":"string"},"headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":"array"}},"required":["glob","headers"],"type":"object"},{"additionalProperties":false,"properties":{"headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":"array"},"source":{"type":"string"}},"required":["headers","source"],"type":"object"},{"additionalProperties":false,"properties":{"headers":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"type":"array"},"regex":{"type":"string"}},"required":["headers","regex"],"type":"object"}]},"HostingRedirects":{"anyOf":[{"additionalProperties":false,"properties":{"destination":{"type":"string"},"glob":{"type":"string"},"type":{"type":"number"}},"required":["destination","glob"],"type":"object"},{"additionalProperties":false,"properties":{"destination":{"type":"string"},"source":{"type":"string"},"type":{"type":"number"}},"required":["destination","source"],"type":"object"},{"additionalProperties":false,"properties":{"destination":{"type":"string"},"regex":{"type":"string"},"type":{"type":"number"}},"required":["destination","regex"],"type":"object"}]},"HostingRewrites":{"anyOf":[{"additionalProperties":false,"properties":{"destination":{"type":"string"},"glob":{"type":"string"}},"required":["destination","glob"],"type":"object"},{"additionalProperties":false,"properties":{"function":{"type":"string"},"glob":{"type":"string"},"region":{"type":"string"}},"required":["function","glob"],"type":"object"},{"additionalProperties":false,"properties":{"function":{"additionalProperties":false,"properties":{"functionId":{"type":"string"},"pinTag":{"type":"boolean"},"region":{"type":"string"}},"required":["functionId"],"type":"object"},"glob":{"type":"string"}},"required":["function","glob"],"type":"object"},{"additionalProperties":false,"properties":{"glob":{"type":"string"},"run":{"additionalProperties":false,"properties":{"pinTag":{"type":"boolean"},"region":{"type":"string"},"serviceId":{"type":"string"}},"required":["serviceId"],"type":"object"}},"required":["glob","run"],"type":"object"},{"additionalProperties":false,"properties":{"dynamicLinks":{"type":"boolean"},"glob":{"type":"string"}},"required":["dynamicLinks","glob"],"type":"object"},{"additionalProperties":false,"properties":{"destination":{"type":"string"},"source":{"type":"string"}},"required":["destination","source"],"type":"object"},{"additionalProperties":false,"properties":{"function":{"type":"string"},"region":{"type":"string"},"source":{"type":"string"}},"required":["function","source"],"type":"object"},{"additionalProperties":false,"properties":{"function":{"additionalProperties":false,"properties":{"functionId":{"type":"string"},"pinTag":{"type":"boolean"},"region":{"type":"string"}},"required":["functionId"],"type":"object"},"source":{"type":"string"}},"required":["function","source"],"type":"object"},{"additionalProperties":false,"properties":{"run":{"additionalProperties":false,"properties":{"pinTag":{"type":"boolean"},"region":{"type":"string"},"serviceId":{"type":"string"}},"required":["serviceId"],"type":"object"},"source":{"type":"string"}},"required":["run","source"],"type":"object"},{"additionalProperties":false,"properties":{"dynamicLinks":{"type":"boolean"},"source":{"type":"string"}},"required":["dynamicLinks","source"],"type":"object"},{"additionalProperties":false,"properties":{"destination":{"type":"string"},"regex":{"type":"string"}},"required":["destination","regex"],"type":"object"},{"additionalProperties":false,"properties":{"function":{"type":"string"},"regex":{"type":"string"},"region":{"type":"string"}},"required":["function","regex"],"type":"object"},{"additionalProperties":false,"properties":{"function":{"additionalProperties":false,"properties":{"functionId":{"type":"string"},"pinTag":{"type":"boolean"},"region":{"type":"string"}},"required":["functionId"],"type":"object"},"regex":{"type":"string"}},"required":["function","regex"],"type":"object"},{"additionalProperties":false,"properties":{"regex":{"type":"string"},"run":{"additionalProperties":false,"properties":{"pinTag":{"type":"boolean"},"region":{"type":"string"},"serviceId":{"type":"string"}},"required":["serviceId"],"type":"object"}},"required":["regex","run"],"type":"object"},{"additionalProperties":false,"properties":{"dynamicLinks":{"type":"boolean"},"regex":{"type":"string"}},"required":["dynamicLinks","regex"],"type":"object"}]},"HostingSingle":{"additionalProperties":false,"properties":{"appAssociation":{"enum":["AUTO","NONE"],"type":"string"},"cleanUrls":{"type":"boolean"},"frameworksBackend":{"$ref":"#/definitions/FrameworksBackendOptions"},"headers":{"items":{"$ref":"#/definitions/HostingHeaders"},"type":"array"},"i18n":{"additionalProperties":false,"properties":{"root":{"type":"string"}},"required":["root"],"type":"object"},"ignore":{"items":{"type":"string"},"type":"array"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"public":{"type":"string"},"redirects":{"items":{"$ref":"#/definitions/HostingRedirects"},"type":"array"},"rewrites":{"items":{"$ref":"#/definitions/HostingRewrites"},"type":"array"},"site":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"},"trailingSlash":{"type":"boolean"}},"type":"object"},"Record<string,string>":{"additionalProperties":false,"type":"object"},"RemoteConfigConfig":{"additionalProperties":false,"properties":{"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"template":{"type":"string"}},"required":["template"],"type":"object"},"StorageSingle":{"additionalProperties":false,"properties":{"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"},"target":{"type":"string"}},"required":["rules"],"type":"object"}},"properties":{"$schema":{"format":"uri","type":"string"},"apphosting":{"anyOf":[{"additionalProperties":false,"properties":{"alwaysDeployFromSource":{"type":"boolean"},"backendId":{"type":"string"},"ignore":{"items":{"type":"string"},"type":"array"},"rootDir":{"type":"string"}},"required":["backendId","ignore","rootDir"],"type":"object"},{"items":{"additionalProperties":false,"properties":{"alwaysDeployFromSource":{"type":"boolean"},"backendId":{"type":"string"},"ignore":{"items":{"type":"string"},"type":"array"},"rootDir":{"type":"string"}},"required":["backendId","ignore","rootDir"],"type":"object"},"type":"array"}]},"database":{"anyOf":[{"$ref":"#/definitions/DatabaseSingle"},{"items":{"anyOf":[{"additionalProperties":false,"properties":{"instance":{"type":"string"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"},"target":{"type":"string"}},"required":["instance","rules"],"type":"object"},{"additionalProperties":false,"properties":{"instance":{"type":"string"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"},"target":{"type":"string"}},"required":["rules","target"],"type":"object"}]},"type":"array"}]},"dataconnect":{"anyOf":[{"$ref":"#/definitions/DataConnectSingle"},{"items":{"$ref":"#/definitions/DataConnectSingle"},"type":"array"}]},"emulators":{"additionalProperties":false,"properties":{"apphosting":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"},"rootDirectory":{"type":"string"},"startCommand":{"type":"string"},"startCommandOverride":{"type":"string"}},"type":"object"},"auth":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"database":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"dataconnect":{"additionalProperties":false,"properties":{"dataDir":{"type":"string"},"host":{"type":"string"},"port":{"type":"number"},"postgresHost":{"type":"string"},"postgresPort":{"type":"number"}},"type":"object"},"eventarc":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"extensions":{"properties":{},"type":"object"},"firestore":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"},"websocketPort":{"type":"number"}},"type":"object"},"functions":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"hosting":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"hub":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"logging":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"pubsub":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"singleProjectMode":{"type":"boolean"},"storage":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"tasks":{"additionalProperties":false,"properties":{"host":{"type":"string"},"port":{"type":"number"}},"type":"object"},"ui":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"number"}},"type":"object"}},"type":"object"},"extensions":{"$ref":"#/definitions/ExtensionsConfig"},"firestore":{"anyOf":[{"$ref":"#/definitions/FirestoreSingle"},{"items":{"anyOf":[{"additionalProperties":false,"properties":{"database":{"type":"string"},"indexes":{"type":"string"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"},"target":{"type":"string"}},"required":["target"],"type":"object"},{"additionalProperties":false,"properties":{"database":{"type":"string"},"indexes":{"type":"string"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"},"target":{"type":"string"}},"required":["database"],"type":"object"}]},"type":"array"}]},"functions":{"anyOf":[{"$ref":"#/definitions/FunctionConfig"},{"items":{"$ref":"#/definitions/FunctionConfig"},"type":"array"}]},"hosting":{"anyOf":[{"$ref":"#/definitions/HostingSingle"},{"items":{"anyOf":[{"additionalProperties":false,"properties":{"appAssociation":{"enum":["AUTO","NONE"],"type":"string"},"cleanUrls":{"type":"boolean"},"frameworksBackend":{"$ref":"#/definitions/FrameworksBackendOptions"},"headers":{"items":{"$ref":"#/definitions/HostingHeaders"},"type":"array"},"i18n":{"additionalProperties":false,"properties":{"root":{"type":"string"}},"required":["root"],"type":"object"},"ignore":{"items":{"type":"string"},"type":"array"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"public":{"type":"string"},"redirects":{"items":{"$ref":"#/definitions/HostingRedirects"},"type":"array"},"rewrites":{"items":{"$ref":"#/definitions/HostingRewrites"},"type":"array"},"site":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"},"trailingSlash":{"type":"boolean"}},"required":["target"],"type":"object"},{"additionalProperties":false,"properties":{"appAssociation":{"enum":["AUTO","NONE"],"type":"string"},"cleanUrls":{"type":"boolean"},"frameworksBackend":{"$ref":"#/definitions/FrameworksBackendOptions"},"headers":{"items":{"$ref":"#/definitions/HostingHeaders"},"type":"array"},"i18n":{"additionalProperties":false,"properties":{"root":{"type":"string"}},"required":["root"],"type":"object"},"ignore":{"items":{"type":"string"},"type":"array"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"public":{"type":"string"},"redirects":{"items":{"$ref":"#/definitions/HostingRedirects"},"type":"array"},"rewrites":{"items":{"$ref":"#/definitions/HostingRewrites"},"type":"array"},"site":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"},"trailingSlash":{"type":"boolean"}},"required":["site"],"type":"object"}]},"type":"array"}]},"remoteconfig":{"$ref":"#/definitions/RemoteConfigConfig"},"storage":{"anyOf":[{"$ref":"#/definitions/StorageSingle"},{"items":{"additionalProperties":false,"properties":{"bucket":{"type":"string"},"postdeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"predeploy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"}]},"rules":{"type":"string"},"target":{"type":"string"}},"required":["bucket","rules"],"type":"object"},"type":"array"}]}},"type":"object"}
</schema>

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

Number of requests a function can serve at once.

If true, allows CORS on requests to this function.
If this is a `string` or `RegExp`, allows requests from domains that match the provided value.
If this is an `Array`, allows requests from domains matching at least one entry of the array.
Defaults to true for {@link https.CallableFunction} and false otherwise.

Fractional number of CPUs to allocate to a function.

Determines whether Firebase AppCheck is enforced. Defaults to false.

Ingress settings which control where this function can be called from.

Invoker to set access control on https functions.

User labels to set on the function.

Max number of instances to be running in parallel.

Amount of memory to allocate to a function.

Min number of actual instances to be running at a given time.

If true, do not deploy or emulate this function.

Controls whether function configuration modified outside of function source is preserved. Defaults to false.

HTTP functions can override global options and can specify multiple regions to deploy to.

Specific service account for the function to run as.

Timeout for the function in seconds, possible values are 0 to 540.
HTTPS functions can specify a higher timeout.

Connect cloud function to specified VPC connector.

Egress settings for VPC connector.

Provide a JSON object that satisfies the schema "firebase-config". 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-07/schema#","$id":"https://json.schemastore.org/first-timers.json","$comment":"https://github.com/hoodiehq/first-timers-bot","additionalProperties":false,"description":"A bot that helps onboarding new open-source contributors.","properties":{"labels":{"title":"Labels","description":"Sets the labels if \"first-timers-only\" is not what you are looking for.","type":"array","items":{"title":"Label","type":"string"}},"template":{"title":"Template","description":"The path to your template, relative from the repository root.","type":"string"},"repository":{"title":"Repository","description":"Specify a different repository than where the problem is. The bot must be installed on the configured repository.","type":"string"}},"title":"first-timers-bot","type":"object"}
</schema>

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

A bot that helps onboarding new open-source contributors.

Labels

Sets the labels if "first-timers-only" is not what you are looking for.

Label

Template

The path to your template, relative from the repository root.

Repository

Specify a different repository than where the problem is. The bot must be installed on the configured repository.

first-timers-bot

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