Skip to content
Closed
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
6dd3ad9
feat(env): add environment variables for Docker registry configuration
Leay15 Feb 1, 2026
ba7b45e
feat(error): add Serde JSON error variant to error handling
Leay15 Feb 1, 2026
c0423de
feat(auth): implement login and logout functionality for Docker regis…
Leay15 Feb 1, 2026
4d46b9f
feat(docker): add modules for Docker configuration and registry authe…
Leay15 Feb 1, 2026
0ba304d
feat(auth): enhance login and logout commands with registry and crede…
Leay15 Feb 1, 2026
682529e
feat(docker): update registry initialization to support anonymous aut…
Leay15 Feb 1, 2026
f9420df
feat(auth): extend login and logout commands with registry options an…
Leay15 Feb 1, 2026
01c1ddf
feat(docker): integrate registry authentication into OciClient config…
Leay15 Feb 1, 2026
9d40c6b
feat(docker): update CLI documentation for private image pulling and …
Leay15 Feb 1, 2026
ce08cbf
feat(docker): implement Docker config reader for registry authentication
Leay15 Feb 1, 2026
f3fad36
feat(docker): add registry authentication persistence helpers for sto…
Leay15 Feb 1, 2026
6abaccd
feat(docker): add integration tests for registry authentication with …
Leay15 Feb 1, 2026
a2cab94
feat(docker): add usage examples for Docker config and registry auth …
Leay15 Feb 1, 2026
f2735b5
feat(docker): update logging for saved registry credentials to indica…
Leay15 Feb 1, 2026
bc16252
feat(docker): remove TODO for supporting credsStore and credHelpers i…
Leay15 Feb 1, 2026
42d3c47
feat(docker): clean up code formatting and improve readability in con…
Leay15 Feb 1, 2026
b406bfb
feat(docker): add note about credential storage and validation for ms…
Leay15 Feb 1, 2026
2c72e6c
feat(docker): reorder imports for improved organization in registry a…
Leay15 Feb 1, 2026
baf1124
feat(docker): reorganize imports for better clarity in image and regi…
Leay15 Feb 1, 2026
2bd30ba
feat(docker): add base64, serde, and serde_json dependencies to Cargo…
Leay15 Feb 1, 2026
8e20a7c
feat(auth): implement registry authentication resolution and normaliz…
Leay15 Feb 9, 2026
7efb79d
feat(auth): add compatibility re-exports for registry authentication …
Leay15 Feb 9, 2026
a343da7
feat(auth): normalize registry host in resolve_registry_host function
Leay15 Feb 9, 2026
d4e4faf
feat(auth): integrate registry authentication resolution in image han…
Leay15 Feb 9, 2026
158487a
feat(image): add image module to the project
Leay15 Feb 9, 2026
47c1505
feat(auth): expose registry authentication functions in the module
Leay15 Feb 9, 2026
c1ba28f
feat(cli): clarify credential handling and environment variable prece…
Leay15 Feb 9, 2026
88e3112
fix(auth): clean up import formatting in auth and mod files
Leay15 Feb 9, 2026
e17e347
refactor(auth): improves credential handling and storage logic
Leay15 Feb 14, 2026
e41e635
enhance(handler): add doc comments and use tracing instead of println
Leay15 Feb 14, 2026
bfad51d
enhance(image, mod): removes image.rs file and leftover usages
Leay15 Feb 14, 2026
86bbbfa
chore(env): remove sandbox port range added by mistake
Leay15 Feb 14, 2026
952605c
enhance(auth): changes resolve_registry_auth for better consistency
Leay15 Feb 14, 2026
02941e7
feat(auth): implement credential store for registry authentication
Leay15 Feb 14, 2026
bb23d1b
enhance(auth): refactor to use CredentialStore for registry credentia…
Leay15 Feb 14, 2026
59b447f
enhance(dependencies): add keyring dependency for improved credential…
Leay15 Feb 14, 2026
a67b62d
enhance(auth): modifies keyring usage for credential management and f…
Leay15 Feb 14, 2026
a7ff087
enhance(dependencies): add sha2 dependency for improved cryptographic…
Leay15 Feb 14, 2026
df635f9
enhance(registry): exposes registry() function and removes index.dock…
Leay15 Feb 14, 2026
69eef28
enhance(auth): refactor credential resolution and improve password ha…
Leay15 Feb 14, 2026
3d76174
enhance(auth): add resolve_explicit_credentials function for user-pro…
Leay15 Feb 14, 2026
d124a37
Merge branch 'main' into feat/registries-auth-implementation
Leay15 Feb 14, 2026
b4f6879
chore(lint): applies linter modification
Leay15 Feb 14, 2026
1042575
enhance(env): uses MSB_REGISTRY_HOST_ENV_VAR in get_oci_registry for …
Leay15 Feb 15, 2026
d803ee8
enhance(oci): uses oci_registry and normalizes its content
Leay15 Feb 15, 2026
06696c3
enhance(reference): refactor registry resolution to improve clarity a…
Leay15 Feb 15, 2026
dc2bd1f
enhance(reference): simplify registry resolution logic for improved r…
Leay15 Feb 15, 2026
4346167
enhance(credential_store): rename load_stored_registry_credentials to…
Leay15 Feb 15, 2026
a8f54d7
chore(docker_config): removes docker_config.rs for being review in an…
Leay15 Feb 15, 2026
0ac59eb
chore(lib): remove docker_config module for future review
Leay15 Feb 15, 2026
499b715
chore(credential_store): changes keyring reference for using host key
Leay15 Feb 15, 2026
c35e00c
enhance(credential_store): rename StoredRegistryCredentials to MsbReg…
Leay15 Feb 15, 2026
a246458
enhance(credential_store): implement conversion from MsbRegistryAuth …
Leay15 Feb 15, 2026
26ff560
Merge branch 'main' into feat/registries-auth-implementation
Leay15 Feb 15, 2026
1f54993
fix(handlers): simplify logout_subcommand to remove only resolved reg…
Leay15 Feb 15, 2026
cc47a84
enhance(registry): refactor auth handling to use CredentialStore and …
Leay15 Feb 15, 2026
c4ce894
enhance(tests): update fetch_index and fetch_manifest_and_config test…
Leay15 Feb 15, 2026
8270100
Merge remote-tracking branch 'origin/feat/registries-auth-implementat…
Leay15 Feb 15, 2026
c4c22de
enhance(credential_store): simplify code formatting and improve reada…
Leay15 Feb 15, 2026
6b87b28
enhance(handlers): reorder imports and simplify string normalization
Leay15 Feb 15, 2026
ccee9ca
enhance(registry): simplify auth resolution logic and improve readabi…
Leay15 Feb 15, 2026
9d52751
enhance(cli): update login instructions for registry credentials and …
Leay15 Feb 15, 2026
24e1a31
chore(cargo): remove unused url workspace entry
Leay15 Feb 15, 2026
6f3211a
fix(keyring): add platform-specific dependencies for macOS and Linux
Leay15 Feb 16, 2026
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
2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ futures = "0.3"
getset = "0.1"
hex = "0.4"
indicatif = "0.18"
keyring = "3.6"
intaglio = "1.10"
ipnetwork = { version = "0.21.0", features = ["serde"] }
jsonwebtoken = "9.3"
Expand Down Expand Up @@ -87,6 +88,7 @@ tracing = "0.1"
tracing-subscriber = "0.3"
typed-builder = "0.23"
typed-path = "0.12"
url = "2.5"
uuid = { version = "1.11", features = ["v4"] }
uzers = "0.12"
walkdir = "2.4"
Expand Down
70 changes: 70 additions & 0 deletions docs/references/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -646,6 +646,15 @@ msb pull [--image] [--image-group] <name> [options]
**Examples:**

