Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions docs/concepts/authentication/cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# The `uv auth` CLI

uv provides a high-level interface for storing and retrieving credentials from services.

## Logging in to a service

To add credentials for service, use the `uv auth login` command:

```console
$ uv auth login example.com
```

This will prompt for the credentials.

The credentials can also be provided using the `--username` and `--password` options, or the
`--token` option for services which use a `__token__` or arbitrary username.

Once credentials are added, uv will use them for packaging operations that require fetching content
from the given service. At this time, only HTTPS Basic authentication is supported. The credentials
will not yet be used for Git requests.

!!! note

The credentials will not be validated, i.e., incorrect credentials will not fail.

## Logging out of a service

To remove credentials, use the `uv auth logout` command:

```console
$ uv auth logout example.com
```

!!! note

The credentials will not be invalidated with the remote server, i.e., they will only be removed
from local storage not rendered unusable.

## Showing credentials for a service

To show the credential stored for a given URL, use the `uv auth token` command:

```console
$ uv auth token example.com
```

If a username was used to log in, it will need to be provided as well, e.g.:

```console
$ uv auth token --username foo example.com
```

## Configuring the storage backend

By default, credentials are persisted in plain text to the uv
[credentials file](./http.md#the-uv-credentials-file).

If the [native keyring provider](./http.md#the-native-keyring-provider) is enabled, it will be used
instead, and the credentials will be stored in a secure system store. The native keyring is
currently experimental, but will become the default in the future.
10 changes: 9 additions & 1 deletion docs/concepts/authentication/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Authentication can come from the following sources, in order of precedence:

- The URL, e.g., `https://<user>:<password>@<hostname>/...`
- A [netrc](#netrc-files) configuration file
- The uv credentials file
- A [keyring provider](#keyring-providers) (off by default)

Authentication may be used for hosts specified in the following contexts:
Expand All @@ -24,6 +25,13 @@ for storing credentials on a system.
Reading credentials from `.netrc` files is always enabled. The target file path will be loaded from
the `NETRC` environment variable if defined, falling back to `~/.netrc` if not.

## The uv credentials file

uv will read credentials from `~/.local/share/uv/credentials/credentials.toml`. This file is
currently not intended to be edited manually.

To add or remove credentials, use the [`uv auth` commands](./cli.md).

## Keyring providers

A keyring provider typically fetches credentials from an operating system store.
Expand Down Expand Up @@ -52,7 +60,7 @@ macOS, it uses the Keychain Services. On Windows, it uses the Windows Credential
it uses the DBus-based Secret Service API.

Currently, uv only searches the native keyring provider for credentials it has added to the secret
store.
store. To add or remove credentials, use the [`uv auth` commands](./cli.md).

Set `--keyring-provider native`, `UV_KEYRING_PROVIDER=native`, or
`tool.uv.keyring-provider = "native"` to use the provider.
Expand Down
1 change: 1 addition & 0 deletions docs/concepts/authentication/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Authentication is required when working with private repositories or package ind

Learn more about authentication in uv:

- [Using the `uv auth` CLI](./cli.md)
- [HTTP authentication](./http.md)
- [Git authentication](./git.md)
- [TLS certificates](./certificates.md)
Expand Down
1 change: 1 addition & 0 deletions mkdocs.template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ nav:
- Build backend: concepts/build-backend.md
- Authentication:
- concepts/authentication/index.md
- The auth CLI: concepts/authentication/cli.md
- HTTP credentials: concepts/authentication/http.md
- Git credentials: concepts/authentication/git.md
- TLS certificates: concepts/authentication/certificates.md
Expand Down
Loading