Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
d55d8f4
Add CLI tunnel management with listen command
drewr Mar 27, 2026
01c3ab8
Add auth command with login, logout, list, and switch
drewr Mar 27, 2026
bdb635b
docs: Add nix instructions
drewr Mar 27, 2026
e586049
chore: update nix targets
drewr Mar 27, 2026
9546bee
fix: show which user auth'd
drewr Mar 27, 2026
3f977da
chore: don't show INFO logs by default
drewr Mar 27, 2026
089155a
fix: don't abort tunnel delete when connector is missing
drewr Mar 31, 2026
946846b
fix: correct tunnel listen label handling and start heartbeat agent
drewr Mar 31, 2026
9e35e71
feat: add project selection, tunnel --project flag, and projects command
drewr Mar 31, 2026
e2d868d
fix: normalize loopback hostnames in tunnel auth check
drewr Apr 9, 2026
ae6c646
chore: update nix deps for webkitgtk 4.1, libsoup 3, and xdo
drewr Apr 10, 2026
34ad875
Merge remote-tracking branch 'origin/main' into cli-tunnel-and-auth
drewr Apr 10, 2026
a5819b3
chore(nix): update iroh-proxy-utils hash
drewr Jun 3, 2026
362d395
fix: resolve rustls crypto provider initialization error
drewr Jun 4, 2026
bfc42b8
feat: improve quota limit error messages for tunnel creation
drewr Jun 4, 2026
4f3725b
fix: recover from auth 401s without forcing a logout
drewr Jun 6, 2026
5981fe4
fix: default to Datum relays in any build, warn on n0 fallback
drewr Jun 6, 2026
b7c9fca
feat: log when heartbeat registers a connector
drewr Jun 6, 2026
dc40d74
fix: classify refresh errors so transient blips do not break the tunnel
drewr Jun 6, 2026
1bfc67e
chore: clear unused-import and dead-code warnings in lib and CLI
drewr Jun 6, 2026
c901b01
fix: recover heartbeat from deleted lease instead of looping on 404
drewr Jun 7, 2026
76987b7
feat: scope listen_key per project so connectors do not collide
drewr Jun 7, 2026
90a7ab3
feat: stream tunnel setup progress and fail fast on iroh DNS collision
drewr Jun 7, 2026
6264818
feat: watch tunnel progress at runtime and fail fast on mid-session b…
drewr Jun 7, 2026
b7e9d6b
feat: heartbeat manual mode so CLI tunnel does not fan out across pro…
drewr Jun 7, 2026
ca4470f
feat: tunnel listen --id pins an existing tunnel and preserves its ho…
drewr Jun 7, 2026
a68d8ae
feat: --id alone resumes an existing tunnel; --id+--endpoint must agree
drewr Jun 7, 2026
7de50c7
feat: arrow-key picker when 'tunnel listen' is called with no flags
drewr Jun 7, 2026
fe57b24
fix: silence tracing while the tunnel picker is open
drewr Jun 7, 2026
d65ec4d
fix: progress steps require observedGeneration to match resource gene…
drewr Jun 7, 2026
c39d9ee
feat: annotate each progress line with the Kubernetes resource it tracks
drewr Jun 7, 2026
cff37e7
fix: auto-adopt the only candidate instead of popping a single-option…
drewr Jun 7, 2026
d8f7c96
feat: retry quota-check timeouts on tunnel resource creates
drewr Jun 7, 2026
1ed969e
feat: verify origin + proxy URL respond before claiming tunnel is ready
drewr Jun 7, 2026
0311960
feat: update_project is idempotent — skip the PATCH on no-op resume
drewr Jun 7, 2026
731e34c
fix: tolerate transient apiserver errors during setup polling
drewr Jun 8, 2026
e5232a8
fix: normalize origin URL in verify_endpoints so bare host:port probe…
drewr Jun 8, 2026
d702e02
build: vendor openssl so the CLI cross-compiles cleanly
drewr Jun 8, 2026
7fbd576
feat: wire --version on the CLI
drewr Jun 8, 2026
e14d689
feat: auth login --no-browser via OAuth2 device authorization grant
drewr Jun 8, 2026
e0ce7c0
chore(cli): bump version to 0.2.0
drewr Jun 8, 2026
7fd3448
fix(auth): use datumctl-cli client_id for device-code grant
drewr Jun 8, 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
88 changes: 85 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ CLI, GUI app, and shared library for exposing local environments to the internet
brew install datum-cloud/tap/desktop
```

**nix**

```
# GUI app
nix run github:datum-cloud/app#desktop

# CLI
nix run github:datum-cloud/app#cli -- auth login
nix run github:datum-cloud/app#cli -- tunnel list
```

**Direct download:**

[![Download for macOS](https://img.shields.io/badge/Download-macOS-000000?logo=apple&logoColor=white)](https://github.com/datum-cloud/datum-connect/releases/latest/download/Datum.dmg)
Expand Down
15 changes: 13 additions & 2 deletions cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "datum-connect"
version = "0.1.0"
version = "0.2.1"
edition = "2024"

[dependencies]
Expand All @@ -21,4 +21,15 @@ hickory-proto = "0.25.2"
iroh-base.workspace = true
z32 = "1.0.3"
rand.workspace = true
sentry.workspace = true
hex.workspace = true
sentry.workspace = true
rustls = { workspace = true, features = ["ring"] }
inquire = "0.9.4"
reqwest.workspace = true
# Bring in openssl with the `vendored` feature so cross-compiles (e.g.
# cargo-zigbuild for aarch64-linux/apple) build openssl from source
# instead of needing target-arch system headers. The dep is transitively
# pulled by iroh's pkarr -> reqwest 0.13 (default features include
# native-tls); we can't disable that without patching iroh, so we
# vendor instead.
openssl = { version = "0.10", features = ["vendored"] }
Loading
Loading