```bash
# Pull a private image using env credentials (token)
export MSB_REGISTRY_TOKEN=token123
msb pull registry.example.com/org/app:1.0

# Pull a private image using env credentials (username/password)
export MSB_REGISTRY_USERNAME=user
export MSB_REGISTRY_PASSWORD=pass
msb pull registry.example.com/org/app:1.0

# Pull an image
msb pull --image python:3.11

Expand Down Expand Up @@ -686,6 +695,67 @@ msb push myapp:latest

===

==- `msb login`
Set registry credentials (persisted in microsandbox home).

```bash
msb login [registry] [--username <user>] [--password-stdin] [--token <token>]
```

| Option | Description |
| ----------------- | ---------------------------------- |
| `--username` | Registry username |
| `--password-stdin`| Read password from stdin |
| `--token` | Registry access token (bearer) |

**Examples:**

```bash
# Provide a token
msb login ghcr.io --token token123

# Provide username and password via stdin
echo "pass" | msb login docker.io --username user --password-stdin

# Use env fallback if CLI is invalid
export MSB_REGISTRY_TOKEN=token123
msb login ghcr.io --username user --password-stdin
```

!!!note
`msb login` stores credentials locally but does not validate them against the registry.
When pulling images, environment variables take priority over stored credentials.
!!!

!!!warning Security
Credentials are stored in `~/.microsandbox/registry_auth.json`. Restrict file permissions and avoid sharing it.
!!!

===

==- `msb logout`
Remove stored registry credentials.

```bash
msb logout [registry] [--all]
```

| Option | Description |
| --------- | ---------------------------------------- |
| `--all` | Remove all stored registry credentials |

**Examples:**

```bash
# Remove credentials for a registry
msb logout ghcr.io

# Remove all stored credentials
msb logout --all
```

===

---

### Maintenance
Expand Down
Loading