[User] Provide a JSON object that satisfies the schema "Service Definition Versions [v1, v2, v2.1, v2.2, v3]". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Provide a JSON object that satisfies the schema "Service Definition Versions [v1, v2, v2.1, v2.2, v3]". 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#","id":"https://json.schemastore.org/servicehub.config.schema.json","properties":{"controller":{"type":"object","description":"Specifies the location of the controller executable and activation parameters.","required":["executable"],"properties":{"contextEnvironmentVariables":{"type":"array","description":"Array of environment variable names. These variables are mixed-up into hash that determines the location service pipe name. The order is significant.","items":{"type":"string"},"uniqueItems":true},"executable":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"additionalEnvironmentVariables":{"type":"object","description":"An object with properties like \"environment variable name\": \"value\" that describes what environment variables to set for the Hub Controller.","additionalProperties":false,"patternProperties":{"^[A-Za-z0-9_/\\.]+$":{"type":"string","description":"The value of the environment variable to set."}}}},"hosts":{"type":"object","required":["rootDir"],"properties":{"rootDir":{"type":"string","description":"The path to the directory immediately under which are folders that contain *.servicehub.host.json files."}}},"services":{"type":"object","required":["rootDir"],"properties":{"rootDir":{"type":"string","description":"The path to the directory immediately under which are folders that contain *.servicehub.service.json files."},"discoveryServices":{"description":"Service names of optional discovery service modules. Controller will use them to locate a service which it cannot find in the services folder.","type":"array","items":{"type":"string"}}}}}},"required":["controller","hosts","services"],"title":"Microsoft ServiceHub Configuration","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Microsoft ServiceHub Configuration". Here are the required top‑level fields: controller, hosts, services. Return only the valid JSON object.

Specifies the location of the controller executable and activation parameters.

Array of environment variable names. These variables are mixed-up into hash that determines the location service pipe name. The order is significant.

An object with properties like "environment variable name": "value" that describes what environment variables to set for the Hub Controller.

The value of the environment variable to set.

The path to the directory immediately under which are folders that contain *.servicehub.host.json files.

The path to the directory immediately under which are folders that contain *.servicehub.service.json files.

Service names of optional discovery service modules. Controller will use them to locate a service which it cannot find in the services folder.

Microsoft ServiceHub Configuration

Provide a JSON object that satisfies the schema "Microsoft ServiceHub Configuration". Here are the required top‑level fields: controller, hosts, services. 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#","id":"https://json.schemastore.org/servicehub.service.schema.json","properties":{"host":{"type":"string","description":"The name of the host that should activate the service."},"hostId":{"type":"string","pattern":"^[^ ]*$","description":"A non-empty value will cause this service to be activated on a dedicated host with this ID. All services with the same host / hostId combination will run in the same host process such that they may share global data. If unspecified or empty, a service will share its host process with other services that require the same host and also leave this field empty. If specified, the value must not have spaces in it."},"hostGroupAllowed":{"type":"boolean","description":"A value of 'true' will allow a client to specify a host group when requesting this service."},"entryPoint":{"type":"object","description":"Host-specific parameters that describe how to activate this service.","oneOf":[{"type":"object","required":["assemblyPath","fullClassName"],"properties":{"assemblyPath":{"type":"string","description":"The path to the assembly that carries the service entrypoint class, relative to this file."},"fullClassName":{"type":"string","description":"The full name of the class to instantiate (that accepts a Stream in its constructor) when a new client requests this service."},"appBasePath":{"type":"string","description":"The path that the AppDomain hosting the service should be configured to consider the ApplicationBase, relative to this file."},"configPath":{"type":"string","description":"The config file used to initialize the service's AppDomain. It may be omitted if the config file has the same name (+.config) as the service assembly, and resides in the same directory. It is also possible to have the service without the config file."}},"additionalProperties":false},{"type":"object","required":["scriptPath","constructorFunction"],"properties":{"scriptPath":{"type":"string","description":"The path to the .js file to 'require', relative to this file."},"constructorFunction":{"type":"string","description":"The name of the constructor function to use (that accepts a stream) when a new client requests this service."}},"additionalProperties":false}]},"versionRange":{"type":"string","description":"Defines the version of the service."}},"required":["host","entryPoint"],"title":"Microsoft ServiceHub Service","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Microsoft ServiceHub Service". Here are the required top‑level fields: host, entryPoint. Return only the valid JSON object.

