Add portsAttributes to devcontainer.json

Part of microsoft/vscode-remote-release#4445
This commit is contained in:
Alex Ross 2021-02-09 16:50:36 +01:00
parent 624f51c0f7
commit 327e25fdc2
4 changed files with 408 additions and 1 deletions

View file

@ -19,6 +19,63 @@
"type": "integer"
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"^\\d+(\\-\\d+)?$": {
"type": "object",
"description": "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Labeled Port"
}
},
"default": {
"label": "Labeled Port",
"onAutoForward": "notify"
}
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:My Port}",
"onAutoForward": "notify"
}
}
}
],
"errorMessage": "Must be a port number or a range of port numbers",
"additionalProperties": false
},
"settings": {
"$ref": "vscode://schemas/settings/machine",
"description": "Machine specific settings that should be copied into the container. These are only copied when connecting to the container for the first time."

View file

@ -127,6 +127,64 @@
"minimum": 0
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"^\\d+(\\-\\d+)?$": {
"type": "object",
"description": "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Labeled Port"
}
},
"default": {
"label": "Labeled Port",
"onAutoForward": "notify"
},
"additionalProperties": false
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:My Port}",
"onAutoForward": "notify"
}
}
}
],
"errorMessage": "Must be a port number or a range of port numbers",
"additionalProperties": false
},
"remoteEnv": {
"type": "object",
"additionalProperties": {
@ -326,6 +384,64 @@
"minimum": 0
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"^\\d+(\\-\\d+)?$": {
"type": "object",
"description": "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Labeled Port"
}
},
"default": {
"label": "Labeled Port",
"onAutoForward": "notify"
},
"additionalProperties": false
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:My Port}",
"onAutoForward": "notify"
}
}
}
],
"errorMessage": "Must be a port number or a range of port numbers",
"additionalProperties": false
},
"remoteEnv": {
"type": "object",
"additionalProperties": {
@ -501,6 +617,64 @@
"minimum": 0
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"^\\d+(\\-\\d+)?$": {
"type": "object",
"description": "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Labeled Port"
}
},
"default": {
"label": "Labeled Port",
"onAutoForward": "notify"
},
"additionalProperties": false
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:My Port}",
"onAutoForward": "notify"
}
}
}
],
"errorMessage": "Must be a port number or a range of port numbers",
"additionalProperties": false
},
"remoteEnv": {
"type": "object",
"additionalProperties": {
@ -642,6 +816,64 @@
"minimum": 0
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"^\\d+(\\-\\d+)?$": {
"type": "object",
"description": "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Labeled Port"
}
},
"default": {
"label": "Labeled Port",
"onAutoForward": "notify"
},
"additionalProperties": false
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:My Port}",
"onAutoForward": "notify"
}
}
}
],
"errorMessage": "Must be a port number or a range of port numbers",
"additionalProperties": false
},
"remoteEnv": {
"type": "object",
"additionalProperties": {
@ -752,6 +984,64 @@
"minimum": 0
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"^\\d+(\\-\\d+)?$": {
"type": "object",
"description": "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Labeled Port"
}
},
"default": {
"label": "Labeled Port",
"onAutoForward": "notify"
},
"additionalProperties": false
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:My Port}",
"onAutoForward": "notify"
}
}
}
],
"errorMessage": "Must be a port number or a range of port numbers",
"additionalProperties": false
},
"remoteEnv": {
"type": "object",
"additionalProperties": {

View file

@ -33,6 +33,63 @@
"minimum": 0
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"^\\d+(\\-\\d+)?$": {
"type": "object",
"description": "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Labeled Port"
}
},
"default": {
"label": "Labeled Port",
"onAutoForward": "notify"
}
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:My Port}",
"onAutoForward": "notify"
}
}
}
],
"errorMessage": "Must be a port number or a range of port numbers",
"additionalProperties": false
},
"remoteEnv": {
"type": "object",
"additionalProperties": {
@ -205,7 +262,7 @@
"$ref": "#/definitions/buildOptions"
}
]
}
}
},
"required": [
"build"

View file

@ -134,6 +134,9 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
markdownDescription: localize('remote.autoForwardPorts', "When enabled, new running processes are detected and ports that they listen on are automatically forwarded."),
default: true
},
// Consider making changes to extensions\configuration-editing\schemas\devContainer.schema.src.json
// and extensions\configuration-editing\schemas\attachContainer.schema.json
// to keep in sync with devcontainer.json schema.
'remote.portsAttributes': {
type: 'object',
patternProperties: {