mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-11-04 20:07:20 +00:00
Fixed how the enterprise configuration handles empty and invalid IDs (#1143)
This commit is contained in:
1 parent
652d3a509f
commit
43d202310b
5 files changed
+401
-15
No files matched your search
@@ -158,8 +158,9 @@ CONFIG["LLM_PROVIDERS"] = {}
|
||||
-- -- or "ENC:v1:<base64-encoded encrypted data>", which every version of AI Studio reads. Both
|
||||
-- -- formats use the same secret. DataApp.EnterpriseEncryptionExportFormat below decides which
|
||||
-- -- one your exports write.
|
||||
-- -- The encryption secret must be configured via:
|
||||
-- -- The encryption secret must be configured via one of:
|
||||
-- -- Windows Registry: HKEY_CURRENT_USER\Software\github\MindWork AI Studio\Enterprise IT\config_encryption_secret
|
||||
-- -- Policy file: config_encryption_secret.yaml, in the folder of the other policy files
|
||||
-- -- Environment variable: MINDWORK_AI_STUDIO_ENTERPRISE_CONFIG_ENCRYPTION_SECRET
|
||||
-- -- You can export an encrypted API key from an existing provider using the export button in the settings.
|
||||
-- -- ["APIKey"] = "ENC:v2:<base64-encoded encrypted data>",
|
||||
@@ -595,12 +596,14 @@ CONFIG["SETTINGS"] = {}
|
||||
|
||||
-- Configure the preselected provider.
|
||||
-- It must be one of the provider IDs defined in CONFIG["LLM_PROVIDERS"].
|
||||
-- Please note: using an empty string ("") will lock the preselected provider selection, even though no valid preselected provider is found.
|
||||
-- Please note: an empty string ("") locks the selection to no preselected provider. This needs
|
||||
-- AI Studio v26.11.1 or newer; older versions ignore the empty string and leave the choice to the user.
|
||||
-- CONFIG["SETTINGS"]["DataApp.PreselectedProvider"] = "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
-- Configure the preselected profile.
|
||||
-- It must be one of the profile IDs defined in CONFIG["PROFILES"].
|
||||
-- Please note: using an empty string ("") will lock the preselected profile selection, even though no valid preselected profile is found.
|
||||
-- Please note: an empty string ("") locks the selection to no preselected profile. This needs
|
||||
-- AI Studio v26.11.1 or newer; older versions ignore the empty string and leave the choice to the user.
|
||||
-- CONFIG["SETTINGS"]["DataApp.PreselectedProfile"] = "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
-- Configure chat-specific preselected options.
|
||||
@@ -885,7 +888,9 @@ CONFIG["SETTINGS"] = {}
|
||||
-- Configure the transcription provider for voice-to-text functionality.
|
||||
-- It must be one of the transcription provider IDs defined in CONFIG["TRANSCRIPTION_PROVIDERS"].
|
||||
-- Without a selected transcription provider, dictation and transcription features will be disabled.
|
||||
-- Please note: using an empty string ("") will lock the selection and disable dictation/transcription.
|
||||
-- Please note: an empty string ("") locks the selection to no transcription provider, which disables
|
||||
-- dictation/transcription. This needs AI Studio v26.11.1 or newer; older versions ignore the empty
|
||||
-- string and leave the choice to the user.
|
||||
-- CONFIG["SETTINGS"]["DataApp.UseTranscriptionProvider"] = "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
-- Configure the Opus bitrate used when normalizing uploaded audio/video for transcription.
|
||||
@@ -1279,12 +1284,21 @@ CONFIG["SETTINGS"] = {}
|
||||
--
|
||||
-- IMPORTANT: A configuration plugin cannot fix the very first download of that same
|
||||
-- configuration plugin. For bootstrapping enterprise configuration downloads, deploy
|
||||
-- the equivalent environment variables before AI Studio starts:
|
||||
-- the policy file external_http_custom_root_certificates.yaml, in the folder of the
|
||||
-- other policy files, before AI Studio starts. It takes precedence over everything else:
|
||||
--
|
||||
-- enabled: true
|
||||
-- bundle_path: "/path/in/sandbox/company-root-cas.pem"
|
||||
-- allowed_hosts: "*.intra.example.org;data.example.org"
|
||||
--
|
||||
-- Alternatively, deploy the equivalent environment variables before AI Studio starts:
|
||||
--
|
||||
-- MINDWORK_AI_STUDIO_EXTERNAL_HTTP_CUSTOM_ROOT_CERTIFICATES_ENABLED=true
|
||||
-- MINDWORK_AI_STUDIO_EXTERNAL_HTTP_CUSTOM_ROOT_CERTIFICATE_BUNDLE_PATH=/path/in/sandbox/company-root-cas.pem
|
||||
-- MINDWORK_AI_STUDIO_EXTERNAL_HTTP_CUSTOM_ROOT_CERTIFICATE_ALLOWED_HOSTS=*.intra.example.org;data.example.org
|
||||
--
|
||||
-- See https://github.com/MindWorkAI/AI-Studio/wiki/Configuration-Server#your-own-certificate-authorities
|
||||
--
|
||||
-- Replaces, does not merge: a configuration with a higher priority replaces the host
|
||||
-- list completely. Deploy this setting in one configuration only, or repeat every host
|
||||
-- of the base configuration. Otherwise, hosts of the base configuration silently stop
|
||||
@@ -1332,7 +1346,7 @@ CONFIG["SETTINGS"] = {}
|
||||
-- Replaces, does not merge: a configuration with a higher priority replaces the whole
|
||||
-- table. Every configuration that sets this must therefore list all providers it wants
|
||||
-- to cover. A partial table is not completed from the configuration below it, and the
|
||||
-- providers left out fall back to the app default.
|
||||
-- providers left out get the confidence level UNKNOWN.
|
||||
-- CONFIG["SETTINGS"]["DataConfidence.CustomConfidenceScheme"] = {
|
||||
-- ["OPEN_AI"] = "MODERATE",
|
||||
-- ["ANTHROPIC"] = "MODERATE",
|
||||
|
||||
@@ -218,8 +218,24 @@ public static partial class ManagedConfiguration
|
||||
{
|
||||
// Case: the read string is a Guid:
|
||||
case Guid:
|
||||
//
|
||||
// An empty text selects nothing, which is also the default of these settings. This is
|
||||
// how an organization locks a selection to none, e.g., to switch off transcription:
|
||||
//
|
||||
if (string.IsNullOrWhiteSpace(configuredText))
|
||||
{
|
||||
successful = true;
|
||||
configuredValue = string.Empty;
|
||||
break;
|
||||
}
|
||||
|
||||
successful = Guid.TryParse(configuredText, out var id);
|
||||
configuredValue = successful ? id.ToString().ToLowerInvariant() : configuredText;
|
||||
|
||||
// A dry run comes before the actual one, so only the actual one reports the text:
|
||||
if (!successful && !dryRun)
|
||||
Log.LogWarning($"The configuration plugin '{configPluginId}' sets '{configuredText}' for the setting '{configMeta.SettingName}', which is no valid ID. Ignoring it.");
|
||||
|
||||
break;
|
||||
|
||||
// Case: the read string is just a string:
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
- Fixed the Agenda Planner assistant leaving out the location of your event when it suggests a social activity.
|
||||
- Fixed the ERI Server assistant leaving out your description of the authentication process when it generates a server.
|
||||
- Fixed the ERI Server assistant not writing some generated files to disk, such as docker-compose.yml. It now tells you about every file it could not write.
|
||||
- Fixed configuration plugins being unable to lock the preselected provider, the preselected profile, or the transcription provider to none. An empty value now does this, as the example configuration plugin describes. Older versions of AI Studio ignore the empty value and leave the choice to your users.
|
||||
- Fixed AI Studio loading none of your organization's configurations when one place, such as the Windows registry, named a configuration with an invalid ID. AI Studio now skips that entry and uses the configurations from the other places.
|
||||
- Upgraded several libraries to improve security.
|
||||
- Upgraded Tauri to v2.12.5.
|
||||
- Upgraded MudBlazor to v9.12.0.
|
||||
Reference in new issue
Block a user