Skip to content

Commit 577a3ed

Browse files
committed
chore: add logs for refreshing token
1 parent f7cf836 commit 577a3ed

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

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

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ use time::OffsetDateTime;
4545
use tracing::{
4646
debug,
4747
error,
48+
trace,
4849
warn,
4950
};
5051

@@ -123,16 +124,26 @@ impl DeviceRegistration {
123124

124125
/// Loads the OIDC registered client from the secret store, deleting it if it is expired.
125126
async fn load_from_secret_store(database: &Database, region: &Region) -> Result<Option<Self>, AuthError> {
127+
trace!(?region, "loading device registration from secret store");
126128
let device_registration = database.get_secret(Self::SECRET_KEY).await?;
127129

128130
if let Some(device_registration) = device_registration {
129131
// check that the data is not expired, assume it is invalid if not present
130132
let device_registration: Self = serde_json::from_str(&device_registration.0)?;
131133

132134
if let Some(client_secret_expires_at) = device_registration.client_secret_expires_at {
133-
if !is_expired(&client_secret_expires_at) && device_registration.region == region.as_ref() {
135+
let is_expired = is_expired(&client_secret_expires_at);
136+
let registration_region_is_valid = device_registration.region == region.as_ref();
137+
trace!(
138+
?is_expired,
139+
?registration_region_is_valid,
140+
"checking if device registration is valid"
141+
);
142+
if !is_expired && registration_region_is_valid {
134143
return Ok(Some(device_registration));
135144
}
145+
} else {
146+
warn!("no expiration time found for the client secret");
136147
}
137148
}
138149

@@ -291,19 +302,25 @@ impl BuilderIdToken {
291302
match token {
292303
Some(token) => {
293304
let region = token.region.clone().map_or(OIDC_BUILDER_ID_REGION, Region::new);
294-
295305
let client = client(region.clone());
296-
// if token is expired try to refresh
306+
297307
if token.is_expired() {
308+
trace!("token is expired, refreshing");
298309
token.refresh_token(&client, database, &region).await
299310
} else {
300311
Ok(Some(token))
301312
}
302313
},
303-
None => Ok(None),
314+
None => {
315+
debug!("secret stored in the database was empty");
316+
Ok(None)
317+
},
304318
}
305319
},
306-
Ok(None) => Ok(None),
320+
Ok(None) => {
321+
debug!("no secret found in the database");
322+
Ok(None)
323+
},
307324
Err(err) => {
308325
error!(%err, "Error getting builder id token from keychain");
309326
Err(err)?

crates/chat-cli/src/database/mod.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ use serde_json::{
2727
};
2828
use settings::Settings;
2929
use thiserror::Error;
30-
use tracing::info;
30+
use tracing::{
31+
info,
32+
trace,
33+
};
3134
use uuid::Uuid;
3235

3336
use crate::cli::ConversationState;
@@ -334,15 +337,18 @@ impl Database {
334337
}
335338

336339
pub async fn get_secret(&self, key: &str) -> Result<Option<Secret>, DatabaseError> {
340+
trace!(key, "getting secret");
337341
Ok(self.get_entry::<String>(Table::Auth, key)?.map(Into::into))
338342
}
339343

340344
pub async fn set_secret(&self, key: &str, value: &str) -> Result<(), DatabaseError> {
345+
trace!(key, "setting secret");
341346
self.set_entry(Table::Auth, key, value)?;
342347
Ok(())
343348
}
344349

345350
pub async fn delete_secret(&self, key: &str) -> Result<(), DatabaseError> {
351+
trace!(key, "deleting secret");
346352
self.delete_entry(Table::Auth, key)
347353
}
348354

0 commit comments

Comments
 (0)