[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 the https://cypress.io Test Runner's configuration file. Details at https://on.cypress.io/configuration","$schema":"http://json-schema.org/draft-04/schema#","type":"object","definitions":{"cypressConfig":{"properties":{"baseUrl":{"type":"string","default":null,"description":"Url used as prefix for cy.visit() or cy.request() command\u2019s url. Example http://localhost:3030 or https://test.my-domain.com"},"env":{"type":"object","description":"Any values to be set as environment variables. See https://on.cypress.io/environment-variables","body":{}},"ignoreTestFiles":{"type":["string","array"],"items":{"type":"string"},"description":"A String or Array of glob patterns used to ignore test files that would otherwise be shown in your list of tests. Cypress uses minimatch with the options: {dot: true, matchBase: true}. We suggest using http://globtester.com to test what files would match."},"numTestsKeptInMemory":{"type":"number","default":50,"description":"The number of tests for which snapshots and command data are kept in memory. Reduce this number if you are experiencing high memory consumption in your browser during a test run."},"port":{"type":"number","default":null,"description":"Port used to host Cypress. Normally this is a randomly generated port"},"reporter":{"type":"string","default":"spec","description":"The reporter used when running headlessly or in CI. See https://on.cypress.io/reporters"},"reporterOptions":{"type":"object","default":null,"description":"The reporter options used. Supported options depend on the reporter. See https://on.cypress.io/reporters#Reporter-Options"},"slowTestThreshold":{"type":"number","default":10000,"description":"Slow test threshold in milliseconds. Only affects the visual output of some reporters. For example, the spec reporter will display the test time in yellow if over the threshold. See https://on.cypress.io/configuration#Timeouts"},"testFiles":{"type":["string","array"],"default":"**/*.*","description":"A String or Array of string glob patterns of the test files to load. See https://on.cypress.io/configuration#Global"},"watchForFileChanges":{"type":"boolean","default":true,"description":"Whether Cypress will watch and restart tests on test file changes"},"defaultCommandTimeout":{"type":"number","default":4000,"description":"Time, in milliseconds, to wait until most DOM based commands are considered timed out"},"execTimeout":{"type":"number","default":60000,"description":"Time, in milliseconds, to wait for a system command to finish executing during a cy.exec() command"},"taskTimeout":{"type":"number","default":60000,"description":"Time, in milliseconds, to wait for a task to finish executing during a cy.task() command"},"pageLoadTimeout":{"type":"number","default":60000,"description":"Time, in milliseconds, to wait for page transition events or cy.visit(), cy.go(), cy.reload() commands to fire their page load events. Network requests are limited by the underlying operating system, and may still time out if this value is increased."},"requestTimeout":{"type":"number","default":5000,"description":"Time, in milliseconds, to wait for an XHR request to go out in a cy.wait() command"},"responseTimeout":{"type":"number","default":30000,"description":"Time, in milliseconds, to wait until a response in a cy.request(), cy.wait(), cy.fixture(), cy.getCookie(), cy.getCookies(), cy.setCookie(), cy.clearCookie(), cy.clearCookies(), and cy.screenshot() commands"},"fileServerFolder":{"type":"string","default":"root project folder","description":"Path to folder where application files will attempt to be served from"},"fixturesFolder":{"type":["string","boolean"],"default":"cypress/fixtures","description":"Path to folder containing fixture files (Pass false to disable)"},"integrationFolder":{"type":"string","default":"cypress/integration","description":"Path to folder containing integration test files"},"downloadsFolder":{"type":"string","default":"cypress/downloads","description":"Path to folder where files downloaded during a test are saved"},"componentFolder":{"type":["string","boolean"],"default":false,"description":"Path to folder containing component test files (Pass false to disable)"},"pluginsFile":{"type":["string","boolean"],"default":"cypress/plugins/index.js","description":"Path to plugins file. (Pass false to disable)"},"screenshotOnRunFailure":{"type":"boolean","default":true,"description":"Whether Cypress will take a screenshot when a test fails during cypress run"},"screenshotsFolder":{"type":"string","default":"cypress/screenshots","description":"Path to folder where screenshots will be saved from cy.screenshot() command or after a test fails during cypress run"},"supportFile":{"type":["string","boolean"],"default":"cypress/support/index.js","description":"Path to file to load before test files load. This file is compiled and bundled. (Pass false to disable)"},"videosFolder":{"type":"string","default":"cypress/videos","description":"Path to folder where videos will be saved during cypress run"},"trashAssetsBeforeRuns":{"type":"boolean","default":true,"description":"Whether Cypress will trash assets within the screenshotsFolder and videosFolder before tests run with cypress run"},"videoCompression":{"type":["number","boolean"],"default":32,"description":"The quality setting for the video compression, in Constant Rate Factor (CRF). The value can be false to disable compression or a value between 0 and 51, where a lower value results in better quality (at the expense of a higher file size)."},"video":{"type":"boolean","default":true,"description":"Whether Cypress will capture a video of the tests run with cypress run"},"videoUploadOnPasses":{"type":"boolean","default":true,"description":"Whether Cypress will process, compress, and upload videos to the Dashboard even when all tests in a spec file are passing. This only applies when recording your runs to the Dashboard. Turn this off if you\u2019d like to only upload the spec file\u2019s video when there are failing tests."},"chromeWebSecurity":{"type":"boolean","default":true,"description":"Whether Chrome Web Security for same-origin policy and insecure mixed content is enabled. Read more about this at https://on.cypress.io/web-security"},"userAgent":{"type":"string","default":null,"description":"Enables you to override the default user agent the browser sends in all request headers. User agent values are typically used by servers to help identify the operating system, browser, and browser version. See User-Agent MDN Documentation for example user agent values here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent"},"blockHosts":{"type":["string","array"],"items":{"type":"string"},"default":null,"description":"A String or Array of hosts that you wish to block traffic for. Please read the notes for examples on using this https://on.cypress.io/configuration#blockHosts"},"modifyObstructiveCode":{"type":"boolean","default":true,"description":"Whether Cypress will search for and replace obstructive JS code found in .js or .html files that prevent Cypress from working. Please read the notes for more information on this setting. https://on.cypress.io/configuration#modifyObstructiveCode"},"viewportHeight":{"type":"number","default":660,"description":"Default height in pixels for the application under tests\u2019 viewport (Override with cy.viewport() command)"},"viewportWidth":{"type":"number","default":1000,"description":"Default width in pixels for the application under tests\u2019 viewport. (Override with cy.viewport() command)"},"animationDistanceThreshold":{"type":"number","default":5,"description":"The distance in pixels an element must exceed over time to be considered animating"},"waitForAnimations":{"type":"boolean","default":true,"description":"Whether to wait for elements to finish animating before executing commands"},"scrollBehavior":{"enum":[false,"center","top","bottom","nearest"],"default":"top","description":"Viewport position to which an element should be scrolled prior to action commands. Setting `false` disables scrolling."},"projectId":{"type":"string","default":null,"description":"A 6 character string use to identify this project in the Cypress Dashboard. See https://on.cypress.io/dashboard-service#Identification"},"nodeVersion":{"enum":["system","bundled"],"default":"system","description":"DEPRECATED: If set to 'bundled', Cypress will use the Node version bundled with Cypress. Otherwise, Cypress will use the Node version that was used to launch the Cypress. This Node version is used when executing your plugins file and building spec files."},"experimentalInteractiveRunEvents":{"type":"boolean","default":false,"description":"Allows listening to the `before:run`, `after:run`, `before:spec`, and `after:spec` events in the plugins file during interactive mode."},"experimentalSourceRewriting":{"type":"boolean","default":false,"description":"Enables AST-based JS/HTML rewriting. This may fix issues caused by the existing regex-based JS/HTML replacement algorithm."},"experimentalSessionSupport":{"type":"boolean","default":false,"description":"Enable experimental session support. See https://on.cypress.io/session"},"experimentalFetchPolyfill":{"type":"boolean","default":false,"description":"Polyfills `window.fetch` to enable Network spying and stubbing"},"experimentalStudio":{"type":"boolean","default":false,"description":"Generate and save commands directly to your test suite by interacting with your app as an end user would."},"retries":{"type":["object","number","null"],"default":{"runMode":0,"openMode":0},"description":"The number of times to retry a failing. Can be configured to apply only in runMode or openMode"},"includeShadowDom":{"type":"boolean","default":false,"description":"Enables including elements within the shadow DOM when using querying commands (e.g. cy.get(), cy.find()). Can be set globally in cypress.json, per-suite or per-test in the test configuration object, or programmatically with Cypress.config()"},"clientCertificates":{"description":"Defines client certificates to use when sending requests to the specified URLs","type":"array","items":{"type":"object","properties":{"url":{"description":"Requests for URLs matching this minimatch pattern will use the supplied client certificate","type":"string"},"ca":{"description":"Path(s) to CA file(s) to validate certs against, relative to project root","type":"array","items":{"type":"string"}},"certs":{"type":"array","items":{"anyOf":[{"description":"PEM file specific properties","type":"object","properties":{"cert":{"description":"Path to the certificate, relative to project root","type":"string"},"key":{"description":"Path to the private key, relative to project root","type":"string"},"passphrase":{"description":"(Optional) File path to a UTF-8 text file containing the passphrase for the key, relative to project root","type":"string"}},"required":["cert","key"]},{"description":"PFX file specific properties","type":"object","properties":{"pfx":{"description":"Path to the certificate container, relative to project root","type":"string"},"passphrase":{"description":"(Optional) File path to a UTF-8 text file containing the passphrase for the container, relative to project root","type":"string"}},"required":["pfx"]}]}}},"required":["url","certs"]}}}}},"allOf":[{"$ref":"#/definitions/cypressConfig"},{"properties":{"component":{"description":"Any component runner specific overrides","$ref":"#/definitions/cypressConfig"},"e2e":{"description":"Any e2e runner specific overrides","$ref":"#/definitions/cypressConfig"}}}]}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for the https://cypress.io Test Runner's configuration file. Details at https://on.cypress.io/configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Url used as prefix for cy.visit() or cy.request() command’s url. Example http://localhost:3030 or https://test.my-domain.com

Any values to be set as environment variables. See https://on.cypress.io/environment-variables

A String or Array of glob patterns used to ignore test files that would otherwise be shown in your list of tests. Cypress uses minimatch with the options: {dot: true, matchBase: true}. We suggest using http://globtester.com to test what files would match.

The number of tests for which snapshots and command data are kept in memory. Reduce this number if you are experiencing high memory consumption in your browser during a test run.

Port used to host Cypress. Normally this is a randomly generated port

The reporter used when running headlessly or in CI. See https://on.cypress.io/reporters

The reporter options used. Supported options depend on the reporter. See https://on.cypress.io/reporters#Reporter-Options

Slow test threshold in milliseconds. Only affects the visual output of some reporters. For example, the spec reporter will display the test time in yellow if over the threshold. See https://on.cypress.io/configuration#Timeouts

A String or Array of string glob patterns of the test files to load. See https://on.cypress.io/configuration#Global

Whether Cypress will watch and restart tests on test file changes

Time, in milliseconds, to wait until most DOM based commands are considered timed out

Time, in milliseconds, to wait for a system command to finish executing during a cy.exec() command

Time, in milliseconds, to wait for a task to finish executing during a cy.task() command

Time, in milliseconds, to wait for page transition events or cy.visit(), cy.go(), cy.reload() commands to fire their page load events. Network requests are limited by the underlying operating system, and may still time out if this value is increased.

Time, in milliseconds, to wait for an XHR request to go out in a cy.wait() command

Time, in milliseconds, to wait until a response in a cy.request(), cy.wait(), cy.fixture(), cy.getCookie(), cy.getCookies(), cy.setCookie(), cy.clearCookie(), cy.clearCookies(), and cy.screenshot() commands

Path to folder where application files will attempt to be served from

Path to folder containing fixture files (Pass false to disable)

Path to folder containing integration test files

Path to folder where files downloaded during a test are saved

Path to folder containing component test files (Pass false to disable)

Path to plugins file. (Pass false to disable)

Whether Cypress will take a screenshot when a test fails during cypress run

Path to folder where screenshots will be saved from cy.screenshot() command or after a test fails during cypress run

Path to file to load before test files load. This file is compiled and bundled. (Pass false to disable)

Path to folder where videos will be saved during cypress run

Whether Cypress will trash assets within the screenshotsFolder and videosFolder before tests run with cypress run

The quality setting for the video compression, in Constant Rate Factor (CRF). The value can be false to disable compression or a value between 0 and 51, where a lower value results in better quality (at the expense of a higher file size).

Whether Cypress will capture a video of the tests run with cypress run

Whether Cypress will process, compress, and upload videos to the Dashboard even when all tests in a spec file are passing. This only applies when recording your runs to the Dashboard. Turn this off if you’d like to only upload the spec file’s video when there are failing tests.

Whether Chrome Web Security for same-origin policy and insecure mixed content is enabled. Read more about this at https://on.cypress.io/web-security

Enables you to override the default user agent the browser sends in all request headers. User agent values are typically used by servers to help identify the operating system, browser, and browser version. See User-Agent MDN Documentation for example user agent values here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent

A String or Array of hosts that you wish to block traffic for. Please read the notes for examples on using this https://on.cypress.io/configuration#blockHosts

Whether Cypress will search for and replace obstructive JS code found in .js or .html files that prevent Cypress from working. Please read the notes for more information on this setting. https://on.cypress.io/configuration#modifyObstructiveCode

Default height in pixels for the application under tests’ viewport (Override with cy.viewport() command)

Default width in pixels for the application under tests’ viewport. (Override with cy.viewport() command)

The distance in pixels an element must exceed over time to be considered animating

Whether to wait for elements to finish animating before executing commands

Viewport position to which an element should be scrolled prior to action commands. Setting `false` disables scrolling.

A 6 character string use to identify this project in the Cypress Dashboard. See https://on.cypress.io/dashboard-service#Identification

DEPRECATED: If set to 'bundled', Cypress will use the Node version bundled with Cypress. Otherwise, Cypress will use the Node version that was used to launch the Cypress. This Node version is used when executing your plugins file and building spec files.

Allows listening to the `before:run`, `after:run`, `before:spec`, and `after:spec` events in the plugins file during interactive mode.

Enables AST-based JS/HTML rewriting. This may fix issues caused by the existing regex-based JS/HTML replacement algorithm.

Enable experimental session support. See https://on.cypress.io/session

Polyfills `window.fetch` to enable Network spying and stubbing

Generate and save commands directly to your test suite by interacting with your app as an end user would.

The number of times to retry a failing. Can be configured to apply only in runMode or openMode

Enables including elements within the shadow DOM when using querying commands (e.g. cy.get(), cy.find()). Can be set globally in cypress.json, per-suite or per-test in the test configuration object, or programmatically with Cypress.config()

Defines client certificates to use when sending requests to the specified URLs

Requests for URLs matching this minimatch pattern will use the supplied client certificate

Path(s) to CA file(s) to validate certs against, relative to project root

PEM file specific properties

Path to the certificate, relative to project root

Path to the private key, relative to project root

(Optional) File path to a UTF-8 text file containing the passphrase for the key, relative to project root

PFX file specific properties

Path to the certificate container, relative to project root

(Optional) File path to a UTF-8 text file containing the passphrase for the container, relative to project root

Any component runner specific overrides

Any e2e runner specific overrides

Provide a JSON object that satisfies the schema "JSON schema for the https://cypress.io Test Runner's configuration file. Details at https://on.cypress.io/configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


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

The name of the dart_library target that contains the import

May be null or unreliable and should not be used.

Use List<String> directly, inferred to mean include.

Options to apply to a builder

An arbitrary Map<String, dynamic> of configuration options exposed by the individual builders. See the documentation for the builder you are configuring for guidance.

On which packages the builder is applied by default

Whether the outputs should be stored in a hidden cache or in the source directory.

An identifier for a target

A target key has two parts, a package and a name. They are separated by a colon.

An identifier for a builder

To construct a key, you join the package name and the builder name with a colon.

Configuration for Dart's build system

build.yaml files

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


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/dart-test","$ref":"#/definitions/runnerConfiguration","definitions":{"timeout":{"$comment":"Based on https://github.com/dart-lang/test/blob/3b8d3b90efd24f55f7316cd414716d1cb031761c/pkgs/test_api/lib/src/frontend/timeout.dart#L55-L68","oneOf":[{"enum":["none"],"title":"No timeout","description":"Indicates that tests should never time out."},{"type":"string","title":"Exact timeout","description":"Exact timeout duration for a test.","pattern":"^(?:[^a-df-zA-DF-Z\\s]+(?:[umUM][sS]|[dhmsDHMS])\\s?)+$","examples":["1m","30s","1m 30s"]},{"type":"string","title":"Multiplicative timeout","description":"Timeout is applied as a multiple of the default value (30 seconds)","pattern":"^[^a-df-zA-DF-Z\\s]+[xX]$","examples":["12x","1.5X"]}]},"skip":{"oneOf":[{"type":"boolean","title":"Skip the test if true"},{"type":"string","title":"Reason for skipping the test"}]},"executable":{"type":"string","description":"The executable to run. Can be a plain basename, an absolute path or a relative path on Windows."},"browserAndNodeSettings":{"type":"object","title":"Settings for browsers and Node.js","additionalProperties":false,"properties":{"arguments":{"type":"string","title":"Extra arguments to the executable","description":"The arguments are parsed in the same way as the POSIX shell"},"executable":{"oneOf":[{"$ref":"#/definitions/executable"},{"type":"object","additionalProperties":false,"properties":{"linux":{"$ref":"#/definitions/executable"},"mac_os":{"$ref":"#/definitions/executable"},"windows":{"$ref":"#/definitions/executable"}}}]},"headless":{"type":"boolean","title":"Run the browser in headless mode"}}},"foldStackFrameOptions":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"except":{"type":"array","items":{"type":"string"}}}},{"type":"object","additionalProperties":false,"properties":{"only":{"type":"array","items":{"type":"string"}}}}]},"testConfiguration":{"$comment":"Based on https://github.com/dart-lang/test/blob/master/pkgs/test/doc/configuration.md#test-configuration","type":"object","properties":{"timeout":{"$ref":"#/definitions/timeout"},"verbose_trace":{"type":"boolean","title":"Remove internal stack frames","description":"This field controls whether or not traces caused by errors are trimmed to remove internal stack frames. This includes frames from the Dart core libraries, the stack_trace package, and the test package itself.","default":false},"chain_stack_traces":{"type":"boolean","title":"Whether stack traces are chained","description":"Disabling stack trace chaining will improve performance for heavily async code at the cost of debuggability."},"js_trace":{"type":"boolean","title":"Convert JS traces to Dart traces","description":"Whether or not stack traces caused by errors while running Dart compiled to JS are converted back to Dart style.","default":false},"skip":{"$ref":"#/definitions/skip"},"retry":{"type":"number","description":"This field controls how many times a test is retried upon failure."},"test_on":{"type":"string","examples":["browser && !ie"]},"tags":{"type":"object","additionalProperties":{"$ref":"#/definitions/_testConfigurationInner"}},"add_tags":{"type":"array","description":"Adds additional tags. This is usually used in a tag definition to enable tag inheritance.","items":{"type":"string"}},"on_platform":{"type":"object","additionalProperties":{"$ref":"#/definitions/_testConfigurationInner"}}}},"_testConfigurationInner":{"$comment":"presets and on_os can have different properties when used in a test vs runner configuration. We make runnerConfiguration extend from testConfiguration, so this configuration is used when we're definitely in a non-runner configuration context.","allOf":[{"$ref":"#/definitions/testConfiguration"},{"properties":{"presets":{"type":"object","description":"A preset used in a test configuration can contain test configuration.","additionalProperties":{"$ref":"#/definitions/testConfiguration"}},"on_os":{"type":"object","description":"Applies test options when a specific operating system is used","additionalProperties":{"$ref":"#/definitions/testConfiguration"}}}}]},"runnerConfiguration":{"allOf":[{"$comment":"Runner configurations are a superset of test configurations","$ref":"#/definitions/testConfiguration"},{"properties":{"include":{"type":"string","format":"uri"},"paths":{"type":"array","items":{"type":"string"},"default":["test"]},"filename":{"type":"string","description":"Filename pattern that the test runner uses to find test files in directories."},"names":{"type":"array","description":"Only run tests whose names match the given regular expressions A test's name must match all regular expressions in names in order to be run.","items":{"type":"string"}},"plain_names":{"type":"array","description":"This field causes the runner to only run tests whose names contain the given strings. A test's name must contain all strings in order to be run.","items":{"type":"string"}},"include_tags":{"type":"string","description":"This field causes the runner to only run tests whose tags match the given boolean selector."},"exclude_tags":{"type":"string","description":"This field causes the runner to only run tests whose tags match the given boolean selector. This takes precedence over include_tags"},"platforms":{"description":"The platforms on which tests should be run.","type":"array","items":{"type":"string"},"default":["vm"]},"concurrency":{"type":"integer","description":"The default number of test suites to run in parallel. This defaults to approximately half the number of processors on the current machine. Setting it to 1 will disable concurrency"},"pause_after_load":{"type":"boolean","description":"Indicates that the test runner should pause for debugging after each test suite is loaded but before its tests are executed. This disables concurrency and timeouts."},"run_skipped":{"type":"boolean","description":"Run tests even if they're marked as skipped."},"reporter":{"type":"string","description":"This field indicates the default reporter to use.","examples":["compact","expanded","json"]},"file_reporters":{"type":"object","description":"Specifies additional reporters that will write their output to a file rather than stdout","additionalProperties":{"type":"string"}},"fold_stack_frames":{"$ref":"#/definitions/foldStackFrameOptions"},"custom_html_template_path":{"description":"This field specifies the path of the HTML template to be used for tests run in an HTML environment.","type":"string"},"presets":{"type":"object","additionalProperties":{"$ref":"#/definitions/runnerConfiguration"}},"add_presets":{"type":"array","description":"Commonly used in a preset, it can be used to enable present inheritance by adding the configuration from another preset.","items":{"type":"string"}},"on_os":{"type":"object","description":"Applies test or runner options when a specific operating system is used","additionalProperties":{"$ref":"#/definitions/runnerConfiguration"}},"override_platforms":{"type":"object","additionalProperties":{"type":"object","properties":{"settings":{"$ref":"#/definitions/browserAndNodeSettings"}}}},"define_platforms":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"extends":{"type":"string"},"settings":{"$ref":"#/definitions/browserAndNodeSettings"}}}}}}]}},"description":"Configuration for Dart tests","title":"dart_test.yaml"}
</schema>

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

No timeout

Indicates that tests should never time out.

Exact timeout

Exact timeout duration for a test.

Multiplicative timeout

Timeout is applied as a multiple of the default value (30 seconds)

Skip the test if true

Reason for skipping the test

The executable to run. Can be a plain basename, an absolute path or a relative path on Windows.

Settings for browsers and Node.js

Extra arguments to the executable

The arguments are parsed in the same way as the POSIX shell

Run the browser in headless mode

Remove internal stack frames

This field controls whether or not traces caused by errors are trimmed to remove internal stack frames. This includes frames from the Dart core libraries, the stack_trace package, and the test package itself.

Whether stack traces are chained

Disabling stack trace chaining will improve performance for heavily async code at the cost of debuggability.

Convert JS traces to Dart traces

Whether or not stack traces caused by errors while running Dart compiled to JS are converted back to Dart style.

This field controls how many times a test is retried upon failure.

Adds additional tags. This is usually used in a tag definition to enable tag inheritance.

presets and on_os can have different properties when used in a test vs runner configuration. We make runnerConfiguration extend from testConfiguration, so this configuration is used when we're definitely in a non-runner configuration context.

A preset used in a test configuration can contain test configuration.

Applies test options when a specific operating system is used

Runner configurations are a superset of test configurations

Filename pattern that the test runner uses to find test files in directories.

Only run tests whose names match the given regular expressions A test's name must match all regular expressions in names in order to be run.

This field causes the runner to only run tests whose names contain the given strings. A test's name must contain all strings in order to be run.

This field causes the runner to only run tests whose tags match the given boolean selector. This takes precedence over include_tags

The platforms on which tests should be run.

The default number of test suites to run in parallel. This defaults to approximately half the number of processors on the current machine. Setting it to 1 will disable concurrency

Indicates that the test runner should pause for debugging after each test suite is loaded but before its tests are executed. This disables concurrency and timeouts.

Run tests even if they're marked as skipped.

This field indicates the default reporter to use.

Specifies additional reporters that will write their output to a file rather than stdout

This field specifies the path of the HTML template to be used for tests run in an HTML environment.

Commonly used in a preset, it can be used to enable present inheritance by adding the configuration from another preset.

Applies test or runner options when a specific operating system is used

Configuration for Dart tests

dart_test.yaml

Provide a JSON object that satisfies the schema "dart_test.yaml". 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 Beef Database code-generation (https://github.com/Avanade/Beef).","$schema":"https://json-schema.org/draft-04/schema#","definitions":{"CodeGeneration":{"type":"object","title":"'CodeGeneration' object (database-driven)","description":"The `CodeGeneration` object defines global properties that are used to drive the underlying database-driven code generation.","properties":{"schema":{"type":"string","title":"The name of the `Schema` where the artefacts are defined in, or should be created in, the database.","description":"This is used as the default `Schema` for all child objects."},"replace":{"type":"boolean","title":"Indicates whether the existing database object should be replaced/altered or whether the object is dropped and recreated.","description":"Defaults to `true`."},"columnNameIsDeleted":{"type":"string","title":"The column name for the `IsDeleted` capability.","description":"Defaults to `IsDeleted`."},"columnNameTenantId":{"type":"string","title":"The column name for the `TenantId` capability.","description":"Defaults to `TenantId`."},"columnNameOrgUnitId":{"type":"string","title":"The column name for the `OrgUnitId` capability.","description":"Defaults to `OrgUnitId`."},"columnNameRowVersion":{"type":"string","title":"The column name for the `RowVersion` capability.","description":"Defaults to `RowVersion`."},"columnNameCreatedBy":{"type":"string","title":"The column name for the `CreatedBy` capability.","description":"Defaults to `CreatedBy`."},"columnNameCreatedDate":{"type":"string","title":"The column name for the `CreatedDate` capability.","description":"Defaults to `CreatedDate`."},"columnNameUpdatedBy":{"type":"string","title":"The column name for the `UpdatedBy` capability.","description":"Defaults to `UpdatedBy`."},"columnNameUpdatedDate":{"type":"string","title":"The column name for the `UpdatedDate` capability.","description":"Defaults to `UpdatedDate`."},"columnNameDeletedBy":{"type":"string","title":"The column name for the `DeletedBy` capability.","description":"Defaults to `UpdatedBy`."},"columnNameDeletedDate":{"type":"string","title":"The column name for the `DeletedDate` capability.","description":"Defaults to `UpdatedDate`."},"orgUnitJoinSql":{"type":"string","title":"The SQL table or function that is to be used to join against for security-based `OrgUnitId` verification.","description":"Defaults to `[Sec].[fnGetUserOrgUnits]()`."},"checkUserPermissionSql":{"type":"string","title":"The SQL stored procedure that is to be used for `Permission` verification.","description":"Defaults to `[Sec].[spCheckUserHasPermission]`."},"getUserPermissionSql":{"type":"string","title":"The SQL function that is to be used for `Permission` verification.","description":"Defaults to `[Sec].[fnGetUserHasPermission]`."},"aliasColumns":{"type":"array","title":"The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.","description":"Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`.","items":{"type":"string"}},"autoDotNetRename":{"type":"string","title":"The option to automatically rename the SQL Tables and Columns for use in .NET.","description":"Defaults `SnakeKebabToPascalCase` that will remove any underscores or hyphens separating each word and capitalize the first character of each; e.g. `internal-customer_id` would be renamed as `InternalCustomerId`. The `PascalCase` option will capatilize the first character only.","enum":["None","PascalCase","SnakeKebabToPascalCase"]},"preprocessorDirectives":{"type":"boolean","title":"Indicates whether to use preprocessor directives in the generated output."},"collectionType":{"type":"string","title":"The collection type.","description":"Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `JSON`.","enum":["JSON","UDT"]},"efModel":{"type":"boolean","title":"Indicates whether an `Entity Framework` .NET (C#) model is to be generated for all tables.","description":"This can be overridden within the `Table`(s)."},"outbox":{"type":"boolean","title":"Indicates whether to generate the event outbox SQL and .NET artefacts.","description":"Defaults to `false`."},"outboxSchema":{"type":"string","title":"The schema name of the event outbox table.","description":"Defaults to `Outbox` (literal)."},"outboxSchemaCreate":{"type":"boolean","title":"Indicates whether to create the `OutboxSchema` within the database.","description":"Defaults to `true`."},"outboxTable":{"type":"string","title":"The name of the event outbox table.","description":"Defaults to `EventOutbox` (literal)."},"outboxEnqueueStoredProcedure":{"type":"string","title":"The stored procedure name for the event outbox enqueue.","description":"Defaults to `spEventOutboxEnqueue` (literal)."},"outboxDequeueStoredProcedure":{"type":"string","title":"The stored procedure name for the event outbox dequeue.","description":"Defaults to `spEventOutboxDequeue` (literal)."},"pathBase":{"type":"string","title":"The base path (directory) prefix for the Database-related artefacts; other `Path*` properties append to this value when they are not specifically overridden.","description":"Defaults to `Company` (runtime parameter) + `.` + `AppName` (runtime parameter). For example `Beef.Demo`."},"pathDatabaseSchema":{"type":"string","title":"The path (directory) for the Schema Database-related artefacts.","description":"Defaults to `PathBase` + `.Database/Schema` (literal). For example `Beef.Demo.Database/Schema`."},"pathDatabaseMigrations":{"type":"string","title":"The path (directory) for the Schema Database-related artefacts.","description":"Defaults to `PathBase` + `.Database/Migrations` (literal). For example `Beef.Demo.Database/Migrations`."},"pathBusiness":{"type":"string","title":"The path (directory) for the Business-related (.NET) artefacts.","description":"Defaults to `PathBase` + `.Business` (literal). For example `Beef.Demo.Business`."},"orgUnitImmutable":{"type":"boolean","title":"Indicates whether the `OrgUnitId` column is considered immutable, in that it can not be changed once set.","description":"This is only applicable for stored procedures."},"namespaceBase":{"type":"string","title":"The base Namespace (root) for the .NET artefacts.","description":"Defaults to `Company` (runtime parameter) + `.` + `AppName` (runtime parameter). For example `Beef.Demo`."},"namespaceCommon":{"type":"string","title":"The Namespace (root) for the Common-related .NET artefacts.","description":"Defaults to `NamespaceBase` + `.Common` (literal). For example `Beef.Demo.Common`."},"namespaceBusiness":{"type":"string","title":"The Namespace (root) for the Business-related .NET artefacts.","description":"Defaults to `NamespaceBase` + `.Business` (literal). For example `Beef.Demo.Business`."},"namespaceOutbox":{"type":"string","title":"The Namespace (root) for the Outbox-related Publisher .NET artefacts.","description":"Defaults to `NamespaceBusiness`."},"tables":{"type":"array","title":"The corresponding `Table` collection.","items":{"$ref":"#/definitions/Table"}},"queries":{"type":"array","title":"The corresponding `Query` collection.","items":{"$ref":"#/definitions/Query"}}}},"Table":{"type":"object","title":"'Table' object (entity-driven)","description":"The `Table` object identifies an existing database `Table` (or `View`) and defines its code-generation characteristics.","properties":{"name":{"type":"string","title":"The name of the `Table` in the database."},"schema":{"type":"string","title":"The name of the `Schema` where the `Table` is defined in the database.","description":"Defaults to `CodeGeneration.Schema`."},"alias":{"type":"string","title":"The `Schema.Table` alias name.","description":"Will automatically default where not specified."},"replace":{"type":"boolean","title":"Indicates whether the existing database object should be replaced/altered or whether the object is dropped and recreated.","description":"Defaults to `CodeGeneration.Replace`."},"includeColumns":{"type":"array","title":"The list of `Column` names to be included in the underlying generated output.","description":"Where not specified this indicates that all `Columns` are to be included.","items":{"type":"string"}},"excludeColumns":{"type":"array","title":"The list of `Column` names to be excluded from the underlying generated output.","description":"Where not specified this indicates no `Columns` are to be excluded.","items":{"type":"string"}},"aliasColumns":{"type":"array","title":"The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.","description":"Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`.","items":{"type":"string"}},"jsonAliasColumns":{"type":"array","title":"The list of JSON `Column` and `JsonAlias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.","description":"Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `ProductCode^product`.","items":{"type":"string"}},"get":{"type":"boolean","title":"Indicates whether a `Get` stored procedure is to be automatically generated where not otherwise explicitly specified."},"getAll":{"type":"boolean","title":"Indicates whether a `GetAll` stored procedure is to be automatically generated where not otherwise explicitly specified.","description":"The `GetAllOrderBy` is used to specify the `GetAll` query sort order."},"getAllOrderBy":{"type":"array","title":"The list of `Column` names (including sort order `ASC`/`DESC` literal) to be used as the `GetAll` query sort order.","description":"This relates to the `GetAll` selection.","items":{"type":"string"}},"create":{"type":"boolean","title":"Indicates whether a `Create` stored procedure is to be automatically generated where not otherwise explicitly specified."},"update":{"type":"boolean","title":"Indicates whether a `Update` stored procedure is to be automatically generated where not otherwise explicitly specified."},"upsert":{"type":"boolean","title":"Indicates whether a `Upsert` stored procedure is to be automatically generated where not otherwise explicitly specified."},"delete":{"type":"boolean","title":"Indicates whether a `Delete` stored procedure is to be automatically generated where not otherwise explicitly specified."},"merge":{"type":"boolean","title":"Indicates whether a `Merge` (insert/update/delete of `Udt` list) stored procedure is to be automatically generated where not otherwise explicitly specified.","description":"This will also require a `Udt` (SQL User Defined Table) and `Tvp` (.NET Table-Valued Parameter) to function."},"efModel":{"type":"boolean","title":"Indicates whether an `Entity Framework` .NET (C#) model is to be generated.","description":"Defaults to `CodeGeneration.EfModel`."},"efModelName":{"type":"string","title":"The .NET (C#) EntityFramework (EF) model name.","description":"Defaults to `Name` applying the `CodeGeneration.AutoDotNetRename`."},"udt":{"type":"boolean","title":"Indicates whether a `User Defined Table (UDT)` type should be created."},"udtExcludeColumns":{"type":"array","title":"The list of `Column` names to be excluded from the `User Defined Table (UDT)`.","description":"Where not specified this indicates that no `Columns` are to be excluded.","items":{"type":"string"}},"tvp":{"type":"string","title":"The name of the .NET entity associated with the `Udt` so that it can be expressed (created) as a Table-Valued Parameter for usage within the corresponding `DbMapper`."},"collectionType":{"type":"string","title":"The collection type.","description":"Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `Config.CollectionType`.","enum":["JSON","UDT"]},"permission":{"type":"string","title":"The permission (prefix) to be used for security permission checking (suffix defaults to `Read`, `Write` or `Delete` and can be overridden in the underlying stored procedure)."},"orgUnitImmutable":{"type":"boolean","title":"Indicates whether the `OrgUnitId` column is considered immutable, in that it can not be changed once set.","description":"Defaults to `CodeGeneration.OrgUnitImmutable`. This is only applicable for stored procedures."},"columnNameIsDeleted":{"type":"string","title":"The column name for the `IsDeleted` capability.","description":"Defaults to `CodeGeneration.IsDeleted`."},"columnNameTenantId":{"type":"string","title":"The column name for the `TenantId` capability.","description":"Defaults to `CodeGeneration.TenantId`."},"columnNameOrgUnitId":{"type":"string","title":"The column name for the `OrgUnitId` capability.","description":"Defaults to `CodeGeneration.OrgUnitId`."},"columnNameRowVersion":{"type":"string","title":"The column name for the `RowVersion` capability.","description":"Defaults to `CodeGeneration.RowVersion`."},"columnNameCreatedBy":{"type":"string","title":"The column name for the `CreatedBy` capability.","description":"Defaults to `CodeGeneration.CreatedBy`."},"columnNameCreatedDate":{"type":"string","title":"The column name for the `CreatedDate` capability.","description":"Defaults to `CodeGeneration.CreatedDate`."},"columnNameUpdatedBy":{"type":"string","title":"The column name for the `UpdatedBy` capability.","description":"Defaults to `CodeGeneration.UpdatedBy`."},"columnNameUpdatedDate":{"type":"string","title":"The column name for the `UpdatedDate` capability.","description":"Defaults to `CodeGeneration.UpdatedDate`."},"columnNameDeletedBy":{"type":"string","title":"The column name for the `DeletedBy` capability.","description":"Defaults to `CodeGeneration.UpdatedBy`."},"columnNameDeletedDate":{"type":"string","title":"The column name for the `DeletedDate` capability.","description":"Defaults to `CodeGeneration.UpdatedDate`."},"storedProcedures":{"type":"array","title":"The corresponding `StoredProcedure` collection.","items":{"$ref":"#/definitions/StoredProcedure"}},"relationships":{"type":"array","title":"The corresponding Entity Frameworrk (EF) `Relationship` collection.","items":{"$ref":"#/definitions/Relationship"}}},"required":["name"]},"StoredProcedure":{"type":"object","title":"'StoredProcedure' object (database-driven)","description":"The code generation for an `StoredProcedure` is primarily driven by the `Type` property. This encourages (enforces) a consistent implementation for the standardised **CRUD** (Create, Read, Update and Delete) actions, as well as supporting `Upsert`, `Merge` and ad-hoc queries as required.","properties":{"name":{"type":"string","title":"The name of the `StoredProcedure`; generally the verb/action, i.e. `Get`, `Update`, etc.","description":"See `StoredProcedureName` for the actual name used in the database."},"type":{"type":"string","title":"The stored procedure operation type.","description":"Defaults to `GetColl`.","enum":["Get","GetColl","Create","Update","Upsert","Delete","Merge"]},"paging":{"type":"boolean","title":"Indicates whether standardized paging support should be added.","description":"This only applies where the stored procedure operation `Type` is `GetColl`."},"storedProcedureName":{"type":"string","title":"The `StoredProcedure` name in the database.","description":"Defaults to `sp` + `Table.Name` + `Name`; e.g. `spTableName` or `spPersonGet`."},"replace":{"type":"boolean","title":"Indicates whether the existing `StoredProcedure` database object should be replaced/altered or whether the object is dropped and recreated.","description":"Defaults to `CodeGeneration.Replace`."},"reselectStatement":{"type":"string","title":"The SQL statement to perform the reselect after a `Create`, `Update` or `Upsert` stored procedure operation `Type`.","description":"Defaults to `[{{Table.Schema}}].[sp{{Table.Name}}Get]` passing the primary key column(s)."},"intoTempTable":{"type":"boolean","title":"Indicates whether to select into a `#TempTable` to allow other statements access to the selected data.","description":"A `Select * from #TempTable` is also performed (code-generated) where the stored procedure operation `Type` is `GetColl`."},"withHints":{"type":"string","title":"the table hints using the SQL Server `WITH()` statement; the value specified will be used as-is; e.g. `NOLOCK` will result in `WITH(NOLOCK)`."},"collectionType":{"type":"string","title":"The collection type.","description":"Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `Table.CollectionType`.","enum":["JSON","UDT"]},"mergeOverrideIdentityColumns":{"type":"array","title":"The list of `Column` names to be used in the `Merge` statement to determine whether to _insert_, _update_ or _delete_.","description":"This is used to override the default behaviour of using the primary key column(s).","items":{"type":"string"}},"permission":{"type":"string","title":"The name of the `StoredProcedure` in the database."},"orgUnitImmutable":{"type":"boolean","title":"Indicates whether the `OrgUnitId` column is considered immutable, in that it can not be changed once set.","description":"Defaults to `Table.OrgUnitImmutable`."},"includeColumns":{"type":"array","title":"The list of `Column` names to be included in the underlying generated _settable_ output (further filters `Table.IncludeColumns`).","description":"Where not specified this indicates that all `Columns` are to be included. Only filters the columns where `Type` is `Get`, `GetColl`, `Create`, `Update` or `Upsert`.","items":{"type":"string"}},"excludeColumns":{"type":"array","title":"The list of `Column` names to be excluded from the underlying generated _settable_ output (further filters `Table.ExcludeColumns`).","description":"Where not specified this indicates no `Columns` are to be excluded. Only filters the columns where `Type` is `Get`, `GetColl`, `Create`, `Update` or `Upsert`.","items":{"type":"string"}},"parameters":{"type":"array","title":"The corresponding `Parameter` collection.","items":{"$ref":"#/definitions/Parameter"}},"where":{"type":"array","title":"The corresponding `Where` collection.","items":{"$ref":"#/definitions/Where"}},"orderby":{"type":"array","title":"The corresponding `OrderBy` collection.","items":{"$ref":"#/definitions/OrderBy"}},"execute":{"type":"array","title":"The corresponding `Execute` collection.","items":{"$ref":"#/definitions/Execute"}}},"required":["name"]},"Parameter":{"type":"object","title":"'Parameter' object (database-driven)","description":"The `Parameter` is used to define a stored procedure parameter and its charateristics. These are in addition to those that are automatically inferred (added) by the selected `StoredProcedure.Type`.","properties":{"name":{"type":"string","title":"The parameter name (without the `@` prefix)."},"column":{"type":"string","title":"The corresponding column name; used to infer characteristics.","description":"Defaults to `Name`."},"sqlType":{"type":"string","title":"The SQL type definition (overrides inherited Column definition) including length/precision/scale."},"nullable":{"type":"boolean","title":"Indicates whether the parameter is nullable.","description":"Note that when the parameter value is `NULL` it will not be included in the query."},"treatColumnNullAs":{"type":"boolean","title":"Indicates whether the column value where NULL should be treated as the specified value; results in: `ISNULL([x].[col], value)`."},"collection":{"type":"boolean","title":"Indicates whether the parameter is a collection (one or more values to be included `IN` the query)."},"collectionType":{"type":"string","title":"The collection type.","description":"Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `StoredProcedure.CollectionType`.","enum":["JSON","UDT"]},"operator":{"type":"string","title":"The where clause equality operator","description":"Defaults to `EQ`.","enum":["EQ","NE","LT","LE","GT","GE","LIKE"]}},"required":["name"]},"Where":{"type":"object","title":"'Where' object (database-driven)","description":"The `Where` object defines an additional where `Statement` to be added. This is in addition to those automatically added based on the `StoredProcedure.Type`.","properties":{"statement":{"type":"string","title":"The where statement (TSQL)."}},"required":["statement"]},"OrderBy":{"type":"object","title":"'OrderBy' object (database-driven)","description":"The `OrderBy` object defines the query order. Only valid for `StoredProcedure.Type` of `GetAll`.","properties":{"name":{"type":"string","title":"The name of the `Column` to order by."},"order":{"type":"string","title":"The corresponding sort order.","description":"Defaults to `Ascending`.","enum":["Ascending","Descending"]}},"required":["name"]},"Execute":{"type":"object","title":"'Execute' object (database-driven)","description":"The _Execute_ object enables additional TSQL statements to be embedded within the stored procedure.","properties":{"statement":{"type":"string","title":"The additional TSQL statement."},"location":{"type":"string","title":"The location of the statement in relation to the underlying primary stored procedure statement.","description":"Defaults to `After`.","enum":["Before","After"]}},"required":["statement"]},"Relationship":{"type":"object","title":"'Relationship' object (database-driven)","description":"The `Relationship` object enables the definition of an entity framework (EF) model relationship.","properties":{"name":{"type":"string","title":"The name of the primary table of the query."},"schema":{"type":"string","title":"The schema name of the primary table of the view.","description":"Defaults to `CodeGeneration.Schema`."},"type":{"type":"string","title":"The relationship type between the parent and child (self).","description":"Defaults to `OneToMany`.","enum":["OneToMany","ManyToOne"]},"foreignKeyColumns":{"type":"array","title":"The list of `Column` names from the related table that reference the parent.","items":{"type":"string"}},"principalKeyColumns":{"type":"array","title":"The list of `Column` names from the principal table that reference the child.","description":" Typically this is only used where referencing property(s) other than the primary key as the principal property(s).","items":{"type":"string"}},"onDelete":{"type":"string","title":"The operation applied to dependent entities in the relationship when the principal is deleted or the relationship is severed.","description":"Defaults to `NoAction`. See https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.deletebehavior for more information.","enum":["NoAction","Cascade","ClientCascade","ClientNoAction","ClientSetNull","Restrict","SetNull"]},"autoInclude":{"type":"boolean","title":"Indicates whether to automatically include navigation to the property.","description":"Defaults to `false`."},"propertyName":{"type":"string","title":"The corresponding property name within the entity framework (EF) model.","description":"Defaults to `Name` using the `CodeGeneration.AutoDotNetRename` option."},"efModelName":{"type":"string","title":"The corresponding entity framework (EF) model name (.NET Type).","description":"Defaults to `Name` using the `CodeGeneration.AutoDotNetRename` option."}},"required":["name"]},"Query":{"type":"object","title":"'Query' object (database-driven)","description":"The `Query` object enables the definition of more complex multi-table queries (`Joins`) that would primarily result in a database _View_. The primary table `Name` for the query is required to be specified. Multiple queries can be specified for the same table(s). The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required (for example duplicate name). Additional `Where` and `Order` configuration can also be added as required.","properties":{"name":{"type":"string","title":"The name of the primary table of the query."},"schema":{"type":"string","title":"The schema name of the primary table of the view.","description":"Defaults to `CodeGeneration.Schema`."},"alias":{"type":"string","title":"The `Schema.Table` alias name.","description":"Will automatically default where not specified."},"includeColumns":{"type":"array","title":"The list of `Column` names to be included in the underlying generated output.","description":"Where not specified this indicates that all `Columns` are to be included.","items":{"type":"string"}},"excludeColumns":{"type":"array","title":"The list of `Column` names to be excluded from the underlying generated output.","description":"Where not specified this indicates no `Columns` are to be excluded.","items":{"type":"string"}},"aliasColumns":{"type":"array","title":"The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.","description":"Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`","items":{"type":"string"}},"view":{"type":"boolean","title":"Indicates whether a `View` is to be generated."},"viewName":{"type":"string","title":"The `View` name.","description":"Defaults to `vw` + `Name`; e.g. `vwTableName`."},"viewSchema":{"type":"string","title":"The schema name for the `View`.","description":"Defaults to `Schema`."},"viewReplace":{"type":"boolean","title":"Indicates whether the existing `View` database object should be replaced/altered or whether the object is dropped and recreated.","description":"Defaults to `CodeGeneration.Replace`."},"permission":{"type":"string","title":"The permission to be used for security permission checking.","description":"The suffix is optional, and where not specified will default to `.READ`."},"columnNameIsDeleted":{"type":"string","title":"The column name for the `IsDeleted` capability.","description":"Defaults to `CodeGeneration.IsDeleted`."},"columnNameTenantId":{"type":"string","title":"The column name for the `TenantId` capability.","description":"Defaults to `CodeGeneration.TenantId`."},"columnNameOrgUnitId":{"type":"string","title":"The column name for the `OrgUnitId` capability.","description":"Defaults to `CodeGeneration.OrgUnitId`."},"columnNameRowVersion":{"type":"string","title":"The column name for the `RowVersion` capability.","description":"Defaults to `CodeGeneration.RowVersion`."},"columnNameCreatedBy":{"type":"string","title":"The column name for the `CreatedBy` capability.","description":"Defaults to `CodeGeneration.CreatedBy`."},"columnNameCreatedDate":{"type":"string","title":"The column name for the `CreatedDate` capability.","description":"Defaults to `CodeGeneration.CreatedDate`."},"columnNameUpdatedBy":{"type":"string","title":"The column name for the `UpdatedBy` capability.","description":"Defaults to `CodeGeneration.UpdatedBy`."},"columnNameUpdatedDate":{"type":"string","title":"The column name for the `UpdatedDate` capability.","description":"Defaults to `CodeGeneration.UpdatedDate`."},"columnNameDeletedBy":{"type":"string","title":"The column name for the `DeletedBy` capability.","description":"Defaults to `CodeGeneration.UpdatedBy`."},"columnNameDeletedDate":{"type":"string","title":"The column name for the `DeletedDate` capability.","description":"Defaults to `CodeGeneration.UpdatedDate`."},"joins":{"type":"array","title":"The corresponding `Join` collection.","items":{"$ref":"#/definitions/QueryJoin"}},"order":{"type":"array","title":"The corresponding `Order` collection.","items":{"$ref":"#/definitions/QueryOrder"}},"where":{"type":"array","title":"The corresponding `Where` collection.","items":{"$ref":"#/definitions/QueryWhere"}}},"required":["name"]},"QueryJoin":{"type":"object","title":"'QueryJoin' object (database-driven)","description":"The `QueryJoin` object defines a join to another (or same) table within a query. The `Type` defines the join type, such as inner join, etc. The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required (for example duplicate name).","properties":{"name":{"type":"string","title":"The name of the table to join."},"schema":{"type":"string","title":"The schema name of the table to join.","description":"Defaults to `Table.Schema`; i.e. same schema."},"alias":{"type":"string","title":"The `Schema.Table` alias name.","description":"Will automatically default where not specified."},"type":{"type":"string","title":"The SQL join type.","description":"Defaults to `Inner`.","enum":["Inner","Left","Right","Full"]},"includeColumns":{"type":"array","title":"The list of `Column` names to be included in the underlying generated output.","description":"Where not specified this indicates that all `Columns` are to be included.","items":{"type":"string"}},"excludeColumns":{"type":"array","title":"The list of `Column` names to be excluded from the underlying generated output.","description":"Where not specified this indicates no `Columns` are to be excluded.","items":{"type":"string"}},"aliasColumns":{"type":"array","title":"The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column renaming.","description":"Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`","items":{"type":"string"}},"columnNameIsDeleted":{"type":"string","title":"The column name for the `IsDeleted` capability.","description":"Defaults to `CodeGeneration.IsDeleted`."},"columnNameTenantId":{"type":"string","title":"The column name for the `TenantId` capability.","description":"Defaults to `CodeGeneration.TenantId`."},"columnNameOrgUnitId":{"type":"string","title":"The column name for the `OrgUnitId` capability.","description":"Defaults to `CodeGeneration.OrgUnitId`."},"columnNameRowVersion":{"type":"string","title":"The column name for the `RowVersion` capability.","description":"Defaults to `CodeGeneration.RowVersion`."},"columnNameCreatedBy":{"type":"string","title":"The column name for the `CreatedBy` capability.","description":"Defaults to `CodeGeneration.CreatedBy`."},"columnNameCreatedDate":{"type":"string","title":"The column name for the `CreatedDate` capability.","description":"Defaults to `CodeGeneration.CreatedDate`."},"columnNameUpdatedBy":{"type":"string","title":"The column name for the `UpdatedBy` capability.","description":"Defaults to `CodeGeneration.UpdatedBy`."},"columnNameUpdatedDate":{"type":"string","title":"The column name for the `UpdatedDate` capability.","description":"Defaults to `CodeGeneration.UpdatedDate`."},"columnNameDeletedBy":{"type":"string","title":"The column name for the `DeletedBy` capability.","description":"Defaults to `CodeGeneration.UpdatedBy`."},"columnNameDeletedDate":{"type":"string","title":"The column name for the `DeletedDate` capability.","description":"Defaults to `CodeGeneration.UpdatedDate`."},"on":{"type":"array","title":"The corresponding `JoinOn` collection.","items":{"$ref":"#/definitions/QueryJoinOn"}}},"required":["name"]},"QueryJoinOn":{"type":"object","title":"'QueryJoinOn' object (database-driven)","description":"The `QueryJoinOn` object defines the join on characteristics for a join within a query.","properties":{"name":{"type":"string","title":"The name of the join column (from the `Join` table)."},"toSchema":{"type":"string","title":"The name of the other join to table schema.","description":"Defaults to `Table.Schema`; i.e. same schema. See also `ToTable` and `ToColumn` as these all relate."},"toTable":{"type":"string","title":"The name of the other join to table.","description":"Defaults to `Table.Name`; i.e. primary table. See also `ToSchema` and `ToColumn` as these all relate."},"toColumn":{"type":"string","title":"The name of the other join to column.","description":"Defaults to `Name`; i.e. assumes same name. See also `ToSchema` and `ToTable` as these all relate."},"toStatement":{"type":"string","title":"The fully qualified name (`Alias.Name`) of the other column being joined to or other valid SQL (e.g. function) bypassing the corresponding `Schema`, `Table` and `Column` logic."}},"required":["name"]},"QueryOrder":{"type":"object","title":"'QueryOrder' object (database-driven)","description":"The `QueryOrder` object that defines the query order.","properties":{"name":{"type":"string","title":"The name of the `Column` to order by.","description":"See also `Schema` and `Table` as these all relate."},"schema":{"type":"string","title":"The name of order by table schema. See also `Name` and `Column` as these all relate.","description":"Defaults to `Query.Schema`."},"table":{"type":"string","title":"The name of the order by table.","description":"Defaults to `Table.Name`; i.e. primary table. See also `Schema` and `Column` as these all relate."},"order":{"type":"string","title":"The corresponding sort order.","description":"Defaults to `Ascending`.","enum":["Ascending","Descending"]}},"required":["name"]},"QueryWhere":{"type":"object","title":"'QueryWhere' object (database-driven)","description":"The `QueryWhere` object defines an additional where `Statement` to be added.","properties":{"statement":{"type":"string","title":"The where TSQL statement."}},"required":["statement"]}},"allOf":[{"$ref":"#/definitions/CodeGeneration"}]}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON Schema for Beef Database code-generation (https://github.com/Avanade/Beef).". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

JSON Schema for Beef Database code-generation (https://github.com/Avanade/Beef).

'CodeGeneration' object (database-driven)

The `CodeGeneration` object defines global properties that are used to drive the underlying database-driven code generation.

The name of the `Schema` where the artefacts are defined in, or should be created in, the database.

This is used as the default `Schema` for all child objects.

Indicates whether the existing database object should be replaced/altered or whether the object is dropped and recreated.

Defaults to `true`.

The column name for the `IsDeleted` capability.

Defaults to `IsDeleted`.

The column name for the `TenantId` capability.

Defaults to `TenantId`.

The column name for the `OrgUnitId` capability.

Defaults to `OrgUnitId`.

The column name for the `RowVersion` capability.

Defaults to `RowVersion`.

The column name for the `CreatedBy` capability.

Defaults to `CreatedBy`.

The column name for the `CreatedDate` capability.

Defaults to `CreatedDate`.

The column name for the `UpdatedBy` capability.

Defaults to `UpdatedBy`.

The column name for the `UpdatedDate` capability.

Defaults to `UpdatedDate`.

The column name for the `DeletedBy` capability.

Defaults to `UpdatedBy`.

The column name for the `DeletedDate` capability.

Defaults to `UpdatedDate`.

The SQL table or function that is to be used to join against for security-based `OrgUnitId` verification.

Defaults to `[Sec].[fnGetUserOrgUnits]()`.

The SQL stored procedure that is to be used for `Permission` verification.

Defaults to `[Sec].[spCheckUserHasPermission]`.

The SQL function that is to be used for `Permission` verification.

Defaults to `[Sec].[fnGetUserHasPermission]`.

The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.

Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`.

The option to automatically rename the SQL Tables and Columns for use in .NET.

Defaults `SnakeKebabToPascalCase` that will remove any underscores or hyphens separating each word and capitalize the first character of each; e.g. `internal-customer_id` would be renamed as `InternalCustomerId`. The `PascalCase` option will capatilize the first character only.

Indicates whether to use preprocessor directives in the generated output.

The collection type.

Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `JSON`.

Indicates whether an `Entity Framework` .NET (C#) model is to be generated for all tables.

This can be overridden within the `Table`(s).

Indicates whether to generate the event outbox SQL and .NET artefacts.

Defaults to `false`.

The schema name of the event outbox table.

Defaults to `Outbox` (literal).

Indicates whether to create the `OutboxSchema` within the database.

Defaults to `true`.

The name of the event outbox table.

Defaults to `EventOutbox` (literal).

The stored procedure name for the event outbox enqueue.

Defaults to `spEventOutboxEnqueue` (literal).

The stored procedure name for the event outbox dequeue.

Defaults to `spEventOutboxDequeue` (literal).

The base path (directory) prefix for the Database-related artefacts; other `Path*` properties append to this value when they are not specifically overridden.

Defaults to `Company` (runtime parameter) + `.` + `AppName` (runtime parameter). For example `Beef.Demo`.

The path (directory) for the Schema Database-related artefacts.

Defaults to `PathBase` + `.Database/Schema` (literal). For example `Beef.Demo.Database/Schema`.

Defaults to `PathBase` + `.Database/Migrations` (literal). For example `Beef.Demo.Database/Migrations`.

The path (directory) for the Business-related (.NET) artefacts.

Defaults to `PathBase` + `.Business` (literal). For example `Beef.Demo.Business`.

Indicates whether the `OrgUnitId` column is considered immutable, in that it can not be changed once set.

This is only applicable for stored procedures.

The base Namespace (root) for the .NET artefacts.

The Namespace (root) for the Common-related .NET artefacts.

Defaults to `NamespaceBase` + `.Common` (literal). For example `Beef.Demo.Common`.

The Namespace (root) for the Business-related .NET artefacts.

Defaults to `NamespaceBase` + `.Business` (literal). For example `Beef.Demo.Business`.

The Namespace (root) for the Outbox-related Publisher .NET artefacts.

Defaults to `NamespaceBusiness`.

The corresponding `Table` collection.

The corresponding `Query` collection.

'Table' object (entity-driven)

The `Table` object identifies an existing database `Table` (or `View`) and defines its code-generation characteristics.

The name of the `Table` in the database.

The name of the `Schema` where the `Table` is defined in the database.

Defaults to `CodeGeneration.Schema`.

The `Schema.Table` alias name.

Will automatically default where not specified.

Defaults to `CodeGeneration.Replace`.

The list of `Column` names to be included in the underlying generated output.

Where not specified this indicates that all `Columns` are to be included.

The list of `Column` names to be excluded from the underlying generated output.

Where not specified this indicates no `Columns` are to be excluded.

Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`.

The list of JSON `Column` and `JsonAlias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.

Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `ProductCode^product`.

Indicates whether a `Get` stored procedure is to be automatically generated where not otherwise explicitly specified.

Indicates whether a `GetAll` stored procedure is to be automatically generated where not otherwise explicitly specified.

The `GetAllOrderBy` is used to specify the `GetAll` query sort order.

The list of `Column` names (including sort order `ASC`/`DESC` literal) to be used as the `GetAll` query sort order.

This relates to the `GetAll` selection.

Indicates whether a `Create` stored procedure is to be automatically generated where not otherwise explicitly specified.

Indicates whether a `Update` stored procedure is to be automatically generated where not otherwise explicitly specified.

Indicates whether a `Upsert` stored procedure is to be automatically generated where not otherwise explicitly specified.

Indicates whether a `Delete` stored procedure is to be automatically generated where not otherwise explicitly specified.

Indicates whether a `Merge` (insert/update/delete of `Udt` list) stored procedure is to be automatically generated where not otherwise explicitly specified.

This will also require a `Udt` (SQL User Defined Table) and `Tvp` (.NET Table-Valued Parameter) to function.

Indicates whether an `Entity Framework` .NET (C#) model is to be generated.

Defaults to `CodeGeneration.EfModel`.

The .NET (C#) EntityFramework (EF) model name.

Defaults to `Name` applying the `CodeGeneration.AutoDotNetRename`.

Indicates whether a `User Defined Table (UDT)` type should be created.

The list of `Column` names to be excluded from the `User Defined Table (UDT)`.

Where not specified this indicates that no `Columns` are to be excluded.

The name of the .NET entity associated with the `Udt` so that it can be expressed (created) as a Table-Valued Parameter for usage within the corresponding `DbMapper`.

The collection type.

Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `Config.CollectionType`.

The permission (prefix) to be used for security permission checking (suffix defaults to `Read`, `Write` or `Delete` and can be overridden in the underlying stored procedure).

Defaults to `CodeGeneration.OrgUnitImmutable`. This is only applicable for stored procedures.

The column name for the `IsDeleted` capability.

Defaults to `CodeGeneration.IsDeleted`.

The column name for the `TenantId` capability.

Defaults to `CodeGeneration.TenantId`.

The column name for the `OrgUnitId` capability.

Defaults to `CodeGeneration.OrgUnitId`.

The column name for the `RowVersion` capability.

Defaults to `CodeGeneration.RowVersion`.

The column name for the `CreatedBy` capability.

Defaults to `CodeGeneration.CreatedBy`.

The column name for the `CreatedDate` capability.

Defaults to `CodeGeneration.CreatedDate`.

The column name for the `UpdatedBy` capability.

Defaults to `CodeGeneration.UpdatedBy`.

The column name for the `UpdatedDate` capability.

Defaults to `CodeGeneration.UpdatedDate`.

The column name for the `DeletedBy` capability.

Defaults to `CodeGeneration.UpdatedBy`.

The column name for the `DeletedDate` capability.

The corresponding `StoredProcedure` collection.

The corresponding Entity Frameworrk (EF) `Relationship` collection.

'StoredProcedure' object (database-driven)

The code generation for an `StoredProcedure` is primarily driven by the `Type` property. This encourages (enforces) a consistent implementation for the standardised **CRUD** (Create, Read, Update and Delete) actions, as well as supporting `Upsert`, `Merge` and ad-hoc queries as required.

The name of the `StoredProcedure`; generally the verb/action, i.e. `Get`, `Update`, etc.

See `StoredProcedureName` for the actual name used in the database.

The stored procedure operation type.

Defaults to `GetColl`.

Get GetColl Create Update Upsert Delete Merge

Indicates whether standardized paging support should be added.

This only applies where the stored procedure operation `Type` is `GetColl`.

The `StoredProcedure` name in the database.

Defaults to `sp` + `Table.Name` + `Name`; e.g. `spTableName` or `spPersonGet`.

Indicates whether the existing `StoredProcedure` database object should be replaced/altered or whether the object is dropped and recreated.

Defaults to `CodeGeneration.Replace`.

The SQL statement to perform the reselect after a `Create`, `Update` or `Upsert` stored procedure operation `Type`.

Defaults to `[{{Table.Schema}}].[sp{{Table.Name}}Get]` passing the primary key column(s).

Indicates whether to select into a `#TempTable` to allow other statements access to the selected data.

A `Select * from #TempTable` is also performed (code-generated) where the stored procedure operation `Type` is `GetColl`.

the table hints using the SQL Server `WITH()` statement; the value specified will be used as-is; e.g. `NOLOCK` will result in `WITH(NOLOCK)`.

The collection type.

Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `Table.CollectionType`.

The list of `Column` names to be used in the `Merge` statement to determine whether to _insert_, _update_ or _delete_.

This is used to override the default behaviour of using the primary key column(s).

The name of the `StoredProcedure` in the database.

Defaults to `Table.OrgUnitImmutable`.

The list of `Column` names to be included in the underlying generated _settable_ output (further filters `Table.IncludeColumns`).

Where not specified this indicates that all `Columns` are to be included. Only filters the columns where `Type` is `Get`, `GetColl`, `Create`, `Update` or `Upsert`.

The list of `Column` names to be excluded from the underlying generated _settable_ output (further filters `Table.ExcludeColumns`).

Where not specified this indicates no `Columns` are to be excluded. Only filters the columns where `Type` is `Get`, `GetColl`, `Create`, `Update` or `Upsert`.

The corresponding `Parameter` collection.

The corresponding `Where` collection.

The corresponding `OrderBy` collection.

The corresponding `Execute` collection.

'Parameter' object (database-driven)

The `Parameter` is used to define a stored procedure parameter and its charateristics. These are in addition to those that are automatically inferred (added) by the selected `StoredProcedure.Type`.

The parameter name (without the `@` prefix).

The corresponding column name; used to infer characteristics.

Defaults to `Name`.

The SQL type definition (overrides inherited Column definition) including length/precision/scale.

Indicates whether the parameter is nullable.

Note that when the parameter value is `NULL` it will not be included in the query.

Indicates whether the column value where NULL should be treated as the specified value; results in: `ISNULL([x].[col], value)`.

Indicates whether the parameter is a collection (one or more values to be included `IN` the query).

The collection type.

Values are `JSON` being a JSON array (preferred) or `UDT` for a User-Defined Type (legacy). Defaults to `StoredProcedure.CollectionType`.

The where clause equality operator

Defaults to `EQ`.

'Where' object (database-driven)

The `Where` object defines an additional where `Statement` to be added. This is in addition to those automatically added based on the `StoredProcedure.Type`.

The where statement (TSQL).

'OrderBy' object (database-driven)

The `OrderBy` object defines the query order. Only valid for `StoredProcedure.Type` of `GetAll`.

The name of the `Column` to order by.

The corresponding sort order.

Defaults to `Ascending`.

'Execute' object (database-driven)

The _Execute_ object enables additional TSQL statements to be embedded within the stored procedure.

The additional TSQL statement.

The location of the statement in relation to the underlying primary stored procedure statement.

Defaults to `After`.

'Relationship' object (database-driven)

The `Relationship` object enables the definition of an entity framework (EF) model relationship.

The name of the primary table of the query.

The schema name of the primary table of the view.

Defaults to `CodeGeneration.Schema`.

The relationship type between the parent and child (self).

Defaults to `OneToMany`.

The list of `Column` names from the related table that reference the parent.

The list of `Column` names from the principal table that reference the child.

Typically this is only used where referencing property(s) other than the primary key as the principal property(s).

The operation applied to dependent entities in the relationship when the principal is deleted or the relationship is severed.

Defaults to `NoAction`. See https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.deletebehavior for more information.

NoAction Cascade ClientCascade ClientNoAction ClientSetNull Restrict SetNull

Indicates whether to automatically include navigation to the property.

Defaults to `false`.

The corresponding property name within the entity framework (EF) model.

Defaults to `Name` using the `CodeGeneration.AutoDotNetRename` option.

The corresponding entity framework (EF) model name (.NET Type).

'Query' object (database-driven)

The `Query` object enables the definition of more complex multi-table queries (`Joins`) that would primarily result in a database _View_. The primary table `Name` for the query is required to be specified. Multiple queries can be specified for the same table(s). The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required (for example duplicate name). Additional `Where` and `Order` configuration can also be added as required.

The name of the primary table of the query.

The schema name of the primary table of the view.

Defaults to `CodeGeneration.Schema`.

The `Schema.Table` alias name.

Will automatically default where not specified.

The list of `Column` names to be included in the underlying generated output.

Where not specified this indicates that all `Columns` are to be included.

The list of `Column` names to be excluded from the underlying generated output.

Where not specified this indicates no `Columns` are to be excluded.

The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.

Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`

Indicates whether a `View` is to be generated.

The `View` name.

Defaults to `vw` + `Name`; e.g. `vwTableName`.

The schema name for the `View`.

Defaults to `Schema`.

Indicates whether the existing `View` database object should be replaced/altered or whether the object is dropped and recreated.

Defaults to `CodeGeneration.Replace`.

The permission to be used for security permission checking.

The suffix is optional, and where not specified will default to `.READ`.

The column name for the `IsDeleted` capability.

Defaults to `CodeGeneration.IsDeleted`.

The column name for the `TenantId` capability.

Defaults to `CodeGeneration.TenantId`.

The column name for the `OrgUnitId` capability.

Defaults to `CodeGeneration.OrgUnitId`.

The column name for the `RowVersion` capability.

Defaults to `CodeGeneration.RowVersion`.

The column name for the `CreatedBy` capability.

Defaults to `CodeGeneration.CreatedBy`.

The column name for the `CreatedDate` capability.

Defaults to `CodeGeneration.CreatedDate`.

The column name for the `UpdatedBy` capability.

Defaults to `CodeGeneration.UpdatedBy`.

The column name for the `UpdatedDate` capability.

Defaults to `CodeGeneration.UpdatedDate`.

The column name for the `DeletedBy` capability.

Defaults to `CodeGeneration.UpdatedBy`.

The column name for the `DeletedDate` capability.

Defaults to `CodeGeneration.UpdatedDate`.

The corresponding `Join` collection.

The corresponding `Order` collection.

The corresponding `Where` collection.

'QueryJoin' object (database-driven)

The `QueryJoin` object defines a join to another (or same) table within a query. The `Type` defines the join type, such as inner join, etc. The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required (for example duplicate name).

The name of the table to join.

The schema name of the table to join.

Defaults to `Table.Schema`; i.e. same schema.

The `Schema.Table` alias name.

Will automatically default where not specified.

The SQL join type.

Defaults to `Inner`.

The list of `Column` names to be included in the underlying generated output.

Where not specified this indicates that all `Columns` are to be included.

The list of `Column` names to be excluded from the underlying generated output.

Where not specified this indicates no `Columns` are to be excluded.

The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column renaming.

Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`

The column name for the `IsDeleted` capability.

Defaults to `CodeGeneration.IsDeleted`.

The column name for the `TenantId` capability.

Defaults to `CodeGeneration.TenantId`.

The column name for the `OrgUnitId` capability.

Defaults to `CodeGeneration.OrgUnitId`.

The column name for the `RowVersion` capability.

Defaults to `CodeGeneration.RowVersion`.

The column name for the `CreatedBy` capability.

Defaults to `CodeGeneration.CreatedBy`.

The column name for the `CreatedDate` capability.

Defaults to `CodeGeneration.CreatedDate`.

The column name for the `UpdatedBy` capability.

Defaults to `CodeGeneration.UpdatedBy`.

The column name for the `UpdatedDate` capability.

Defaults to `CodeGeneration.UpdatedDate`.

The column name for the `DeletedBy` capability.

Defaults to `CodeGeneration.UpdatedBy`.

The column name for the `DeletedDate` capability.

The corresponding `JoinOn` collection.

'QueryJoinOn' object (database-driven)

The `QueryJoinOn` object defines the join on characteristics for a join within a query.

The name of the join column (from the `Join` table).

The name of the other join to table schema.

Defaults to `Table.Schema`; i.e. same schema. See also `ToTable` and `ToColumn` as these all relate.

The name of the other join to table.

Defaults to `Table.Name`; i.e. primary table. See also `ToSchema` and `ToColumn` as these all relate.

The name of the other join to column.

Defaults to `Name`; i.e. assumes same name. See also `ToSchema` and `ToTable` as these all relate.

The fully qualified name (`Alias.Name`) of the other column being joined to or other valid SQL (e.g. function) bypassing the corresponding `Schema`, `Table` and `Column` logic.

'QueryOrder' object (database-driven)

The `QueryOrder` object that defines the query order.

The name of the `Column` to order by.

See also `Schema` and `Table` as these all relate.

The name of order by table schema. See also `Name` and `Column` as these all relate.

Defaults to `Query.Schema`.

The name of the order by table.

Defaults to `Table.Name`; i.e. primary table. See also `Schema` and `Column` as these all relate.

The corresponding sort order.

Defaults to `Ascending`.

'QueryWhere' object (database-driven)

The `QueryWhere` object defines an additional where `Statement` to be added.

The where TSQL statement.

Provide a JSON object that satisfies the schema "JSON Schema for Beef Database code-generation (https://github.com/Avanade/Beef).". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

JSON Schema for Beef Database code-generation (https://github.com/Avanade/Beef).