1use auth::{DefaultPermissionChecker, PermissionCheckerRef, UserProviderRef};
16use common_base::Plugins;
17use frontend::error::{IllegalAuthConfigSnafu, Result};
18use frontend::frontend::FrontendOptions;
19use snafu::ResultExt;
20
21use crate::options::PluginOptions;
22
23#[allow(unused_mut)]
24pub async fn setup_frontend_plugins(
25 plugins: &mut Plugins,
26 _plugin_options: &[PluginOptions],
27 fe_opts: &FrontendOptions,
28) -> Result<()> {
29 if let Some(user_provider) = fe_opts.user_provider.as_ref() {
30 let provider =
31 auth::user_provider_from_option(user_provider).context(IllegalAuthConfigSnafu)?;
32 let permission_checker = DefaultPermissionChecker::arc();
33
34 plugins.insert::<PermissionCheckerRef>(permission_checker);
35 plugins.insert::<UserProviderRef>(provider);
36 }
37 Ok(())
38}
39
40pub async fn start_frontend_plugins(_plugins: Plugins) -> Result<()> {
41 Ok(())
42}
43
44pub mod context {
45 use std::sync::Arc;
46
47 use flow::FrontendClient;
48 use meta_client::MetaClientRef;
49
50 pub enum CatalogManagerConfigureContext {
53 Distributed(DistributedCatalogManagerConfigureContext),
54 Standalone(StandaloneCatalogManagerConfigureContext),
55 }
56
57 pub struct DistributedCatalogManagerConfigureContext {
58 pub meta_client: MetaClientRef,
59 }
60
61 pub struct StandaloneCatalogManagerConfigureContext {
62 pub fe_client: Arc<FrontendClient>,
63 }
64}