Skip to content

Commit cbc624c

Browse files
isaacmbrownCopilotsophietheking
authored
Tidy up enterprise managed-settings.json docs (#62197)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com>
1 parent d1f9b5b commit cbc624c

4 files changed

Lines changed: 76 additions & 132 deletions

File tree

content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings.md

Lines changed: 4 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ These settings apply enterprise-wide, with no organization-level override. For e
2121

2222
Managed settings are loaded locally when the client starts, even if the device has no network connection. This means controls such as disabled bypass mode and restricted plugin configuration still apply before sign in or any server round trip, and remain active when users switch accounts.
2323

24+
## Defining settings
25+
26+
For detailed information on the available properties and syntax, see [AUTOTITLE](/copilot/reference/enterprise-managed-settings-reference).
27+
2428
## Choosing a deployment method
2529

2630
There are multiple ways to deploy enterprise managed settings. Use the following guidelines to choose the right method for you. For any method, pilot on a small device group before broad deployment.
@@ -55,121 +59,6 @@ There are multiple ways to deploy enterprise managed settings. Use the following
5559
1. Ask users to restart supported clients so the updated policy is loaded at startup.
5660
1. Confirm the settings took effect. See [Verifying the configuration has applied](#verifying-the-configuration-has-applied).
5761

58-
## Consolidated schema reference
59-
60-
The `{% data variables.copilot.managed_setting_file %}` file supports the following top-level properties. You can include any combination of these properties based on which settings you want to enforce.
61-
62-
```json copy
63-
{
64-
"extraKnownMarketplaces": {
65-
"agent-skills": {
66-
"source": {
67-
"source": "github",
68-
"repo": "OWNER/REPO"
69-
}
70-
}
71-
},
72-
"strictKnownMarketplaces": [
73-
{
74-
"source": "github",
75-
"repo": "OWNER/REPO"
76-
}
77-
],
78-
"enabledPlugins": {
79-
"PLUGIN-NAME@MARKETPLACE-NAME": true
80-
},
81-
"permissions": {
82-
"disableBypassPermissionsMode": "disable"
83-
},
84-
"model": "auto"
85-
}
86-
```
87-
88-
* `extraKnownMarketplaces`: Defines additional plugin marketplaces available to users. Each entry is a named marketplace object containing a `source` property that specifies the provider (`"github"`) and the repository in `OWNER/REPO` format.
89-
* `strictKnownMarketplaces`: Restricts plugin installation to only the marketplaces explicitly defined by the enterprise. Each entry is a marketplace object containing a `source` property. The `source` specifies the provider as either `"github"` with a `repo` in `OWNER/REPO` format, or `"git"` with a `url` pointing to a git repository.
90-
* `enabledPlugins`: Defines plugins that are automatically installed for all enterprise users. Each entry uses the format `PLUGIN-NAME@MARKETPLACE-NAME` as the key, with a boolean value of `true` to enable the plugin.
91-
* `permissions`: Controls whether users can bypass command approval. Set `disableBypassPermissionsMode` to `"disable"` to prevent users from turning on bypass mode. See [Disabling bypass mode for your enterprise](#disabling-bypass-mode-for-your-enterprise) further in this article for more information.
92-
* `model`: Controls default model governance settings. Set to `"auto"` so new conversations start with Copilot auto model selection by default. Users can still switch to a different model on a per-conversation basis.
93-
94-
## Configuring enterprise plugin standards
95-
96-
You can apply settings to control users' available plugin marketplaces and default-installed plugins. See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards).
97-
98-
{% data reusables.copilot.create-managed-settings %}
99-
1. Add the `extraKnownMarketplaces`, `strictKnownMarketplaces`, and `enabledPlugins` properties you need to the file. See the example and property descriptions in [Consolidated schema reference](#consolidated-schema-reference). Merge these properties into an existing file rather than overwriting it, so you don't remove settings configured for other policies, such as `permissions`.
100-
101-
```json copy
102-
{
103-
"extraKnownMarketplaces": {
104-
"agent-skills": {
105-
"source": {
106-
"source": "github",
107-
"repo": "OWNER/REPO"
108-
}
109-
}
110-
},
111-
"strictKnownMarketplaces": [
112-
{
113-
"source": "github",
114-
"repo": "OWNER/REPO"
115-
}
116-
],
117-
"enabledPlugins": {
118-
"PLUGIN-NAME@MARKETPLACE-NAME": true
119-
}
120-
}
121-
```
122-
123-
1. Commit and push your changes to the default branch of the `.github-private` repository.
124-
125-
## Setting {% data variables.product.prodname_copilot_short %} auto model selection as the default
126-
127-
You can set auto model selection as the default model for new conversations in {% data variables.copilot.copilot_cli_short %} and {% data variables.product.prodname_vscode_shortname %}. To learn more see [AUTOTITLE](/copilot/concepts/models/auto-model-selection). By setting it as the default for your enterprise, you ensure new conversations start with Auto model selected.
128-
129-
### What setting Auto model as the default does
130-
131-
When you `model` to `"auto"`, new conversations start with Auto model selected in both clients:
132-
133-
* In {% data variables.copilot.copilot_cli_short %}, new sessions use Auto model unless the user specifies a different model.
134-
* In {% data variables.product.prodname_vscode_shortname %}, the model picker defaults to Auto model when a user starts a new conversation.
135-
136-
Users can still switch to a different model on a per-conversation basis.
137-
138-
### Configuring the setting
139-
140-
{% data reusables.copilot.create-managed-settings %}
141-
1. Add the `model` property to the file, set to `"auto"`.
142-
143-
```json copy
144-
{
145-
"model": "auto"
146-
}
147-
```
148-
149-
## Disabling bypass mode for your enterprise
150-
151-
You can prevent users from enabling bypass mode (also known as "YOLO mode") in {% data variables.copilot.copilot_cli_short %} and {% data variables.product.prodname_vscode_shortname %}. Bypass mode lets an agent run commands, access files, and fetch URLs without asking for approval. By disabling it for your enterprise, you ensure that a person reviews each of these actions.
152-
153-
### What disabling bypass mode prevents
154-
155-
When you set `disableBypassPermissionsMode` to `"disable"`, users cannot turn on bypass mode in either client:
156-
157-
* In {% data variables.copilot.copilot_cli_short %}, the `--yolo`, `--allow-all`, `--allow-all-tools`, `--allow-all-paths`, and `--allow-all-urls` command-line options and the `/yolo` and `/allow-all` slash commands are blocked.
158-
* In {% data variables.product.prodname_vscode_shortname %}, the global auto-approve setting (`chat.tools.global.autoApprove`), also known as "YOLO mode," is turned off and cannot be re-enabled.
159-
160-
### Configuring the setting
161-
162-
{% data reusables.copilot.create-managed-settings %}
163-
1. Add the `permissions` property to the file, with `disableBypassPermissionsMode` set to `"disable"`. If the file already has a `permissions` object (for example, from other permission settings), merge this key into it rather than replacing the object.
164-
165-
```json copy
166-
{
167-
"permissions": {
168-
"disableBypassPermissionsMode": "disable"
169-
}
170-
}
171-
```
172-
17362
## Verifying the configuration has applied
17463

17564
Once the configuration is committed, users on a supported client see the specified settings within about an hour, since clients periodically check the server for updated configuration. Restarting the client or signing in again applies the latest settings immediately.

content/copilot/reference/copilot-cli-reference/cli-command-reference.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,8 @@ OTel is off by default with zero overhead. It activates when any of the followin
10081008
* `OTEL_EXPORTER_OTLP_ENDPOINT` is set
10091009
* `COPILOT_OTEL_FILE_EXPORTER_PATH` is set
10101010

1011+
OTel configuration can also be set in {% data variables.product.prodname_vscode_shortname %}, or in an enterprise-wide `{% data variables.copilot.managed_setting_file %}` file. See [Enable OTel monitoring](https://code.visualstudio.com/docs/agents/guides/monitoring-agents#_enable-otel-monitoring) in the {% data variables.product.prodname_vscode_shortname %} documentation and [AUTOTITLE](/copilot/reference/enterprise-managed-settings-reference).
1012+
10111013
### OTel environment variables
10121014

10131015
| Variable | Default | Description |

content/copilot/reference/enterprise-managed-settings-reference.md

Lines changed: 69 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,31 @@ category:
99
- Configure Copilot
1010
---
1111

12-
> [!NOTE]
13-
> This feature is in {% data variables.release-phases.public_preview %} and subject to change.
14-
1512
Use this reference to understand the currently supported keys in `{% data variables.copilot.managed_setting_file %}`.
1613

1714
For deployment methods, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings#choosing-a-deployment-method).
1815

1916
## Precedence rules
2017

21-
When multiple settings sources are present, clients apply settings in this order:
18+
When multiple settings sources are present, settings earlier in this list take precedence over settings later in the list:
2219

23-
1. Server-managed settings
2420
1. MDM-managed settings
21+
1. Server-managed settings
2522
1. File-based settings
2623
1. User-level settings
2724

28-
MDM-managed settings take precedence. If MDM-managed settings are not available, clients apply server-managed settings before file-based settings.
29-
3025
## Supported keys
3126

3227
{% rowheaders %}
3328

3429
| Key | Type | Accepted values | Purpose |
3530
| --- | --- | --- | --- |
3631
| `permissions.disableBypassPermissionsMode` | `string` | `"disable"` | Disables bypass or YOLO-style allow-all behavior |
37-
| `enabledPlugins` | `object` | Key format: `PLUGIN-NAME@MARKETPLACE-NAME`; value: `true` | Enables specific plugins by key |
38-
| `extraKnownMarketplaces` | `object` | Named marketplace object with `source.source` (`"github"`) and `source.repo` (`OWNER/REPO`) | Adds plugin marketplaces that users can access |
39-
| `strictKnownMarketplaces` | `array` | Array of marketplace objects with `source` values (`"github"` with `repo`, or `"git"` with `url`) | Restricts plugin installation to explicitly listed marketplaces |
40-
| `model` | `object` | `default` set to a supported model name | Defines default model governance settings |
41-
| `telemetry` | `object` | `enabled` (`boolean`), `endpoint` (`string`), `protocol` (`"otlp-http"` or `"otlp-grpc"`), `captureContent` (`boolean`), `lockCaptureContent` (`boolean`), `serviceName` (`string`), `resourceAttributes` (`object`), `headers` (`object`) | Configures OpenTelemetry export for {% data variables.product.prodname_vscode_shortname %} |
32+
| `permissions.model` | `string` | `"auto"` | Sets auto model selection as the default for new conversations|
33+
| `enabledPlugins` | `object` | Key format: `PLUGIN-NAME@MARKETPLACE-NAME`; value: `true` (enable) or `false` (disable) | Enables or disables specific plugins by key |
34+
| `extraKnownMarketplaces` | `object` | Named marketplace objects; supported source types: `"github"`, `"git"`, `"directory"` | Adds plugin marketplaces that users can access |
35+
| `strictKnownMarketplaces` | `array` | Array of marketplace objects; supported source types: `"github"`, `"git"`, `"url"`, `"npm"`, `"file"`, `"directory"`, `"hostPattern"`, `"pathPattern"` | Restricts plugin installation to explicitly listed marketplaces |
36+
| `telemetry` | `object` | `enabled` (`boolean`), `endpoint` (`string`), `protocol` (`"http/json"` or `"http/protobuf"`), `captureContent` (`boolean`), `lockCaptureContent` (`boolean`), `serviceName` (`string`), `resourceAttributes` (`object`), `headers` (`object`) | Configures OpenTelemetry export for {% data variables.product.prodname_vscode_shortname %} |
4237

4338
{% endrowheaders %}
4439

@@ -49,7 +44,8 @@ The following example shows these keys in one managed settings file.
4944
```json
5045
{
5146
"permissions": {
52-
"disableBypassPermissionsMode": "disable"
47+
"disableBypassPermissionsMode": "disable",
48+
"model": "auto"
5349
},
5450
"enabledPlugins": {
5551
"my-plugin@agent-skills": true
@@ -68,13 +64,10 @@ The following example shows these keys in one managed settings file.
6864
"repo": "OWNER/REPO"
6965
}
7066
],
71-
"model": {
72-
"default": "MODEL-NAME"
73-
},
7467
"telemetry": {
7568
"enabled": true,
7669
"endpoint": "https://otel-collector.example.com",
77-
"protocol": "otlp-http",
70+
"protocol": "http/protobuf",
7871
"captureContent": false,
7972
"lockCaptureContent": true,
8073
"serviceName": "copilot",
@@ -87,3 +80,62 @@ The following example shows these keys in one managed settings file.
8780
}
8881
}
8982
```
83+
84+
## `enabledPlugins`
85+
86+
Defines plugins that are automatically installed or blocked for all enterprise users. Each entry uses the format `PLUGIN-NAME@MARKETPLACE-NAME` as the key, with a boolean value: `true` to require the plugin to be enabled, or `false` to require it to be disabled. See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards).
87+
88+
## `extraKnownMarketplaces`
89+
90+
Defines additional plugin marketplaces available to users. Each entry is a named marketplace object containing a `source` property. The following source types are supported:
91+
92+
* `"github"` — requires `repo` in `OWNER/REPO` format; optional `ref` (branch, tag, or SHA) and `path` (subdirectory)
93+
* `"git"` — requires `url`; optional `ref` and `path`
94+
* `"directory"` — requires `path`
95+
96+
See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards).
97+
98+
## `strictKnownMarketplaces`
99+
100+
Restricts plugin installation to only the marketplaces explicitly defined by the enterprise. An empty array means complete lockdown. Each entry is a marketplace object with a `source` property indicating the source type. The following source types are supported:
101+
102+
* `"github"` — requires `repo` in `OWNER/REPO` format; optional `ref` and `path`
103+
* `"git"` — requires `url`; optional `ref` and `path`
104+
* `"url"` — requires `url`; optional `headers` object
105+
* `"npm"` — requires `package`
106+
* `"file"` — requires `path`
107+
* `"directory"` — requires `path`
108+
* `"hostPattern"` — requires `hostPattern` (regex matching marketplace hosts)
109+
* `"pathPattern"` — requires `pathPattern` (regex matching marketplace paths)
110+
111+
## `permissions`
112+
113+
### `disableBypassPermissionsMode`
114+
115+
Prevents users from enabling bypass mode (also known as "YOLO mode") in {% data variables.copilot.copilot_cli_short %} and {% data variables.product.prodname_vscode_shortname %}. Bypass mode lets an agent run commands, access files, and fetch URLs without asking for approval.
116+
117+
When you set `disableBypassPermissionsMode` to `"disable"`, users cannot turn on bypass mode in either client:
118+
119+
* In {% data variables.copilot.copilot_cli_short %}, the `--yolo` and `--allow-all` command-line options and the `/yolo` and `/allow-all` slash commands are blocked. Individual flags such as `--allow-all-tools` and `--allow-all-paths` are not blocked.
120+
* In {% data variables.product.prodname_vscode_shortname %}, the global auto-approve setting (`chat.tools.global.autoApprove`), also known as "YOLO mode," is turned off and cannot be re-enabled.
121+
122+
### `model`
123+
124+
Sets auto model selection as the default for new conversations in {% data variables.copilot.copilot_cli_short %}. See [AUTOTITLE](/copilot/concepts/models/auto-model-selection).
125+
126+
When you set `permissions.model` to `"auto"`, new sessions use Auto model unless the user specifies a different model on a per-conversation basis.
127+
128+
## `telemetry`
129+
130+
Configures OpenTelemetry export, routing {% data variables.product.prodname_copilot_short %} usage data to a collector of your choice.
131+
132+
When you set the `telemetry` property, {% data variables.product.prodname_copilot_short %} telemetry is sent to the endpoint you specify. The following sub-properties are supported:
133+
134+
* `enabled`: Set to `true` to turn on telemetry export, or `false` to turn it off.
135+
* `endpoint`: The URL of your OTLP collector (for example, `https://otel-collector.example.com`).
136+
* `protocol`: The transport protocol for telemetry export. Accepted values are `"http/json"` and `"http/protobuf"`.
137+
* `captureContent`: Set to `true` to include prompt and response content in the telemetry payload, or `false` to exclude it.
138+
* `lockCaptureContent`: Set to `true` to prevent users from changing the `captureContent` setting.
139+
* `serviceName`: A label for the telemetry service name (for example, `"copilot"`).
140+
* `resourceAttributes`: An object of OpenTelemetry resource attributes to attach to all exported telemetry (for example, `{"deployment.environment": "production"}`).
141+
* `headers`: An object of HTTP headers to include with each telemetry request (for example, an `Authorization` header for your collector).

src/content-pipelines/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ copilot-cli:
3434
All information relating to files in the ~/.copilot configuration directory, and settings in those files, should go in content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md.
3535
All reference details relating to hooks should go in content/copilot/reference/hooks-reference.md.
3636
All other CLI topics (MCP, skills, agents, permissions, etc.) belong in content/copilot/reference/copilot-cli-reference/cli-command-reference.md even when they mention plugins.
37+
Do not overwrite the paragraph starting "OTel configuration can also be set in..." in cli-command-reference.md
3738
3839
# TODO
3940
# mcp-server:

0 commit comments

Comments
 (0)