Skip to content

Conversation

@paullizer
Copy link
Collaborator

@paullizer paullizer commented Jan 21, 2026

Pull Request Title

Improve user search UX, fix Cognitive Services scope for MAG/custom clouds, and add private networking deployment automation plus file upload user agreement

Summary

This PR delivers three main improvements:

  1. User search UX: Updates searchUsers() to use inline status messaging and toast notifications (errors only) instead of blocking alert() popups, per prior PR feedback.
  2. Bugfix for MAG/custom clouds: Removes hardcoded Commercial Cognitive Services scope references in chat_stream_api and smart_http_plugin, replacing them with the configured value from config.py, resolving streaming chat failures in MAG.
  3. Deployment and security: Enhances AZD/Bicep deployment automation and documentation to support Private Networking, adds more robust hook logging and error handling, introduces a postup hook to disable public access when private networking is enabled, improves docs (including USGov guidance), and adds new app roles.
  4. Compliance and governance: Adds an admin-configurable User Agreement for File Uploads, with modal UX, daily acceptance option, and activity logging.

Related Links

Changes Included

1) User Search UX: Inline and toast messaging (no more alerts)

  • Updated searchUsers() so search feedback is primarily inline.

  • Toasts are shown only for errors, in addition to the inline message.

  • Screenshot examples provided:

    • Empty search message (inline)
    • No users found message (inline)
    • One or more users found message (inline)

2) Bugfix: Remove hardcoded Commercial Cognitive Services scope

  • Removed hardcoded Commercial Cognitive Services scope in:

    • chat_stream_api
    • smart_http_plugin
  • Replaced with a variable sourced from config.py so this works correctly in MAG and custom clouds.

  • Result:

    • Streaming chat error in MAG before the change (see screenshot)
    • Working properly in MAG after the change (see screenshot)

3) Private Networking focus: Deployment automation, hook hardening, and docs

Deployment Automation and Error Handling

  • Refactored deployment hooks in deployers/azure.yaml with:

    • stepwise logging
    • explicit error handling
    • clearer output for each phase (postprovision, predeploy, postup)
  • Added new postup hook:

    • automates disabling public network access for resources when private networking is enabled

Documentation Enhancements

  • Expanded deployers/bicep/README.md with:

    • comprehensive prerequisites
    • corrected/improved table of contents
    • Azure Government (USGov) considerations (service limitations, model overrides, regional notes)
    • clearer post-deployment validation steps and known issues/workarounds
  • Fixed Azure deployment button links in OneClickDeploy.md to point to the correct branch for both Commercial and Government clouds

Access Control Improvements

  • Added new app roles in appRegistrationRoles.json:

    • Control Center Admin (full admin access)
    • Control Center Dashboard Reader (read-only dashboard access)

4) User Agreement for File Uploads (admin-configurable)

Feature

  • Global admin-configurable agreement required before uploading files to workspaces.

Configuration

  • Enable/disable toggle
  • Workspace types selection (Personal, Group, Public, Chat)
  • Markdown-formatted agreement text (200-word limit)
  • Optional daily acceptance mode

User Experience

  • Modal shown before file uploads with:

    • agreement text
    • Accept & Upload and Cancel
  • Daily acceptance tracking to reduce repeat prompts (when enabled)

Activity Logging

  • Logs all acceptances for compliance tracking:

    • timestamp
    • user
    • workspace type
    • action context

Admin UX

  • Admin Settings → Workspaces tab → User Agreement section
  • Sidebar navigation link

Files Added

  • user-agreement.js (frontend module)
  • route_backend_user_agreement.py (API endpoints)

Files Modified

  • admin_settings.html
  • route_frontend_admin_settings.py
  • base.html
  • _sidebar_nav.html
  • functions_activity_logging.py
  • workspace-documents.js
  • group_workspaces.html
  • public_workspace.js
  • chat-input-actions.js

Testing Notes

  • Verified searchUsers() behaviors:

    • empty query shows inline message
    • no matches shows inline message
    • matches show inline message
    • error shows inline message + toast
  • Verified MAG/custom cloud streaming chat:

    • no longer fails due to Commercial scope mismatch
  • Deployment validation:

    • AZD up and/or Bicep flows follow new hook logging
    • private networking path triggers postup public access disablement (when enabled)
  • File upload agreement:

    • modal gating works across configured workspace types
    • daily acceptance behaves as expected (when enabled)
    • activity logs record acceptance events

Screenshots

User Search UX

  • Empty search message image

  • No users found message image

  • One or more users found message image

MAG Streaming Fix

  • Error in MAG before change image

  • Working properly in MAG after change image

