Skip to main content

Schema

The workspace configuration reference is based on the following JSON schema :

Loading ....

Schema direct link

Here is a raw version for this schema :

project-schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://blaze-monorepo.dev/schemas/workspace",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9\\-_]+$",
"description": "The workspace name."
},
"projects": {
"description": "A mapping composed of project names pointing to their locations.",
"patternProperties": {
"^[a-zA-Z0-9\\-_/]+$": {
"oneOf": [
{
"description": "Relative path from the workspace root to the project's root directory, where the project.json file is located (or any of its variants). The project configuration filename must not be appended.",
"examples": [
"path/to/my/project"
],
"type": "string",
"minLength": 1
},
{
"description": "An object describing the project.",
"properties": {
"path": {
"description": "Relative path from the workspace root to the project's root directory, where the project.json file is located (or any of its variants). The project configuration filename must not be appended.",
"examples": [
"path/to/my/project"
],
"type": "string",
"minLength": 1
},
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true,
"description": "A list of tags for this project. Useful for when selecting projects by tag."
},
"description": {
"type": "string",
"minLength": 1,
"description": "A description for this project. Useful for when describing the workspace."
}
},
"type": "object",
"additionalProperties": false
}
]
}
},
"type": "object",
"additionalProperties": false
},
"settings": {
"description": "Global settings for the workspace",
"properties": {
"defaultSelector": {
"description": "A default project selector to be used when no selection option is used.",
"oneOf": [
{
"description": "Select all projects in the workspace.",
"const": "All"
},
{
"type": "array",
"description": "A list of project names to select.",
"items": {
"type": "string",
"pattern": "^[a-zA-Z0-9_\\-/]+$"
},
"uniqueItems": true
},
{
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"uniqueItems": true
}
},
"type": "object",
"additionalProperties": false
},
{
"properties": {
"include": {
"type": "array",
"items": {
"description": "An inclusion pattern to be used when selecting projects. Any project which name matches the pattern will be included in the selection.",
"type": "string",
"minLength": 1
},
"uniqueItems": true,
"minItems": 1
},
"exclude": {
"type": "array",
"items": {
"description": "An exclusion pattern (regular expression) to be used when selecting projects. Any project matching the pattern will be excluded from the selection.",
"type": "string",
"minLength": 1
},
"uniqueItems": true
}
},
"required": [
"include"
],
"type": "object",
"additionalProperties": false
}
]
},
"selectors": {
"default": {},
"description": "A mapping of re-usable named project selectors.",
"patternProperties": {
"^[a-zA-Z0-9\\-_/]+$": {
"oneOf": [
{
"description": "Select all projects in the workspace.",
"const": "All"
},
{
"type": "array",
"description": "A list of project names to select.",
"items": {
"type": "string",
"pattern": "^[a-zA-Z0-9_\\-/]+$"
},
"uniqueItems": true
},
{
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"uniqueItems": true
}
},
"type": "object",
"additionalProperties": false
},
{
"properties": {
"include": {
"type": "array",
"items": {
"description": "An inclusion pattern to be used when selecting projects. Any project which name matches the pattern will be included in the selection.",
"type": "string",
"minLength": 1
},
"uniqueItems": true,
"minItems": 1
},
"exclude": {
"type": "array",
"items": {
"description": "An exclusion pattern (regular expression) to be used when selecting projects. Any project matching the pattern will be excluded from the selection.",
"type": "string",
"minLength": 1
},
"uniqueItems": true
}
},
"required": [
"include"
],
"type": "object",
"additionalProperties": false
}
]
}
},
"type": "object",
"additionalProperties": false
},
"parallelism": {
"oneOf": [
{
"const": "Infinite",
"description": "No limit on maximum parallel jobs."
},
{
"const": "All",
"description": "Maximum parallel jobs set to the number of available logical cores."
},
{
"type": "number",
"description": "Explicitely set the number of parallel jobs.",
"minimum": 1
},
{
"const": "None",
"description": "No parallelism at all, which means only one job will be executed at a time. This is the same as providing 1."
}
],
"default": "None",
"description": "The default parallelism level to use when executing tasks (for commands such as `run`, `spawn`...)"
},
"logLevel": {
"description": "Default log level when running commands on this workspace.",
"oneOf": [
{
"const": "Error",
"description": "Only errors will be logged."
},
{
"const": "Info",
"description": "Informational messages and errors will be logged."
},
{
"const": "Warn",
"description": "Information messages, errors and warnings will be logged."
},
{
"const": "Debug",
"description": "Log everything including debugging messages."
}
],
"default": "Warn"
},
"resolutionParallelism": {
"oneOf": [
{
"const": "Infinite",
"description": "No limit on maximum parallel jobs."
},
{
"const": "All",
"description": "Maximum parallel jobs set to the number of available logical cores."
},
{
"type": "number",
"description": "Explicitely set the number of parallel jobs.",
"minimum": 1
},
{
"const": "None",
"description": "No parallelism at all, which means only one job will be executed at a time. This is the same as providing 1."
}
],
"default": "None",
"description": "The default parallelism level to use when resolving executors."
}
},
"type": "object",
"additionalProperties": false
}
},
"required": [
"projects",
"name"
]
}