QCS Client Configuration

Details on environment configuration for QCS clients.

One set of configuration values is used for all QCS software on your computer - CLI, pyQuil, all SDKs, etc. Those settings can be applied using a configuration file, environment variables, or at runtime by editing the configuration object in your chosen language's SDK.

Download your personal secrets.toml and settings.toml files at https://qcs.rigetti.com/auth/token

Environment Variables and Configuration Files

QCS clients derive configuration from the environment:

  • QCS_PROFILE_NAME

    • Name of settings profile to use (optional)

  • QCS_SETTINGS_PATH or QCS_SETTINGS_FILE_PATH

    • File path to API configurations options toml file, default is ~/.qcs/settings.toml

  • QCS_SECRETS_PATH or QCS_SECRETS_FILE_PATH

    • File path to API authentication token toml file, default is ~/.qcs/secrets.toml

  • QCS_SETTINGS_APPLICATIONS_PYQUIL_QVM_URL

    • URL to use for QVM when running pyQuil, default is http://127.0.0.1:5000

  • QCS_SETTINGS_APPLICATIONS_PYQUIL_QUILC_URL

    • URL to use for quilc when running pyQuil, default is tcp://127.0.0.1:5555

QCS Settings File

A toml -formatted file with configuration details for using QCS Clients.

An annotated example:

# Name of profile to use when one is not otherwise specified.
# Used in order of precedence:
# 1. The `--profile-name` flag via the QCS CLI.
# 2. The `QCS_PROFILE_NAME` environment variable.
# 3. This `default_profile_name` value in this toml file.
default_profile_name = "default"

# (Required) One or more named profiles used for
# configuring QCS applications like the CLI.
[profiles]

  # A named profile.
  [profiles.default]
  
    # (Required) QCS API origin.
    api_url = "https://api.qcs.rigetti.com"
    
    # (Optional) Named credentials to use from `QCS_SECRETS_FILE`.
    credentials_name = "default"
    
    # (Optional) OAuth server name to use.
    auth_server_name = "default"

  # (Optional) Application-specific settings
  [profiles.default.applications]
  
    # (Optional) QCS CLI configurations
    [profiles.default.applications.cli]
      # (Optional) Log verbosity - lower levels include messages from
      # all levels above them.
      # Options:
      # - "panic"
      # - "fatal"
      # - "error"
      # - "warn" (default)
      # - "info"
      # - "debug"
      verbosity = "warn"
      
      # (Optional) Returned data output format.
      # Options:
      # - "yaml"
      # - "json" (default)
      output_format = "json"
    
    # (Optional) PyQuil configurations
    [profiles.default.applications.pyquil]

      # Endpoints for qvm
      # Overridden by environment variable: QCS_SETTINGS_APPLICATIONS_PYQUIL_QVM_URL
      qvm_url = "http://127.0.0.1:5000"
      
      # Endpoint for quilc
      # Overridden by environment variable: QCS_SETTINGS_APPLICATIONS_PYQUIL_QUILC_URL
      quilc_url = "tcp://127.0.0.1:5555"

# (Required) One or more named OAuth server configurations.
[auth_servers]

  # A named OAuth configuration.
  # The following example uses the values expected for authenticating to https://api.qcs.rigetti.com/ 
  [auth_servers.default]
  
    # (Required) OAuth Client ID.
    # This is the Client ID used to authenticate to https://api.qcs.rigetti.com/ 
    client_id = "0oa3ykoirzDKpkfzk357"
    
    # (Required) OAuth OpenID issuer base URL.
    # This is the issuer URL used to authenticate to https://api.qcs.rigetti.com/ 
    issuer = "https://auth.qcs.rigetti.com/oauth2/aus8jcovzG0gW2TUG355"

QCS Secrets File

A toml -formatted file with credentials for authenticating with QCS clients. You shouldn't have to create or edit this file manually - if your file is corrupted, download a new copy at https://qcs.rigetti.com/auth/token

Note that this file contains secrets and should be kept safe!

# One or more authentication credentials.
[credentials]

  # A named set of credentials.
  [credentials.default]

    # OAuth access token response payload.
    # You shouldn't have to configure this 
    [credentials.default.token_payload]
      id_token = "<JWT HERE>"
      access_token = "<JWT HERE>"

      expires_in = 86400
      refresh_token = "<SECRET HERE>"
      scope = "offline_access openid profile email"
      token_type = "Bearer"

Last updated

Was this helpful?