Skip to main content

ALCF Tokens

Centralized ALCF CLI tool to generate and retrieve Globus access tokens for the following services:

Service service-name
ALCF Inference Service inference
ALCF IRI API iri
Globus Compute globus-compute
Globus Transfer globus-transfer

1. Prerequisites

  • Python >= 3.10

2. Installation Options

Python environment

python -m venv .venv
source .venv/bin/activate
pip install alcf-tokens

Conda environment

conda create -n alcf-tokens python=3.12 -y
conda activate alcf-tokens
pip install alcf-tokens

Uv

uv venv .venv
source .venv/bin/activate
uv pip install alcf-tokens

To invoke the tool as a one-liner without the need to manually create a virtual environment, we recommend uvx:

uvx alcf-tokens --help

3. Usage

Test installation

Once installed, you should be able to access alcf-tokens from your active environment:

alcf-tokens --help

Authentication

Log in once to obtain tokens for all services:

alcf-tokens login

Re-authenticate for a specific service only:

alcf-tokens login <service-name>

Globus Transfer token

To also authorize Globus Transfer against one of your own collections, pass its UUID with --authorize-transfer. Repeat the flag to authorize multiple collections:

alcf-tokens login --authorize-transfer <collection-uuid>
alcf-tokens login --authorize-transfer <uuid-1> --authorize-transfer <uuid-2>

If the collection is a Globus Connect Server (GCS) mapped collection that requires a data_access scope, append :data_access to the UUID:

alcf-tokens login --authorize-transfer <collection-uuid>:data_access

The following collection aliases are supported for convenience:

Alias Collection
home 9032dd3a-e841-4687-a163-2720da731b5b (ALCF Home, with data_access)
eagle 05d2c76a-e867-4f67-aa57-76edeb0beda0 (ALCF Eagle, with data_access)
flare f39a7a0f-5bfc-46ce-9615-ba9f8592814f (ALCF Flare, with data_access)
alcf-tokens login --authorize-transfer eagle

Retrieve a token

alcf-tokens get-token <service-name>

Test a token

alcf-tokens test-token <service-name>

Output: {"ready": true, "error": null} on success.

List available services

alcf-tokens list-services

Clear stored tokens

alcf-tokens clear-tokens

4. Incorporating your tokens in services

Globus Compute

from globus_sdk import AccessTokenAuthorizer
from globus_compute_sdk import Client

COMPUTE_TOKEN = "<your-globus-compute-token>"

auth = AccessTokenAuthorizer(COMPUTE_TOKEN)
gcc = Client(authorizer=auth)

See ALCF docs for more details.

Globus Transfer

from globus_sdk import AccessTokenAuthorizer, TransferClient

TRANSFER_TOKEN = "<your-globus-transfer-token>"

auth = AccessTokenAuthorizer(TRANSFER_TOKEN)
tc = TransferClient(authorizer=auth)

See Globus docs for more details.

ALCF Inference Service

Use alcf-tokens get-token inference to print your token, and incorporate it into your request headers. See ALCF docs for more details.

ALCF IRI API

Use alcf-tokens get-token iri to print your token, and incorporate it into your request headers. See ALCF docs for more details.

5. Standalone shell script (no dependencies)

alcf-tokens.sh is a dependency-free alternative to the Python CLI. It is written in POSIX sh and needs only curl, jq, awk, and openssl. It supports the inference, iri, and globus-compute services (globus-transfer is not supported) and mirrors the Python CLI argument format: <action> [<service>], with the service passed positionally and no options.

To run it directly from the repository without cloning it first:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/argonne-lcf/alcf-tokens/main/alcf-tokens.sh)" alcf-tokens.sh login iri
./alcf-tokens.sh list-services                  # list available services
./alcf-tokens.sh login                          # authenticate for all services
./alcf-tokens.sh login iri                      # authenticate for one service only
./alcf-tokens.sh get-token inference
./alcf-tokens.sh test-token inference
./alcf-tokens.sh clear-tokens

Release files for alcf-tokens 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for alcf-tokens 0.1.0
File Size Uploaded
alcf_tokens-0.1.0.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for alcf-tokens 0.1.0
File Interpreter ABI Platform
alcf_tokens-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.7 kB

Release files / alcf_tokens-0.1.0.tar.gz

Download URL alcf_tokens-0.1.0.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
906ff0da2225e0cc2bdcc6bc5d74d082d0e319cf115929752e033e079bbc0c5f
BLAKE2b-256 checksum
How to use checksums
7c2f7a56e83f18aa56b8660b5fe1da8b30a2f42c18ee70fb8550211b615f6556
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / alcf_tokens-0.1.0-py3-none-any.whl

Download URL alcf_tokens-0.1.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
461dfc4adfd64bbf2357422655d4f22bf3a8a70930adb5eea1e594eeb71fbe5b
BLAKE2b-256 checksum
How to use checksums
1a746b7680107e02cae6f6273423ccdb578033195eb4623c9b1f8fc2093bcb0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page