blob: 39a410bc087a0b999096c0e618b73409ff989014 [file] [log] [blame]
option(
'yocto-deps',
type: 'feature',
value: 'disabled',
description: 'Use YOCTO dependencies system'
)
option(
'kvm',
type: 'feature',
value: 'enabled',
description: '''Enable the KVM host video WebSocket. Path is /kvm/0.
Video is from the BMCs /dev/videodevice.'''
)
option(
'tests',
type: 'feature',
value: 'enabled',
description: 'Enable Unit tests for bmcweb'
)
option(
'vm-websocket',
type: 'feature',
value: 'enabled',
description: '''Enable the Virtual Media WebSocket. Path is /vm/0/0 to
open the websocket. See
https://github.com/openbmc/jsnbd/blob/master/README.'''
)
# if you use this option and are seeing this comment, please comment here:
# https://github.com/openbmc/bmcweb/issues/188 and put forward your intentions
# for this code. At this point, no daemon has been upstreamed that implements
# this interface, so for the moment this appears to be dead code; In leiu of
# removing it, it has been disabled to try to give those that use it the
# opportunity to upstream their backend implementation
#option(
# 'vm-nbdproxy',
# type: 'feature', value: 'disabled',
# description: 'Enable the Virtual Media WebSocket.'
#)
option(
'rest',
type: 'feature',
value: 'disabled',
description: '''Enable Phosphor REST (D-Bus) APIs. Paths directly map
Phosphor D-Bus object paths, for example,
/xyz/openbmc_project/logging/entry/enumerate. See
https://github.com/openbmc/docs/blob/master/rest-api.md.'''
)
option(
'redfish',
type: 'feature',
value: 'enabled',
description: '''Enable Redfish APIs. Paths are under /redfish/v1/. See
https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish.'''
)
option(
'host-serial-socket',
type: 'feature',
value: 'enabled',
description: '''Enable host serial console WebSocket. Path is /console0.
See https://github.com/openbmc/docs/blob/master/console.md.'''
)
option(
'static-hosting',
type: 'feature',
value: 'enabled',
description: '''Enable serving files from the /usr/share/www directory
as paths under /.'''
)
option(
'redfish-bmc-journal',
type: 'feature',
value: 'enabled',
description: '''Enable BMC journal access through Redfish. Paths are under
/redfish/v1/Managers/bmc/LogServices/Journal.'''
)
option(
'redfish-cpu-log',
type: 'feature',
value: 'disabled',
description: '''Enable CPU log service transactions through Redfish. Paths
are under /redfish/v1/Systems/system/LogServices/Crashdump'.'''
)
option(
'redfish-dump-log',
type: 'feature',
value: 'disabled',
description: '''Enable Dump log service transactions through Redfish. Paths
are under /redfish/v1/Systems/system/LogServices/Dump
and /redfish/v1/Managers/bmc/LogServices/Dump'''
)
option(
'redfish-dbus-log',
type: 'feature',
value: 'disabled',
description: '''Enable DBUS log service transactions through Redfish. Paths
are under
/redfish/v1/Systems/system/LogServices/EventLog/Entries'''
)
option(
'redfish-host-logger',
type: 'feature',
value: 'enabled',
description: '''Enable host log service transactions based on
phosphor-hostlogger through Redfish. Paths are under
/redfish/v1/Systems/system/LogServices/HostLogger'''
)
option(
'redfish-provisioning-feature',
type: 'feature',
value: 'disabled',
description: '''Enable provisioning feature support in redfish. Paths are
under /redfish/v1/Systems/system/'''
)
option(
'bmcweb-logging',
type: 'combo',
choices : [ 'disabled', 'enabled', 'debug', 'info', 'warning', 'error', 'critical' ],
value: 'error',
description: '''Enable output the extended logging level.
- disabled: disable bmcweb log traces.
- enabled: treated as 'debug'
- For the other logging level option, see DEVELOPING.md.'''
)
option(
'basic-auth',
type: 'feature',
value: 'enabled',
description: 'Enable basic authentication'
)
option(
'session-auth',
type: 'feature',
value: 'enabled',
description: 'Enable session authentication'
)
option(
'xtoken-auth',
type: 'feature',
value: 'enabled',
description: 'Enable xtoken authentication'
)
option(
'cookie-auth',
type: 'feature',
value: 'enabled',
description: 'Enable cookie authentication'
)
option(
'mutual-tls-auth',
type: 'feature',
value: 'enabled',
description: '''Enables authenticating users through TLS client
certificates. The insecure-disable-ssl must be disabled for
this option to take effect.'''
)
option(
'mutual-tls-common-name-parsing',
type: 'combo',
choices: ['username', 'meta'],
value: 'username',
description: '''Sets logic to map the Subject Common Name field to a user
in client TLS certificates.
- username: Use the Subject CN field as a BMC username
(default)
- meta: Parses the Subject CN in the format used by
Meta Inc (see mutual_tls_meta.cpp for details)
'''
)
option(
'ibm-management-console',
type: 'feature',
value: 'disabled',
description: '''Enable the IBM management console specific functionality.
Paths are under /ibm/v1/'''
)
option(
'google-api',
type: 'feature',
value: 'disabled',
description: '''Enable the Google specific functionality. Paths are under
/google/v1/'''
)
option(
'http-body-limit',
type: 'integer',
min: 0,
max: 512,
value: 30,
description: 'Specifies the http request body length limit'
)
option(
'redfish-new-powersubsystem-thermalsubsystem',
type: 'feature',
value: 'enabled',
description: '''Enable/disable the new PowerSubsystem, ThermalSubsystem,
and all children schemas. This includes displaying all
sensors in the SensorCollection.'''
)
option(
'redfish-allow-deprecated-power-thermal',
type: 'feature',
value: 'enabled',
description: '''Enable/disable the old Power / Thermal. The default
condition is allowing the old Power / Thermal. This
will be disabled by default June 2024. '''
)
option(
'redfish-oem-manager-fan-data',
type: 'feature',
value: 'enabled',
description: '''Enables Redfish OEM fan data on the manager resource.
This includes PID and Stepwise controller data. See
OemManager schema for more detail.'''
)
option(
'https_port',
type: 'integer',
min: 1,
max: 65535,
value: 443,
description: 'HTTPS Port number.'
)
option(
'dns-resolver',
type: 'combo',
choices: ['systemd-dbus', 'asio'],
value: 'systemd-dbus',
description: '''Sets which DNS resolver backend should be used.
systemd-dbus uses the Systemd ResolveHostname on dbus, but requires dbus
support. asio relies on boost::asio::tcp::resolver, but cannot resolve
names when boost threading is disabled.'''
)
option(
'redfish-aggregation',
type: 'feature',
value: 'disabled',
description: 'Allows this BMC to aggregate resources from satellite BMCs'
)
option(
'experimental-redfish-multi-computer-system',
type: 'feature',
value: 'disabled',
description: '''This is a temporary option flag for staging the
ComputerSystemCollection transition to multi-host. It, as well as the code
still beneath it will be removed on 9/1/2024. Do not enable in a
production environment, or where API stability is required.'''
)
option(
'experimental-http2',
type: 'feature',
value: 'disabled',
description: '''Enable HTTP/2 protocol support using nghttp2. Do not rely
on this option for any production systems. It may have
behavior changes or be removed at any time.'''
)
# Insecure options. Every option that starts with a `insecure` flag should
# not be enabled by default for any platform, unless the author fully comprehends
# the implications of doing so.In general, enabling these options will cause security
# problems of varying degrees
option(
'insecure-disable-csrf',
type: 'feature',
value: 'disabled',
description: '''Disable CSRF prevention checks.Should be set to false for
production systems.'''
)
option(
'insecure-disable-ssl',
type: 'feature',
value: 'disabled',
description: '''Disable SSL ports. Should be set to false for production
systems.'''
)
option(
'insecure-disable-auth',
type: 'feature',
value: 'disabled',
description: '''Disable authentication and authoriztion on all ports.
Should be set to false for production systems.'''
)
option(
'insecure-disable-xss',
type: 'feature',
value: 'disabled',
description: 'Disable XSS preventions'
)
option(
'insecure-tftp-update',
type: 'feature',
value: 'disabled',
description: '''Enable TFTP based firmware update transactions through
Redfish UpdateService. SimpleUpdate.'''
)
option(
'insecure-ignore-content-type',
type: 'feature',
value: 'disabled',
description: '''Allows parsing PUT/POST/PATCH content as JSON regardless
of the presence of the content-type header. Enabling this
conflicts with the input parsing guidelines, but may be
required to support old clients that may not set the
Content-Type header on payloads.'''
)
option(
'insecure-push-style-notification',
type: 'feature',
value: 'disabled',
description: 'Enable HTTP push style eventing feature'
)
option(
'insecure-enable-redfish-query',
type: 'feature',
value: 'disabled',
description: '''Enables Redfish expand query parameter. This feature is
experimental, and has not been tested against the full
limits of user-facing behavior. It is not recommended to
enable on production systems at this time. Other query
parameters such as only are not controlled by this option.'''
)