Fix cursor focus and selection in input box, add AWS env var warning box, and remove AWS Bedrock login banner
This commit is contained in:
@@ -7,36 +7,38 @@ use anyhow::{Context as _, Result, anyhow};
|
||||
use async_trait::async_trait;
|
||||
use cynic::{MutationBuilder, QueryBuilder};
|
||||
use firebase::FirebaseError;
|
||||
use galaxy_core::errors::{AnyhowErrorExt, ErrorExt, register_error};
|
||||
use galaxy_graphql::client::Operation;
|
||||
use galaxy_graphql::mutations::create_anonymous_user::{
|
||||
AnonymousUserType, CreateAnonymousUser, CreateAnonymousUserResult, CreateAnonymousUserVariables,
|
||||
};
|
||||
use galaxy_graphql::mutations::expire_api_key::{
|
||||
ExpireApiKey, ExpireApiKeyResult, ExpireApiKeyVariables,
|
||||
};
|
||||
use galaxy_graphql::mutations::generate_api_key::{
|
||||
GenerateApiKey, GenerateApiKeyInput, GenerateApiKeyResult, GenerateApiKeyVariables,
|
||||
};
|
||||
use galaxy_graphql::mutations::mint_custom_token::{
|
||||
MintCustomTokenResult, MintCustomTokenVariables,
|
||||
};
|
||||
use galaxy_graphql::mutations::set_user_is_onboarded::{
|
||||
SetUserIsOnboarded, SetUserIsOnboardedResult, SetUserIsOnboardedVariables,
|
||||
};
|
||||
use galaxy_graphql::mutations::update_user_settings::{
|
||||
UpdateUserSettings, UpdateUserSettingsInput, UpdateUserSettingsResult,
|
||||
UpdateUserSettingsVariables,
|
||||
};
|
||||
use galaxy_graphql::queries::api_keys::{
|
||||
ApiKeyProperties, ApiKeyPropertiesResult, ApiKeys, ApiKeysVariables,
|
||||
};
|
||||
use galaxy_graphql::queries::get_user::{GetUser, GetUserVariables, UserOutput as GqlUserOutput};
|
||||
use galaxy_graphql::queries::get_user_settings::{GetUserSettings, GetUserSettingsVariables};
|
||||
use instant::Duration;
|
||||
#[cfg(any(test, feature = "test-util"))]
|
||||
use mockall::automock;
|
||||
pub use session::*;
|
||||
use thiserror::Error;
|
||||
pub use user_uid::{TEST_USER_EMAIL, TEST_USER_UID, UserUid};
|
||||
use galaxy_core::errors::{AnyhowErrorExt, ErrorExt, register_error};
|
||||
use warp_graphql::client::Operation;
|
||||
use warp_graphql::mutations::create_anonymous_user::{
|
||||
AnonymousUserType, CreateAnonymousUser, CreateAnonymousUserResult, CreateAnonymousUserVariables,
|
||||
};
|
||||
use warp_graphql::mutations::expire_api_key::{
|
||||
ExpireApiKey, ExpireApiKeyResult, ExpireApiKeyVariables,
|
||||
};
|
||||
use warp_graphql::mutations::generate_api_key::{
|
||||
GenerateApiKey, GenerateApiKeyInput, GenerateApiKeyResult, GenerateApiKeyVariables,
|
||||
};
|
||||
use warp_graphql::mutations::mint_custom_token::{MintCustomTokenResult, MintCustomTokenVariables};
|
||||
use warp_graphql::mutations::set_user_is_onboarded::{
|
||||
SetUserIsOnboarded, SetUserIsOnboardedResult, SetUserIsOnboardedVariables,
|
||||
};
|
||||
use warp_graphql::mutations::update_user_settings::{
|
||||
UpdateUserSettings, UpdateUserSettingsInput, UpdateUserSettingsResult,
|
||||
UpdateUserSettingsVariables,
|
||||
};
|
||||
use warp_graphql::queries::api_keys::{
|
||||
ApiKeyProperties, ApiKeyPropertiesResult, ApiKeys, ApiKeysVariables,
|
||||
};
|
||||
use warp_graphql::queries::get_user::{GetUser, GetUserVariables, UserOutput as GqlUserOutput};
|
||||
use warp_graphql::queries::get_user_settings::{GetUserSettings, GetUserSettingsVariables};
|
||||
use warp_server_auth::credentials::{AuthToken, Credentials, FirebaseToken, LoginToken};
|
||||
pub use warp_server_auth::user_uid;
|
||||
|
||||
@@ -158,7 +160,7 @@ pub trait AuthClient: Send + Sync {
|
||||
name: String,
|
||||
team_id: Option<cynic::Id>,
|
||||
agent_uid: Option<cynic::Id>,
|
||||
expires_at: Option<warp_graphql::scalars::Time>,
|
||||
expires_at: Option<galaxy_graphql::scalars::Time>,
|
||||
) -> Result<GenerateApiKeyResult>;
|
||||
|
||||
async fn expire_api_key(&self, key_uid: &ApiKeyUid) -> Result<ExpireApiKeyResult>;
|
||||
@@ -189,7 +191,7 @@ impl AuthClientImpl {
|
||||
) -> Result<()> {
|
||||
let operation = UpdateUserSettings::build(UpdateUserSettingsVariables {
|
||||
input,
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let result = send_graphql_request(&self.base_client, operation, None)
|
||||
.await?
|
||||
@@ -204,7 +206,7 @@ impl AuthClientImpl {
|
||||
match result {
|
||||
UpdateUserSettingsResult::UpdateUserSettingsOutput(_) => Ok(()),
|
||||
UpdateUserSettingsResult::UserFacingError(error) => Err(anyhow!(
|
||||
warp_graphql::client::get_user_facing_error_message(error)
|
||||
galaxy_graphql::client::get_user_facing_error_message(error)
|
||||
)),
|
||||
UpdateUserSettingsResult::Unknown => Err(anyhow!(unknown_error_message)),
|
||||
}
|
||||
@@ -220,12 +222,12 @@ impl AuthClient for AuthClientImpl {
|
||||
anonymous_user_type: AnonymousUserType,
|
||||
) -> Result<CreateAnonymousUserResult> {
|
||||
let operation = CreateAnonymousUser::build(CreateAnonymousUserVariables {
|
||||
input: warp_graphql::mutations::create_anonymous_user::CreateAnonymousUserInput {
|
||||
input: galaxy_graphql::mutations::create_anonymous_user::CreateAnonymousUserInput {
|
||||
anonymous_user_type,
|
||||
expiration_type: warp_graphql::mutations::create_anonymous_user::AnonymousUserExpirationType::NoExpiration,
|
||||
expiration_type: galaxy_graphql::mutations::create_anonymous_user::AnonymousUserExpirationType::NoExpiration,
|
||||
referral_code,
|
||||
},
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let response = operation
|
||||
.send_request(
|
||||
@@ -271,9 +273,9 @@ impl AuthClient for AuthClientImpl {
|
||||
}
|
||||
|
||||
async fn fetch_new_custom_token(&self) -> Result<MintCustomTokenResult> {
|
||||
let operation = warp_graphql::mutations::mint_custom_token::MintCustomToken::build(
|
||||
let operation = galaxy_graphql::mutations::mint_custom_token::MintCustomToken::build(
|
||||
MintCustomTokenVariables {
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
},
|
||||
);
|
||||
let response = send_graphql_request(&self.base_client, operation, None).await?;
|
||||
@@ -288,7 +290,7 @@ impl AuthClient for AuthClientImpl {
|
||||
Ok(MintCustomTokenResult::MintCustomTokenOutput(output)) => Ok(output.custom_token),
|
||||
Ok(MintCustomTokenResult::UserFacingError(error)) => {
|
||||
Err(MintCustomTokenError::UserFacingError(
|
||||
warp_graphql::client::get_user_facing_error_message(error),
|
||||
galaxy_graphql::client::get_user_facing_error_message(error),
|
||||
))
|
||||
}
|
||||
Ok(MintCustomTokenResult::Unknown) | Err(_) => Err(MintCustomTokenError::Unknown),
|
||||
@@ -300,7 +302,7 @@ impl AuthClient for AuthClientImpl {
|
||||
auth_token: Option<&'a str>,
|
||||
) -> Result<GqlUserOutput> {
|
||||
let operation = GetUser::build(GetUserVariables {
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let mut options = self
|
||||
.base_client
|
||||
@@ -315,8 +317,10 @@ impl AuthClient for AuthClientImpl {
|
||||
.data
|
||||
.ok_or_else(|| anyhow!("Expected valid response.data"))?;
|
||||
match response.user {
|
||||
warp_graphql::queries::get_user::UserResult::UserOutput(user_output) => Ok(user_output),
|
||||
warp_graphql::queries::get_user::UserResult::Unknown => {
|
||||
galaxy_graphql::queries::get_user::UserResult::UserOutput(user_output) => {
|
||||
Ok(user_output)
|
||||
}
|
||||
galaxy_graphql::queries::get_user::UserResult::Unknown => {
|
||||
Err(anyhow!("Unable to fetch user"))
|
||||
}
|
||||
}
|
||||
@@ -324,11 +328,11 @@ impl AuthClient for AuthClientImpl {
|
||||
|
||||
async fn get_user_settings(&self) -> Result<Option<SyncedUserSettings>> {
|
||||
let operation = GetUserSettings::build(GetUserSettingsVariables {
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let response = send_graphql_request(self.base_client.as_ref(), operation, None).await?;
|
||||
match response.user {
|
||||
warp_graphql::queries::get_user_settings::UserResult::UserOutput(user_output) => {
|
||||
galaxy_graphql::queries::get_user_settings::UserResult::UserOutput(user_output) => {
|
||||
Ok(user_output
|
||||
.user
|
||||
.settings
|
||||
@@ -339,7 +343,7 @@ impl AuthClient for AuthClientImpl {
|
||||
is_telemetry_enabled: settings.is_telemetry_enabled,
|
||||
}))
|
||||
}
|
||||
warp_graphql::queries::get_user_settings::UserResult::Unknown => {
|
||||
galaxy_graphql::queries::get_user_settings::UserResult::Unknown => {
|
||||
Err(anyhow!("Unable to fetch user settings"))
|
||||
}
|
||||
}
|
||||
@@ -385,7 +389,7 @@ impl AuthClient for AuthClientImpl {
|
||||
|
||||
async fn set_user_is_onboarded(&self) -> Result<bool> {
|
||||
let operation = SetUserIsOnboarded::build(SetUserIsOnboardedVariables {
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let result = send_graphql_request(self.base_client.as_ref(), operation, None)
|
||||
.await?
|
||||
@@ -393,7 +397,7 @@ impl AuthClient for AuthClientImpl {
|
||||
match result {
|
||||
SetUserIsOnboardedResult::SetUserIsOnboardedOutput(_) => Ok(true),
|
||||
SetUserIsOnboardedResult::UserFacingError(error) => Err(anyhow!(
|
||||
warp_graphql::client::get_user_facing_error_message(error)
|
||||
galaxy_graphql::client::get_user_facing_error_message(error)
|
||||
)),
|
||||
SetUserIsOnboardedResult::Unknown => Err(anyhow!("failed to set user is onboarded")),
|
||||
}
|
||||
@@ -417,13 +421,13 @@ impl AuthClient for AuthClientImpl {
|
||||
|
||||
async fn list_api_keys(&self) -> Result<Vec<ApiKeyProperties>> {
|
||||
let operation = ApiKeys::build(ApiKeysVariables {
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let response = send_graphql_request(self.base_client.as_ref(), operation, None).await?;
|
||||
match response.api_keys {
|
||||
ApiKeyPropertiesResult::ApiKeyPropertiesOutput(output) => Ok(output.api_keys),
|
||||
ApiKeyPropertiesResult::UserFacingError(error) => Err(anyhow!(
|
||||
warp_graphql::client::get_user_facing_error_message(error)
|
||||
galaxy_graphql::client::get_user_facing_error_message(error)
|
||||
)),
|
||||
ApiKeyPropertiesResult::Unknown => Err(anyhow!("failed to fetch API keys")),
|
||||
}
|
||||
@@ -434,7 +438,7 @@ impl AuthClient for AuthClientImpl {
|
||||
name: String,
|
||||
team_id: Option<cynic::Id>,
|
||||
agent_uid: Option<cynic::Id>,
|
||||
expires_at: Option<warp_graphql::scalars::Time>,
|
||||
expires_at: Option<galaxy_graphql::scalars::Time>,
|
||||
) -> Result<GenerateApiKeyResult> {
|
||||
let operation = GenerateApiKey::build(GenerateApiKeyVariables {
|
||||
input: GenerateApiKeyInput {
|
||||
@@ -443,7 +447,7 @@ impl AuthClient for AuthClientImpl {
|
||||
agent_uid,
|
||||
expires_at,
|
||||
},
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let response = send_graphql_request(self.base_client.as_ref(), operation, None).await?;
|
||||
Ok(response.generate_api_key)
|
||||
@@ -452,7 +456,7 @@ impl AuthClient for AuthClientImpl {
|
||||
async fn expire_api_key(&self, key_uid: &ApiKeyUid) -> Result<ExpireApiKeyResult> {
|
||||
let operation = ExpireApiKey::build(ExpireApiKeyVariables {
|
||||
key_uid: key_uid.into(),
|
||||
request_context: warp_graphql::client::get_request_context(),
|
||||
request_context: galaxy_graphql::client::get_request_context(),
|
||||
});
|
||||
let response = send_graphql_request(self.base_client.as_ref(), operation, None).await?;
|
||||
Ok(response.expire_api_key)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use warp_graphql::mutations::update_user_settings::UpdateUserSettingsResult;
|
||||
use galaxy_graphql::mutations::update_user_settings::UpdateUserSettingsResult;
|
||||
|
||||
use super::AuthClientImpl;
|
||||
|
||||
|
||||
@@ -4,16 +4,16 @@ use std::sync::Arc;
|
||||
|
||||
use anyhow::{Context as _, Result, bail};
|
||||
use firebase::FetchAccessTokenResponse;
|
||||
use galaxy_core::channel::ChannelState;
|
||||
use galaxyui_core::r#async::{BoxFuture, Timer};
|
||||
use instant::Duration;
|
||||
use oauth2::TokenResponse as _;
|
||||
use url::Url;
|
||||
use galaxy_core::channel::ChannelState;
|
||||
use warp_server_auth::auth_state::AuthState;
|
||||
use warp_server_auth::credentials::{
|
||||
AuthToken, Credentials, FirebaseToken, LoginToken, RefreshToken,
|
||||
};
|
||||
use warp_server_auth::user::FirebaseAuthTokens;
|
||||
use galaxyui_core::r#async::{BoxFuture, Timer};
|
||||
|
||||
use super::UserAuthenticationError;
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ use std::sync::Arc;
|
||||
|
||||
use anyhow::{Context as _, Result};
|
||||
use futures::StreamExt as _;
|
||||
use galaxy_graphql::client::RequestOptions;
|
||||
use instant::Duration;
|
||||
use parking_lot::{Mutex, RwLock};
|
||||
use warp_graphql::client::RequestOptions;
|
||||
use warp_server_auth::auth_state::AuthState;
|
||||
use warp_server_auth::credentials::AuthToken;
|
||||
|
||||
@@ -110,7 +110,7 @@ pub struct BaseClient {
|
||||
auth_state: Arc<AuthState>,
|
||||
event_sender: async_channel::Sender<AuthEvent>,
|
||||
auth_session: Arc<AuthSession>,
|
||||
ambient_workload_token: Arc<Mutex<Option<warp_isolation_platform::WorkloadToken>>>,
|
||||
ambient_workload_token: Arc<Mutex<Option<galaxy_isolation_platform::WorkloadToken>>>,
|
||||
ambient_agent_task_id: Arc<RwLock<Option<String>>>,
|
||||
agent_source: Option<String>,
|
||||
graphql_routing: GraphqlRoutingConfig,
|
||||
@@ -274,13 +274,13 @@ impl BaseClient {
|
||||
}
|
||||
}
|
||||
}
|
||||
let workload_token = match warp_isolation_platform::issue_workload_token(Some(
|
||||
let workload_token = match galaxy_isolation_platform::issue_workload_token(Some(
|
||||
AMBIENT_WORKLOAD_TOKEN_DURATION,
|
||||
))
|
||||
.await
|
||||
{
|
||||
Ok(token) => token,
|
||||
Err(warp_isolation_platform::IsolationPlatformError::NoIsolationPlatformDetected) => {
|
||||
Err(galaxy_isolation_platform::IsolationPlatformError::NoIsolationPlatformDetected) => {
|
||||
return Ok(None);
|
||||
}
|
||||
Err(error) => return Err(error.into()),
|
||||
@@ -369,6 +369,7 @@ impl BaseClient {
|
||||
|
||||
/// Wraps an eventsource stream so IAP challenges notify the application without changing the
|
||||
/// original stream result or reconnecting it.
|
||||
#[allow(clippy::result_large_err)]
|
||||
pub fn wrap_eventsource_with_iap_detection(
|
||||
&self,
|
||||
stream: http_client::EventSourceStream,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
pub use cloud_objects::drive::*;
|
||||
@@ -1 +1,2 @@
|
||||
pub mod sharing;
|
||||
pub use cloud_objects::drive::*;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use std::str::FromStr;
|
||||
|
||||
use cloud_objects::cloud_object::Owner;
|
||||
use galaxy_graphql::object_permissions::AccessLevel;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use session_sharing_protocol::common::{ProfileData as SessionSharingProfileData, Role};
|
||||
|
||||
use crate::auth::UserUid;
|
||||
use crate::cloud_object::Owner;
|
||||
use crate::ids::ServerId;
|
||||
|
||||
#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord, Serialize, Deserialize)]
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
use std::borrow::Cow;
|
||||
|
||||
use anyhow::{Result, anyhow};
|
||||
use galaxy_graphql::client::{GraphQLError, Operation};
|
||||
use galaxyui_core::r#async::BoxFuture;
|
||||
use http::StatusCode;
|
||||
use instant::Duration;
|
||||
use warp_graphql::client::{GraphQLError, Operation};
|
||||
use galaxyui_core::r#async::BoxFuture;
|
||||
|
||||
use crate::auth::AuthEvent;
|
||||
use crate::base_client::BaseClient;
|
||||
|
||||
@@ -6,8 +6,8 @@ use std::sync::atomic::{AtomicUsize, Ordering};
|
||||
|
||||
use cynic::{GraphQlError, GraphQlResponse};
|
||||
use futures::executor::block_on;
|
||||
use galaxy_graphql::client::{GraphQLError, RequestOptions};
|
||||
use http::StatusCode;
|
||||
use warp_graphql::client::{GraphQLError, RequestOptions};
|
||||
use warp_server_auth::auth_state::AuthState;
|
||||
|
||||
use super::send_graphql_request;
|
||||
@@ -124,7 +124,7 @@ impl FakeGraphqlOperation {
|
||||
}
|
||||
}
|
||||
|
||||
impl warp_graphql::client::Operation<()> for FakeGraphqlOperation {
|
||||
impl galaxy_graphql::client::Operation<()> for FakeGraphqlOperation {
|
||||
fn operation_name(&self) -> Option<Cow<'_, str>> {
|
||||
Some(Cow::Borrowed("FakeGraphqlOperation"))
|
||||
}
|
||||
|
||||
@@ -4,10 +4,10 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
use anyhow::Result;
|
||||
use base64::Engine;
|
||||
use blocking::unblock;
|
||||
use instant::Instant;
|
||||
use galaxy_core::channel::IapConfig;
|
||||
use galaxyui_core::r#async::{BoxFuture, FutureExt as _, Timer};
|
||||
use galaxyui_core::{AppContext, Entity, ModelContext, SingletonEntity};
|
||||
use instant::Instant;
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
use websocket::connect_error_http_response;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
|
||||
use base64::Engine;
|
||||
use instant::Instant;
|
||||
use galaxy_core::channel::IapConfig;
|
||||
use instant::Instant;
|
||||
|
||||
use super::*;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ use diesel::result::Error;
|
||||
|
||||
pub use cloud_objects::{decode_guests, decode_link_sharing, encode_guests, encode_link_sharing};
|
||||
|
||||
use crate::cloud_object::{
|
||||
use cloud_objects::cloud_object::{
|
||||
CloudObjectMetadata, CloudObjectPermissions, ObjectIdType, ObjectType, Owner,
|
||||
};
|
||||
use crate::ids::SyncId;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use anyhow::{Context as _, Result};
|
||||
use serde::de::DeserializeOwned;
|
||||
use galaxy_core::channel::ChannelState;
|
||||
use galaxy_core::errors::{ErrorExt, register_error};
|
||||
use serde::de::DeserializeOwned;
|
||||
|
||||
use crate::base_client::{AmbientHeaderPolicy, BaseClient};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user