blob: 218020f0f895c5130fc7fab1716a93a1a81a9b84 [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-host-cper-log',
type: 'feature',
value: 'disabled',
description: '''Enable host CPER log service . Paths are under
/redfish/v1/Systems/system/LogServices/<HOST_CPER_LOGSERVICE_NAME>'''
)
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: 'feature',
value: 'disabled',
description: 'Enable output the extended debug logs'
)
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(
'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: 'disabled',
description: '''Enable/disable the new PowerSubsystem, ThermalSubsystem,
and all children schemas. This includes displaying all
sensors in the SensorCollection. At a later date, this
feature will be defaulted to enabled.'''
)
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.'''
)
option(
'redfish-post-to-old-updateservice',
type: 'feature',
value: 'disabled',
description: '''Allows POST to /redfish/v1/UpdateService, counter to
the redfish specification. Option provided to allow
potential users to move away from using this endpoint.
Option will be removed Q2 2023.'''
)
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(
'redfish-aggregation',
type: 'feature',
value: 'disabled',
description: 'Allows this BMC to aggregate resources from satellite BMCs'
)
option(
'bm-signal-path',
type: 'string',
value: '/run/bm-ready.flag',
description: 'Path to the flag to indicate that BM mode is ready'
)
# 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: 'enabled',
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.'''
)
option(
'health-populate',
type: 'feature',
value: 'enabled',
description: '''Enables HealthPopulate and generate the Status property for
the resource'''
)
# Platform specific options
option(
'platform6',
type: 'feature',
value: 'disabled',
description: 'Enables section of code only relevant to platform6.'
)
option(
'platform6-chassis0',
type: 'string',
value: 'PLATFORM6_CHASSIS0_NOT_SET',
description: 'Specify a Chassis name for platform6'
)
option(
'platform6-chassis1',
type: 'string',
value: 'PLATFORM6_CHASSIS1_NOT_SET',
description: 'Specify a Chassis name for platform6'
)
option(
'platform6-chassis2',
type: 'string',
value: 'PLATFORM6_CHASSIS2_NOT_SET',
description: 'Specify a Chassis name for platform6'
)
option(
'custom-nvme',
type: 'string',
value: 'CUSTOM_NVME_DEVICE_NOT_SET',
description: 'Specify the custom NVMe name'
)
option(
'custom-nvme-association',
type: 'string',
value: 'CUSTOM_NVME_ASSOCIATION_NOT_SET',
description: 'Specify the custom NVMe association name'
)
option(
'custom-ssd-enable',
type: 'feature',
value: 'disabled',
description: 'Enables section of code only relevant to customSSD.'
)
option(
'custom-ssd-name',
type: 'string',
value: 'CUSTOM_SSD_NAME',
description: 'Specify the custom SSD name'
)
option(
'custom-ssd-controller',
type: 'string',
value: 'CUSTOM_SSD_CONTROLLER',
description: 'Specify the custom SSD controller name'
)
option(
'custom-ssd-odata-type',
type: 'string',
value: 'CUSTOM_SSD_ODATA_TYPE',
description: 'Specify the custom SSD odata.type'
)
# gRPC options
option(
'mtls-grpc',
type: 'feature',
value: 'disabled',
description: 'mTLS gRPC interface in addition to REST.'
)
option(
'mtls-grpc-port',
type: 'integer',
min: 1,
max: 65535,
value: 443,
description: 'mTLS gRPC Port number. Used only if mtls-grpc is enabled.'
)
option(
'insecure-grpc',
type: 'feature',
value: 'disabled',
description: '''insecure gRPC interface in addition to mTLS gRPC. Turn on
mtls-grpc first. Do not use this in production. Don't rely
on this interface in any production code since it will be
deprecated.'''
)
option(
'insecure-grpc-port',
type: 'integer',
min: 1,
max: 65535,
value: 3995,
description: 'insecure gPRC Port number. Used only if insecure-grpc is enabled.'
)
option(
'insecure-disable-grpc-redfish-authz',
type: 'feature',
value: 'disabled',
description: '''Authorize every request as long as it's authenticated. This
is insecure. Do not use this in production.'''
)
option(
'redfish-oem-google-grpc-statistics',
type: 'feature',
value: 'disabled',
description: '''Enables Redfish OEM gRPC statistics information under
ManagerDiagnosticData.'''
)
option(
'stateful-bmcweb',
type: 'feature',
value: 'enabled',
description: '''Enables ManagedObjectStore and ObjectMapper lite to cache
DBus calls to improve bmcweb performance.'''
)
option(
'stateful-bmcweb-check-result',
type: 'feature',
value: 'disabled',
description: '''Enables ObjectMapper lite to call the underlying dbus objects
and verify the correctness of the result.'''
)
option(
'stateful-bmcweb-mapper',
type: 'feature',
value: 'disabled',
description: '''Enables ObjectMapper lite to cache
DBus calls to improve bmcweb performance.'''
)
option(
'amd',
type: 'feature',
value: 'disabled',
description: '''Update the source from Intel to AMD for bmcweb.'''
)
option(
'rde-device',
type: 'feature',
value: 'disabled',
description: 'Enable RDE device-related feature.'
)
# Platform specific options
option(
'platform9',
type: 'feature',
value: 'disabled',
description: 'Enables section of code only relevant to platform9.'
)
option(
'platform9-chassis0',
type: 'string',
value: 'PLATFORM9_CHASSIS0_NOT_SET',
description: 'Specify a Chassis name for platform9'
)
option(
'platform9-chassis1',
type: 'string',
value: 'PLATFORM9_CHASSIS1_NOT_SET',
description: 'Specify a Chassis name for platform9'
)
option(
'platform9-chassis2',
type: 'string',
value: 'PLATFORM9_CHASSIS2_NOT_SET',
description: 'Specify a Chassis name for platform9'
)
option(
'platform9-chassis3',
type: 'string',
value: 'PLATFORM9_CHASSIS3_NOT_SET',
description: 'Specify a Chassis name for platform9'
)
option(
'platform9-chassis4',
type: 'string',
value: 'PLATFORM9_CHASSIS4_NOT_SET',
description: 'Specify a Chassis name for platform9'
)
option(
'platform9-chassis5',
type: 'string',
value: 'PLATFORM9_CHASSIS5_NOT_SET',
description: 'Specify a Chassis name for platform9'
)
option(
'HOST_CPER_LOGSERVICE_NAME',
type : 'string',
value : 'HostCper',
description : 'Name of LogService for exposing host machine error logs in CPER format'
)
option(
'HOST_CPER_SERVICE',
type : 'string',
value : 'xyz.openbmc_project.HostCper.Manager',
description : 'D-Bus well-known bus name of service that logs host machine errors in CPER format'
)
option(
'HOST_CPER_OBJECT_MANAGER_PATH',
type : 'string',
value : '/xyz/openbmc_project/HostCper',
description : 'D-Bus object representing object manager for the service that logs host machine errors in CPER format.'
)
option(
'HOST_CPER_LOG_PATH',
type : 'string',
value : '/run/bmcweb/redfish/v1/Systems/system/LogServices/',
description : 'Base path of CPER logs.'
)