Skip to content

Commit ccc49a8

Browse files
committed
fix: linux lints
1 parent 99fe1db commit ccc49a8

File tree

7 files changed

+181
-263
lines changed

7 files changed

+181
-263
lines changed

crates/chat-cli/src/auth/builder_id.rs

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,9 @@ use crate::auth::AuthError;
5252
use crate::auth::consts::*;
5353
use crate::auth::scope::is_scopes;
5454
use crate::aws_common::app_name;
55-
use crate::database::Database;
56-
use crate::database::secret_store::{
55+
use crate::database::{
56+
Database,
5757
Secret,
58-
SecretStore,
5958
};
6059

6160
#[derive(Debug, Copy, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
@@ -132,8 +131,8 @@ impl DeviceRegistration {
132131
}
133132

134133
/// Loads the OIDC registered client from the secret store, deleting it if it is expired.
135-
async fn load_from_secret_store(secret_store: &SecretStore, region: &Region) -> Result<Option<Self>, AuthError> {
136-
let device_registration = secret_store.get(Self::SECRET_KEY).await?;
134+
async fn load_from_secret_store(database: &Database, region: &Region) -> Result<Option<Self>, AuthError> {
135+
let device_registration = database.get_secret(Self::SECRET_KEY).await?;
137136

138137
if let Some(device_registration) = device_registration {
139138
// check that the data is not expired, assume it is invalid if not present
@@ -147,7 +146,7 @@ impl DeviceRegistration {
147146
}
148147

149148
// delete the data if its expired or invalid
150-
if let Err(err) = secret_store.delete(Self::SECRET_KEY).await {
149+
if let Err(err) = database.delete_secret(Self::SECRET_KEY).await {
151150
error!(?err, "Failed to delete device registration from keychain");
152151
}
153152

@@ -161,7 +160,7 @@ impl DeviceRegistration {
161160
client: &Client,
162161
region: &Region,
163162
) -> Result<Self, AuthError> {
164-
match Self::load_from_secret_store(&database.secret_store, region).await {
163+
match Self::load_from_secret_store(database, region).await {
165164
Ok(Some(registration)) if registration.oauth_flow == OAuthFlow::DeviceCode => match &registration.scopes {
166165
Some(scopes) if is_scopes(scopes) => return Ok(registration),
167166
_ => warn!("Invalid scopes in device registration, ignoring"),
@@ -190,17 +189,17 @@ impl DeviceRegistration {
190189
SCOPES.iter().map(|s| (*s).to_owned()).collect(),
191190
);
192191

193-
if let Err(err) = device_registration.save(&database.secret_store).await {
192+
if let Err(err) = device_registration.save(database).await {
194193
error!(?err, "Failed to write device registration to keychain");
195194
}
196195

197196
Ok(device_registration)
198197
}
199198

200199
/// Saves to the passed secret store.
201-
pub async fn save(&self, secret_store: &SecretStore) -> Result<(), AuthError> {
200+
pub async fn save(&self, secret_store: &Database) -> Result<(), AuthError> {
202201
secret_store
203-
.set(Self::SECRET_KEY, &serde_json::to_string(&self)?)
202+
.set_secret(Self::SECRET_KEY, &serde_json::to_string(&self)?)
204203
.await?;
205204
Ok(())
206205
}
@@ -294,8 +293,8 @@ impl BuilderIdToken {
294293
}
295294

296295
/// Load the token from the keychain, refresh the token if it is expired and return it
297-
pub async fn load(database: &mut Database) -> Result<Option<Self>, AuthError> {
298-
match database.secret_store.get(Self::SECRET_KEY).await {
296+
pub async fn load(database: &Database) -> Result<Option<Self>, AuthError> {
297+
match database.get_secret(Self::SECRET_KEY).await {
299298
Ok(Some(secret)) => {
300299
let token: Option<Self> = serde_json::from_str(&secret.0)?;
301300
match token {
@@ -305,7 +304,7 @@ impl BuilderIdToken {
305304
let client = client(region.clone());
306305
// if token is expired try to refresh
307306
if token.is_expired() {
308-
token.refresh_token(&client, &database.secret_store, &region).await
307+
token.refresh_token(&client, database, &region).await
309308
} else {
310309
Ok(Some(token))
311310
}
@@ -325,19 +324,19 @@ impl BuilderIdToken {
325324
pub async fn refresh_token(
326325
&self,
327326
client: &Client,
328-
secret_store: &SecretStore,
327+
database: &Database,
329328
region: &Region,
330329
) -> Result<Option<Self>, AuthError> {
331330
let Some(refresh_token) = &self.refresh_token else {
332331
// if the token is expired and has no refresh token, delete it
333-
if let Err(err) = self.delete(secret_store).await {
332+
if let Err(err) = self.delete(database).await {
334333
error!(?err, "Failed to delete builder id token");
335334
}
336335

337336
return Ok(None);
338337
};
339338

340-
let registration = match DeviceRegistration::load_from_secret_store(secret_store, region).await? {
339+
let registration = match DeviceRegistration::load_from_secret_store(database, region).await? {
341340
Some(registration) if registration.oauth_flow == self.oauth_flow => registration,
342341
// If the OIDC client registration is for a different oauth flow or doesn't exist, then
343342
// we can't refresh the token.
@@ -374,7 +373,7 @@ impl BuilderIdToken {
374373
);
375374
debug!("Refreshed access token, new token: {:?}", token);
376375

377-
if let Err(err) = token.save(secret_store).await {
376+
if let Err(err) = token.save(database).await {
378377
error!(?err, "Failed to store builder id access token");
379378
};
380379

@@ -387,7 +386,7 @@ impl BuilderIdToken {
387386
// if the error is the client's fault, clear the token
388387
if let SdkError::ServiceError(service_err) = &err {
389388
if !service_err.err().is_slow_down_exception() {
390-
if let Err(err) = self.delete(secret_store).await {
389+
if let Err(err) = self.delete(database).await {
391390
error!(?err, "Failed to delete builder id token");
392391
}
393392
}
@@ -407,16 +406,16 @@ impl BuilderIdToken {
407406
}
408407

409408
/// Save the token to the keychain
410-
pub async fn save(&self, secret_store: &SecretStore) -> Result<(), AuthError> {
411-
secret_store
412-
.set(Self::SECRET_KEY, &serde_json::to_string(self)?)
409+
pub async fn save(&self, database: &Database) -> Result<(), AuthError> {
410+
database
411+
.set_secret(Self::SECRET_KEY, &serde_json::to_string(self)?)
413412
.await?;
414413
Ok(())
415414
}
416415

417416
/// Delete the token from the keychain
418-
pub async fn delete(&self, secret_store: &SecretStore) -> Result<(), AuthError> {
419-
secret_store.delete(Self::SECRET_KEY).await?;
417+
pub async fn delete(&self, database: &Database) -> Result<(), AuthError> {
418+
database.delete_secret(Self::SECRET_KEY).await?;
420419
Ok(())
421420
}
422421

@@ -488,7 +487,7 @@ pub async fn poll_create_token(
488487
let token: BuilderIdToken =
489488
BuilderIdToken::from_output(output, region, start_url, OAuthFlow::DeviceCode, scopes);
490489

491-
if let Err(err) = token.save(&database.secret_store).await {
490+
if let Err(err) = token.save(database).await {
492491
error!(?err, "Failed to store builder id token");
493492
};
494493

@@ -509,13 +508,13 @@ pub async fn is_logged_in(database: &mut Database) -> bool {
509508
}
510509

511510
pub async fn logout(database: &mut Database) -> Result<(), AuthError> {
512-
let Ok(secret_store) = SecretStore::new().await else {
511+
let Ok(secret_store) = Database::new().await else {
513512
return Ok(());
514513
};
515514

516515
let (builder_res, device_res) = tokio::join!(
517-
secret_store.delete(BuilderIdToken::SECRET_KEY),
518-
secret_store.delete(DeviceRegistration::SECRET_KEY),
516+
secret_store.delete_secret(BuilderIdToken::SECRET_KEY),
517+
secret_store.delete_secret(DeviceRegistration::SECRET_KEY),
519518
);
520519

521520
let profile_res = database.unset_auth_profile();

crates/chat-cli/src/auth/pkce.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ impl PkceRegistration {
231231
/// then the access and refresh tokens will be saved.
232232
///
233233
/// Only the first connection will be served.
234-
pub async fn finish<C: PkceClient>(self, client: &C, database: Option<&Database>) -> Result<(), AuthError> {
234+
pub async fn finish<C: PkceClient>(self, client: &C, database: Option<&mut Database>) -> Result<(), AuthError> {
235235
let code = tokio::select! {
236236
code = Self::recv_code(self.listener, self.state) => {
237237
code?
@@ -270,11 +270,11 @@ impl PkceRegistration {
270270
);
271271

272272
if let Some(database) = database {
273-
if let Err(err) = device_registration.save(&database.secret_store).await {
273+
if let Err(err) = device_registration.save(database).await {
274274
error!(?err, "Failed to store pkce registration to secret store");
275275
}
276276

277-
if let Err(err) = token.save(&database.secret_store).await {
277+
if let Err(err) = token.save(database).await {
278278
error!(?err, "Failed to store builder id token");
279279
};
280280
}

crates/chat-cli/src/cli/debug.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
use clap::{
2-
Subcommand,
3-
ValueEnum,
4-
};
1+
use clap::ValueEnum;
52

63
#[derive(Debug, ValueEnum, Clone, PartialEq, Eq)]
74
pub enum Build {
@@ -65,7 +62,7 @@ pub enum TISAction {
6562
use std::path::PathBuf;
6663

6764
#[cfg(target_os = "macos")]
68-
#[derive(Debug, Subcommand, Clone, PartialEq, Eq)]
65+
#[derive(Debug, clap::Subcommand, Clone, PartialEq, Eq)]
6966
pub enum InputMethodDebugAction {
7067
Install {
7168
bundle_path: Option<PathBuf>,

0 commit comments

Comments
 (0)