1option( 2 'yocto-deps', 3 type: 'feature', 4 value: 'disabled', 5 description: 'Use YOCTO dependencies system', 6) 7 8option( 9 'kvm', 10 type: 'feature', 11 value: 'enabled', 12 description: '''Enable the KVM host video WebSocket. Path is /kvm/0. 13 Video is from the BMCs /dev/videodevice.''', 14) 15 16option( 17 'tests', 18 type: 'feature', 19 value: 'enabled', 20 description: 'Enable Unit tests for bmcweb', 21) 22 23option( 24 'vm-websocket', 25 type: 'feature', 26 value: 'enabled', 27 description: '''Enable the Virtual Media WebSocket. Path is /vm/0/0 and /nbd/<id> to 28 open the websocket. See 29 https://github.com/openbmc/jsnbd/blob/master/README.''', 30) 31 32# if you use this option and are seeing this comment, please comment here: 33# https://github.com/openbmc/bmcweb/issues/188 and put forward your intentions 34# for this code. At this point, no daemon has been upstreamed that implements 35# this interface, so for the moment this appears to be dead code; In leiu of 36# removing it, it has been disabled to try to give those that use it the 37# opportunity to upstream their backend implementation 38#option( 39# 'vm-nbdproxy', 40# type: 'feature', 41# value: 'disabled', 42# description: 'Enable the Virtual Media WebSocket.' 43#) 44 45option( 46 'rest', 47 type: 'feature', 48 value: 'disabled', 49 description: '''Enable Phosphor REST (D-Bus) APIs. Paths directly map 50 Phosphor D-Bus object paths, for example, 51 /xyz/openbmc_project/logging/entry/enumerate. See 52 https://github.com/openbmc/docs/blob/master/rest-api.md.''', 53) 54 55option( 56 'redfish', 57 type: 'feature', 58 value: 'enabled', 59 description: '''Enable Redfish APIs. Paths are under /redfish/v1/. See 60 https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish.''', 61) 62 63option( 64 'host-serial-socket', 65 type: 'feature', 66 value: 'enabled', 67 description: '''Enable host serial console WebSocket. Path is /console0. 68 See https://github.com/openbmc/docs/blob/master/console.md.''', 69) 70 71option( 72 'static-hosting', 73 type: 'feature', 74 value: 'enabled', 75 description: '''Enable serving files from the /usr/share/www directory 76 as paths under /.''', 77) 78 79option( 80 'redfish-bmc-journal', 81 type: 'feature', 82 value: 'enabled', 83 description: '''Enable BMC journal access through Redfish. Paths are under 84 /redfish/v1/Managers/bmc/LogServices/Journal.''', 85) 86 87option( 88 'redfish-cpu-log', 89 type: 'feature', 90 value: 'disabled', 91 description: '''Enable CPU log service transactions through Redfish. Paths 92 are under /redfish/v1/Systems/system/LogServices/Crashdump'.''', 93) 94 95option( 96 'redfish-dump-log', 97 type: 'feature', 98 value: 'disabled', 99 description: '''Enable Dump log service transactions through Redfish. Paths 100 are under /redfish/v1/Systems/system/LogServices/Dump 101 and /redfish/v1/Managers/bmc/LogServices/Dump''', 102) 103 104option( 105 'redfish-dbus-log', 106 type: 'feature', 107 value: 'disabled', 108 description: '''Enable DBUS log service transactions through Redfish. Paths 109 are under 110 /redfish/v1/Systems/system/LogServices/EventLog/Entries''', 111) 112 113option( 114 'redfish-host-logger', 115 type: 'feature', 116 value: 'enabled', 117 description: '''Enable host log service transactions based on 118 phosphor-hostlogger through Redfish. Paths are under 119 /redfish/v1/Systems/system/LogServices/HostLogger''', 120) 121 122option( 123 'redfish-provisioning-feature', 124 type: 'feature', 125 value: 'disabled', 126 description: '''Enable provisioning feature support in redfish. Paths are 127 under /redfish/v1/Systems/system/''', 128) 129 130option( 131 'redfish-manager-uri-name', 132 type: 'string', 133 value: 'bmc', 134 description: '''The static Redfish Manager ID representing the BMC 135 instance. This option will appear in the Redfish tree at 136 /redfish/v1/Managers/<redfish-manager-uri-name>. 137 Defaults to \'bmc\' which resolves to 138 /redfish/v1/Managers/bmc''', 139) 140 141option( 142 'redfish-system-uri-name', 143 type: 'string', 144 value: 'system', 145 description: '''The static Redfish System ID representing the host 146 instance. This option will appear in the Redfish tree at 147 /redfish/v1/Systems/<redfish-system-uri-name>. 148 Defaults to \'system\' which resolves to 149 /redfish/v1/Systems/system''', 150) 151 152option( 153 'bmcweb-logging', 154 type: 'combo', 155 choices: ['disabled', 'enabled', 'debug', 'info', 'warning', 'error', 'critical'], 156 value: 'error', 157 description: '''Enable output the extended logging level. 158 - disabled: disable bmcweb log traces. 159 - enabled: treated as 'debug' 160 - For the other logging level option, see DEVELOPING.md.''', 161) 162 163option( 164 'basic-auth', 165 type: 'feature', 166 value: 'enabled', 167 description: 'Enable basic authentication', 168) 169 170option( 171 'session-auth', 172 type: 'feature', 173 value: 'enabled', 174 description: 'Enable session authentication', 175) 176 177option( 178 'xtoken-auth', 179 type: 'feature', 180 value: 'enabled', 181 description: 'Enable xtoken authentication', 182) 183 184option( 185 'cookie-auth', 186 type: 'feature', 187 value: 'enabled', 188 description: 'Enable cookie authentication', 189) 190 191option( 192 'mutual-tls-auth', 193 type: 'feature', 194 value: 'enabled', 195 description: '''Enables authenticating users through TLS client 196 certificates. The insecure-disable-ssl must be disabled for 197 this option to take effect.''', 198) 199 200option( 201 'mutual-tls-common-name-parsing', 202 type: 'combo', 203 choices: ['username', 'meta'], 204 value: 'username', 205 description: '''Sets logic to map the Subject Common Name field to a user 206 in client TLS certificates. 207 - username: Use the Subject CN field as a BMC username 208 (default) 209 - meta: Parses the Subject CN in the format used by 210 Meta Inc (see mutual_tls_meta.cpp for details) 211 ''', 212) 213 214option( 215 'ibm-management-console', 216 type: 'feature', 217 value: 'disabled', 218 description: '''Enable the IBM management console specific functionality. 219 Paths are under /ibm/v1/''', 220) 221 222option( 223 'google-api', 224 type: 'feature', 225 value: 'disabled', 226 description: '''Enable the Google specific functionality. Paths are under 227 /google/v1/''', 228) 229 230option( 231 'http-body-limit', 232 type: 'integer', 233 min: 0, 234 max: 512, 235 value: 30, 236 description: 'Specifies the http request body length limit', 237) 238 239option( 240 'redfish-new-powersubsystem-thermalsubsystem', 241 type: 'feature', 242 value: 'enabled', 243 description: '''Enable/disable the new PowerSubsystem, ThermalSubsystem, 244 and all children schemas. This includes displaying all 245 sensors in the SensorCollection.''', 246) 247 248option( 249 'redfish-allow-deprecated-power-thermal', 250 type: 'feature', 251 value: 'enabled', 252 description: '''Enable/disable the old Power / Thermal. The default 253 condition is allowing the old Power / Thermal. This 254 will be disabled by default June 2024. ''', 255) 256 257option( 258 'redfish-oem-manager-fan-data', 259 type: 'feature', 260 value: 'enabled', 261 description: '''Enables Redfish OEM fan data on the manager resource. 262 This includes PID and Stepwise controller data. See 263 OemManager schema for more detail.''', 264) 265 266option( 267 'redfish-updateservice-use-dbus', 268 type: 'feature', 269 value: 'disabled', 270 description: '''Enables xyz.openbmc_project.Software.Update D-Bus interface 271 to propagate UpdateService requests to the corresponding 272 updater daemons instead of moving files to /tmp/images dir. 273 This option is temporary, should not be enabled on any 274 production systems. The code will be moved to the normal 275 code update flow and the option will be removed at the end 276 of Q3 2024. 277 ''', 278) 279 280option( 281 'https_port', 282 type: 'integer', 283 min: 1, 284 max: 65535, 285 value: 443, 286 description: 'HTTPS Port number.', 287) 288 289option( 290 'dns-resolver', 291 type: 'combo', 292 choices: ['systemd-dbus', 'asio'], 293 value: 'systemd-dbus', 294 description: '''Sets which DNS resolver backend should be used. 295 systemd-dbus uses the Systemd ResolveHostname on dbus, but requires dbus 296 support. asio relies on boost::asio::tcp::resolver, but cannot resolve 297 names when boost threading is disabled.''', 298) 299 300option( 301 'redfish-aggregation', 302 type: 'feature', 303 value: 'disabled', 304 description: 'Allows this BMC to aggregate resources from satellite BMCs', 305) 306 307option( 308 'experimental-redfish-multi-computer-system', 309 type: 'feature', 310 value: 'disabled', 311 description: '''This is a temporary option flag for staging the 312 ComputerSystemCollection transition to multi-host. It, as well as the code 313 still beneath it will be removed on 9/1/2024. Do not enable in a 314 production environment, or where API stability is required.''', 315) 316 317option( 318 'experimental-http2', 319 type: 'feature', 320 value: 'disabled', 321 description: '''Enable HTTP/2 protocol support using nghttp2. Do not rely 322 on this option for any production systems. It may have 323 behavior changes or be removed at any time.''', 324) 325 326# Insecure options. Every option that starts with a `insecure` flag should 327# not be enabled by default for any platform, unless the author fully comprehends 328# the implications of doing so.In general, enabling these options will cause security 329# problems of varying degrees 330 331option( 332 'insecure-disable-csrf', 333 type: 'feature', 334 value: 'disabled', 335 description: '''Disable CSRF prevention checks.Should be set to false for 336 production systems.''', 337) 338 339option( 340 'insecure-disable-ssl', 341 type: 'feature', 342 value: 'disabled', 343 description: '''Disable SSL ports. Should be set to false for production 344 systems.''', 345) 346 347option( 348 'insecure-disable-auth', 349 type: 'feature', 350 value: 'disabled', 351 description: '''Disable authentication and authoriztion on all ports. 352 Should be set to false for production systems.''', 353) 354 355option( 356 'insecure-tftp-update', 357 type: 'feature', 358 value: 'disabled', 359 description: '''Enable TFTP based firmware update transactions through 360 Redfish UpdateService. SimpleUpdate.''', 361) 362 363option( 364 'insecure-ignore-content-type', 365 type: 'feature', 366 value: 'disabled', 367 description: '''Allows parsing PUT/POST/PATCH content as JSON regardless 368 of the presence of the content-type header. Enabling this 369 conflicts with the input parsing guidelines, but may be 370 required to support old clients that may not set the 371 Content-Type header on payloads.''', 372) 373 374option( 375 'insecure-push-style-notification', 376 type: 'feature', 377 value: 'disabled', 378 description: 'Enable HTTP push style eventing feature', 379) 380 381option( 382 'insecure-enable-redfish-query', 383 type: 'feature', 384 value: 'disabled', 385 description: '''Enables Redfish expand query parameter. This feature is 386 experimental, and has not been tested against the full 387 limits of user-facing behavior. It is not recommended to 388 enable on production systems at this time. Other query 389 parameters such as only are not controlled by this option.''', 390) 391