diff --git a/packages/api/src/controllers/config.js b/packages/api/src/controllers/config.js
index bcd8a3af3..3929d1330 100644
--- a/packages/api/src/controllers/config.js
+++ b/packages/api/src/controllers/config.js
@@ -42,6 +42,7 @@ module.exports = {
allowShellConnection: platformInfo.allowShellConnection,
allowShellScripting: platformInfo.allowShellScripting,
isDocker: platformInfo.isDocker,
+ isElectron: platformInfo.isElectron,
permissions,
login,
...additionalConfigProps,
diff --git a/packages/api/src/shell/requirePlugin.js b/packages/api/src/shell/requirePlugin.js
index 7e1c46769..6db3714d5 100644
--- a/packages/api/src/shell/requirePlugin.js
+++ b/packages/api/src/shell/requirePlugin.js
@@ -11,6 +11,7 @@ const loadedPlugins = {};
const dbgateEnv = {
dbgateApi: null,
nativeModules,
+ platformInfo,
};
function requirePlugin(packageName, requiredPlugin = null) {
if (!packageName) throw new Error('Missing packageName in plugin');
diff --git a/packages/types/engines.d.ts b/packages/types/engines.d.ts
index 2b09547a1..2691436e9 100644
--- a/packages/types/engines.d.ts
+++ b/packages/types/engines.d.ts
@@ -90,7 +90,13 @@ export interface EngineDriver {
profilerChartMeasures?: { label: string; field: string }[];
isElectronOnly?: boolean;
supportedCreateDatabase?: boolean;
- showConnectionField?: (field: string, values: any) => boolean;
+ showConnectionField?: (
+ field: string,
+ values: any,
+ {
+ config: {},
+ }
+ ) => boolean;
showConnectionTab?: (tab: 'ssl' | 'sshTunnel', values: any) => boolean;
beforeConnectionSave?: (values: any) => any;
databaseUrlPlaceholder?: string;
diff --git a/packages/web/src/settings/ConnectionDriverFields.svelte b/packages/web/src/settings/ConnectionDriverFields.svelte
index f2c410e07..70e856023 100644
--- a/packages/web/src/settings/ConnectionDriverFields.svelte
+++ b/packages/web/src/settings/ConnectionDriverFields.svelte
@@ -12,7 +12,7 @@
import FormTextField from '../forms/FormTextField.svelte';
import { extensions, getCurrentConfig, openedConnections, openedSingleDatabaseConnections } from '../stores';
import getElectron from '../utility/getElectron';
- import { useAuthTypes } from '../utility/metadataLoaders';
+ import { useAuthTypes, useConfig } from '../utility/metadataLoaders';
import FormColorField from '../forms/FormColorField.svelte';
import FontIcon from '../icons/FontIcon.svelte';
@@ -27,13 +27,16 @@
$: disabledFields = (currentAuthType ? currentAuthType.disabledFields : null) || [];
$: driver = $extensions.drivers.find(x => x.engine == engine);
$: defaultDatabase = $values.defaultDatabase;
+ $: config = useConfig();
- $: showUser = driver?.showConnectionField('user', $values) && $values.passwordMode != 'askUser';
+ $: showConnectionFieldArgs = { config: $config };
+
+ $: showUser = driver?.showConnectionField('user', $values, showConnectionFieldArgs) && $values.passwordMode != 'askUser';
$: showPassword =
- driver?.showConnectionField('password', $values) &&
+ driver?.showConnectionField('password', $values, showConnectionFieldArgs) &&
$values.passwordMode != 'askPassword' &&
$values.passwordMode != 'askUser';
- $: showPasswordMode = driver?.showConnectionField('password', $values);
+ $: showPasswordMode = driver?.showConnectionField('password', $values, showConnectionFieldArgs);
$: isConnected = $openedConnections.includes($values._id) || $openedSingleDatabaseConnections.includes($values._id);
@@ -53,11 +56,11 @@
]}
/>
-{#if driver?.showConnectionField('databaseFile', $values)}
+{#if driver?.showConnectionField('databaseFile', $values, showConnectionFieldArgs)}