Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
191bb3d
chore: Upgrade Tower API clients
bradhe Jul 18, 2025
7205cfd
chore: Purge app slugs from everything
bradhe Jul 18, 2025
911dacd
chore: Updated clients for Tower API
bradhe Jul 22, 2025
f782cad
Merge pull request #68 from tower/feature/tow-586-update-cli-to-remov…
bradhe Jul 25, 2025
92e1924
chore: Report error with installing UV
bradhe Jul 25, 2025
2dbe91c
chore: Checkpoint
bradhe Jul 25, 2025
5a5ad60
chore: Another checkpoint
bradhe Jul 25, 2025
d9d6c97
chore: Upgrade `tower-api` to the latest
bradhe Jul 25, 2025
0cb78c6
chore: Progress on getting eventsources there
bradhe Jul 25, 2025
acaba9e
chore: Upgrade the Tower API client and add a log stream client
bradhe Jul 27, 2025
26d0116
chore: Make enum deserialization case insensitive
bradhe Jul 28, 2025
49af4dd
chore: When a run completes, we should stop following it.
bradhe Jul 28, 2025
3eaa5dc
chore: Format dates a little nicer.
bradhe Jul 28, 2025
6783e23
chore: A few updates.
bradhe Jul 28, 2025
9616bc5
Update crates/tower-cmd/src/run.rs
bradhe Jul 28, 2025
d6f8347
Update crates/tower-cmd/src/api.rs
bradhe Jul 28, 2025
fc73e8f
chore: Centralize date formatting
bradhe Jul 28, 2025
ea063fc
chore: Add Ctrl+C detection
bradhe Jul 28, 2025
dec0ba1
Update crates/tower-cmd/src/run.rs
bradhe Jul 28, 2025
232d36e
chore: Remove legacy comment
bradhe Jul 28, 2025
2c7f204
chore: Remove short form of `--dir` and move it to `--detached`
bradhe Jul 28, 2025
1955173
chore: Improved naming
bradhe Jul 28, 2025
380f76d
Update crates/tower-cmd/src/run.rs
konstantinoscs Jul 28, 2025
345846b
Merge pull request #73 from tower/feature/follow-logs-in-tower-cloud
bradhe Jul 28, 2025
20aa598
Update src/tower/tower_api_client/models/update_team_params.py
bradhe Jul 28, 2025
febfa39
chore: Bump version to v0.3.23
bradhe Jul 28, 2025
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
97 changes: 85 additions & 12 deletions Cargo.lock

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

5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ resolver = "2"

[workspace.package]
edition = "2021"
version = "0.3.22"
version = "0.3.23"



description = "Tower is the best way to host Python data apps in production"
Expand All @@ -26,6 +27,7 @@ cli-table = "0.4"
colored = "2"
config = { path = "crates/config" }
crypto = { path = "crates/crypto" }
ctrlc = "3"
dirs = "5"
futures = "0.3"
futures-util = "0.3"
Expand All @@ -37,6 +39,7 @@ pem = "3"
promptly = "0.3"
rand = "0.8"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "stream"] }
reqwest-eventsource = { version = "0.6" }
rpassword = "7"
rsa = "0.9"
serde = "1"
Expand Down
4 changes: 2 additions & 2 deletions crates/config/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ pub enum Error {
#[snafu(display("Missing required app field `{}` in Towerfile", field))]
MissingRequiredAppField { field: String },

#[snafu(display("Team with slug {} not found!", team_slug))]
TeamNotFound { team_slug: String },
#[snafu(display("Team with name {} not found!", team_name))]
TeamNotFound { team_name: String },

#[snafu(display("Unknown describe session value: {}", value))]
UnknownDescribeSessionValue { value: serde_json::Value },
Expand Down
6 changes: 3 additions & 3 deletions crates/config/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,18 +129,18 @@ impl Config {
}

/// Sets the active team in the session by team slug and saves it
pub fn set_active_team_by_slug(&self, team_slug: &str) -> Result<(), Error> {
pub fn set_active_team_by_name(&self, name: &str) -> Result<(), Error> {
// Get the current session
let mut session = Session::from_config_dir()?;

// Find the team with the matching slug
let team = session
.teams
.iter()
.find(|team| team.slug == team_slug)
.find(|team| team.name == name)
.cloned()
.ok_or(Error::TeamNotFound {
team_slug: team_slug.to_string(),
team_name: name.to_string(),
})?;

// Set the active team
Expand Down
3 changes: 0 additions & 3 deletions crates/config/src/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ pub struct Token {

#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct Team {
pub slug: String,
pub name: String,
pub token: Token,
pub team_type: String,
Expand Down Expand Up @@ -189,7 +188,6 @@ impl Session {
.teams
.iter()
.map(|team_api| Team {
slug: team_api.slug.clone(),
name: team_api.name.clone(),
token: if let Some(token) = &team_api.token {
Token {
Expand Down Expand Up @@ -232,7 +230,6 @@ impl Session {
.teams
.iter()
.map(|t| Team {
slug: t.slug.clone(),
name: t.name.clone(),
team_type: t.r#type.clone(),
token: Token {
Expand Down
Loading
Loading