The name of the host that should activate the service.

A non-empty value will cause this service to be activated on a dedicated host with this ID. All services with the same host / hostId combination will run in the same host process such that they may share global data. If unspecified or empty, a service will share its host process with other services that require the same host and also leave this field empty. If specified, the value must not have spaces in it.

A value of 'true' will allow a client to specify a host group when requesting this service.

Host-specific parameters that describe how to activate this service.

The path to the assembly that carries the service entrypoint class, relative to this file.

The full name of the class to instantiate (that accepts a Stream in its constructor) when a new client requests this service.

The path that the AppDomain hosting the service should be configured to consider the ApplicationBase, relative to this file.

The config file used to initialize the service's AppDomain. It may be omitted if the config file has the same name (+.config) as the service assembly, and resides in the same directory. It is also possible to have the service without the config file.

The path to the .js file to 'require', relative to this file.

The name of the constructor function to use (that accepts a stream) when a new client requests this service.

Defines the version of the service.

Microsoft ServiceHub Service

Provide a JSON object that satisfies the schema "Microsoft ServiceHub Service". Here are the required top‑level fields: host, entryPoint. 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#","id":"https://json.schemastore.org/settings.job.json","minProperties":1,"properties":{"stopping_wait_time":{"type":"integer","description":"The graceful shutdown period for an Azure Webjob. The time specified in seconds."},"is_singleton":{"description":"Specify if the Webjob should be treated as a singleton. If true, the Webjob will not scale on multiple Azure Website instances like the web application itself.","type":"boolean"}},"title":"JSON schema for Azure Webjob settings.job files","type":"object"}
</schema>

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

The graceful shutdown period for an Azure Webjob. The time specified in seconds.

