xref: /openbmc/bmcweb/meson.options (revision f664fd8abeba11c7aa06d5119423a27b9d40d045)
1c5bcf35fSEd Tanous# BMCWEB_KVM
28dc3ddf6SEd Tanousoption(
38dc3ddf6SEd Tanous    'kvm',
48dc3ddf6SEd Tanous    type: 'feature',
58dc3ddf6SEd Tanous    value: 'enabled',
68dc3ddf6SEd Tanous    description: '''Enable the KVM host video WebSocket.  Path is /kvm/0.
78dc3ddf6SEd Tanous                    Video is from the BMCs /dev/videodevice.''',
88dc3ddf6SEd Tanous)
98dc3ddf6SEd Tanous
10c5bcf35fSEd Tanous# BMCWEB_TESTS
118dc3ddf6SEd Tanousoption(
128dc3ddf6SEd Tanous    'tests',
138dc3ddf6SEd Tanous    type: 'feature',
148dc3ddf6SEd Tanous    value: 'enabled',
158dc3ddf6SEd Tanous    description: 'Enable Unit tests for bmcweb',
168dc3ddf6SEd Tanous)
178dc3ddf6SEd Tanous
18c5bcf35fSEd Tanous# BMCWEB_VM_WEBSOCKET
198dc3ddf6SEd Tanousoption(
208dc3ddf6SEd Tanous    'vm-websocket',
218dc3ddf6SEd Tanous    type: 'feature',
228dc3ddf6SEd Tanous    value: 'enabled',
238dc3ddf6SEd Tanous    description: '''Enable the Virtual Media WebSocket. Path is /vm/0/0 and /nbd/<id> to
248dc3ddf6SEd Tanous                    open the websocket. See
258dc3ddf6SEd Tanous                    https://github.com/openbmc/jsnbd/blob/master/README.''',
268dc3ddf6SEd Tanous)
278dc3ddf6SEd Tanous
2856b81992SEd Tanousoption(
2956b81992SEd Tanous    'redfish-use-3-digit-messageid',
3056b81992SEd Tanous    type: 'feature',
3156b81992SEd Tanous    value: 'disabled',
3256b81992SEd Tanous    description: '''Prior to a bug fix, bmcweb exposed error messages with a
3356b81992SEd Tanous                    MessageId of Base.x.y.z.Message which was incorrect.
3456b81992SEd Tanous                    Enabling this option causes return codes to return the old
3556b81992SEd Tanous                    incorrect version for backward compatibility.  Will be
3604adfbcaSEd Tanous                    removed Q2-2025''',
3756b81992SEd Tanous)
3856b81992SEd Tanous
39c5bcf35fSEd Tanous# BMCWEB_NBDPROXY
408dc3ddf6SEd Tanous# if you use this option and are seeing this comment, please comment here:
418dc3ddf6SEd Tanous# https://github.com/openbmc/bmcweb/issues/188 and put forward your intentions
428dc3ddf6SEd Tanous# for this code.  At this point, no daemon has been upstreamed that implements
438dc3ddf6SEd Tanous# this interface, so for the moment this appears to be dead code;  In leiu of
448dc3ddf6SEd Tanous# removing it, it has been disabled to try to give those that use it the
458dc3ddf6SEd Tanous# opportunity to upstream their backend implementation
468dc3ddf6SEd Tanous#option(
478dc3ddf6SEd Tanous#    'vm-nbdproxy',
488dc3ddf6SEd Tanous#    type: 'feature',
498dc3ddf6SEd Tanous#    value: 'disabled',
508dc3ddf6SEd Tanous#    description: 'Enable the Virtual Media WebSocket.'
518dc3ddf6SEd Tanous#)
528dc3ddf6SEd Tanous
53c5bcf35fSEd Tanous# BMCWEB_REST
548dc3ddf6SEd Tanousoption(
558dc3ddf6SEd Tanous    'rest',
568dc3ddf6SEd Tanous    type: 'feature',
578dc3ddf6SEd Tanous    value: 'disabled',
588dc3ddf6SEd Tanous    description: '''Enable Phosphor REST (D-Bus) APIs. Paths directly map
598dc3ddf6SEd Tanous                    Phosphor D-Bus object paths, for example,
608dc3ddf6SEd Tanous                    /xyz/openbmc_project/logging/entry/enumerate. See
618dc3ddf6SEd Tanous                    https://github.com/openbmc/docs/blob/master/rest-api.md.''',
628dc3ddf6SEd Tanous)
638dc3ddf6SEd Tanous
64c5bcf35fSEd Tanous# BMCWEB_REDFISH
658dc3ddf6SEd Tanousoption(
668dc3ddf6SEd Tanous    'redfish',
678dc3ddf6SEd Tanous    type: 'feature',
688dc3ddf6SEd Tanous    value: 'enabled',
698dc3ddf6SEd Tanous    description: '''Enable Redfish APIs.  Paths are under /redfish/v1/. See
708dc3ddf6SEd Tanous                    https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish.''',
718dc3ddf6SEd Tanous)
728dc3ddf6SEd Tanous
73c5bcf35fSEd Tanous# BMCWEB_HOST_SERIAL_SOCKET
748dc3ddf6SEd Tanousoption(
758dc3ddf6SEd Tanous    'host-serial-socket',
768dc3ddf6SEd Tanous    type: 'feature',
778dc3ddf6SEd Tanous    value: 'enabled',
788dc3ddf6SEd Tanous    description: '''Enable host serial console WebSocket. Path is /console0.
798dc3ddf6SEd Tanous                    See https://github.com/openbmc/docs/blob/master/console.md.''',
808dc3ddf6SEd Tanous)
818dc3ddf6SEd Tanous
82c5bcf35fSEd Tanous# BMCWEB_STATIC_HOSTING
838dc3ddf6SEd Tanousoption(
848dc3ddf6SEd Tanous    'static-hosting',
858dc3ddf6SEd Tanous    type: 'feature',
868dc3ddf6SEd Tanous    value: 'enabled',
878dc3ddf6SEd Tanous    description: '''Enable serving files from the /usr/share/www directory
888dc3ddf6SEd Tanous                    as paths under /.''',
898dc3ddf6SEd Tanous)
908dc3ddf6SEd Tanous
91c5bcf35fSEd Tanous# BMCWEB_REDFISH_BMC_JOURNAL
928dc3ddf6SEd Tanousoption(
938dc3ddf6SEd Tanous    'redfish-bmc-journal',
948dc3ddf6SEd Tanous    type: 'feature',
958dc3ddf6SEd Tanous    value: 'enabled',
968dc3ddf6SEd Tanous    description: '''Enable BMC journal access through Redfish. Paths are under
978dc3ddf6SEd Tanous                    /redfish/v1/Managers/bmc/LogServices/Journal.''',
988dc3ddf6SEd Tanous)
998dc3ddf6SEd Tanous
100c5bcf35fSEd Tanous# BMCWEB_REDFISH_CPU_LOG
1018dc3ddf6SEd Tanousoption(
1028dc3ddf6SEd Tanous    'redfish-cpu-log',
1038dc3ddf6SEd Tanous    type: 'feature',
1048dc3ddf6SEd Tanous    value: 'disabled',
1058dc3ddf6SEd Tanous    description: '''Enable CPU log service transactions through Redfish. Paths
1068dc3ddf6SEd Tanous                    are under /redfish/v1/Systems/system/LogServices/Crashdump'.''',
1078dc3ddf6SEd Tanous)
1088dc3ddf6SEd Tanous
109c5bcf35fSEd Tanous# BMCWEB_REDFISH_DUMP_LOG
1108dc3ddf6SEd Tanousoption(
1118dc3ddf6SEd Tanous    'redfish-dump-log',
1128dc3ddf6SEd Tanous    type: 'feature',
1138dc3ddf6SEd Tanous    value: 'disabled',
1148dc3ddf6SEd Tanous    description: '''Enable Dump log service transactions through Redfish. Paths
1158dc3ddf6SEd Tanous                   are under /redfish/v1/Systems/system/LogServices/Dump
1168dc3ddf6SEd Tanous                   and /redfish/v1/Managers/bmc/LogServices/Dump''',
1178dc3ddf6SEd Tanous)
1188dc3ddf6SEd Tanous
119c5bcf35fSEd Tanous# BMCWEB_REDFISH_DBUS_LOG
1208dc3ddf6SEd Tanousoption(
1218dc3ddf6SEd Tanous    'redfish-dbus-log',
1228dc3ddf6SEd Tanous    type: 'feature',
1238dc3ddf6SEd Tanous    value: 'disabled',
1248dc3ddf6SEd Tanous    description: '''Enable DBUS log service transactions through Redfish. Paths
1258dc3ddf6SEd Tanous                    are under
1268dc3ddf6SEd Tanous                    /redfish/v1/Systems/system/LogServices/EventLog/Entries''',
1278dc3ddf6SEd Tanous)
1288dc3ddf6SEd Tanous
1296c58a03eSAlexander Hansen# BMCWEB_EXPERIMENTAL_REDFISH_DBUS_LOG_SUBSCRIPTION
1306c58a03eSAlexander Hansenoption(
1316c58a03eSAlexander Hansen    'experimental-redfish-dbus-log-subscription',
1326c58a03eSAlexander Hansen    type: 'feature',
1336c58a03eSAlexander Hansen    value: 'disabled',
1346c58a03eSAlexander Hansen    description: '''
1356c58a03eSAlexander Hansen        Allows EventService subscriptions when the redfish-dbus-log option is
1366c58a03eSAlexander Hansen        enabled.
1376c58a03eSAlexander Hansen        This option is currently non-functional, given Redfish requirements for
1386c58a03eSAlexander Hansen        MessageId support in Events.
1396c58a03eSAlexander Hansen        Option will be removed begining of Q2-2025.
1406c58a03eSAlexander Hansen        Should not be enabled on any production systems.
1416c58a03eSAlexander Hansen    ''',
1426c58a03eSAlexander Hansen)
1436c58a03eSAlexander Hansen
144c5bcf35fSEd Tanous# BMCWEB_REDFISH_HOST_LOGGER
1458dc3ddf6SEd Tanousoption(
1468dc3ddf6SEd Tanous    'redfish-host-logger',
1478dc3ddf6SEd Tanous    type: 'feature',
1488dc3ddf6SEd Tanous    value: 'enabled',
1498dc3ddf6SEd Tanous    description: '''Enable host log service transactions based on
1508dc3ddf6SEd Tanous                    phosphor-hostlogger through Redfish.  Paths are under
1518dc3ddf6SEd Tanous                    /redfish/v1/Systems/system/LogServices/HostLogger''',
1528dc3ddf6SEd Tanous)
1538dc3ddf6SEd Tanous
154c5bcf35fSEd Tanous# BMCWEB_REDFISH_PROVISIONING_FEATURE
1558dc3ddf6SEd Tanousoption(
1568dc3ddf6SEd Tanous    'redfish-provisioning-feature',
1578dc3ddf6SEd Tanous    type: 'feature',
1588dc3ddf6SEd Tanous    value: 'disabled',
1598dc3ddf6SEd Tanous    description: '''Enable provisioning feature support in redfish. Paths are
1608dc3ddf6SEd Tanous                    under /redfish/v1/Systems/system/''',
1618dc3ddf6SEd Tanous)
1628dc3ddf6SEd Tanous
163c5bcf35fSEd Tanous# BMCWEB_REDFISH_MANAGER_URI_NAME
1648dc3ddf6SEd Tanousoption(
1658dc3ddf6SEd Tanous    'redfish-manager-uri-name',
1668dc3ddf6SEd Tanous    type: 'string',
1678dc3ddf6SEd Tanous    value: 'bmc',
1688dc3ddf6SEd Tanous    description: '''The static Redfish Manager ID representing the BMC
1698dc3ddf6SEd Tanous                    instance. This option will appear in the Redfish tree at
1708dc3ddf6SEd Tanous                    /redfish/v1/Managers/<redfish-manager-uri-name>.
1718dc3ddf6SEd Tanous                    Defaults to \'bmc\' which resolves to
1728dc3ddf6SEd Tanous                    /redfish/v1/Managers/bmc''',
1738dc3ddf6SEd Tanous)
1748dc3ddf6SEd Tanous
175c5bcf35fSEd Tanous# BMCWEB_REDFISH_SYSTEM_URI_NAME
1768dc3ddf6SEd Tanousoption(
1778dc3ddf6SEd Tanous    'redfish-system-uri-name',
1788dc3ddf6SEd Tanous    type: 'string',
1798dc3ddf6SEd Tanous    value: 'system',
1808dc3ddf6SEd Tanous    description: '''The static Redfish System ID representing the host
1818dc3ddf6SEd Tanous                    instance. This option will appear in the Redfish tree at
1828dc3ddf6SEd Tanous                    /redfish/v1/Systems/<redfish-system-uri-name>.
1838dc3ddf6SEd Tanous                    Defaults to \'system\' which resolves to
1848dc3ddf6SEd Tanous                    /redfish/v1/Systems/system''',
1858dc3ddf6SEd Tanous)
1868dc3ddf6SEd Tanous
187c5bcf35fSEd Tanous# BMCWEB_LOGGING_LEVEL
1888dc3ddf6SEd Tanousoption(
1898dc3ddf6SEd Tanous    'bmcweb-logging',
1908dc3ddf6SEd Tanous    type: 'combo',
19192e26be5SEd Tanous    choices: [
19292e26be5SEd Tanous        'disabled',
19392e26be5SEd Tanous        'enabled',
19492e26be5SEd Tanous        'debug',
19592e26be5SEd Tanous        'info',
19692e26be5SEd Tanous        'warning',
19792e26be5SEd Tanous        'error',
19892e26be5SEd Tanous        'critical',
19992e26be5SEd Tanous    ],
2008dc3ddf6SEd Tanous    value: 'error',
2018dc3ddf6SEd Tanous    description: '''Enable output the extended logging level.
2028dc3ddf6SEd Tanous                    - disabled: disable bmcweb log traces.
2038dc3ddf6SEd Tanous                    - enabled: treated as 'debug'
2048dc3ddf6SEd Tanous                    - For the other logging level option, see DEVELOPING.md.''',
2058dc3ddf6SEd Tanous)
2068dc3ddf6SEd Tanous
207c5bcf35fSEd Tanous# BMCWEB_BASIC_AUTH
2088dc3ddf6SEd Tanousoption(
2098dc3ddf6SEd Tanous    'basic-auth',
2108dc3ddf6SEd Tanous    type: 'feature',
2118dc3ddf6SEd Tanous    value: 'enabled',
2128dc3ddf6SEd Tanous    description: 'Enable basic authentication',
2138dc3ddf6SEd Tanous)
2148dc3ddf6SEd Tanous
215c5bcf35fSEd Tanous# BMCWEB_SESSION_AUTH
2168dc3ddf6SEd Tanousoption(
2178dc3ddf6SEd Tanous    'session-auth',
2188dc3ddf6SEd Tanous    type: 'feature',
2198dc3ddf6SEd Tanous    value: 'enabled',
2208dc3ddf6SEd Tanous    description: 'Enable session authentication',
2218dc3ddf6SEd Tanous)
2228dc3ddf6SEd Tanous
223c5bcf35fSEd Tanous# BMCWEB_XTOKEN_AUTH
2248dc3ddf6SEd Tanousoption(
2258dc3ddf6SEd Tanous    'xtoken-auth',
2268dc3ddf6SEd Tanous    type: 'feature',
2278dc3ddf6SEd Tanous    value: 'enabled',
2288dc3ddf6SEd Tanous    description: 'Enable xtoken authentication',
2298dc3ddf6SEd Tanous)
2308dc3ddf6SEd Tanous
231c5bcf35fSEd Tanous# BMCWEB_COOKIE_AUTH
2328dc3ddf6SEd Tanousoption(
2338dc3ddf6SEd Tanous    'cookie-auth',
2348dc3ddf6SEd Tanous    type: 'feature',
2358dc3ddf6SEd Tanous    value: 'enabled',
2368dc3ddf6SEd Tanous    description: 'Enable cookie authentication',
2378dc3ddf6SEd Tanous)
2388dc3ddf6SEd Tanous
239c5bcf35fSEd Tanous# BMCWEB_MUTUAL_TLS_AUTH
2408dc3ddf6SEd Tanousoption(
2418dc3ddf6SEd Tanous    'mutual-tls-auth',
2428dc3ddf6SEd Tanous    type: 'feature',
2438dc3ddf6SEd Tanous    value: 'enabled',
2448dc3ddf6SEd Tanous    description: '''Enables authenticating users through TLS client
2458dc3ddf6SEd Tanous                    certificates. The insecure-disable-ssl must be disabled for
2468dc3ddf6SEd Tanous                    this option to take effect.''',
2478dc3ddf6SEd Tanous)
2488dc3ddf6SEd Tanous
249c5bcf35fSEd Tanous# BMCWEB_MUTUAL_TLS_COMMON_NAME_PARSING_DEFAULT
2508dc3ddf6SEd Tanousoption(
2513ce3688aSEd Tanous    'mutual-tls-common-name-parsing-default',
2528dc3ddf6SEd Tanous    type: 'combo',
253a4943693SMalik Akbar Hashemi Rafsanjani    choices: ['CommonName', 'Whole', 'UserPrincipalName'],
254a4943693SMalik Akbar Hashemi Rafsanjani    description: '''Default MTLS parse mode to get username from the
255a4943693SMalik Akbar Hashemi Rafsanjani                    client's x509 certificate''',
2563ce3688aSEd Tanous)
2573ce3688aSEd Tanous
258c5bcf35fSEd Tanous# BMCWEB_IBM_MANAGEMENT_CONSOLE
2598dc3ddf6SEd Tanousoption(
2608dc3ddf6SEd Tanous    'ibm-management-console',
2618dc3ddf6SEd Tanous    type: 'feature',
2628dc3ddf6SEd Tanous    value: 'disabled',
2638dc3ddf6SEd Tanous    description: '''Enable the IBM management console specific functionality.
2648dc3ddf6SEd Tanous                    Paths are under /ibm/v1/''',
2658dc3ddf6SEd Tanous)
2668dc3ddf6SEd Tanous
267c5bcf35fSEd Tanous# BMCWEB_GOOGLE_API
2688dc3ddf6SEd Tanousoption(
2698dc3ddf6SEd Tanous    'google-api',
2708dc3ddf6SEd Tanous    type: 'feature',
2718dc3ddf6SEd Tanous    value: 'disabled',
2728dc3ddf6SEd Tanous    description: '''Enable the Google specific functionality. Paths are under
2738dc3ddf6SEd Tanous                    /google/v1/''',
2748dc3ddf6SEd Tanous)
2758dc3ddf6SEd Tanous
276c5bcf35fSEd Tanous# BMCWEB_HTTP_BODY_LIMIT
2778dc3ddf6SEd Tanousoption(
2788dc3ddf6SEd Tanous    'http-body-limit',
2798dc3ddf6SEd Tanous    type: 'integer',
2808dc3ddf6SEd Tanous    min: 0,
2818dc3ddf6SEd Tanous    max: 512,
2828dc3ddf6SEd Tanous    value: 30,
2838dc3ddf6SEd Tanous    description: 'Specifies the http request body length limit',
2848dc3ddf6SEd Tanous)
2858dc3ddf6SEd Tanous
286b2539069SEd Tanous# BMCWEB_HTTP_ZSTD
287b2539069SEd Tanousoption(
288b2539069SEd Tanous    'http-zstd',
289b2539069SEd Tanous    type: 'feature',
290b2539069SEd Tanous    value: 'enabled',
291b2539069SEd Tanous    description: 'Allows compression/decompression using zstd',
292b2539069SEd Tanous)
293b2539069SEd Tanous
294c5bcf35fSEd Tanous# BMCWEB_REDFISH_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM
2958dc3ddf6SEd Tanousoption(
2968dc3ddf6SEd Tanous    'redfish-new-powersubsystem-thermalsubsystem',
2978dc3ddf6SEd Tanous    type: 'feature',
2988dc3ddf6SEd Tanous    value: 'enabled',
2998dc3ddf6SEd Tanous    description: '''Enable/disable the new PowerSubsystem, ThermalSubsystem,
3008dc3ddf6SEd Tanous                    and all children schemas. This includes displaying all
3018dc3ddf6SEd Tanous                    sensors in the SensorCollection.''',
3028dc3ddf6SEd Tanous)
3038dc3ddf6SEd Tanous
304*f664fd8aSJanet Adkins# BMCWEB_REDFISH_ALLOW_DEPRECATED_INDICATORLED
305*f664fd8aSJanet Adkinsoption(
306*f664fd8aSJanet Adkins    'redfish-allow-deprecated-indicatorled',
307*f664fd8aSJanet Adkins    type: 'feature',
308*f664fd8aSJanet Adkins    value: 'disabled',
309*f664fd8aSJanet Adkins    description: '''Enable/disable the deprecated IndicatorLED property. The
310*f664fd8aSJanet Adkins                    default condition is disabled. The code to enable this
311*f664fd8aSJanet Adkins                    option will be removed by March 2026.''',
312*f664fd8aSJanet Adkins)
313*f664fd8aSJanet Adkins
314c5bcf35fSEd Tanous# BMCWEB_REDFISH_ALLOW_DEPRECATED_POWER_THERMAL
3158dc3ddf6SEd Tanousoption(
3168dc3ddf6SEd Tanous    'redfish-allow-deprecated-power-thermal',
3178dc3ddf6SEd Tanous    type: 'feature',
3188dc3ddf6SEd Tanous    value: 'enabled',
3198dc3ddf6SEd Tanous    description: '''Enable/disable the old Power / Thermal. The default
3208dc3ddf6SEd Tanous                    condition is allowing the old Power / Thermal. This
3218dc3ddf6SEd Tanous                    will be disabled by default June 2024. ''',
3228dc3ddf6SEd Tanous)
3238dc3ddf6SEd Tanous
324c5bcf35fSEd Tanous# BMCWEB_REDFISH_OEM_MANAGER_FAN_DATA
3258dc3ddf6SEd Tanousoption(
3268dc3ddf6SEd Tanous    'redfish-oem-manager-fan-data',
3278dc3ddf6SEd Tanous    type: 'feature',
3288dc3ddf6SEd Tanous    value: 'enabled',
3298dc3ddf6SEd Tanous    description: '''Enables Redfish OEM fan data on the manager resource.
3308dc3ddf6SEd Tanous                    This includes PID and Stepwise controller data. See
3311d19d872SMyung Bae                    OpenBMCManager schema for more detail.''',
3328dc3ddf6SEd Tanous)
3338dc3ddf6SEd Tanous
334c5bcf35fSEd Tanous# BMCWEB_REDFISH_UPDATESERVICE_USE_DBUS
3358dc3ddf6SEd Tanousoption(
3368dc3ddf6SEd Tanous    'redfish-updateservice-use-dbus',
3378dc3ddf6SEd Tanous    type: 'feature',
33864fa9167SJagpal Singh Gill    value: 'enabled',
3398dc3ddf6SEd Tanous    description: '''Enables xyz.openbmc_project.Software.Update D-Bus interface
3408dc3ddf6SEd Tanous                    to propagate UpdateService requests to the corresponding
3418dc3ddf6SEd Tanous                    updater daemons instead of moving files to /tmp/images dir.
3428dc3ddf6SEd Tanous                ''',
3438dc3ddf6SEd Tanous)
3448dc3ddf6SEd Tanous
3456a37140aSEd Tanous# BMCWEB_REDFISH_ALLOW_SIMPLE_UPDATE
3466a37140aSEd Tanousoption(
3476a37140aSEd Tanous    'redfish-allow-simple-update',
3486a37140aSEd Tanous    type: 'feature',
3496a37140aSEd Tanous    value: 'disabled',
3506a37140aSEd Tanous    description: '''Enables Redfish UpdateService SimpleUpdate Action.  Note
3516a37140aSEd Tanous                    that at this time this option is non-functional.  Redfish
3526a37140aSEd Tanous                    recommends using MultiPartUpdate.''',
3536a37140aSEd Tanous)
3546a37140aSEd Tanous
3556a37140aSEd Tanous
3568dc3ddf6SEd Tanousoption(
3578dc3ddf6SEd Tanous    'https_port',
3588dc3ddf6SEd Tanous    type: 'integer',
359796ba93bSEd Tanous    min: -1,
3608dc3ddf6SEd Tanous    max: 65535,
3618dc3ddf6SEd Tanous    value: 443,
362796ba93bSEd Tanous    description: '''HTTPS default port number.  Set to -1 to disable and rely
363796ba93bSEd Tanous                    only on additional_ports''',
3648dc3ddf6SEd Tanous)
3658dc3ddf6SEd Tanous
366796ba93bSEd Tanous
367796ba93bSEd Tanous# Additional ports
368796ba93bSEd Tanous# This series of options below allows setting up non-trivial deployments of
369796ba93bSEd Tanous# bmcweb, binding specific ports, authentication profiles, and device binds to
370796ba93bSEd Tanous# multiple ports.
371796ba93bSEd Tanous# Setting these options incorrectly can have severe security consequences and
372796ba93bSEd Tanous# should be reserved for platform experts familiar with their particular
373796ba93bSEd Tanous# platforms security requirements.
374796ba93bSEd Tanous
375796ba93bSEd Tanousoption(
376796ba93bSEd Tanous    'additional-ports',
377796ba93bSEd Tanous    type: 'array',
378796ba93bSEd Tanous    value: [],
379796ba93bSEd Tanous    description: '''Additional ports to listen to.  Allows bmcweb to listen to
380796ba93bSEd Tanous                    multiple ports at a given protocol''',
381796ba93bSEd Tanous)
382796ba93bSEd Tanous
383796ba93bSEd Tanousoption(
384796ba93bSEd Tanous    'additional-protocol',
385796ba93bSEd Tanous    type: 'array',
386796ba93bSEd Tanous    value: [],
387796ba93bSEd Tanous    description: '''Allows specifying a specific protocol type for a given
388796ba93bSEd Tanous                    additional-ports index.  Allows setting http, https, or both
389796ba93bSEd Tanous                    to each socket index.  If not provided for a given
390796ba93bSEd Tanous                    additional-ports index, assumes https.''',
391796ba93bSEd Tanous)
392796ba93bSEd Tanous
393796ba93bSEd Tanousoption(
394796ba93bSEd Tanous    'additional-bind-to-device',
395796ba93bSEd Tanous    type: 'array',
396796ba93bSEd Tanous    value: [],
397796ba93bSEd Tanous    description: '''Allows specifying an SO_BINDTODEVICE or BindToDevice systemd
398796ba93bSEd Tanous                    directive for each additional socket file.  If not provided
399796ba93bSEd Tanous                    for a given additional-ports index, assumes bind to all
400796ba93bSEd Tanous                    devices''',
401796ba93bSEd Tanous)
402796ba93bSEd Tanous
403796ba93bSEd Tanousoption(
404796ba93bSEd Tanous    'additional-auth',
405796ba93bSEd Tanous    type: 'array',
406796ba93bSEd Tanous    value: [],
407796ba93bSEd Tanous    description: '''Allows specifying an authentication profile for each socket
408796ba93bSEd Tanous                    created with additional-ports.  Allows auth or noauth, and
409796ba93bSEd Tanous                    defaults to auth if not provided.  If noauth is provided,
410796ba93bSEd Tanous                    authentication will not be performed for a given socket/port
411796ba93bSEd Tanous                    index.''',
412796ba93bSEd Tanous)
413796ba93bSEd Tanous# end additional ports
414796ba93bSEd Tanous
415c5bcf35fSEd Tanous# BMCWEB_DNS_RESOLVER
4168dc3ddf6SEd Tanousoption(
4178dc3ddf6SEd Tanous    'dns-resolver',
4188dc3ddf6SEd Tanous    type: 'combo',
4198dc3ddf6SEd Tanous    choices: ['systemd-dbus', 'asio'],
4208dc3ddf6SEd Tanous    value: 'systemd-dbus',
4218dc3ddf6SEd Tanous    description: '''Sets which DNS resolver backend should be used.
4228dc3ddf6SEd Tanous    systemd-dbus uses the Systemd ResolveHostname on dbus, but requires dbus
4238dc3ddf6SEd Tanous    support.  asio relies on boost::asio::tcp::resolver, but cannot resolve
4248dc3ddf6SEd Tanous    names when boost threading is disabled.''',
4258dc3ddf6SEd Tanous)
4268dc3ddf6SEd Tanous
427c5bcf35fSEd Tanous# BMCWEB_REDFISH_AGGREGATION
4288dc3ddf6SEd Tanousoption(
4298dc3ddf6SEd Tanous    'redfish-aggregation',
4308dc3ddf6SEd Tanous    type: 'feature',
4318dc3ddf6SEd Tanous    value: 'disabled',
4328dc3ddf6SEd Tanous    description: 'Allows this BMC to aggregate resources from satellite BMCs',
4338dc3ddf6SEd Tanous)
4348dc3ddf6SEd Tanous
435c5bcf35fSEd Tanous# BMCWEB_HYPERVISOR_COMPUTER_SYSTEM
4368dc3ddf6SEd Tanousoption(
43768896206SGunnar Mills    'hypervisor-computer-system',
43868896206SGunnar Mills    type: 'feature',
43968896206SGunnar Mills    value: 'disabled',
44068896206SGunnar Mills    description: '''This puts a hypervisor computer system resource at
44168896206SGunnar Mills    /redfish/v1/Systems/hypervisor. This system resource has children
44268896206SGunnar Mills    resources such as EthernetInterfaces and ComputerSystem.Reset.''',
44368896206SGunnar Mills)
44468896206SGunnar Mills
445c5bcf35fSEd Tanous# BMCWEB_EXPERIMENTAL_REDFISH_MULTI_COMPUTER_SYSTEM
44668896206SGunnar Millsoption(
4478dc3ddf6SEd Tanous    'experimental-redfish-multi-computer-system',
4488dc3ddf6SEd Tanous    type: 'feature',
4498dc3ddf6SEd Tanous    value: 'disabled',
4508dc3ddf6SEd Tanous    description: '''This is a temporary option flag for staging the
4518dc3ddf6SEd Tanous    ComputerSystemCollection transition to multi-host.  It, as well as the code
45206827463SOliver Brewka    still beneath it will be removed on 1/1/2026.  Do not enable in a
4538dc3ddf6SEd Tanous    production environment, or where API stability is required.''',
4548dc3ddf6SEd Tanous)
4558dc3ddf6SEd Tanous
45639fe3af2SEd Tanous# BMCWEB_HTTP2
4578dc3ddf6SEd Tanousoption(
45839fe3af2SEd Tanous    'http2',
4598dc3ddf6SEd Tanous    type: 'feature',
46039fe3af2SEd Tanous    value: 'enabled',
46139fe3af2SEd Tanous    description: 'Enable HTTP/2 protocol support using nghttp2.',
4628dc3ddf6SEd Tanous)
4638dc3ddf6SEd Tanous
464cf9085acSrohitpai# BMCWEB_WATCHDOG_TIMEOUT
465cf9085acSrohitpaioption(
466cf9085acSrohitpai    'watchdog-timeout-seconds',
467cf9085acSrohitpai    type: 'integer',
468cf9085acSrohitpai    min: 0,
469cf9085acSrohitpai    max: 600,
470cf9085acSrohitpai    value: 120,
471cf9085acSrohitpai    description: '''Specifies the systemd watchdog timeout interval in seconds.
472cf9085acSrohitpai                    Set to 0 to disable the watchdog.''',
473cf9085acSrohitpai)
474cf9085acSrohitpai
4758dc3ddf6SEd Tanous# Insecure options. Every option that starts with a `insecure` flag should
4768dc3ddf6SEd Tanous# not be enabled by default for any platform, unless the author fully comprehends
4778dc3ddf6SEd Tanous# the implications of doing so.In general, enabling these options will cause security
4788dc3ddf6SEd Tanous# problems of varying degrees
4798dc3ddf6SEd Tanous
480c5bcf35fSEd Tanous# BMCWEB_INSECURE_DISABLE_CSRF
4818dc3ddf6SEd Tanousoption(
4828dc3ddf6SEd Tanous    'insecure-disable-csrf',
4838dc3ddf6SEd Tanous    type: 'feature',
4848dc3ddf6SEd Tanous    value: 'disabled',
4858dc3ddf6SEd Tanous    description: '''Disable CSRF prevention checks.Should be set to false for
4868dc3ddf6SEd Tanous                    production systems.''',
4878dc3ddf6SEd Tanous)
4888dc3ddf6SEd Tanous
489c5bcf35fSEd Tanous# BMCWEB_INSECURE_DISABLE_SSL
4908dc3ddf6SEd Tanousoption(
4918dc3ddf6SEd Tanous    'insecure-disable-ssl',
4928dc3ddf6SEd Tanous    type: 'feature',
4938dc3ddf6SEd Tanous    value: 'disabled',
4948dc3ddf6SEd Tanous    description: '''Disable SSL ports. Should be set to false for production
4958dc3ddf6SEd Tanous                    systems.''',
4968dc3ddf6SEd Tanous)
4978dc3ddf6SEd Tanous
498c5bcf35fSEd Tanous# BMCWEB_INSECURE_DISABLE_AUTH
4998dc3ddf6SEd Tanousoption(
5008dc3ddf6SEd Tanous    'insecure-disable-auth',
5018dc3ddf6SEd Tanous    type: 'feature',
5028dc3ddf6SEd Tanous    value: 'disabled',
5038dc3ddf6SEd Tanous    description: '''Disable authentication and authoriztion on all ports.
5048dc3ddf6SEd Tanous                    Should be set to false for production systems.''',
5058dc3ddf6SEd Tanous)
5068dc3ddf6SEd Tanous
507c5bcf35fSEd Tanous# BMCWEB_INSECURE_IGNORE_CONTENT_TYPE
5088dc3ddf6SEd Tanousoption(
5098dc3ddf6SEd Tanous    'insecure-ignore-content-type',
5108dc3ddf6SEd Tanous    type: 'feature',
5118dc3ddf6SEd Tanous    value: 'disabled',
5128dc3ddf6SEd Tanous    description: '''Allows parsing PUT/POST/PATCH content as JSON regardless
5138dc3ddf6SEd Tanous                    of the presence of the content-type header.  Enabling this
5148dc3ddf6SEd Tanous                    conflicts with the input parsing guidelines, but may be
5158dc3ddf6SEd Tanous                    required to support old clients that may not set the
5168dc3ddf6SEd Tanous                    Content-Type header on payloads.''',
5178dc3ddf6SEd Tanous)
5188dc3ddf6SEd Tanous
519c5bcf35fSEd Tanous# BMCWEB_INSECURE_PUSH_STYLE_NOTIFICATION
5208dc3ddf6SEd Tanousoption(
5218dc3ddf6SEd Tanous    'insecure-push-style-notification',
5228dc3ddf6SEd Tanous    type: 'feature',
5238dc3ddf6SEd Tanous    value: 'disabled',
5248dc3ddf6SEd Tanous    description: 'Enable HTTP push style eventing feature',
5258dc3ddf6SEd Tanous)
5268dc3ddf6SEd Tanous
527c5bcf35fSEd Tanous# BMCWEB_INSECURE_ENABLE_REDFISH_QUERY
5288dc3ddf6SEd Tanousoption(
5298dc3ddf6SEd Tanous    'insecure-enable-redfish-query',
5308dc3ddf6SEd Tanous    type: 'feature',
5318dc3ddf6SEd Tanous    value: 'disabled',
5328dc3ddf6SEd Tanous    description: '''Enables Redfish expand query parameter.  This feature is
5338dc3ddf6SEd Tanous                    experimental, and has not been tested against the full
5348dc3ddf6SEd Tanous                    limits of user-facing behavior.  It is not recommended to
5358dc3ddf6SEd Tanous                    enable on production systems at this time.  Other query
5368dc3ddf6SEd Tanous                    parameters such as only are not controlled by this option.''',
5378dc3ddf6SEd Tanous)
538