diff --git a/content/manuals/ai/governance/local/network-rules.md b/content/manuals/ai/governance/local/network-rules.md index 632f135ce34a..05179f5806f0 100644 --- a/content/manuals/ai/governance/local/network-rules.md +++ b/content/manuals/ai/governance/local/network-rules.md @@ -79,6 +79,10 @@ Write the host without a scheme, such as `api.github.com` rather than include a port, but it must be a hostname. To match an IP address or a CIDR range, use a network rule without `--method` or `--path`. +Paths and query parameter names and values ignore ASCII letter case. For +examples and wildcard behavior, see +[HTTP rules](../reference/network-rules.md#http-method-and-path). + ### Choose methods Pass several methods as a comma-separated list, or `ANY` to match every diff --git a/content/manuals/ai/governance/organization/policies/filesystem.md b/content/manuals/ai/governance/organization/policies/filesystem.md index b24ac2037782..be98c6d8a4d8 100644 --- a/content/manuals/ai/governance/organization/policies/filesystem.md +++ b/content/manuals/ai/governance/organization/policies/filesystem.md @@ -36,7 +36,10 @@ Each filesystem mount rule allows or denies `read`, `write`, or both on the host paths it lists. A read-only workspace needs only `read`, and a writable workspace needs both. Paths can use wildcards, and `~` expands to each user's home directory, so a single `~/**` rule matches every developer's home tree. -For the path formats on each operating system and how wildcards match, see + +POSIX path matching is case-sensitive, including on macOS. Windows drive paths +and UNC paths, including WSL UNC paths, match without regard to case. For path +formats and matching details, see [Filesystem mount rule syntax](../../reference/filesystem-rules.md). ## When changes take effect diff --git a/content/manuals/ai/governance/reference/filesystem-rules.md b/content/manuals/ai/governance/reference/filesystem-rules.md index e2291f67698f..094c8fb73c66 100644 --- a/content/manuals/ai/governance/reference/filesystem-rules.md +++ b/content/manuals/ai/governance/reference/filesystem-rules.md @@ -36,6 +36,14 @@ location that several platforms share needs a rule for each: On Windows, `*:` matches any drive letter, so `*:\data\**` matches the path on any drive. +Case sensitivity depends on the path format: + +- POSIX paths on macOS and Linux are case-sensitive: `/data/Project/**` doesn't + match `/data/project/file`. Use the directory names' capitalization on disk, + even on a case-insensitive macOS volume. +- Windows drive paths and UNC paths, including WSL UNC paths, are + case-insensitive: `C:\Data\Project\**` matches `c:\data\project\file`. + Wildcards behave the same way in every path format: | Pattern | Example | Matches | diff --git a/content/manuals/ai/governance/reference/network-rules.md b/content/manuals/ai/governance/reference/network-rules.md index 5d26fbfde857..fa4c97f48ca2 100644 --- a/content/manuals/ai/governance/reference/network-rules.md +++ b/content/manuals/ai/governance/reference/network-rules.md @@ -42,7 +42,11 @@ for an organization policy and [Allow or block HTTP methods and paths](../local/network-rules.md#allow-or-block-http-methods-and-paths) for a local one. -Path patterns follow the same wildcard rules as filesystem paths, where `*` +HTTP path matching ignores ASCII letter case: `/API/**` matches `/api/items`. +Non-ASCII characters remain case-sensitive. This applies to both allow and deny +rules. + +Path patterns use the same wildcards as filesystem paths, where `*` matches within one path segment and `**` matches any depth. A pattern without a wildcard matches that path exactly, so `/repos` matches `/repos` and nothing below it. Every pattern must start with `/` and can't contain a query string, a @@ -56,7 +60,8 @@ An HTTP rule can also restrict query parameters independently of the path. Use exact parameter names and values, or a single `*` at the start or end of a value to match a suffix or prefix. A value of `*` matches any value, including -an empty one. Names cannot contain wildcards. Names and values are +an empty one. Names cannot contain wildcards. Names and values ignore ASCII +letter case, so `Tag=PROD` matches `tag=prod`. Non-ASCII characters remain case-sensitive. For rules created with `--query`, every specified parameter must match. @@ -103,6 +108,8 @@ ICMP is blocked. ### Hostname patterns +Hostname matching is case-insensitive: `EXAMPLE.com` matches `example.com`. + | Pattern | Example | Matches | | --------------------- | ----------------- | ------------------------------------------------------------- | | Exact hostname | `example.com` | `example.com` on any port, not subdomains | diff --git a/content/manuals/ai/governance/troubleshooting.md b/content/manuals/ai/governance/troubleshooting.md index 8cc6ec16a173..21c8f0ecd5b3 100644 --- a/content/manuals/ai/governance/troubleshooting.md +++ b/content/manuals/ai/governance/troubleshooting.md @@ -115,7 +115,8 @@ details, see If a sandbox fails to mount with a `mount policy denied` error, an organization filesystem policy doesn't allow the path. Check that the filesystem allow rule uses `**` rather than `*`. A single `*` doesn't match across directory -separators. For more details, see +separators. For macOS and Linux paths, also check that the rule matches the +directory names' capitalization on disk. For more details, see [Organization filesystem access policies](organization/policies/filesystem.md). ## Organization policy changes aren't taking effect