Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 1 | # Policy Description Guidelines |
Yann Dago | 80f3df91 | 2022-10-27 17:56:49 | [diff] [blame] | 2 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 3 | ## Summary |
Yann Dago | 80f3df91 | 2022-10-27 17:56:49 | [diff] [blame] | 4 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 5 | The policy description provides details of a policy. It's defined in the `desc` |
| 6 | field in each yaml files and will be used to generate |
| 7 | policy doc site |
| 8 | [chromeenterprise.google/policies/](https://chromeenterprise.google/policies/), |
| 9 | ADM/AMDX templates or some other 3rd party management tools UI. |
Chris Sharp | 0f7626d | 2020-07-27 21:48:16 | [diff] [blame] | 10 | |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 11 | More details about policy development can be found in the [Chromium doc](./add_new_policy.md). |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 12 | |
| 13 | ## Structure |
| 14 | |
| 15 | In general, the policy descriptions should follow the structure below. |
| 16 | ``` |
| 17 | <Overview of the policy> |
| 18 | |
| 19 | <Background> |
| 20 | |
| 21 | <One or more bullet points for setup> |
| 22 | |
| 23 | <Any other information> |
| 24 | ``` |
| 25 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 26 | ### Overview |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 27 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 28 | Using one or two sentences to explain the main function that the policy |
| 29 | controls. |
| 30 | |
| 31 | ### Background |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 32 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 33 | It is usually worth a few sentences to describe what the function actually does. |
| 34 | Keep in mind that the readers of the policy description are likely not experts |
| 35 | in this area. |
| 36 | |
| 37 | ### Setup |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 38 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 39 | It’s important to describe different states of a policy, including the unset |
| 40 | state. Please also mention whether users can control any setting when the policy |
| 41 | is unset or set to a specific value. |
| 42 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 43 | ##### Boolean |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 44 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 45 | Boolean policies usually have 3 states: `Enabled`, `Disabled` and `not set`. |
| 46 | |
| 47 | ``` |
| 48 | Setting the policy to Enabled, ... |
| 49 | |
| 50 | Setting the policy to Disabled, ... |
| 51 | |
| 52 | Not setting the policy, ... |
| 53 | ``` |
| 54 | |
| 55 | Please use `Enabled` with capital `E` and `Disabled` with capital `D`. |
| 56 | |
| 57 | In some cases, if the policy is default to `Enabled` or `Disabled`, combine the |
| 58 | `not set` one to it. |
| 59 | |
| 60 | ``` |
| 61 | Setting the policy to Enabled or not set, ... |
| 62 | |
| 63 | Setting the policy to Disabled, .. |
| 64 | ``` |
| 65 | |
| 66 | If you need a long sentence to describe the policy state or need to repeat |
| 67 | yourself in each state, consider putting that information in the background |
| 68 | section above and keep the sentences here short. |
| 69 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 70 | #### Enum |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 71 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 72 | Similar to boolean, all enum options need to be listed separately. When |
| 73 | referring to enum options, please mention their values and captions. |
| 74 | |
| 75 | ``` |
| 76 | Setting the policy to <0 - caption of option 0>, ... |
| 77 | |
| 78 | Setting the policy to <1 - caption of option 1>, ... |
| 79 | |
| 80 | ... |
| 81 | Not setting the policy, ... |
| 82 | ``` |
| 83 | |
| 84 | Same as boolean, if you need a long sentence to describe the policy state |
| 85 | or need to repeat yourself in each state, consider putting that information in |
| 86 | the background section above and keep the sentences here short. |
| 87 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 88 | #### String/List/Dictionary |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 89 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 90 | Those policies are usually complicated. In general, please describe the input |
| 91 | requirements, like what each key of the dictionary means or what kind of string |
| 92 | format can be accepted. |
| 93 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 94 | #### Others |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 95 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 96 | Any other useful information can be provided here. Here are some common topics. |
| 97 | |
| 98 | ##### Exceptions |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 99 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 100 | Uncommon behavior. For example, most policies override user settings by default. |
| 101 | If a policy configuration won’t do so, it definitely needs to be highlighted. |
| 102 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 103 | ##### Conflicts |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 104 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 105 | When a policy can have a conflict with other policies or contains two |
| 106 | mutual options, it’s always a good idea to talk about those edge cases. For |
| 107 | example, if there is an allow list and block list, what if an option is put into |
| 108 | both lists? |
| 109 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 110 | ##### Expiration |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 111 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 112 | Some policies are planned to be only available for a certain amount of time. |
| 113 | It’s very important to communicate it ahead of time. However, it’s ok not to |
| 114 | mention a specific date if the timeline is not decided yet. |
| 115 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 116 | ##### Not launched |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 117 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 118 | Same as expiration, a policy can be added before the feature is launched. Please |
| 119 | describe the default behavior now and once the feature is rolled out. |
| 120 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 121 | ##### Sensitive policies |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 122 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 123 | Malware could abuse policies to control users' devices. Some policies are |
| 124 | particularly dangerous so there will be additional management requirements |
| 125 | before applying them. For those policies, please append the following statements |
| 126 | at the end of the policy description according to their supported platforms. |
| 127 | |
| 128 | ``` |
Salma Elmahallawy | b75212e | 2025-06-09 22:05:11 | [diff] [blame] | 129 | On <ph name="MS_WIN_NAME">Microsoft® Windows®</ph>, this policy is only available on instances that are joined to a <ph name="MS_AD_NAME">Microsoft® Active Directory®</ph> domain, joined to <ph name="MS_AAD_NAME">Microsoft® Azure® Active Directory®</ph> or enrolled in <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME">Chrome Enterprise Core</ph>`. |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 130 | |
Salma Elmahallawy | b75212e | 2025-06-09 22:05:11 | [diff] [blame] | 131 | On <ph name="MAC_OS_NAME">macOS</ph>, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME">Chrome Enterprise Core</ph>. |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 132 | ``` |
| 133 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 134 | #### Too many details |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 135 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 136 | The policy description can’t be longer than 3500 characters. However, even |
| 137 | before that limit is reached, as long as it’s necessary, consider creating a |
| 138 | webpage for additional details and link it from the policy description. |
| 139 | |
| 140 | Usually, this can be a help center article. Please contact a tech writer to |
| 141 | create one for you. It can also be any public documentation that can help. For |
| 142 | example, if the policy accepts urls as input, you can link |
| 143 | [this](https://support.google.com/chrome/a?p=url_blocklist_filter_format) or |
| 144 | [this](https://chromeenterprise.google/policies/url-patterns/) article to avoid |
| 145 | repeating most edge cases of URL input and only focus on the unique part. |
| 146 | |
| 147 | Note that when linking the help center article, please use a p link (e.g. |
| 148 | `a?p=url_blocklist_filter_format`) instead of a number link (e.g. |
| 149 | `a/answer/9942583`). Contact a tech writer to create the p link for you. |
| 150 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 151 | ## Format |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 152 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 153 | The Policy description will be displayed in various different tools. Some of |
| 154 | these tools may not support any kind of formatting except splitting each |
| 155 | paragraph with an empty line. |
| 156 | |
| 157 | ``` |
| 158 | Line A |
| 159 | |
| 160 | Line B |
| 161 | |
| 162 | Line C |
| 163 | ``` |
| 164 | |
| 165 | Note that single line return may be used to keep the line length reasonably |
| 166 | short. But it will be ignored in some generated documentations. In other words, |
| 167 | |
| 168 | ``` |
| 169 | Line A |
| 170 | Line B |
| 171 | Line C |
| 172 | ``` |
| 173 | |
| 174 | Will be presented as |
| 175 | ``` |
| 176 | Line A Line B Line C |
| 177 | ``` |
| 178 | |
| 179 | If complicated formatting is needed, please create a help center article to |
| 180 | include better expression such as graphs and tables. |
| 181 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 182 | ## Translation |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 183 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 184 | All policy descriptions and captions will be translated into multiple languages. |
| 185 | Avoid using phrases that are unique to English culture and hard to translate. |
| 186 | |
| 187 | In addition to that, to ensure consistency in the policy descriptions, the |
| 188 | following is a mapping of how various product names and the like should be |
| 189 | referenced. All placeholders tags must be opened and closed on the same line to |
| 190 | avoid validation errors. |
| 191 | |
| 192 | #### Chrome Product |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 193 | |
Chris Sharp | d474798 | 2020-08-12 19:24:31 | [diff] [blame] | 194 | * Chrome: `<ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>` |
Andrey Davydov | 32462d76 | 2022-07-15 08:48:30 | [diff] [blame] | 195 | * ChromeOS: `<ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph>` |
Ted Brandston | b293f90 | 2023-10-19 16:19:56 | [diff] [blame] | 196 | * ChromeOS Flex: `<ph name="PRODUCT_OS_FLEX_NAME">Google ChromeOS Flex</ph>` |
Owen Min | e2feb85 | 2020-11-18 18:07:29 | [diff] [blame] | 197 | * Chrome Browser Cloud Management: `<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME">Chrome Browser Cloud Management</ph>` |
Chris Sharp | 40ecc10 | 2020-11-20 14:51:35 | [diff] [blame] | 198 | * Chrome Cleanup: `<ph name="CHROME_CLEANUP_NAME">Chrome Cleanup</ph>` |
Leonid Baraz | 8b172e2c | 2022-01-06 00:36:29 | [diff] [blame] | 199 | * Chrome Remote Desktop: `<ph name="CHROME_REMOTE_DESKTOP_PRODUCT_NAME">Chrome Remote Desktop</ph>` |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 200 | * Chrome Sync: `<ph name="CHROME_SYNC_NAME">Chrome Sync</ph>` |
| 201 | |
| 202 | #### Google Product |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 203 | |
Chris Sharp | 44f6c818 | 2020-10-27 15:22:23 | [diff] [blame] | 204 | * Google Admin console: `<ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME">Google Admin console</ph>` |
Ramya Gopalan | 535dd6f | 2022-09-16 22:17:17 | [diff] [blame] | 205 | * Google Calendar: `<ph name="GOOGLE_CALENDAR_NAME">Google Calendar</ph>` |
Chris Sharp | d474798 | 2020-08-12 19:24:31 | [diff] [blame] | 206 | * Google Cast: `<ph name="PRODUCT_NAME">Google Cast</ph>` |
Artsiom Mitrokhin | e92fbde | 2024-03-25 15:02:09 | [diff] [blame] | 207 | * Google Classroom: `<ph name="GOOGLE_CLASSROOM_NAME">Google Classroom</ph>` |
Chris Sharp | 9bf19fd | 2020-11-20 21:03:55 | [diff] [blame] | 208 | * Google Cloud Print: `<ph name="CLOUD_PRINT_NAME">Google Cloud Print</ph>` |
Chris Sharp | d474798 | 2020-08-12 19:24:31 | [diff] [blame] | 209 | * Google Drive: `<ph name="GOOGLE_DRIVE_NAME">Google Drive</ph>` |
Quentin Pubert | 7ba98779 | 2023-10-25 10:08:52 | [diff] [blame] | 210 | * Google Photos: `<ph name="GOOGLE_PHOTOS_PRODUCT_NAME">Google Photos</ph>` |
Artsiom Mitrokhin | e92fbde | 2024-03-25 15:02:09 | [diff] [blame] | 211 | * Google Tasks: `<ph name="GOOGLE_TASKS_NAME">Google Tasks</ph>` |
Igor Ruvinov | e4580907 | 2022-05-27 14:48:31 | [diff] [blame] | 212 | * Google Update: `<ph name="GOOGLE_UPDATE_NAME">Google Update</ph>` |
Adam Pyle | 541f3d8 | 2021-04-22 01:10:45 | [diff] [blame] | 213 | * Google Workspace: `<ph name="GOOGLE_WORKSPACE_PRODUCT_NAME">Google Workspace</ph>` |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 214 | |
| 215 | #### Operating System |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 216 | |
Chris Sharp | bd97c25 | 2020-11-30 23:05:36 | [diff] [blame] | 217 | * Android: `<ph name="ANDROID_NAME">Android</ph>` |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 218 | * Fuchsia: `<ph name="FUCHSIA_OS_NAME">Fuchsia</ph>` |
Guillaume Jenkins | 825ce65 | 2021-02-24 20:47:32 | [diff] [blame] | 219 | * iOS: `<ph name="IOS_NAME">iOS</ph>` |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 220 | * Linux: `<ph name="LINUX_OS_NAME">Linux</ph>` |
| 221 | * macOS: `<ph name="MAC_OS_NAME">macOS</ph>` |
Chris Sharp | d474798 | 2020-08-12 19:24:31 | [diff] [blame] | 222 | * Windows: `<ph name="MS_WIN_NAME">Microsoft® Windows®</ph>` |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 223 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 224 | #### Other Product |
Owen Min | 75fc665 | 2025-01-27 17:23:57 | [diff] [blame] | 225 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 226 | * Internet Explorer: `<ph name="IE_PRODUCT_NAME">Internet® Explorer®</ph>` |
Owen Min | 7eefee07 | 2023-05-19 18:38:26 | [diff] [blame] | 227 | * Microsoft Active Directory: `<ph name="MS_AD_NAME">Microsoft® Active Directory®</ph>` |
| 228 | * Microsoft Azure Active Directory `<ph name="MS_AAD_NAME">Microsoft® Azure® Active Directory®</ph>` |
Owen Min | 5350ed1 | 2023-06-06 13:53:15 | [diff] [blame] | 229 | |
Owen Min | a8594a4f | 2024-10-08 14:03:13 | [diff] [blame] | 230 | Using placeholders means the text won’t be translated. Please update the list |
| 231 | above if a new placeholder is introduced. |