#######
Options
#######

NSCLI honors the following sections and settings in the :doc:`settings file <SettingsFile>`:

base
====

debug
    Globally enable debug mode in NSCLI. Options:
        True
            Debugging On
        False
            Debugging Off

traceback
    Always see error tracebacks. Options:
        True
            Tracebacks On
        False
            Tracebacks Off

use_color
    Use color-coded output, where supported. Options:
        True
            Use color
        False
            Do not use color

logger_info_color
    Use the following color for INFO logging. Can be standard color name or RGB integer value.

logger_debug_color
    Use the following color for DEBUG logging. Can be standard color name or RGB integer value.

logger_warning_color
    Use the following color for WARNING logging. Can be standard color name or RGB integer value.

logger_error_color
    Use the following color for ERROR logging. Can be standard color name or RGB integer value.

replace.color
=============

black
    If set, black will be replaced with the specified color. Can be standard color name or RGB integer value.

white
    If set, white will be replaced with the specified color. Can be standard color name or RGB integer value.

red
    If set, red will be replaced with the specified color. Can be standard color name or RGB integer value.

green
    If set, green will be replaced with the specified color. Can be standard color name or RGB integer value.

yellow
    If set, yellow will be replaced with the specified color. Can be standard color name or RGB integer value.

blue
    If set, blue will be replaced with the specified color. Can be standard color name or RGB integer value.

magenta
    If set, magenta will be replaced with the specified color. Can be standard color name or RGB integer value.

cyan
    If set, cyan will be replaced with the specified color. Can be standard color name or RGB integer value.

auth
====

usebrowserCookie
    Attempt to fetch core authtoken from firefox session before prompting for RSA token

sso_user
    SSO Username. If this setting is blank and the ``RAX_SSO`` environment variable is set, then the environment
    variable's value will be used.

acs_user
    ACS Username

preferred_browsers
    List of browsers to check (in order) for a core authtoken cookie. This entry should be the names of the browsers,
    separated by commas. The currently supported browsers are: 

        - firefox
        - chrome

    The default setting is ``firefox,chrome``

auth.identity
=============

use_saml
    Attempt to obtain an internal Identity token (i.e., rackertoken) using ADFS and SAML authentication through a web browser. Options:
        True
            Attempt to use a web browser to obtain an internal Identity token using ADFS
        False
            Only prompt for RSA/password credentials

use_password
    Obtain identity tokens using your SSO password. Options:
        True
            Use SSO password
        False
            Use RSA token

asa
===

toversion
    ASA Converter default version

gateway
=======

balabit
    Default balabit gateway host to use for proxying connections. See 
    https://one.rackspace.com/display/rackertools/gateway.rackspace.com for an overview. Most users should put 
    "support". For Metrobank devices only, nscli will dynamically choose the metrobank balabit (regardless of this 
    setting) when starting a connection. Options:

        support
            support.<dc>.gateway.rackspace.com
        get
            get.<dc>.gateway.rackspace.com
        office
            office.<dc>.gateway.rackspace.com
        dns
            dns.<dc>.gateway.rackspace.com
        metrobank
            metrobank.<dc>.gateway.rackspace.com
        ey
            ey.<dc>.gateway.rackspace.com
        Firstplus
            Firstplus.<dc>.gateway.rackspace.com
        CloudOps
            CloudOps.<dc>.gateway.rackspace.com
        CloudStorage
            CloudStorage.<dc>.gateway.rackspace.com
        MBU
            MBU.<dc>.gateway.rackspace.com

region
    Preferred region for proxying connections. This should be set to the name of a region that contains the types of
    proxies that the user will need. For example, users in SAT who need to use a balabit will want to set this to "DFW"
    or another suitable region. If this setting is blank and the ``RAX_DEFAULT_REGION`` environment variable is set, 
    then the environment variable's value will be used. Options:

        .. include:: RegionList.rst

appstats
========

bizunit
    This is your "Division" attribute from LDAP. Used for sending usage statistics to AppStats.

reporting
=========

newrelic_appstats_reporting
    Used to disable newrelic and appstats reporting
        True
            (Default) 
        False
            Debugging Off

runbook
=======

enable
    Used to disable runbook prompts for all accounts. Options:
        True
            Prompt user to open runbooks for all accounts unless disabled for specific account
        False
            Do not prompt user to open runbooks for any account
            
accts_disable
    Comma delimited list of core account numbers to disable runbook prompts

ssh
===

paramiko
    Used to enable/disable Paramiko as the underlying SSH transport mechanism. Options:
        False
            (The Default) Use OpenSSH, the traditional SSH transport of NSCLI
        True
            Use Paramiko for SSH transport

sentry
===

ignore_dev
    Used to enable/disable Sentry centralized exception tracing.

    True:
        (Default) Exceptions will be ignored while running a development version of NSCLI
    False:
        Exceptions will be reported normally, including in development mode.

gui_browser
===========

name
    Name of supported browser you want ``nscli ssh <device> -g`` to open in
    Examples: firefox, chrome, safari
    The full list of supported browsers can be found at https://docs.python.org/3/library/webbrowser.html

path
    Path to the executable of an unsupported browser and optional arguments
    Note: if ``gui_browser.name`` is not blank it will supersede this setting
    WSL example to open firefox::

        /mnt/c/Program\ Files\ \(x86\)/Mozilla\ Firefox/firefox.exe

    Mac example to open in an incognito Chrome window::

        /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --incognito

plugins
=======

exclude_plugins
    This setting lets you change the list of plugins that nscli can use. Use a comma separate list of plugins to 
    exclude (e.g. asa,f5,srx). You can remove subplugins by using the syntax plugin.subplugin (e.g. maint.asa).