paullizer and others added 30 commits September 22, 2025 20:20
* Development (#467)

* upgrade to v0.229.060 (#459)

* Update release notes to show support for GPT-5

* Documented support for gpt-image-1

* Update config.py

* remove documentation folder

* Documentation and message table support (#444)

* Develop demo docs and import markdown table support

* fixed enhanced citations for groups and public workspaces

* Updated to support showing public workspaces in scope

* Update config.py

* fix docs

* Updated RELEASE_NOTES

* docs demos for public workspaces

* V0.229 bug fixes (v0.229.019) (#448)

* Development (#445)

* Update release notes to show support for GPT-5

* Documented support for gpt-image-1

* Update config.py

* remove documentation folder

* Documentation and message table support (#444)

* Develop demo docs and import markdown table support

* fixed enhanced citations for groups and public workspaces

* Updated to support showing public workspaces in scope

* Update config.py

* fix docs

* Updated RELEASE_NOTES

* video indexer config details, doc intel test button fix, move multimedia configs to search and extract

* improved header security

* updated versions

* moved

* Update EXTERNAL_HEALTH_CHECK_DUPLICATION_FIX.md

* added pdfs

* v0.229.019 bug fixes upgrade to v0.229.058 (#452)

* all urls in chat open in new tabs

* consolidated admin settings for improved navigation

* added left hand nav admin settings menus

* added left hand menu options for workspaces

* Added debug logging to video indexer processes

* readme and functional test

* Workspace Scope in Chat affects Prompts

* Create WORKSPACE_SCOPE_PROMPTS_FIX.md

* time based turn off for debug and file process logging

* improve saving in admin settings

* update to v0.229.058

* Update RELEASE_NOTES.md

* Update RELEASE_NOTES.md

* Popup modal for Health Check config

* Added Health Check config guide

* Chat page top nav bug (#458)

* initial fix

* fixed top nav chat up bug

* notes for v0.229.060

* file location fix

* Update config.py

* Update RELEASE_NOTES.md

* moved to correct location

* Fixed enhanced citations CSP bug

Simple Chat implemented improved security which negatively impacted enhanced citations.

* Updated release notes

* updated version and tests

* swagger support for all endpoints and added swagger search

* added wide screen support for chats when collapsing side bar

* v0.230.001 features
Updated else if for AUTHORITY
* setup folders and base files

* setting up files

* architecture diagrams

* updated to libdoc

* libdoc updates

* updating side bar

* removed loops

* editing side bar

* Created Simple Chat Jekyll theme

* Update config.py (#477) (#478)

Updated else if for AUTHORITY

Co-authored-by: Patrick C Davis <82388365+Patrick-Davis-MSFT@users.noreply.github.com>

* Updating architectures

* Update README.md

---------

Co-authored-by: Patrick C Davis <82388365+Patrick-Davis-MSFT@users.noreply.github.com>
paullizer and others added 28 commits January 13, 2026 15:23
…l, group member role update, and approve/reject request
* retention execution logging bug fix

* debug timer reset with admin save bug fix

* Create test_debug_logging_timer_preservation.py

* fixed file processing logic prevent runtime execution

* fixed bug processing execution against personal documents

* removed test logging

* Retention Policy Document Deletion Fix

* Improve execution logic for rentention policy

Now uses retention_policy_next_run timestamp - Compares current time against the stored next scheduled time. If current time >= next scheduled time, it runs.

Reduced check interval from 1 hour to 5 minutes - More responsive scheduling, ensures it catches the scheduled time promptly.

Better fallback logic - If next_run can't be parsed, falls back to checking last_run (23-hour threshold).

Runs immediately if never run before - If there's no last_run or next_run, it will execute on the first check.
Bug fix - fixed group member management errors with selecting new users, removing them, and updating the roles
…s scope in the chat_stream_api and smart_http_plugin and replaced with variable from config.py so they work in MAG and custom clouds (#618)
* initial structure for private networking

* Update to support private networking for core services

* refactor of private networking

* reformat content for ease of reading / maintenance

* found redis configs were missing

* updates to add in missing configurations for redis cache

* handle zone names for gov cloud.  Externalize zone names

* fix: rename module for storing Cosmos DB secrets to improve clarity

* fix: update OpenID issuer for Azure US Government environment

* fix: remove deprecated Bicep parameter file

* feat: add roles for Control Center administration and dashboard access

* refactor: enhance post-provisioning and pre-deployment scripts with detailed logging and error handling

* removed models that may cause issues in usgov, removed ipaddress from cosmos fw script, minor cleanup of unused values

* fix: update condition for storing search service keys in key vault

* feat: add environment and application permission parameters to deployment configuration

* update to oneclickdeploy.md to correct for updated bicep structures.

* fix: correct links and typos in README.md for improved clarity and navigation

* fix incorrect postup step numbering.  Fix disabling public network access for webapp if private network is enabled

* Fix to support prompting of allowedIPaddresses and enable setting allowed IP addresses for ACR.
…les (#620)

* Configure a user agreement that users must accept before uploading files

* added log_event to exceptions
@paullizer paullizer changed the title Development v0.236.007 Jan 21, 2026
@paullizer paullizer closed this Jan 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants