blob: 205ce71cb35eb981e0a226e197ad1692ad2e7b6f [file] [log] [blame]
Ed Tanous0cd5f782022-04-26 16:09:09 -07001option(
Ed Tanous0cd5f782022-04-26 16:09:09 -07002 'kvm',
3 type: 'feature',
4 value: 'enabled',
5 description: '''Enable the KVM host video WebSocket. Path is /kvm/0.
Ed Tanous50b37022024-06-25 13:00:04 -07006 Video is from the BMCs /dev/videodevice.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -07007)
8
9option(
10 'tests',
11 type: 'feature',
12 value: 'enabled',
Ed Tanous50b37022024-06-25 13:00:04 -070013 description: 'Enable Unit tests for bmcweb',
Ed Tanous0cd5f782022-04-26 16:09:09 -070014)
15
16option(
17 'vm-websocket',
18 type: 'feature',
19 value: 'enabled',
Ed Tanous36c0f2a2024-02-09 13:50:26 -080020 description: '''Enable the Virtual Media WebSocket. Path is /vm/0/0 and /nbd/<id> to
Ed Tanous0cd5f782022-04-26 16:09:09 -070021 open the websocket. See
Ed Tanous50b37022024-06-25 13:00:04 -070022 https://github.com/openbmc/jsnbd/blob/master/README.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070023)
Ed Tanousefb80622021-02-20 11:04:01 -080024
25# if you use this option and are seeing this comment, please comment here:
26# https://github.com/openbmc/bmcweb/issues/188 and put forward your intentions
27# for this code. At this point, no daemon has been upstreamed that implements
28# this interface, so for the moment this appears to be dead code; In leiu of
29# removing it, it has been disabled to try to give those that use it the
30# opportunity to upstream their backend implementation
Ed Tanous0cd5f782022-04-26 16:09:09 -070031#option(
32# 'vm-nbdproxy',
Ed Tanous36c0f2a2024-02-09 13:50:26 -080033# type: 'feature',
34# value: 'disabled',
Ed Tanous0cd5f782022-04-26 16:09:09 -070035# description: 'Enable the Virtual Media WebSocket.'
36#)
37
38option(
39 'rest',
40 type: 'feature',
41 value: 'disabled',
42 description: '''Enable Phosphor REST (D-Bus) APIs. Paths directly map
43 Phosphor D-Bus object paths, for example,
44 /xyz/openbmc_project/logging/entry/enumerate. See
Ed Tanous50b37022024-06-25 13:00:04 -070045 https://github.com/openbmc/docs/blob/master/rest-api.md.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070046)
47
48option(
49 'redfish',
50 type: 'feature',
51 value: 'enabled',
52 description: '''Enable Redfish APIs. Paths are under /redfish/v1/. See
Ed Tanous50b37022024-06-25 13:00:04 -070053 https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070054)
55
56option(
57 'host-serial-socket',
58 type: 'feature',
59 value: 'enabled',
60 description: '''Enable host serial console WebSocket. Path is /console0.
Ed Tanous50b37022024-06-25 13:00:04 -070061 See https://github.com/openbmc/docs/blob/master/console.md.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070062)
63
64option(
65 'static-hosting',
66 type: 'feature',
67 value: 'enabled',
68 description: '''Enable serving files from the /usr/share/www directory
Ed Tanous50b37022024-06-25 13:00:04 -070069 as paths under /.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070070)
71
72option(
73 'redfish-bmc-journal',
74 type: 'feature',
Willy Tuf8483672022-05-10 15:08:10 -070075 value: 'enabled',
Ed Tanous0cd5f782022-04-26 16:09:09 -070076 description: '''Enable BMC journal access through Redfish. Paths are under
Ed Tanous50b37022024-06-25 13:00:04 -070077 /redfish/v1/Managers/bmc/LogServices/Journal.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070078)
79
80option(
81 'redfish-cpu-log',
82 type: 'feature',
83 value: 'disabled',
84 description: '''Enable CPU log service transactions through Redfish. Paths
Ed Tanous50b37022024-06-25 13:00:04 -070085 are under /redfish/v1/Systems/system/LogServices/Crashdump'.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070086)
87
88option(
89 'redfish-dump-log',
90 type: 'feature',
91 value: 'disabled',
92 description: '''Enable Dump log service transactions through Redfish. Paths
93 are under /redfish/v1/Systems/system/LogServices/Dump
Ed Tanous50b37022024-06-25 13:00:04 -070094 and /redfish/v1/Managers/bmc/LogServices/Dump''',
Ed Tanous0cd5f782022-04-26 16:09:09 -070095)
96
97option(
98 'redfish-dbus-log',
99 type: 'feature',
100 value: 'disabled',
101 description: '''Enable DBUS log service transactions through Redfish. Paths
102 are under
Ed Tanous50b37022024-06-25 13:00:04 -0700103 /redfish/v1/Systems/system/LogServices/EventLog/Entries''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700104)
105
106option(
107 'redfish-host-logger',
108 type: 'feature',
109 value: 'enabled',
110 description: '''Enable host log service transactions based on
111 phosphor-hostlogger through Redfish. Paths are under
Ed Tanous50b37022024-06-25 13:00:04 -0700112 /redfish/v1/Systems/system/LogServices/HostLogger''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700113)
114
115option(
116 'redfish-provisioning-feature',
117 type: 'feature',
118 value: 'disabled',
119 description: '''Enable provisioning feature support in redfish. Paths are
Ed Tanous50b37022024-06-25 13:00:04 -0700120 under /redfish/v1/Systems/system/''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700121)
122
123option(
Ed Tanous253f11b2024-05-16 09:38:31 -0700124 'redfish-manager-uri-name',
125 type: 'string',
126 value: 'bmc',
127 description: '''The static Redfish Manager ID representing the BMC
128 instance. This option will appear in the Redfish tree at
129 /redfish/v1/Managers/<redfish-manager-uri-name>.
130 Defaults to \'bmc\' which resolves to
Ed Tanous50b37022024-06-25 13:00:04 -0700131 /redfish/v1/Managers/bmc''',
Ed Tanous253f11b2024-05-16 09:38:31 -0700132)
133
134option(
135 'redfish-system-uri-name',
136 type: 'string',
137 value: 'system',
138 description: '''The static Redfish System ID representing the host
139 instance. This option will appear in the Redfish tree at
140 /redfish/v1/Systems/<redfish-system-uri-name>.
141 Defaults to \'system\' which resolves to
Ed Tanous50b37022024-06-25 13:00:04 -0700142 /redfish/v1/Systems/system''',
Ed Tanous253f11b2024-05-16 09:38:31 -0700143)
144
145option(
Ed Tanous0cd5f782022-04-26 16:09:09 -0700146 'bmcweb-logging',
Myung Bae662aa6e2023-01-10 14:20:28 -0600147 type: 'combo',
Ed Tanous50b37022024-06-25 13:00:04 -0700148 choices: ['disabled', 'enabled', 'debug', 'info', 'warning', 'error', 'critical'],
Ed Tanous4d1db042024-02-16 13:08:34 -0800149 value: 'error',
Myung Bae662aa6e2023-01-10 14:20:28 -0600150 description: '''Enable output the extended logging level.
151 - disabled: disable bmcweb log traces.
152 - enabled: treated as 'debug'
Ed Tanous50b37022024-06-25 13:00:04 -0700153 - For the other logging level option, see DEVELOPING.md.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700154)
155
156option(
157 'basic-auth',
158 type: 'feature',
159 value: 'enabled',
Ed Tanous50b37022024-06-25 13:00:04 -0700160 description: 'Enable basic authentication',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700161)
162
163option(
164 'session-auth',
165 type: 'feature',
166 value: 'enabled',
Ed Tanous50b37022024-06-25 13:00:04 -0700167 description: 'Enable session authentication',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700168)
169
170option(
171 'xtoken-auth',
172 type: 'feature',
173 value: 'enabled',
Ed Tanous50b37022024-06-25 13:00:04 -0700174 description: 'Enable xtoken authentication',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700175)
176
177option(
178 'cookie-auth',
179 type: 'feature',
180 value: 'enabled',
Ed Tanous50b37022024-06-25 13:00:04 -0700181 description: 'Enable cookie authentication',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700182)
183
184option(
185 'mutual-tls-auth',
186 type: 'feature',
187 value: 'enabled',
188 description: '''Enables authenticating users through TLS client
189 certificates. The insecure-disable-ssl must be disabled for
Ed Tanous50b37022024-06-25 13:00:04 -0700190 this option to take effect.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700191)
192
193option(
Marco Kawajiri0e373b52023-10-31 13:36:58 -0700194 'mutual-tls-common-name-parsing',
195 type: 'combo',
196 choices: ['username', 'meta'],
197 value: 'username',
198 description: '''Sets logic to map the Subject Common Name field to a user
199 in client TLS certificates.
200 - username: Use the Subject CN field as a BMC username
201 (default)
202 - meta: Parses the Subject CN in the format used by
203 Meta Inc (see mutual_tls_meta.cpp for details)
Ed Tanous50b37022024-06-25 13:00:04 -0700204 ''',
Marco Kawajiri0e373b52023-10-31 13:36:58 -0700205)
206
207option(
Ed Tanous0cd5f782022-04-26 16:09:09 -0700208 'ibm-management-console',
209 type: 'feature',
210 value: 'disabled',
211 description: '''Enable the IBM management console specific functionality.
Ed Tanous50b37022024-06-25 13:00:04 -0700212 Paths are under /ibm/v1/''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700213)
214
215option(
216 'google-api',
217 type: 'feature',
218 value: 'disabled',
219 description: '''Enable the Google specific functionality. Paths are under
Ed Tanous50b37022024-06-25 13:00:04 -0700220 /google/v1/''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700221)
222
223option(
224 'http-body-limit',
225 type: 'integer',
226 min: 0,
227 max: 512,
228 value: 30,
Ed Tanous50b37022024-06-25 13:00:04 -0700229 description: 'Specifies the http request body length limit',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700230)
231
232option(
233 'redfish-new-powersubsystem-thermalsubsystem',
234 type: 'feature',
Gunnar Mills86159152024-02-06 14:54:39 -0600235 value: 'enabled',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700236 description: '''Enable/disable the new PowerSubsystem, ThermalSubsystem,
237 and all children schemas. This includes displaying all
Ed Tanous50b37022024-06-25 13:00:04 -0700238 sensors in the SensorCollection.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700239)
240
241option(
242 'redfish-allow-deprecated-power-thermal',
243 type: 'feature',
244 value: 'enabled',
245 description: '''Enable/disable the old Power / Thermal. The default
Gunnar Mills86159152024-02-06 14:54:39 -0600246 condition is allowing the old Power / Thermal. This
Ed Tanous50b37022024-06-25 13:00:04 -0700247 will be disabled by default June 2024. ''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700248)
249
250option(
Gunnar Mills54dce7f2022-08-05 17:01:32 +0000251 'redfish-oem-manager-fan-data',
252 type: 'feature',
253 value: 'enabled',
254 description: '''Enables Redfish OEM fan data on the manager resource.
255 This includes PID and Stepwise controller data. See
Ed Tanous50b37022024-06-25 13:00:04 -0700256 OemManager schema for more detail.''',
Gunnar Mills54dce7f2022-08-05 17:01:32 +0000257)
258
259option(
Jagpal Singh Gill57855662024-04-17 10:44:27 -0700260 'redfish-updateservice-use-dbus',
261 type: 'feature',
262 value: 'disabled',
263 description: '''Enables xyz.openbmc_project.Software.Update D-Bus interface
264 to propagate UpdateService requests to the corresponding
265 updater daemons instead of moving files to /tmp/images dir.
266 This option is temporary, should not be enabled on any
267 production systems. The code will be moved to the normal
268 code update flow and the option will be removed at the end
269 of Q3 2024.
Ed Tanous50b37022024-06-25 13:00:04 -0700270 ''',
Jagpal Singh Gill57855662024-04-17 10:44:27 -0700271)
272
273option(
Ed Tanous0cd5f782022-04-26 16:09:09 -0700274 'https_port',
275 type: 'integer',
276 min: 1,
277 max: 65535,
278 value: 443,
Ed Tanous50b37022024-06-25 13:00:04 -0700279 description: 'HTTPS Port number.',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700280)
Manojkiran Edaaf6298d2020-05-27 08:51:32 +0530281
Carson Labrado7fb33562022-04-18 23:26:56 +0000282option(
Ed Tanousf8ca6d72022-06-28 12:12:03 -0700283 'dns-resolver',
284 type: 'combo',
285 choices: ['systemd-dbus', 'asio'],
286 value: 'systemd-dbus',
287 description: '''Sets which DNS resolver backend should be used.
288 systemd-dbus uses the Systemd ResolveHostname on dbus, but requires dbus
289 support. asio relies on boost::asio::tcp::resolver, but cannot resolve
Ed Tanous50b37022024-06-25 13:00:04 -0700290 names when boost threading is disabled.''',
Ed Tanousf8ca6d72022-06-28 12:12:03 -0700291)
292
293option(
Carson Labrado7fb33562022-04-18 23:26:56 +0000294 'redfish-aggregation',
295 type: 'feature',
296 value: 'disabled',
Ed Tanous50b37022024-06-25 13:00:04 -0700297 description: 'Allows this BMC to aggregate resources from satellite BMCs',
Carson Labrado7fb33562022-04-18 23:26:56 +0000298)
299
Ed Tanous7f3e84a2022-12-28 16:22:54 -0800300option(
301 'experimental-redfish-multi-computer-system',
302 type: 'feature',
303 value: 'disabled',
304 description: '''This is a temporary option flag for staging the
305 ComputerSystemCollection transition to multi-host. It, as well as the code
Patrick Williams17505c62024-02-20 07:09:17 -0600306 still beneath it will be removed on 9/1/2024. Do not enable in a
Ed Tanous50b37022024-06-25 13:00:04 -0700307 production environment, or where API stability is required.''',
Ed Tanous7f3e84a2022-12-28 16:22:54 -0800308)
309
Ed Tanousfca2cbe2021-01-28 14:49:59 -0800310option(
311 'experimental-http2',
312 type: 'feature',
313 value: 'disabled',
314 description: '''Enable HTTP/2 protocol support using nghttp2. Do not rely
315 on this option for any production systems. It may have
Ed Tanous50b37022024-06-25 13:00:04 -0700316 behavior changes or be removed at any time.''',
Ed Tanousfca2cbe2021-01-28 14:49:59 -0800317)
318
Manojkiran Edaaf6298d2020-05-27 08:51:32 +0530319# Insecure options. Every option that starts with a `insecure` flag should
320# not be enabled by default for any platform, unless the author fully comprehends
321# the implications of doing so.In general, enabling these options will cause security
322# problems of varying degrees
323
Ed Tanous0cd5f782022-04-26 16:09:09 -0700324option(
325 'insecure-disable-csrf',
326 type: 'feature',
327 value: 'disabled',
328 description: '''Disable CSRF prevention checks.Should be set to false for
Ed Tanous50b37022024-06-25 13:00:04 -0700329 production systems.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700330)
331
332option(
333 'insecure-disable-ssl',
334 type: 'feature',
335 value: 'disabled',
336 description: '''Disable SSL ports. Should be set to false for production
Ed Tanous50b37022024-06-25 13:00:04 -0700337 systems.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700338)
339
340option(
341 'insecure-disable-auth',
342 type: 'feature',
343 value: 'disabled',
Nan Zhoua43ea822022-05-27 00:42:44 +0000344 description: '''Disable authentication and authoriztion on all ports.
Ed Tanous50b37022024-06-25 13:00:04 -0700345 Should be set to false for production systems.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700346)
347
348option(
Ed Tanous0cd5f782022-04-26 16:09:09 -0700349 'insecure-tftp-update',
350 type: 'feature',
351 value: 'disabled',
352 description: '''Enable TFTP based firmware update transactions through
Ed Tanous50b37022024-06-25 13:00:04 -0700353 Redfish UpdateService. SimpleUpdate.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700354)
355
356option(
Ed Tanous1aa0c2b2022-02-08 12:24:30 +0100357 'insecure-ignore-content-type',
358 type: 'feature',
Ed Tanousdb398022023-06-07 16:38:08 -0700359 value: 'disabled',
Ed Tanous1aa0c2b2022-02-08 12:24:30 +0100360 description: '''Allows parsing PUT/POST/PATCH content as JSON regardless
361 of the presence of the content-type header. Enabling this
362 conflicts with the input parsing guidelines, but may be
363 required to support old clients that may not set the
Ed Tanous50b37022024-06-25 13:00:04 -0700364 Content-Type header on payloads.''',
Ed Tanous1aa0c2b2022-02-08 12:24:30 +0100365)
366
367option(
Ed Tanous0cd5f782022-04-26 16:09:09 -0700368 'insecure-push-style-notification',
369 type: 'feature',
370 value: 'disabled',
Ed Tanous50b37022024-06-25 13:00:04 -0700371 description: 'Enable HTTP push style eventing feature',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700372)
373
374option(
375 'insecure-enable-redfish-query',
376 type: 'feature',
377 value: 'disabled',
378 description: '''Enables Redfish expand query parameter. This feature is
379 experimental, and has not been tested against the full
380 limits of user-facing behavior. It is not recommended to
381 enable on production systems at this time. Other query
Ed Tanous50b37022024-06-25 13:00:04 -0700382 parameters such as only are not controlled by this option.''',
Ed Tanous0cd5f782022-04-26 16:09:09 -0700383)