Leap supports third-party IDEs, both local and cloud-based, that implement the
Development Containers specification
(aka “devcontainers”). Although any IDE that implements devcontainers
is supported, D-Wave recommends
GitHub Codespaces.
The Ocean SDK releases 6.6
and higher enable Leap authentication using the secure
OAuth 2.0 industry standard. The
Authorizing Access to Leap procedure described here simplifies the
retrieval and storage of your Solver API (SAPI) token for use in submitting
problems to Leap solvers from the third-party IDE of your choice.
If you configure your IDE to use
Ocean-Dev Docker Images,
your development environment is updated with a recent Ocean SDK. You can see
an example here.
As described in the Ocean software’s Configuring Access to Leap’s Solvers documentation,
you require a SAPI token to submit problems to Leap solvers.
The following procedure authorizes the Ocean software access to your Leap account and
enables storing your SAPI token in your development environment.
Ocean authorization to access Leap is persisted across subsequent development
sessions for this development environment.
Note
The following OAuth-based procedure is
provided for convenience but you also have the option of manually copying
your SAPI token from Leap. The Ocean software’s Configuring Access to Leap’s Solvers
documentation provides more information.
This procedure uses the Ocean CLI
commands that you enter into your terminal. You can see help documentation for
these commands and all their options with the CLI’s --help option.[1]
For any new developer environment (for example, a Python
virtual environment or a
GitHub Codespacescodespace),
authorize the Ocean software access to your Leap account, using the secure
OAuth 2.0 code exchange, by running one of the
following Ocean CLI commands from your terminal.
In an environment such as an IDE installed on your system, where you can
access localhost addresses
from your browser, initiate the OAuth redirect flow:
dwaveauthlogin
In an environment such as a cloud IDE, where access to
localhost addresses
from your browser might be blocked, you can initiate the alternative OAuth
out-of-band flow:
dwaveauthlogin--oob
If you are not currently logged into Leap, you are asked to enter your Leap
account’s credentials.
Figure 121 shows the Leap login screen opened in
a browser tab.
When you are logged into your Leap account, you are asked to grant the Ocean
software permission to fetch an authorization code from Leap.
Figure 122 shows the authorization request opened in
a browser tab.
Click the Authorize button.
For the OAuth redirect flow, the authorization code is now stored in your
development environment; for the OAuth out-of-band flow, your browser
displays the authorization code.
For the OAuth out-of-band flow only, copy the authorization code to your
terminal’s “Authorizationcode:” prompt, similar to the representative
shell lines shown below:
$ dwave auth login --oob
Please visit the following URL to authorize Ocean:
https://leap.dwavesystems.com/leap/openid/authorize?response_type=code&client_id=96...
Authorization code: 717983...
Figure 123 shows the authorization code
returned in a browser tab for you to copy to the terminal prompt.