blob: a95d4f66f51882a631d5d46a744b30f7bcbbd8aa [file] [log] [blame] [view]
Owen Mina8594a4f2024-10-08 14:03:131# Policy Description Guidelines
Yann Dago80f3df912022-10-27 17:56:492
Owen Mina8594a4f2024-10-08 14:03:133## Summary
Yann Dago80f3df912022-10-27 17:56:494
Owen Mina8594a4f2024-10-08 14:03:135The policy description provides details of a policy. It's defined in the `desc`
6field in each yaml files and will be used to generate
7policy doc site
8[chromeenterprise.google/policies/](https://chromeenterprise.google/policies/),
9ADM/AMDX templates or some other 3rd party management tools UI.
Chris Sharp0f7626d2020-07-27 21:48:1610
Owen Min75fc6652025-01-27 17:23:5711More details about policy development can be found in the [Chromium doc](./add_new_policy.md).
Owen Mina8594a4f2024-10-08 14:03:1312
13## Structure
14
15In 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 Mina8594a4f2024-10-08 14:03:1326### Overview
Owen Min75fc6652025-01-27 17:23:5727
Owen Mina8594a4f2024-10-08 14:03:1328Using one or two sentences to explain the main function that the policy
29controls.
30
31### Background
Owen Min75fc6652025-01-27 17:23:5732
Owen Mina8594a4f2024-10-08 14:03:1333It is usually worth a few sentences to describe what the function actually does.
34Keep in mind that the readers of the policy description are likely not experts
35in this area.
36
37### Setup
Owen Min75fc6652025-01-27 17:23:5738
Owen Mina8594a4f2024-10-08 14:03:1339It’s important to describe different states of a policy, including the unset
40state. Please also mention whether users can control any setting when the policy
41is unset or set to a specific value.
42
Owen Mina8594a4f2024-10-08 14:03:1343##### Boolean
Owen Min75fc6652025-01-27 17:23:5744
Owen Mina8594a4f2024-10-08 14:03:1345Boolean policies usually have 3 states: `Enabled`, `Disabled` and `not set`.
46
47```
48Setting the policy to Enabled, ...
49
50Setting the policy to Disabled, ...
51
52Not setting the policy, ...
53```
54
55Please use `Enabled` with capital `E` and `Disabled` with capital `D`.
56
57In some cases, if the policy is default to `Enabled` or `Disabled`, combine the
58`not set` one to it.
59
60```
61Setting the policy to Enabled or not set, ...
62
63Setting the policy to Disabled, ..
64```
65
66If you need a long sentence to describe the policy state or need to repeat
67yourself in each state, consider putting that information in the background
68section above and keep the sentences here short.
69
Owen Mina8594a4f2024-10-08 14:03:1370#### Enum
Owen Min75fc6652025-01-27 17:23:5771
Owen Mina8594a4f2024-10-08 14:03:1372Similar to boolean, all enum options need to be listed separately. When
73referring to enum options, please mention their values and captions.
74
75```
76Setting the policy to <0 - caption of option 0>, ...
77
78Setting the policy to <1 - caption of option 1>, ...
79
80...
81Not setting the policy, ...
82```
83
84Same as boolean, if you need a long sentence to describe the policy state
85or need to repeat yourself in each state, consider putting that information in
86the background section above and keep the sentences here short.
87
Owen Mina8594a4f2024-10-08 14:03:1388#### String/List/Dictionary
Owen Min75fc6652025-01-27 17:23:5789
Owen Mina8594a4f2024-10-08 14:03:1390Those policies are usually complicated. In general, please describe the input
91requirements, like what each key of the dictionary means or what kind of string
92format can be accepted.
93
Owen Mina8594a4f2024-10-08 14:03:1394#### Others
Owen Min75fc6652025-01-27 17:23:5795
Owen Mina8594a4f2024-10-08 14:03:1396Any other useful information can be provided here. Here are some common topics.
97
98##### Exceptions
Owen Min75fc6652025-01-27 17:23:5799
Owen Mina8594a4f2024-10-08 14:03:13100Uncommon behavior. For example, most policies override user settings by default.
101If a policy configuration won’t do so, it definitely needs to be highlighted.
102
Owen Mina8594a4f2024-10-08 14:03:13103##### Conflicts
Owen Min75fc6652025-01-27 17:23:57104
Owen Mina8594a4f2024-10-08 14:03:13105When a policy can have a conflict with other policies or contains two
106mutual options, it’s always a good idea to talk about those edge cases. For
107example, if there is an allow list and block list, what if an option is put into
108both lists?
109
Owen Mina8594a4f2024-10-08 14:03:13110##### Expiration
Owen Min75fc6652025-01-27 17:23:57111
Owen Mina8594a4f2024-10-08 14:03:13112Some policies are planned to be only available for a certain amount of time.
113It’s very important to communicate it ahead of time. However, it’s ok not to
114mention a specific date if the timeline is not decided yet.
115
Owen Mina8594a4f2024-10-08 14:03:13116##### Not launched
Owen Min75fc6652025-01-27 17:23:57117
Owen Mina8594a4f2024-10-08 14:03:13118Same as expiration, a policy can be added before the feature is launched. Please
119describe the default behavior now and once the feature is rolled out.
120
Owen Mina8594a4f2024-10-08 14:03:13121##### Sensitive policies
Owen Min75fc6652025-01-27 17:23:57122
Owen Mina8594a4f2024-10-08 14:03:13123Malware could abuse policies to control users' devices. Some policies are
124particularly dangerous so there will be additional management requirements
125before applying them. For those policies, please append the following statements
126at the end of the policy description according to their supported platforms.
127
128```
Salma Elmahallawyb75212e2025-06-09 22:05:11129On <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 Mina8594a4f2024-10-08 14:03:13130
Salma Elmahallawyb75212e2025-06-09 22:05:11131On <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 Mina8594a4f2024-10-08 14:03:13132```
133
Owen Mina8594a4f2024-10-08 14:03:13134#### Too many details
Owen Min75fc6652025-01-27 17:23:57135
Owen Mina8594a4f2024-10-08 14:03:13136The policy description can’t be longer than 3500 characters. However, even
137before that limit is reached, as long as it’s necessary, consider creating a
138webpage for additional details and link it from the policy description.
139
140Usually, this can be a help center article. Please contact a tech writer to
141create one for you. It can also be any public documentation that can help. For
142example, 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
145repeating most edge cases of URL input and only focus on the unique part.
146
147Note 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 Mina8594a4f2024-10-08 14:03:13151## Format
Owen Min75fc6652025-01-27 17:23:57152
Owen Mina8594a4f2024-10-08 14:03:13153The Policy description will be displayed in various different tools. Some of
154these tools may not support any kind of formatting except splitting each
155paragraph with an empty line.
156
157```
158Line A
159
160Line B
161
162Line C
163```
164
165Note that single line return may be used to keep the line length reasonably
166short. But it will be ignored in some generated documentations. In other words,
167
168```
169Line A
170Line B
171Line C
172```
173
174Will be presented as
175```
176Line A Line B Line C
177```
178
179If complicated formatting is needed, please create a help center article to
180include better expression such as graphs and tables.
181
Owen Mina8594a4f2024-10-08 14:03:13182## Translation
Owen Min75fc6652025-01-27 17:23:57183
Owen Mina8594a4f2024-10-08 14:03:13184All policy descriptions and captions will be translated into multiple languages.
185Avoid using phrases that are unique to English culture and hard to translate.
186
187In addition to that, to ensure consistency in the policy descriptions, the
188following is a mapping of how various product names and the like should be
189referenced. All placeholders tags must be opened and closed on the same line to
190avoid validation errors.
191
192#### Chrome Product
Owen Min75fc6652025-01-27 17:23:57193
Chris Sharpd4747982020-08-12 19:24:31194* Chrome: `<ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>`
Andrey Davydov32462d762022-07-15 08:48:30195* ChromeOS: `<ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph>`
Ted Brandstonb293f902023-10-19 16:19:56196* ChromeOS Flex: `<ph name="PRODUCT_OS_FLEX_NAME">Google ChromeOS Flex</ph>`
Owen Mine2feb852020-11-18 18:07:29197* Chrome Browser Cloud Management: `<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME">Chrome Browser Cloud Management</ph>`
Chris Sharp40ecc102020-11-20 14:51:35198* Chrome Cleanup: `<ph name="CHROME_CLEANUP_NAME">Chrome Cleanup</ph>`
Leonid Baraz8b172e2c2022-01-06 00:36:29199* Chrome Remote Desktop: `<ph name="CHROME_REMOTE_DESKTOP_PRODUCT_NAME">Chrome Remote Desktop</ph>`
Owen Mina8594a4f2024-10-08 14:03:13200* Chrome Sync: `<ph name="CHROME_SYNC_NAME">Chrome Sync</ph>`
201
202#### Google Product
Owen Min75fc6652025-01-27 17:23:57203
Chris Sharp44f6c8182020-10-27 15:22:23204* Google Admin console: `<ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME">Google Admin console</ph>`
Ramya Gopalan535dd6f2022-09-16 22:17:17205* Google Calendar: `<ph name="GOOGLE_CALENDAR_NAME">Google Calendar</ph>`
Chris Sharpd4747982020-08-12 19:24:31206* Google Cast: `<ph name="PRODUCT_NAME">Google Cast</ph>`
Artsiom Mitrokhine92fbde2024-03-25 15:02:09207* Google Classroom: `<ph name="GOOGLE_CLASSROOM_NAME">Google Classroom</ph>`
Chris Sharp9bf19fd2020-11-20 21:03:55208* Google Cloud Print: `<ph name="CLOUD_PRINT_NAME">Google Cloud Print</ph>`
Chris Sharpd4747982020-08-12 19:24:31209* Google Drive: `<ph name="GOOGLE_DRIVE_NAME">Google Drive</ph>`
Quentin Pubert7ba987792023-10-25 10:08:52210* Google Photos: `<ph name="GOOGLE_PHOTOS_PRODUCT_NAME">Google Photos</ph>`
Artsiom Mitrokhine92fbde2024-03-25 15:02:09211* Google Tasks: `<ph name="GOOGLE_TASKS_NAME">Google Tasks</ph>`
Igor Ruvinove45809072022-05-27 14:48:31212* Google Update: `<ph name="GOOGLE_UPDATE_NAME">Google Update</ph>`
Adam Pyle541f3d82021-04-22 01:10:45213* Google Workspace: `<ph name="GOOGLE_WORKSPACE_PRODUCT_NAME">Google Workspace</ph>`
Owen Mina8594a4f2024-10-08 14:03:13214
215#### Operating System
Owen Min75fc6652025-01-27 17:23:57216
Chris Sharpbd97c252020-11-30 23:05:36217* Android: `<ph name="ANDROID_NAME">Android</ph>`
Owen Mina8594a4f2024-10-08 14:03:13218* Fuchsia: `<ph name="FUCHSIA_OS_NAME">Fuchsia</ph>`
Guillaume Jenkins825ce652021-02-24 20:47:32219* iOS: `<ph name="IOS_NAME">iOS</ph>`
Owen Mina8594a4f2024-10-08 14:03:13220* Linux: `<ph name="LINUX_OS_NAME">Linux</ph>`
221* macOS: `<ph name="MAC_OS_NAME">macOS</ph>`
Chris Sharpd4747982020-08-12 19:24:31222* Windows: `<ph name="MS_WIN_NAME">Microsoft® Windows®</ph>`
Owen Mina8594a4f2024-10-08 14:03:13223
Owen Mina8594a4f2024-10-08 14:03:13224#### Other Product
Owen Min75fc6652025-01-27 17:23:57225
Owen Mina8594a4f2024-10-08 14:03:13226* Internet Explorer: `<ph name="IE_PRODUCT_NAME">Internet® Explorer®</ph>`
Owen Min7eefee072023-05-19 18:38:26227* 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 Min5350ed12023-06-06 13:53:15229
Owen Mina8594a4f2024-10-08 14:03:13230Using placeholders means the text won’t be translated. Please update the list
231above if a new placeholder is introduced.