diff --git a/crates/core/src/auth/token_validation.rs b/crates/core/src/auth/token_validation.rs index 2e7eac9294a..74acf655936 100644 --- a/crates/core/src/auth/token_validation.rs +++ b/crates/core/src/auth/token_validation.rs @@ -198,7 +198,7 @@ impl CachingOidcTokenValidator { } // Jwks fetcher for the async cache. -struct KeyFetcher; +pub struct KeyFetcher; impl async_cache::Fetcher> for KeyFetcher { type Error = TokenValidationError; @@ -275,7 +275,7 @@ impl TokenValidator for OidcTokenValidator { } } -struct JwksValidator { +pub struct JwksValidator { pub issuer: String, pub keyset: Jwks, } diff --git a/crates/standalone/src/lib.rs b/crates/standalone/src/lib.rs index 94ee24906ed..2bef1b59640 100644 --- a/crates/standalone/src/lib.rs +++ b/crates/standalone/src/lib.rs @@ -3,7 +3,7 @@ pub mod subcommands; pub mod util; pub mod version; -use crate::control_db::ControlDb; +pub use crate::control_db::ControlDb; use crate::subcommands::start; use anyhow::{ensure, Context, Ok}; use async_trait::async_trait; @@ -20,7 +20,7 @@ use spacetimedb::host::{ use spacetimedb::identity::Identity; use spacetimedb::messages::control_db::{Database, Node, Replica}; use spacetimedb::worker_metrics::WORKER_METRICS; -use spacetimedb_client_api::auth::{self, LOCALHOST}; +use spacetimedb_client_api::auth::{self, DefaultJwtAuthProvider, JwtAuthProvider, LOCALHOST}; use spacetimedb_client_api::{Host, NodeDelegate}; use spacetimedb_client_api_messages::name::{DomainName, InsertDomainResult, RegisterTldResult, SetDomainsResult, Tld}; use spacetimedb_paths::server::{ModuleLogsDir, PidFile, ServerDataDir}; @@ -29,17 +29,17 @@ use std::sync::Arc; pub use spacetimedb_client_api::routes::subscribe::{BIN_PROTOCOL, TEXT_PROTOCOL}; -pub struct StandaloneEnv { - control_db: ControlDb, - program_store: Arc, - host_controller: HostController, - client_actor_index: ClientActorIndex, - metrics_registry: prometheus::Registry, - _pid_file: PidFile, - auth_provider: auth::DefaultJwtAuthProvider, +pub struct StandaloneEnv { + pub control_db: ControlDb, + pub program_store: Arc, + pub host_controller: HostController, + pub client_actor_index: ClientActorIndex, + pub metrics_registry: prometheus::Registry, + pub _pid_file: PidFile, + pub auth_provider: AuthProvider, } -impl StandaloneEnv { +impl StandaloneEnv { pub async fn init( config: Config, certs: &CertificateAuthority, @@ -87,14 +87,16 @@ impl StandaloneEnv { auth_provider: auth_env, })) } +} +impl StandaloneEnv { pub fn data_dir(&self) -> &Arc { &self.host_controller.data_dir } } -struct StandaloneDurabilityProvider { - data_dir: Arc, +pub struct StandaloneDurabilityProvider { + pub data_dir: Arc, } #[async_trait] @@ -116,7 +118,7 @@ impl DurabilityProvider for StandaloneDurabilityProvider { } #[async_trait] -impl NodeDelegate for StandaloneEnv { +impl NodeDelegate for StandaloneEnv { fn gather_metrics(&self) -> Vec { self.metrics_registry.gather() } @@ -125,7 +127,7 @@ impl NodeDelegate for StandaloneEnv { &self.client_actor_index } - type JwtAuthProviderT = auth::DefaultJwtAuthProvider; + type JwtAuthProviderT = AuthProvider; fn jwt_auth_provider(&self) -> &Self::JwtAuthProviderT { &self.auth_provider @@ -154,7 +156,7 @@ impl NodeDelegate for StandaloneEnv { } } -impl spacetimedb_client_api::ControlStateReadAccess for StandaloneEnv { +impl spacetimedb_client_api::ControlStateReadAccess for StandaloneEnv { // Nodes fn get_node_id(&self) -> Option { Some(0) @@ -216,7 +218,7 @@ impl spacetimedb_client_api::ControlStateReadAccess for StandaloneEnv { } #[async_trait] -impl spacetimedb_client_api::ControlStateWriteAccess for StandaloneEnv { +impl spacetimedb_client_api::ControlStateWriteAccess for StandaloneEnv { async fn publish_database( &self, publisher: &Identity, @@ -377,7 +379,7 @@ impl spacetimedb_client_api::ControlStateWriteAccess for StandaloneEnv { } } -impl StandaloneEnv { +impl StandaloneEnv { async fn insert_replica(&self, replica: Replica) -> Result<(), anyhow::Error> { let mut new_replica = replica.clone(); let id = self.control_db.insert_replica(replica)?;