Skip to content

Commit

Permalink
collab: Attach GitHub login to LLM spans (#16316)
Browse files Browse the repository at this point in the history
This PR updates the LLM service to include the GitHub login on its
spans.

We need to pass this information through on the LLM token, so it will
temporarily be `None` until this change is deployed and new tokens have
been issued.

Release Notes:

- N/A
  • Loading branch information
maxdeviant authored Aug 15, 2024
1 parent df20bae commit 9233418
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 0 deletions.
1 change: 1 addition & 0 deletions crates/collab/src/llm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ async fn validate_api_token<B>(mut req: Request<B>, next: Next<B>) -> impl IntoR

tracing::Span::current()
.record("user_id", claims.user_id)
.record("login", claims.github_user_login.clone())
.record("authn.jti", &claims.jti);

req.extensions_mut().insert(claims);
Expand Down
8 changes: 8 additions & 0 deletions crates/collab/src/llm/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ pub struct LlmTokenClaims {
pub exp: u64,
pub jti: String,
pub user_id: u64,
// This field is temporarily optional so it can be added
// in a backwards-compatible way. We can make it required
// once all of the LLM tokens have cycled (~1 hour after
// this change has been deployed).
#[serde(default)]
pub github_user_login: Option<String>,
pub is_staff: bool,
pub plan: rpc::proto::Plan,
}
Expand All @@ -22,6 +28,7 @@ const LLM_TOKEN_LIFETIME: Duration = Duration::from_secs(60 * 60);
impl LlmTokenClaims {
pub fn create(
user_id: UserId,
github_user_login: String,
is_staff: bool,
plan: rpc::proto::Plan,
config: &Config,
Expand All @@ -37,6 +44,7 @@ impl LlmTokenClaims {
exp: (now + LLM_TOKEN_LIFETIME).timestamp() as u64,
jti: uuid::Uuid::new_v4().to_string(),
user_id: user_id.to_proto(),
github_user_login: Some(github_user_login),
is_staff,
plan,
};
Expand Down
1 change: 1 addition & 0 deletions crates/collab/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ async fn main() -> Result<()> {
method = ?request.method(),
matched_path,
user_id = tracing::field::Empty,
login = tracing::field::Empty,
authn.jti = tracing::field::Empty
)
})
Expand Down
1 change: 1 addition & 0 deletions crates/collab/src/rpc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4941,6 +4941,7 @@ async fn get_llm_api_token(
}
let token = LlmTokenClaims::create(
user.id,
user.github_login.clone(),
session.is_staff(),
session.current_plan(db).await?,
&session.app_state.config,
Expand Down

0 comments on commit 9233418

Please sign in to comment.