diff --git a/application/single_app/admin_settings_nav.py b/application/single_app/admin_settings_nav.py index 00dd71d46..b5c8b5e6f 100644 --- a/application/single_app/admin_settings_nav.py +++ b/application/single_app/admin_settings_nav.py @@ -19,29 +19,35 @@ "icon": "bi-palette", "tabs": [ { - "id": "general", - "label": "General", - "icon": "bi-gear", + "id": "branding", + "label": "Branding", + "icon": "bi-palette", "sections": [ {"id": "branding-section", "label": "Branding", "icon": "bi-palette"}, {"id": "home-page-text-section", "label": "Home Page Text", "icon": "bi-house"}, {"id": "appearance-section", "label": "Appearance", "icon": "bi-brush"}, - {"id": "health-check-section", "label": "Health Check", "icon": "bi-heart-pulse"}, - {"id": "swagger-section", "label": "API Documentation", "icon": "bi-file-earmark-code"}, + ], + }, + { + # Everything the app states to the user before or during use: + # banners, notices and the agreements they must accept. + "id": "notices", + "label": "Notices & Agreements", + "icon": "bi-megaphone", + "sections": [ {"id": "classification-banner-section", "label": "Classification Banner", "icon": "bi-shield-exclamation"}, {"id": "ai-notice-section", "label": "Chat AI Notice", "icon": "bi-robot"}, {"id": "terms-of-use-section", "label": "Terms of Use", "icon": "bi-door-open"}, - {"id": "support-menu-section", "label": "Support", "icon": "bi-life-preserver"}, - {"id": "external-links-section", "label": "External Links", "icon": "bi-box-arrow-up-right"}, - {"id": "system-settings-section", "label": "System Settings", "icon": "bi-gear-fill"}, + {"id": "user-agreement-section", "label": "User Agreement", "icon": "bi-file-earmark-check"}, ], }, { "id": "custom-pages", - "label": "Custom Pages", + "label": "Pages & Links", "icon": "bi-window-plus", "sections": [ {"id": "custom-pages-section", "label": "Static Pages", "icon": "bi-file-earmark-richtext"}, + {"id": "external-links-section", "label": "External Links", "icon": "bi-box-arrow-up-right"}, ], }, ], @@ -93,7 +99,6 @@ "icon": "bi-cpu", "sections": [ {"id": "multi-endpoint-configuration", "label": "Model Endpoints", "icon": "bi-hdd-network"}, - {"id": "shared-conversation-file-approvals-section", "label": "Shared Conversation File Approvals", "icon": "bi-file-earmark-lock"}, {"id": "embeddings-config", "label": "Embeddings", "icon": "bi-vector-pen"}, {"id": "image-config", "label": "Image Generation", "icon": "bi-image"}, {"id": "gpt-config", "label": "Chat Model", "icon": "bi-chat-square-text"}, @@ -126,19 +131,25 @@ "icon": "bi-folder", "tabs": [ { - "id": "workspaces", - "label": "Workspaces", + "id": "workspace-types", + "label": "Workspace Types", "icon": "bi-folder", "sections": [ {"id": "personal-workspaces-section", "label": "Personal Workspaces", "icon": "bi-person"}, - {"id": "workflow-settings-section", "label": "Workflow", "icon": "bi-diagram-3"}, - {"id": "file-download-settings-section", "label": "File Downloads", "icon": "bi-download"}, {"id": "group-workspaces-section", "label": "Group Workspaces", "icon": "bi-people"}, {"id": "public-workspaces-section", "label": "Public Workspaces", "icon": "bi-globe"}, + ], + }, + { + # Who may take a file out of a workspace, and who must approve + # it first. + "id": "files-sharing", + "label": "Files & Sharing", + "icon": "bi-share", + "sections": [ + {"id": "file-download-settings-section", "label": "File Downloads", "icon": "bi-download"}, {"id": "file-sharing-section", "label": "File Sharing", "icon": "bi-share"}, - {"id": "metadata-extraction-section", "label": "Metadata Extraction", "icon": "bi-file-earmark-code"}, - {"id": "multimodal-vision-section", "label": "Multi-Modal Vision Analysis", "icon": "bi-eye"}, - {"id": "user-agreement-section", "label": "User Agreement", "icon": "bi-file-earmark-check"}, + {"id": "shared-conversation-file-approvals-section", "label": "Shared Conversation File Approvals", "icon": "bi-check2-square"}, ], }, { @@ -149,22 +160,65 @@ }, ], }, + { + # Workflow drives approvals and assignment across workspaces and is + # large enough to stand on its own rather than sit inside Workspaces. + "id": "workflow", + "label": "Workflow", + "icon": "bi-diagram-3", + "tabs": [ + { + "id": "workflow", + "label": "Workflow", + "icon": "bi-diagram-3", + "sections": [ + {"id": "workflow-settings-section", "label": "Workflow", "icon": "bi-diagram-3"}, + ], + }, + ], + }, { "id": "knowledge", "label": "Knowledge", "icon": "bi-search", "tabs": [ { - "id": "search-extract", - "label": "Search & Extract", - "icon": "bi-search", + # Reaching outside the tenant for material. + "id": "web-research", + "label": "Web & Research", + "icon": "bi-globe", "sections": [ {"id": "web-search-section", "label": "Web Search", "icon": "bi-globe"}, {"id": "url-access-section", "label": "URL Access", "icon": "bi-link-45deg"}, {"id": "source-review-section", "label": "Deep Research", "icon": "bi-binoculars"}, + ], + }, + { + "id": "search-index", + "label": "Search Index", + "icon": "bi-search", + "sections": [ {"id": "azure-ai-search-section", "label": "Azure AI Search", "icon": "bi-search"}, + ], + }, + { + # Turning a document into something searchable. + "id": "extraction", + "label": "Document Extraction", + "icon": "bi-file-earmark-text", + "sections": [ {"id": "document-intelligence-section", "label": "Document Intelligence", "icon": "bi-file-earmark-text"}, {"id": "chunk-size-section", "label": "Chunk Sizes", "icon": "bi-collection"}, + {"id": "metadata-extraction-section", "label": "Metadata Extraction", "icon": "bi-file-earmark-code"}, + {"id": "multimodal-vision-section", "label": "Multi-Modal Vision Analysis", "icon": "bi-eye"}, + ], + }, + { + # Voice and video are extraction pipelines, not chat features. + "id": "audio-video", + "label": "Audio & Video", + "icon": "bi-play-circle", + "sections": [ {"id": "video-intelligence-section", "label": "AI Video Intelligence", "icon": "bi-play-circle"}, {"id": "ai-voice-chat-section", "label": "AI Voice Conversations", "icon": "bi-mic"}, ], @@ -189,20 +243,40 @@ "icon": "bi-shield-lock", "tabs": [ { - "id": "security", - "label": "Security", - "icon": "bi-shield-lock", + # Who can get in and what role they need. Distinct from Content + # Safety, which is about what may be said once you are in. + "id": "access-roles", + "label": "Access & Roles", + "icon": "bi-person-check", + "sections": [ + {"id": "permissions-section", "label": "Permissions", "icon": "bi-person-check"}, + ], + }, + { + "id": "secrets", + "label": "Secrets", + "icon": "bi-safe", "sections": [ {"id": "keyvault-section", "label": "Key Vault", "icon": "bi-safe"}, ], }, { - "id": "safety", - "label": "Safety", - "icon": "bi-shield-check", + "id": "content-safety", + "label": "Content Safety", + "icon": "bi-shield-exclamation", "sections": [ {"id": "content-safety-section", "label": "Content Safety", "icon": "bi-shield-exclamation"}, - {"id": "permissions-section", "label": "Permissions", "icon": "bi-person-check"}, + ], + }, + { + # Interim home for the mixed System Settings card. Four of its + # eight fields are idle-timeout, which is the plurality; the + # rest are split out to their real homes in a later change. + "id": "session", + "label": "Session", + "icon": "bi-hourglass-split", + "sections": [ + {"id": "system-settings-section", "label": "System Settings", "icon": "bi-sliders"}, ], }, { @@ -348,12 +422,14 @@ }, { "id": "logging", - "label": "Logging", + "label": "Logging & Health", "icon": "bi-journal-text", "sections": [ {"id": "application-insights-section", "label": "Application Insights", "icon": "bi-graph-up"}, {"id": "debug-logging-section", "label": "Debug Logging", "icon": "bi-bug"}, {"id": "file-processing-logs-section", "label": "File Process Logging", "icon": "bi-file-earmark-text"}, + {"id": "health-check-section", "label": "Health Check", "icon": "bi-heart-pulse"}, + {"id": "swagger-section", "label": "API Documentation", "icon": "bi-file-earmark-code"}, ], }, ], @@ -363,6 +439,16 @@ "label": "Help", "icon": "bi-life-preserver", "tabs": [ + { + # Where an admin looks first when a user needs help, ahead of + # raising it with the project. + "id": "support-menu", + "label": "Support Menu", + "icon": "bi-life-preserver", + "sections": [ + {"id": "support-menu-section", "label": "Support", "icon": "bi-life-preserver"}, + ], + }, { "id": "send-feedback", "label": "Send Feedback", @@ -408,6 +494,18 @@ def get_group_for_tab(tab_id): return None +def get_landing_tab_id(): + """Return the tab an admin lands on when no tab is requested. + + This is the first tab of the first group rather than a fixed id, so the + landing pane follows the navigation map as cards are regrouped. Latest + Features is pinned last precisely so it can never win this. + """ + for _, tab in iter_tabs(): + return tab["id"] + return None + + def get_section_ids(): """Return every section target declared across the navigation.""" return [ diff --git a/application/single_app/app.py b/application/single_app/app.py index 35cc2d336..d8f837e33 100644 --- a/application/single_app/app.py +++ b/application/single_app/app.py @@ -31,7 +31,7 @@ from functions_content import * from functions_documents import * from functions_latest_features_nav import should_hide_latest_features_nav -from admin_settings_nav import ADMIN_NAV +from admin_settings_nav import ADMIN_NAV, get_landing_tab_id from functions_search import * from functions_settings import * from functions_mcp_server_config import is_mcp_ui_enabled @@ -600,6 +600,7 @@ def inject_settings(): user_settings=user_settings, custom_pages_nav=custom_pages_nav, admin_nav=ADMIN_NAV, + admin_landing_tab=get_landing_tab_id(), latest_features_current_version=VERSION, latest_features_nav_hidden=latest_features_nav_hidden, latest_features_nav_hidden_by_development=IS_DEVELOPMENT, diff --git a/application/single_app/config.py b/application/single_app/config.py index 0244ed3e0..992744396 100644 --- a/application/single_app/config.py +++ b/application/single_app/config.py @@ -96,7 +96,7 @@ EXECUTOR_TYPE = 'thread' EXECUTOR_MAX_WORKERS = 30 SESSION_TYPE = 'filesystem' -VERSION = "0.260.012" +VERSION = "0.260.014" IS_DEVELOPMENT = is_development_env_enabled() SESSION_COOKIE_SAMESITE = os.getenv('SESSION_COOKIE_SAMESITE', 'Lax') diff --git a/application/single_app/static/js/admin/admin_data_management.js b/application/single_app/static/js/admin/admin_data_management.js index 481b2069f..e8c2761a9 100644 --- a/application/single_app/static/js/admin/admin_data_management.js +++ b/application/single_app/static/js/admin/admin_data_management.js @@ -388,7 +388,8 @@ function bindEvents() { pendingDataManagementBackupDelete = null; }); elements.dataManagementConfirmBackupDeleteBtn?.addEventListener("click", deleteDataManagementBackup); - elements.dataManagementKeyVaultLink?.addEventListener("click", openKeyVaultSettings); + // The Key Vault link carries data-admin-link, so admin_card_links.js + // resolves the owning tab from the DOM and scrolls to the card. elements.dataManagementCosmosEditorOpenDangerBtn?.addEventListener("click", showCosmosEditorDangerModal); elements.datamanagementcosmoseditordangeraccept?.addEventListener("change", updateCosmosEditorDangerAcceptState); elements.dataManagementCosmosEditorAcceptDangerBtn?.addEventListener("click", acceptCosmosEditorDanger); @@ -909,20 +910,6 @@ function setKeyStorageAlert(variant, iconClass, title, message, linkText) { setText(elements.dataManagementKeyVaultLink, linkText); } -function openKeyVaultSettings(event) { - event?.preventDefault(); - const securityTabButton = document.getElementById("security-tab"); - if (securityTabButton && window.bootstrap?.Tab) { - window.bootstrap.Tab.getOrCreateInstance(securityTabButton).show(); - } else if (securityTabButton) { - securityTabButton.click(); - } - window.location.hash = "security"; - window.setTimeout(() => { - document.getElementById("keyvault-section")?.scrollIntoView({ block: "start", behavior: "smooth" }); - }, 100); -} - function collectSettings() { const backupStorageAuthenticationType = getValue(elements.datamanagementstorageauth) || backupStorageAuthManagedIdentity; return { diff --git a/application/single_app/static/js/admin/admin_sidebar_nav.js b/application/single_app/static/js/admin/admin_sidebar_nav.js index edad020d8..7e9538f73 100644 --- a/application/single_app/static/js/admin/admin_sidebar_nav.js +++ b/application/single_app/static/js/admin/admin_sidebar_nav.js @@ -145,12 +145,15 @@ function initAdminSidebarNav() { // Set the initial active tab - but only if no tab is already active. // Latest Features is deliberately excluded so it never opens by default. + // The landing tab is whichever tab the nav map renders first rather than a + // hardcoded id, so it stays correct as the information architecture moves. const activeTab = document.querySelector('.admin-nav-tab.active, .admin-nav-section.active'); if (!activeTab) { - const firstTab = document.querySelector('.admin-nav-tab[data-tab="general"]'); - if (firstTab) { + const firstTab = document.querySelector('.admin-nav-tab[data-tab]'); + const firstTabId = firstTab ? firstTab.getAttribute('data-tab') : null; + if (firstTabId) { firstTab.classList.add('active'); - showAdminTab('general'); + showAdminTab(firstTabId); } } else { console.log('initAdminSidebarNav - Found existing active tab, preserving current state:', activeTab.getAttribute('data-tab')); @@ -288,6 +291,11 @@ function revealAdminGroupForTab(tabId) { const LEGACY_TAB_REDIRECTS = { 'governance': 'feature-governance', 'scale': 'redis-caching', + 'general': 'branding', + 'safety': 'access-roles', + 'security': 'secrets', + 'workspaces': 'workspace-types', + 'search-extract': 'web-research', }; function resolveAdminTabId(tabId) { diff --git a/application/single_app/templates/admin/_panes/access-roles.html b/application/single_app/templates/admin/_panes/access-roles.html new file mode 100644 index 000000000..3e93d9ff7 --- /dev/null +++ b/application/single_app/templates/admin/_panes/access-roles.html @@ -0,0 +1,49 @@ +
Control which users can access specific administrative views related to safety and feedback.
+ + +
+ Required app role value: SafetyViolationAdmin. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any user with the general Admin app role can access the Safety Violations admin page.
+
+ Required app role value: FeedbackAdmin. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any user with the general Admin app role can access the User Feedback admin page. Requires Enable User Feedback to be active.
+
Configure AI agents and actions for enhanced functionality. Agents provide AI-driven task automation while Actions extend functionality with custom tools and integrations. diff --git a/application/single_app/templates/admin/_panes/ai-models.html b/application/single_app/templates/admin/_panes/ai-models.html index f12b06236..98e6590d4 100644 --- a/application/single_app/templates/admin/_panes/ai-models.html +++ b/application/single_app/templates/admin/_panes/ai-models.html @@ -1,4 +1,4 @@ -
Configure all AI model settings including GPT for text generation, embeddings for semantic search, and image generation capabilities. @@ -235,27 +235,6 @@
Extract insights and make video content searchable and interactive
++ Upload video files (MP4, AVI, MOV, etc.) to workspaces where Azure Video Indexer automatically processes them. + Extract spoken content, identify speakers, detect faces, recognize brands, and generate searchable metadata—perfect for meetings, presentations, training videos, and recorded content. +
+Connect to your Azure Video Indexer resource for advanced video processing and content extraction.
+ +AZURE_ENVIRONMENT in your App Service configuration as well.
+ AZURE_ENVIRONMENT. Update the App Service configuration if you are moving to a different cloud.
+ Transform your AI experience with natural voice interactions
++ Let users opt in to a bundled sound when an AI response finishes outside their active view. + These local cues do not require Azure Speech Service. +
++ Upload audio files (MP3, WAV, M4A, etc.) to workspaces where they're automatically transcribed and indexed. + The AI can then search, analyze, and answer questions about audio content—perfect for meetings, interviews, lectures, and podcasts. +
++ Talk to your AI instead of typing. Record voice messages up to 90 seconds directly in the chat interface. + Azure Speech Service instantly transcribes your speech with high accuracy, supporting multiple languages and accents. +
++ Hear AI responses read aloud in natural, human-like voices powered by Azure's advanced neural Text-to-Speech. + Each message includes a speaker button—click to listen while multitasking, commuting, or whenever reading isn't convenient. +
+Configure the shared Azure Speech resource used by audio transcription, voice input, and text-to-speech.
+ ++ + + Enhanced Citations + + will dramatically improve the citation experience for video and audio files. + +
++ Configure general application settings, including the application's title, logo, and landing page text. +
++ Configure your application's title, logo, and branding elements. +
+Configure the text content displayed on your application's home page using Markdown formatting.
+ +Configure the app appearance and theme settings.
+ +Users can still toggle dark mode individually from the navigation bar.
+Users can still toggle the left navigation sidebar individually from the header.
+Configure standard and enhanced citations features for your and group workspaces. diff --git a/application/single_app/templates/admin/_panes/classification.html b/application/single_app/templates/admin/_panes/classification.html index 597736e46..425eeedcf 100644 --- a/application/single_app/templates/admin/_panes/classification.html +++ b/application/single_app/templates/admin/_panes/classification.html @@ -1,4 +1,4 @@ -
Configure content safety, archiving, and user feedback settings. If Content Safety is enabled, user @@ -174,49 +174,6 @@
Control which users can access specific administrative views related to safety and feedback.
- - -
- Required app role value: SafetyViolationAdmin. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any user with the general Admin app role can access the Safety Violations admin page.
-
- Required app role value: FeedbackAdmin. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any user with the general Admin app role can access the User Feedback admin page. Requires Enable User Feedback to be active.
-
Configure Control Center access and permissions for administrators.
diff --git a/application/single_app/templates/admin/_panes/cosmos.html b/application/single_app/templates/admin/_panes/cosmos.html index 9d1fa89ca..33cf6b0f3 100644 --- a/application/single_app/templates/admin/_panes/cosmos.html +++ b/application/single_app/templates/admin/_panes/cosmos.html @@ -1,4 +1,4 @@ -Enable trusted deployment-time custom pages and manage metadata for simple static pages served from the application custom_pages folders.
@@ -78,4 +78,56 @@When enabled, external links will be displayed in the navigation bar for easy access to external resources.
+ +Define custom links that will appear in the navigation bar for users to access external resources.
+ +| Label | +URL | +Actions | +
|---|
+ Configure Azure Document Intelligence settings. Document Intelligence always powers + Standard extraction and is required for workspaces and chat file uploads. +
++ Required for Enhanced extraction. Deployed from a Microsoft Foundry resource. + If this is left blank, Enhanced falls back to Document Intelligence Layout. +
+ ++ Neither extraction engine describes figures inside Word and PowerPoint files. When this is on, + embedded images are pulled out of the file, analyzed with whichever engine backs the selected + extraction mode, and indexed as their own citable chunks. This works with Standard extraction + too, using Document Intelligence. +
+Custom chunk sizes apply to new uploads only. Existing documents keep their current chunks.
++ Enable this to automatically parse and store file metadata for advanced indexing and search. +
++ Enable AI-powered vision analysis for images uploaded to chat or workspace. When enabled alongside Document Intelligence OCR, images will receive both text extraction (OCR) and semantic understanding (vision AI). +
+ +Configure governance enforcement for endpoint, agent, and action creation or usage. Governance is disabled by default and only enforced when toggled on. diff --git a/application/single_app/templates/admin/_panes/feedback-alerts.html b/application/single_app/templates/admin/_panes/feedback-alerts.html index 4ee6ae562..5488e7242 100644 --- a/application/single_app/templates/admin/_panes/feedback-alerts.html +++ b/application/single_app/templates/admin/_panes/feedback-alerts.html @@ -1,4 +1,4 @@ -
Configure file synchronization for personal, group, and public workspaces.
diff --git a/application/single_app/templates/admin/_panes/files-sharing.html b/application/single_app/templates/admin/_panes/files-sharing.html new file mode 100644 index 000000000..a66a04b76 --- /dev/null +++ b/application/single_app/templates/admin/_panes/files-sharing.html @@ -0,0 +1,223 @@ ++ Control when users can download original workspace document files from personal, group, and public workspaces. +
++ Turn this on to enable file sharing capabilities between users and workspaces. +
+- Configure general application settings, including the application's title, logo, and landing page text. -
-- Configure your application's title, logo, and branding elements. -
-Configure the text content displayed on your application's home page using Markdown formatting.
- -Configure the app appearance and theme settings.
- -Users can still toggle dark mode individually from the navigation bar.
-Users can still toggle the left navigation sidebar individually from the header.
-Configure health check endpoint for external monitoring systems.
- -Use when your monitoring system can reach a protected route and you want the endpoint governed by the normal app access boundary.
-Best for internal monitors or diagnostics tooling that already authenticates to the application.
-Use when a platform health probe cannot sign in and only needs a lightweight availability response.
-Configure automatic OpenAPI/Swagger documentation for API endpoints.
- -- Provides interactive API documentation, endpoint testing, and schema validation. - Useful for developers, API integration, and system troubleshooting. -
-- Display an administrator-provided reminder directly below the chat input, such as guidance that responses are AI-generated and should be reviewed. -
-- Require users to accept the Terms of Use before using SimpleChat. Standard Microsoft sign-in users see it before authentication; Teams SSO and other passive sign-in flows are gated immediately after the app session is created. -
- -/ or an admin-approved HTTP(S) URL. Signed-in users are locally logged out before this redirect.
- When enabled, external links will be displayed in the navigation bar for easy access to external resources.
- -Define custom links that will appear in the navigation bar for users to access external resources.
- -| Label | -URL | -Actions | -
|---|
- System-level settings that control application behavior, including file size limits, conversation history, - and default prompts. -
-Review the main capabilities introduced in v{{ config['VERSION'] }} and use this page as an admin-facing overview for what to highlight with your teams.
@@ -832,7 +832,7 @@Admins can enable this once and let users see more of the model pipeline, including sending, generating, and responded states with clearer timing information.
+ Display an administrator-provided reminder directly below the chat input, such as guidance that responses are AI-generated and should be reviewed. +
++ Require users to accept the Terms of Use before using SimpleChat. Standard Microsoft sign-in users see it before authentication; Teams SSO and other passive sign-in flows are gated immediately after the app session is created. +
+ +/ or an admin-approved HTTP(S) URL. Signed-in users are locally logged out before this redirect.
+ + Configure a user agreement that users must accept before uploading files. + Supports Markdown formatting. +
+ + +Select where the user agreement should be shown (at least one required):
+Configure Redis cache to improve enterprise scale and performance by caching session data. Enabling Redis allows you to horizontally scale your application across multiple instances without losing session data. diff --git a/application/single_app/templates/admin/_panes/retention.html b/application/single_app/templates/admin/_panes/retention.html index c3aa2258a..a2bc06781 100644 --- a/application/single_app/templates/admin/_panes/retention.html +++ b/application/single_app/templates/admin/_panes/retention.html @@ -1,4 +1,4 @@ -
- Configure Azure AI Search, Document Intelligence, and multimedia support settings. -
- -Enable web search by routing queries through an Azure AI Foundry agent configured by admins.
-Optionally show users a one-time notice explaining that their message will be sent to Bing for web search.
-Control direct URL content fetching for pasted chat links, workflow prompts, and Deep Research source review.
-UrlAccessUser. Assign this role to users or groups in the Enterprise App before enabling the requirement. When enabled, only assigned users can use URL Access in chat or enable it for workflows.Plan bounded web searches, inspect source pages, and keep an internal research ledger for evidence coverage. Direct pasted URLs use the shared URL Access controls above.
-DeepResearchUser. Assign this role to users or groups in the Enterprise App before enabling the requirement. When enabled, only assigned users can use Deep Research.- Configure Azure AI Search settings. -
-- Configure Azure Document Intelligence settings. Document Intelligence always powers - Standard extraction and is required for workspaces and chat file uploads. -
-- Required for Enhanced extraction. Deployed from a Microsoft Foundry resource. - If this is left blank, Enhanced falls back to Document Intelligence Layout. -
- -- Neither extraction engine describes figures inside Word and PowerPoint files. When this is on, - embedded images are pulled out of the file, analyzed with whichever engine backs the selected - extraction mode, and indexed as their own citable chunks. This works with Standard extraction - too, using Document Intelligence. -
-Custom chunk sizes apply to new uploads only. Existing documents keep their current chunks.
-Extract insights and make video content searchable and interactive
-- Upload video files (MP4, AVI, MOV, etc.) to workspaces where Azure Video Indexer automatically processes them. - Extract spoken content, identify speakers, detect faces, recognize brands, and generate searchable metadata—perfect for meetings, presentations, training videos, and recorded content. -
-Connect to your Azure Video Indexer resource for advanced video processing and content extraction.
- -AZURE_ENVIRONMENT in your App Service configuration as well.
- AZURE_ENVIRONMENT. Update the App Service configuration if you are moving to a different cloud.
- Transform your AI experience with natural voice interactions
-- Let users opt in to a bundled sound when an AI response finishes outside their active view. - These local cues do not require Azure Speech Service. -
-- Upload audio files (MP3, WAV, M4A, etc.) to workspaces where they're automatically transcribed and indexed. - The AI can then search, analyze, and answer questions about audio content—perfect for meetings, interviews, lectures, and podcasts. -
-- Talk to your AI instead of typing. Record voice messages up to 90 seconds directly in the chat interface. - Azure Speech Service instantly transcribes your speech with high accuracy, supporting multiple languages and accents. -
-- Hear AI responses read aloud in natural, human-like voices powered by Azure's advanced neural Text-to-Speech. - Each message includes a speaker button—click to listen while multitasking, commuting, or whenever reading isn't convenient. -
-Configure the shared Azure Speech resource used by audio transcription, voice input, and text-to-speech.
- -- - - Enhanced Citations - - will dramatically improve the citation experience for video and audio files. - -
-+ Configure Azure AI Search settings. +
+Manage security settings for key vault and other security configurations.
diff --git a/application/single_app/templates/admin/_panes/send-feedback.html b/application/single_app/templates/admin/_panes/send-feedback.html index 1d9cdb365..5acd28833 100644 --- a/application/single_app/templates/admin/_panes/send-feedback.html +++ b/application/single_app/templates/admin/_panes/send-feedback.html @@ -1,4 +1,4 @@ -Prepare a prefilled email draft for bug reports or feature requests. This utility is separate from saved settings and records each submission intent in the activity log before opening your local email client.
diff --git a/application/single_app/templates/admin/_panes/session.html b/application/single_app/templates/admin/_panes/session.html new file mode 100644 index 000000000..cb8fe9abe --- /dev/null +++ b/application/single_app/templates/admin/_panes/session.html @@ -0,0 +1,87 @@ ++ System-level settings that control application behavior, including file size limits, conversation history, + and default prompts. +
++ Configure Azure AI Search, Document Intelligence, and multimedia support settings. +
+ +Enable web search by routing queries through an Azure AI Foundry agent configured by admins.
+Optionally show users a one-time notice explaining that their message will be sent to Bing for web search.
+Control direct URL content fetching for pasted chat links, workflow prompts, and Deep Research source review.
+UrlAccessUser. Assign this role to users or groups in the Enterprise App before enabling the requirement. When enabled, only assigned users can use URL Access in chat or enable it for workflows.Plan bounded web searches, inspect source pages, and keep an internal research ledger for evidence coverage. Direct pasted URLs use the shared URL Access controls above.
+DeepResearchUser. Assign this role to users or groups in the Enterprise App before enabling the requirement. When enabled, only assigned users can use Deep Research.+ Control personal and group workflow authoring and execution for users. +
+
+ Required app role value: WorkflowUser. Assign this role to users or groups in the Enterprise App before enabling the requirement.
+
+ Group workflow authoring is available to group Owners and Admins by default. Enable the owner-only setting below to limit group agent, action, and workflow management to Owners. +
+Manage the global authentication profiles that File Sync sources and Actions reuse, so credentials stay scoped and are resolved server-side.
diff --git a/application/single_app/templates/admin/_panes/workspace-types.html b/application/single_app/templates/admin/_panes/workspace-types.html new file mode 100644 index 000000000..83123fd7a --- /dev/null +++ b/application/single_app/templates/admin/_panes/workspace-types.html @@ -0,0 +1,159 @@ ++ Configure workspace settings like personal/group access, multimedia support, metadata, and document classification. +
+ + ++ Turn this on to allow access and management of your personal workspace. +
++ Turn this on to allow access and management of group workspaces, as well as group collaboration features. +
++ When enabled, no users will be able to create new groups, regardless of app role assignment. This global setting overrides the Require CreateGroups App Role setting below. +
+ +
+ Required app role value: CreateGroups. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any authenticated user can create groups while group workspaces and group creation are enabled.
+
+ If enabled, only the group Owner can create, edit, and delete group agents, group actions, and group workflows. Admins and other roles will only be able to view them. +
++ Turn this on to enable public workspaces that are visible to everyone in the organization. +
+
+ Required app role value: CreatePublicWorkspaces. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any authenticated user can create public workspaces while public workspaces are enabled.
+
- Configure workspace settings like personal/group access, multimedia support, metadata, and document classification. -
- - -- Turn this on to allow access and management of your personal workspace. -
-- Control personal and group workflow authoring and execution for users. -
-
- Required app role value: WorkflowUser. Assign this role to users or groups in the Enterprise App before enabling the requirement.
-
- Group workflow authoring is available to group Owners and Admins by default. Enable the owner-only setting below to limit group agent, action, and workflow management to Owners. -
-- Control when users can download original workspace document files from personal, group, and public workspaces. -
-- Turn this on to allow access and management of group workspaces, as well as group collaboration features. -
-- When enabled, no users will be able to create new groups, regardless of app role assignment. This global setting overrides the Require CreateGroups App Role setting below. -
- -
- Required app role value: CreateGroups. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any authenticated user can create groups while group workspaces and group creation are enabled.
-
- If enabled, only the group Owner can create, edit, and delete group agents, group actions, and group workflows. Admins and other roles will only be able to view them. -
-- Turn this on to enable public workspaces that are visible to everyone in the organization. -
-
- Required app role value: CreatePublicWorkspaces. Assign this role to users or groups in the Enterprise App before enabling the requirement. If disabled, any authenticated user can create public workspaces while public workspaces are enabled.
-
- Turn this on to enable file sharing capabilities between users and workspaces. -
-- Enable this to automatically parse and store file metadata for advanced indexing and search. -
-- Enable AI-powered vision analysis for images uploaded to chat or workspace. When enabled alongside Document Intelligence OCR, images will receive both text extraction (OCR) and semantic understanding (vision AI). -
- -- Configure a user agreement that users must accept before uploading files. - Supports Markdown formatting. -
- - -Select where the user agreement should be shown (at least one required):
-