1use auth::{DefaultPermissionChecker, PermissionCheckerRef, UserProviderRef};
16use common_base::Plugins;
17use common_meta::cache::CacheRegistryBuilder;
18use frontend::error::{IllegalAuthConfigSnafu, Result};
19use frontend::frontend::FrontendOptions;
20use frontend::instance::Instance;
21use snafu::ResultExt;
22
23use crate::options::PluginOptions;
24
25#[allow(unused_mut)]
26pub async fn setup_frontend_plugins(
27 plugins: &mut Plugins,
28 _plugin_options: &[PluginOptions],
29 fe_opts: &FrontendOptions,
30) -> Result<()> {
31 if let Some(user_provider) = fe_opts.user_provider.as_ref() {
32 let provider =
33 auth::user_provider_from_option(user_provider).context(IllegalAuthConfigSnafu)?;
34 let permission_checker = DefaultPermissionChecker::arc();
35
36 plugins.insert::<PermissionCheckerRef>(permission_checker);
37 plugins.insert::<UserProviderRef>(provider);
38 }
39 Ok(())
40}
41
42pub async fn setup_frontend_dynamic_plugins(
49 _meta_config: Vec<PluginOptions>,
50 _plugins: &mut Plugins,
51) -> Result<()> {
52 Ok(())
53}
54
55pub async fn start_frontend_plugins(_instance: &Instance) -> Result<()> {
56 Ok(())
57}
58
59pub fn configure_cache_registry(_plugins: &Plugins) -> Option<CacheRegistryBuilder> {
61 None
62}
63
64pub mod context {
65 use std::sync::Arc;
66
67 use flow::FrontendClient;
68 use meta_client::MetaClientRef;
69
70 pub enum CatalogManagerConfigureContext {
73 Distributed(DistributedCatalogManagerConfigureContext),
74 Standalone(StandaloneCatalogManagerConfigureContext),
75 }
76
77 pub struct DistributedCatalogManagerConfigureContext {
78 pub meta_client: MetaClientRef,
79 }
80
81 pub struct StandaloneCatalogManagerConfigureContext {
82 pub fe_client: Arc<FrontendClient>,
83 }
84}