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 setup_frontend_dynamic_plugins(
47 _meta_config: Vec<PluginOptions>,
48 _plugins: &mut Plugins,
49) -> Result<()> {
50 Ok(())
51}
52
53pub async fn start_frontend_plugins(_plugins: Plugins) -> Result<()> {
54 Ok(())
55}
56
57pub mod context {
58 use std::sync::Arc;
59
60 use flow::FrontendClient;
61 use meta_client::MetaClientRef;
62
63 pub enum CatalogManagerConfigureContext {
66 Distributed(DistributedCatalogManagerConfigureContext),
67 Standalone(StandaloneCatalogManagerConfigureContext),
68 }
69
70 pub struct DistributedCatalogManagerConfigureContext {
71 pub meta_client: MetaClientRef,
72 }
73
74 pub struct StandaloneCatalogManagerConfigureContext {
75 pub fe_client: Arc<FrontendClient>,
76 }
77}