Specify if the Webjob should be treated as a singleton. If true, the Webjob will not scale on multiple Azure Website instances like the web application itself.

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


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"https://json.schemastore.org/metaschema-draft-07-unofficial-strict.json","definitions":{"color":{"oneOf":[{"type":"string","examples":["red","green","yellow","blue","magenta","cyan","bold","underlined","red_bold","green_bold","yellow_bold","blue_bold","magenta_bold","cyan_bold","red_underlined","green_underlined","yellow_underlined","blue_underlined","magenta_underlined","cyan_underlined"]},{"type":"null"}]}},"title":"settings","description":"Settings of the current application\nhttps://bashly.dev/usage/settings/#settings","type":"object","properties":{"source_dir":{"title":"source dir","description":"The path containing the bashly source files\nhttps://bashly.dev/usage/settings/#source_dir","type":"string","minLength":1,"default":"src"},"config_path":{"title":"config path","description":"The path to bashly.yml\nhttps://bashly.dev/usage/settings/#config_path","type":"string","minLength":1,"default":"%{source_dir}/bashly.yml"},"target_dir":{"title":"target dir","description":"The path to use for creating the bash script\nhttps://bashly.dev/usage/settings/#target_dir","type":"string","minLength":1,"default":"."},"lib_dir":{"title":"lib dir","description":"The path to use for common library files, relative to source_dir\nhttps://bashly.dev/usage/settings/#lib_dir","type":"string","minLength":1,"default":"lib"},"commands_dir":{"title":"commands dir","description":"The path to use for command files, relative to source_dir\nhttps://bashly.dev/usage/settings/#commands_dir","oneOf":[{"type":"string","minLength":1},{"type":"null"}]},"strict":{"title":"strict","description":"Configure the bash options that will be added to the initialize function\nhttps://bashly.dev/usage/settings/#strict","oneOf":[{"type":"boolean"},{"type":"string","examples":["set -o pipefail"]}],"default":false},"tab_indent":{"title":"tab indent","description":"Whether to use tabs or spaces in the generated script\nhttps://bashly.dev/usage/settings/#tab_indent","type":"boolean","default":false},"compact_short_flags":{"title":"compact short flags","description":"Whether to expand -abc to -a -b -c in the input line\nhttps://bashly.dev/usage/settings/#compact_short_flags","type":"boolean","default":true},"conjoined_flag_args":{"title":"conjoined flag args","description":"Whether to expand --flag=value to --flag value in the input line\nhttps://bashly.dev/usage/settings/#conjoined_flag_args","type":"boolean","default":true},"show_examples_on_error":{"title":"show examples on error","description":"Whether to show command examples when the input line is missing required arguments\nhttps://bashly.dev/usage/settings/#show_examples_on_error","type":"boolean","default":true},"env":{"title":"env","description":"Whether to include development related comments in the generated script\nhttps://bashly.dev/usage/settings/#env","type":"string","enum":["development","production"],"default":"development"},"enable_header_comment":{"title":"enable_header_comment","description":"Whether to include the header comment in the generated script\nhttps://bashly.dev/usage/settings/#enable_header_comment","type":"string","enum":["development","production","always","never"],"default":"always"},"enable_bash3_bouncer":{"title":"enable_bash3_bouncer","description":"Whether to include the code snippet that aborts when an old version of bash is detected in the generated script\nhttps://bashly.dev/usage/settings/#enable_bash3_bouncer","type":"string","enum":["development","production","always","never"],"default":"always"},"enable_view_markers":{"title":"enable_view_markers","description":"Whether to include view marker comments in the generated script\nhttps://bashly.dev/usage/settings/#enable_view_markers","type":"string","enum":["development","production","always","never"],"default":"development"},"enable_inspect_args":{"title":"enable_inspect_args","description":"Whether to include the inspect_args function in the generated script\nhttps://bashly.dev/usage/settings/#enable_inspect_args","type":"string","enum":["development","production","always","never"],"default":"development"},"enable_deps_array":{"title":"enable_deps_array","description":"Whether to include the code for the dependencies array in the generated script\nhttps://bashly.dev/usage/settings/#enable_deps_array","type":"string","enum":["development","production","always","never"],"default":"always"},"enable_env_var_names_array":{"title":"enable_env_var_names_array","description":"Whether to include the code for the env_var_names array in the generated script\nhttps://bashly.dev/usage/settings/#enable_env_var_names_array","type":"string","enum":["development","production","always","never"],"default":"always"},"enable_sourcing":{"title":"enable_sourcing","description":"Whether to wrap the script execution in a condition that checks if the script is sourced\nhttps://bashly.dev/usage/settings/#enable_sourcing","type":"string","enum":["development","production","always","never"],"default":"development"},"partials_extension":{"title":"partials extension","description":"The extension to use when reading/writing partial script snippets\nhttps://bashly.dev/usage/settings/#partials_extension","type":"string","minLength":1,"default":"sh"},"private_reveal_key":{"title":"private reveal key","description":"The name of the environment variable (case sensitive) that, if set, will reveal private commands, flags and environment variables\nhttps://bashly.dev/usage/settings/#private_reveal_key","oneOf":[{"type":"string","minLength":1},{"type":"null"}]},"usage_colors":{"title":"usage colors","description":"Enable and configure colorful output for --help\nhttps://bashly.dev/usage/settings/#usage_colors","type":"object","properties":{"caption":{"title":"caption","description":"Color for captions\nhttps://bashly.dev/usage/settings/#usage_colors","$ref":"#/definitions/color"},"command":{"title":"command","description":"Color for commands\nhttps://bashly.dev/usage/settings/#usage_colors","$ref":"#/definitions/color"},"arg":{"title":"arg","description":"Color for positional arguments\nhttps://bashly.dev/usage/settings/#usage_colors","$ref":"#/definitions/color"},"flag":{"title":"flag","description":"Color for flags\nhttps://bashly.dev/usage/settings/#usage_colors","$ref":"#/definitions/color"},"environment_variable":{"title":"environment variable","description":"Color for env environment variables\nhttps://bashly.dev/usage/settings/#usage_colors","$ref":"#/definitions/color"}},"additionalProperties":false},"var_aliases":{"title":"var_aliases","description":"Declare alias names for bashly's public global arrays\nhttps://bashly.dev/usage/settings/#var_aliases","type":"object","properties":{"args":{"title":"args","description":"Alias name for the args array\nhttps://bashly.dev/usage/settings/#var_aliases","oneOf":[{"type":"string","minLength":1},{"type":"null"}]},"other_args":{"title":"other_args","description":"Alias name for the other_args array (used when catch_all is enabled)\nhttps://bashly.dev/usage/settings/#var_aliases","oneOf":[{"type":"string","minLength":1},{"type":"null"}]},"deps":{"title":"deps","description":"Alias name for the deps array\nhttps://bashly.dev/usage/settings/#var_aliases","oneOf":[{"type":"string","minLength":1},{"type":"null"}]},"env_var_names":{"title":"env_var_names","description":"Alias name for the env_var_names array\nhttps://bashly.dev/usage/settings/#var_aliases","oneOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false},"function_names":{"title":"function_names","description":"Choose different names for some of the internal functions.\nhttps://bashly.dev/usage/settings/#function_names","type":"object","properties":{"run":{"title":"run","description":"Name for the run() function\nhttps://bashly.dev/usage/settings/#function_names","oneOf":[{"type":"string","minLength":1},{"type":"null"}]},"initialize":{"title":"initialize","description":"Name for the initialize() function\nhttps://bashly.dev/usage/settings/#function_names","oneOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false}},"additionalProperties":false}
</schema>

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

settings

Settings of the current application
https://bashly.dev/usage/settings/#settings

source dir

The path containing the bashly source files
https://bashly.dev/usage/settings/#source_dir

config path

The path to bashly.yml
https://bashly.dev/usage/settings/#config_path

target dir

The path to use for creating the bash script
https://bashly.dev/usage/settings/#target_dir

lib dir

The path to use for common library files, relative to source_dir
https://bashly.dev/usage/settings/#lib_dir

commands dir

The path to use for command files, relative to source_dir
https://bashly.dev/usage/settings/#commands_dir

strict

Configure the bash options that will be added to the initialize function
https://bashly.dev/usage/settings/#strict

tab indent

Whether to use tabs or spaces in the generated script
https://bashly.dev/usage/settings/#tab_indent

compact short flags

Whether to expand -abc to -a -b -c in the input line
https://bashly.dev/usage/settings/#compact_short_flags

conjoined flag args

Whether to expand --flag=value to --flag value in the input line
https://bashly.dev/usage/settings/#conjoined_flag_args

show examples on error

Whether to show command examples when the input line is missing required arguments
https://bashly.dev/usage/settings/#show_examples_on_error

env

Whether to include development related comments in the generated script
https://bashly.dev/usage/settings/#env

enable_header_comment

Whether to include the header comment in the generated script
https://bashly.dev/usage/settings/#enable_header_comment

enable_bash3_bouncer

Whether to include the code snippet that aborts when an old version of bash is detected in the generated script
https://bashly.dev/usage/settings/#enable_bash3_bouncer

enable_view_markers

Whether to include view marker comments in the generated script
https://bashly.dev/usage/settings/#enable_view_markers

enable_inspect_args

Whether to include the inspect_args function in the generated script
https://bashly.dev/usage/settings/#enable_inspect_args

enable_deps_array

Whether to include the code for the dependencies array in the generated script
https://bashly.dev/usage/settings/#enable_deps_array

enable_env_var_names_array

Whether to include the code for the env_var_names array in the generated script
https://bashly.dev/usage/settings/#enable_env_var_names_array

enable_sourcing

Whether to wrap the script execution in a condition that checks if the script is sourced
https://bashly.dev/usage/settings/#enable_sourcing

partials extension

The extension to use when reading/writing partial script snippets
https://bashly.dev/usage/settings/#partials_extension

private reveal key

The name of the environment variable (case sensitive) that, if set, will reveal private commands, flags and environment variables
https://bashly.dev/usage/settings/#private_reveal_key

usage colors

Enable and configure colorful output for --help
https://bashly.dev/usage/settings/#usage_colors

caption

Color for captions
https://bashly.dev/usage/settings/#usage_colors

command

Color for commands
https://bashly.dev/usage/settings/#usage_colors

arg

Color for positional arguments
https://bashly.dev/usage/settings/#usage_colors

flag

Color for flags
https://bashly.dev/usage/settings/#usage_colors

environment variable

Color for env environment variables
https://bashly.dev/usage/settings/#usage_colors

var_aliases

Declare alias names for bashly's public global arrays
https://bashly.dev/usage/settings/#var_aliases

args

Alias name for the args array
https://bashly.dev/usage/settings/#var_aliases

other_args

Alias name for the other_args array (used when catch_all is enabled)
https://bashly.dev/usage/settings/#var_aliases

deps

Alias name for the deps array
https://bashly.dev/usage/settings/#var_aliases

env_var_names

Alias name for the env_var_names array
https://bashly.dev/usage/settings/#var_aliases

function_names

Choose different names for some of the internal functions.
https://bashly.dev/usage/settings/#function_names

run

Name for the run() function
https://bashly.dev/usage/settings/#function_names

initialize

Name for the initialize() function
https://bashly.dev/usage/settings/#function_names

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