xref: /openbmc/bmcweb/meson.options (revision cf9085acd78ed83bfbc075d3fa70babed49a8a9b)
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',
2533ce3688aSEd Tanous    choices: ['CommonName', 'Whole', 'UserPrincipalName', 'Meta'],
2543ce3688aSEd Tanous    description: '''
2553ce3688aSEd Tanous        Parses the Subject CN in the format used by
2563ce3688aSEd Tanous                                Meta Inc (see mutual_tls_meta.cpp for details)
2573ce3688aSEd Tanous                    ''',
2583ce3688aSEd Tanous)
2593ce3688aSEd Tanous
260c5bcf35fSEd Tanous# BMCWEB_META_TLS_COMMON_NAME_PARSING
2613ce3688aSEd Tanousoption(
2623ce3688aSEd Tanous    'meta-tls-common-name-parsing',
2633ce3688aSEd Tanous    type: 'feature',
2643ce3688aSEd Tanous    description: '''
2653ce3688aSEd Tanous        Allows parsing the Subject CN TLS certificate in the format used by
2668dc3ddf6SEd Tanous                                Meta Inc (see mutual_tls_meta.cpp for details)
2678dc3ddf6SEd Tanous    ''',
2688dc3ddf6SEd Tanous)
2698dc3ddf6SEd Tanous
270c5bcf35fSEd Tanous# BMCWEB_IBM_MANAGEMENT_CONSOLE
2718dc3ddf6SEd Tanousoption(
2728dc3ddf6SEd Tanous    'ibm-management-console',
2738dc3ddf6SEd Tanous    type: 'feature',
2748dc3ddf6SEd Tanous    value: 'disabled',
2758dc3ddf6SEd Tanous    description: '''Enable the IBM management console specific functionality.
2768dc3ddf6SEd Tanous                    Paths are under /ibm/v1/''',
2778dc3ddf6SEd Tanous)
2788dc3ddf6SEd Tanous
279c5bcf35fSEd Tanous# BMCWEB_GOOGLE_API
2808dc3ddf6SEd Tanousoption(
2818dc3ddf6SEd Tanous    'google-api',
2828dc3ddf6SEd Tanous    type: 'feature',
2838dc3ddf6SEd Tanous    value: 'disabled',
2848dc3ddf6SEd Tanous    description: '''Enable the Google specific functionality. Paths are under
2858dc3ddf6SEd Tanous                    /google/v1/''',
2868dc3ddf6SEd Tanous)
2878dc3ddf6SEd Tanous
288c5bcf35fSEd Tanous# BMCWEB_HTTP_BODY_LIMIT
2898dc3ddf6SEd Tanousoption(
2908dc3ddf6SEd Tanous    'http-body-limit',
2918dc3ddf6SEd Tanous    type: 'integer',
2928dc3ddf6SEd Tanous    min: 0,
2938dc3ddf6SEd Tanous    max: 512,
2948dc3ddf6SEd Tanous    value: 30,
2958dc3ddf6SEd Tanous    description: 'Specifies the http request body length limit',
2968dc3ddf6SEd Tanous)
2978dc3ddf6SEd Tanous
298c5bcf35fSEd Tanous# BMCWEB_REDFISH_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM
2998dc3ddf6SEd Tanousoption(
3008dc3ddf6SEd Tanous    'redfish-new-powersubsystem-thermalsubsystem',
3018dc3ddf6SEd Tanous    type: 'feature',
3028dc3ddf6SEd Tanous    value: 'enabled',
3038dc3ddf6SEd Tanous    description: '''Enable/disable the new PowerSubsystem, ThermalSubsystem,
3048dc3ddf6SEd Tanous                    and all children schemas. This includes displaying all
3058dc3ddf6SEd Tanous                    sensors in the SensorCollection.''',
3068dc3ddf6SEd Tanous)
3078dc3ddf6SEd Tanous
308c5bcf35fSEd Tanous# BMCWEB_REDFISH_ALLOW_DEPRECATED_POWER_THERMAL
3098dc3ddf6SEd Tanousoption(
3108dc3ddf6SEd Tanous    'redfish-allow-deprecated-power-thermal',
3118dc3ddf6SEd Tanous    type: 'feature',
3128dc3ddf6SEd Tanous    value: 'enabled',
3138dc3ddf6SEd Tanous    description: '''Enable/disable the old Power / Thermal. The default
3148dc3ddf6SEd Tanous                    condition is allowing the old Power / Thermal. This
3158dc3ddf6SEd Tanous                    will be disabled by default June 2024. ''',
3168dc3ddf6SEd Tanous)
3178dc3ddf6SEd Tanous
318c5bcf35fSEd Tanous# BMCWEB_REDFISH_OEM_MANAGER_FAN_DATA
3198dc3ddf6SEd Tanousoption(
3208dc3ddf6SEd Tanous    'redfish-oem-manager-fan-data',
3218dc3ddf6SEd Tanous    type: 'feature',
3228dc3ddf6SEd Tanous    value: 'enabled',
3238dc3ddf6SEd Tanous    description: '''Enables Redfish OEM fan data on the manager resource.
3248dc3ddf6SEd Tanous                    This includes PID and Stepwise controller data. See
3251d19d872SMyung Bae                    OpenBMCManager schema for more detail.''',
3268dc3ddf6SEd Tanous)
3278dc3ddf6SEd Tanous
328c5bcf35fSEd Tanous# BMCWEB_REDFISH_UPDATESERVICE_USE_DBUS
3298dc3ddf6SEd Tanousoption(
3308dc3ddf6SEd Tanous    'redfish-updateservice-use-dbus',
3318dc3ddf6SEd Tanous    type: 'feature',
33264fa9167SJagpal Singh Gill    value: 'enabled',
3338dc3ddf6SEd Tanous    description: '''Enables xyz.openbmc_project.Software.Update D-Bus interface
3348dc3ddf6SEd Tanous                    to propagate UpdateService requests to the corresponding
3358dc3ddf6SEd Tanous                    updater daemons instead of moving files to /tmp/images dir.
3368dc3ddf6SEd Tanous                    This option is temporary, should not be enabled on any
3378dc3ddf6SEd Tanous                    production systems. The code will be moved to the normal
3388dc3ddf6SEd Tanous                    code update flow and the option will be removed at the end
3398dc3ddf6SEd Tanous                    of Q3 2024.
3408dc3ddf6SEd Tanous                ''',
3418dc3ddf6SEd Tanous)
3428dc3ddf6SEd Tanous
3436a37140aSEd Tanous# BMCWEB_REDFISH_ALLOW_SIMPLE_UPDATE
3446a37140aSEd Tanousoption(
3456a37140aSEd Tanous    'redfish-allow-simple-update',
3466a37140aSEd Tanous    type: 'feature',
3476a37140aSEd Tanous    value: 'disabled',
3486a37140aSEd Tanous    description: '''Enables Redfish UpdateService SimpleUpdate Action.  Note
3496a37140aSEd Tanous                    that at this time this option is non-functional.  Redfish
3506a37140aSEd Tanous                    recommends using MultiPartUpdate.''',
3516a37140aSEd Tanous)
3526a37140aSEd Tanous
3536a37140aSEd Tanous
3548dc3ddf6SEd Tanousoption(
3558dc3ddf6SEd Tanous    'https_port',
3568dc3ddf6SEd Tanous    type: 'integer',
357796ba93bSEd Tanous    min: -1,
3588dc3ddf6SEd Tanous    max: 65535,
3598dc3ddf6SEd Tanous    value: 443,
360796ba93bSEd Tanous    description: '''HTTPS default port number.  Set to -1 to disable and rely
361796ba93bSEd Tanous                    only on additional_ports''',
3628dc3ddf6SEd Tanous)
3638dc3ddf6SEd Tanous
364796ba93bSEd Tanous
365796ba93bSEd Tanous# Additional ports
366796ba93bSEd Tanous# This series of options below allows setting up non-trivial deployments of
367796ba93bSEd Tanous# bmcweb, binding specific ports, authentication profiles, and device binds to
368796ba93bSEd Tanous# multiple ports.
369796ba93bSEd Tanous# Setting these options incorrectly can have severe security consequences and
370796ba93bSEd Tanous# should be reserved for platform experts familiar with their particular
371796ba93bSEd Tanous# platforms security requirements.
372796ba93bSEd Tanous
373796ba93bSEd Tanousoption(
374796ba93bSEd Tanous    'additional-ports',
375796ba93bSEd Tanous    type: 'array',
376796ba93bSEd Tanous    value: [],
377796ba93bSEd Tanous    description: '''Additional ports to listen to.  Allows bmcweb to listen to
378796ba93bSEd Tanous                    multiple ports at a given protocol''',
379796ba93bSEd Tanous)
380796ba93bSEd Tanous
381796ba93bSEd Tanousoption(
382796ba93bSEd Tanous    'additional-protocol',
383796ba93bSEd Tanous    type: 'array',
384796ba93bSEd Tanous    value: [],
385796ba93bSEd Tanous    description: '''Allows specifying a specific protocol type for a given
386796ba93bSEd Tanous                    additional-ports index.  Allows setting http, https, or both
387796ba93bSEd Tanous                    to each socket index.  If not provided for a given
388796ba93bSEd Tanous                    additional-ports index, assumes https.''',
389796ba93bSEd Tanous)
390796ba93bSEd Tanous
391796ba93bSEd Tanousoption(
392796ba93bSEd Tanous    'additional-bind-to-device',
393796ba93bSEd Tanous    type: 'array',
394796ba93bSEd Tanous    value: [],
395796ba93bSEd Tanous    description: '''Allows specifying an SO_BINDTODEVICE or BindToDevice systemd
396796ba93bSEd Tanous                    directive for each additional socket file.  If not provided
397796ba93bSEd Tanous                    for a given additional-ports index, assumes bind to all
398796ba93bSEd Tanous                    devices''',
399796ba93bSEd Tanous)
400796ba93bSEd Tanous
401796ba93bSEd Tanousoption(
402796ba93bSEd Tanous    'additional-auth',
403796ba93bSEd Tanous    type: 'array',
404796ba93bSEd Tanous    value: [],
405796ba93bSEd Tanous    description: '''Allows specifying an authentication profile for each socket
406796ba93bSEd Tanous                    created with additional-ports.  Allows auth or noauth, and
407796ba93bSEd Tanous                    defaults to auth if not provided.  If noauth is provided,
408796ba93bSEd Tanous                    authentication will not be performed for a given socket/port
409796ba93bSEd Tanous                    index.''',
410796ba93bSEd Tanous)
411796ba93bSEd Tanous# end additional ports
412796ba93bSEd Tanous
413c5bcf35fSEd Tanous# BMCWEB_DNS_RESOLVER
4148dc3ddf6SEd Tanousoption(
4158dc3ddf6SEd Tanous    'dns-resolver',
4168dc3ddf6SEd Tanous    type: 'combo',
4178dc3ddf6SEd Tanous    choices: ['systemd-dbus', 'asio'],
4188dc3ddf6SEd Tanous    value: 'systemd-dbus',
4198dc3ddf6SEd Tanous    description: '''Sets which DNS resolver backend should be used.
4208dc3ddf6SEd Tanous    systemd-dbus uses the Systemd ResolveHostname on dbus, but requires dbus
4218dc3ddf6SEd Tanous    support.  asio relies on boost::asio::tcp::resolver, but cannot resolve
4228dc3ddf6SEd Tanous    names when boost threading is disabled.''',
4238dc3ddf6SEd Tanous)
4248dc3ddf6SEd Tanous
425c5bcf35fSEd Tanous# BMCWEB_REDFISH_AGGREGATION
4268dc3ddf6SEd Tanousoption(
4278dc3ddf6SEd Tanous    'redfish-aggregation',
4288dc3ddf6SEd Tanous    type: 'feature',
4298dc3ddf6SEd Tanous    value: 'disabled',
4308dc3ddf6SEd Tanous    description: 'Allows this BMC to aggregate resources from satellite BMCs',
4318dc3ddf6SEd Tanous)
4328dc3ddf6SEd Tanous
433c5bcf35fSEd Tanous# BMCWEB_HYPERVISOR_COMPUTER_SYSTEM
4348dc3ddf6SEd Tanousoption(
43568896206SGunnar Mills    'hypervisor-computer-system',
43668896206SGunnar Mills    type: 'feature',
43768896206SGunnar Mills    value: 'disabled',
43868896206SGunnar Mills    description: '''This puts a hypervisor computer system resource at
43968896206SGunnar Mills    /redfish/v1/Systems/hypervisor. This system resource has children
44068896206SGunnar Mills    resources such as EthernetInterfaces and ComputerSystem.Reset.''',
44168896206SGunnar Mills)
44268896206SGunnar Mills
443c5bcf35fSEd Tanous# BMCWEB_EXPERIMENTAL_REDFISH_MULTI_COMPUTER_SYSTEM
44468896206SGunnar Millsoption(
4458dc3ddf6SEd Tanous    'experimental-redfish-multi-computer-system',
4468dc3ddf6SEd Tanous    type: 'feature',
4478dc3ddf6SEd Tanous    value: 'disabled',
4488dc3ddf6SEd Tanous    description: '''This is a temporary option flag for staging the
4498dc3ddf6SEd Tanous    ComputerSystemCollection transition to multi-host.  It, as well as the code
450ef0b2d46Smox669    still beneath it will be removed on 6/1/2025.  Do not enable in a
4518dc3ddf6SEd Tanous    production environment, or where API stability is required.''',
4528dc3ddf6SEd Tanous)
4538dc3ddf6SEd Tanous
454c5bcf35fSEd Tanous# BMCWEB_EXPERIMENTAL_HTTP2
4558dc3ddf6SEd Tanousoption(
4568dc3ddf6SEd Tanous    'experimental-http2',
4578dc3ddf6SEd Tanous    type: 'feature',
4588dc3ddf6SEd Tanous    value: 'disabled',
4598dc3ddf6SEd Tanous    description: '''Enable HTTP/2 protocol support using nghttp2.  Do not rely
4608dc3ddf6SEd Tanous                    on this option for any production systems.  It may have
4618dc3ddf6SEd Tanous                    behavior changes or be removed at any time.''',
4628dc3ddf6SEd Tanous)
4638dc3ddf6SEd Tanous
464*cf9085acSrohitpai# BMCWEB_WATCHDOG_TIMEOUT
465*cf9085acSrohitpaioption(
466*cf9085acSrohitpai    'watchdog-timeout-seconds',
467*cf9085acSrohitpai    type: 'integer',
468*cf9085acSrohitpai    min: 0,
469*cf9085acSrohitpai    max: 600,
470*cf9085acSrohitpai    value: 120,
471*cf9085acSrohitpai    description: '''Specifies the systemd watchdog timeout interval in seconds.
472*cf9085acSrohitpai                    Set to 0 to disable the watchdog.''',
473*cf9085acSrohitpai)
474*cf9085acSrohitpai
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