Add an admin-only SimpleChat Admin action that restricts any agent using it to admins
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, python
- Lĩnh vực
- authentication, authorization, backend-api-design, documentation, frontend, security
Hướng nghiên cứu
Bắt đầu với capability audit trong #1347, sau đó đọc application/single_app/functions_simplechat_operations.py, functions_authentication.py, functions_governance.py và route_backend_agents.py để lập bản đồ việc đăng ký, ủy quyền và liệt kê các action. Tiếp theo, truy vết các file modal và plugin liên quan để bổ sung authoring feedback, rồi cập nhật functional_tests/route_tests/ và các trang tài liệu được nêu. Hoàn tất khi action admin và các agent của nó được lọc, việc thực thi được bảo vệ độc lập, governance không thể làm yếu mức sàn admin, và feedback trong admin UI đã có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
Add a second, separate action type — SimpleChat Admin — for SimpleChat operations that only an application admin should be able to perform. The action is invisible to non-admins, and any agent that references it becomes admin-only. That restriction is enforced in code as a floor, not left to governance policy.
User Value
Admin-capable operations are currently mixed into the general SimpleChat action. make_group_inactive is the clearest example: it already requires Control Center admin access, so a normal user can enable it on an action, attach it to an agent, and only discover the problem as a runtime permission failure. That is a late and confusing way to learn about a permission boundary.
A dedicated admin action makes the boundary explicit at design time, keeps privileged operations out of the capability list that ordinary authors browse, and gives admins one obvious place to look when auditing who can do what.
Proposed Behavior
Visibility
- Non-admin users never see the SimpleChat Admin action type in the action picker, the action type list, or any action listing API.
- Non-admin users never see an agent that references the admin action — in any agent list, catalog, picker, popular-agents surface, or template listing.
- If an admin attaches the action to an otherwise ordinary agent, that agent disappears for non-admins rather than failing later.
Enforcement
- Visibility filtering is a convenience, not the control. Server-side execution must independently refuse to run an agent carrying the admin action for a non-admin caller, with a clear error.
- The same refusal applies to workflows bound to such an agent.
Admin authoring experience
- When an admin adds the SimpleChat Admin action to an agent, show a confirmation notice in the agent modal explaining that the agent becomes admin-only from that point on.
- Show a persistent badge on any agent carrying the action so the restriction is visible at a glance, not only at the moment it was added.
- Show the same notice when a workflow is bound to an agent carrying the action.
Relationship to governance
This is a hard, built-in restriction that sits underneath governance rather than inside it. Governance can narrow access further; it can never widen it.
Governance already supports item-level policies for global_agent, global_action, and action types including global_action_type (application/single_app/functions_governance.py:39-56). The admin action should register as a governed action type so an admin can restrict it further — for example to a subset of admins in a multi-admin tenant — but the admin-only floor must hold even when no policy is configured.
Capabilities
The capability set needs its own audit as part of this work. Starting points to evaluate:
- Move
make_group_inactiveout of the general SimpleChat action, since it already requires Control Center admin access. - Identify which other existing SimpleChat capabilities are really admin operations wearing a user-permission costume.
- Decide which genuinely new admin operations are worth exposing at launch, keeping the initial set small and defensible.
Acceptance Criteria
- A
simplechat_adminaction type exists with its own capability definitions, separate from the general SimpleChat action. - The action type is filtered out of every non-admin-facing action listing and action picker.
- Agents referencing the action are filtered out of every non-admin-facing agent listing, catalog, and picker.
- Server-side execution refuses non-admin invocation with a clear error, verified independently of any UI filtering.
- An admin sees a clear warning when attaching the action to an agent, and a persistent badge on the agent afterwards.
- The action type is visible in the governance portal so admins can restrict it further, and governance cannot grant access below the built-in admin floor.
- Existing agents that do not use the action are completely unaffected.
- Route tests updated under
functional_tests/route_tests/for any new or changed endpoint and its auth policy. - Functional tests cover: non-admin cannot list the action, cannot see an agent using it, and cannot execute it; admin can do all three.
- Documentation updated: feature doc under
docs/explanation/features/, an action reference page underdocs/reference/actions/, the governance admin doc, anddocs/explanation/release_notes.md.
Open Questions
- Which capabilities ship in the admin action at launch?
- Should "admin" mean the application
Adminrole (admin_required), Control Center admin access (control_center_required), or either? These are distinct today infunctions_authentication.py. - What should happen to an agent carrying the action when a user's admin role is revoked while a session or scheduled workflow is active?
- Should group-scoped privileged operations key off group admin role rather than application admin?
- Does the restriction need to propagate to agent templates and any export/import path?
Notes
Depends on the capability audit in #1347, since at least one capability is expected to move between the two actions.
Primary files:
application/single_app/functions_simplechat_operations.pyapplication/single_app/semantic_kernel_plugins/simplechat_plugin.pyapplication/single_app/semantic_kernel_loader.pyapplication/single_app/functions_governance.pyapplication/single_app/functions_authentication.pyapplication/single_app/route_backend_agents.pyapplication/single_app/static/js/plugin_modal_stepper.jsapplication/single_app/static/js/agent_modal_stepper.js
- Ngôn ngữ chính
- Python
- Star
- 157
- Fork
- 117
- Merge trung bình
- 3 giờ 6 phút
- Pull request đã merge (30 ngày)
- 219
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/simplechat
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
microsoft/simplechat#1491 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
microsoft/simplechat#1370 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Fix mixed-source chat excerpt truncation, default system prompt suppression, bracketed citations, and Semantic Ranker quota fallbackCó thể đã có người làm @paullizer đã nhận 1 ngày trước. Đang mởbug P1
microsoft/simplechat#1855 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add support for extracting comments from Word documents (.docx, .docm, .doc, .dotx)Có thể đã có người làm @paullizer đã nhận 3 ngày trước. Đang mởenhancement P2
microsoft/simplechat#1850 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
V2: Preserve explicit reasoning None across existing tool pathsCó thể đã có người làm @paullizer đã nhận 3 ngày trước. Đang mởbug P1
microsoft/simplechat#1846 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của microsoft/simplechat
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
pytest-dev/pytest-html#1085 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
pollen-robotics/reachy_mini#1527 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Variadic arguments that aren't objects are passed as objects (stringWithFormat_ with %d / %f)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
A seed and its negative give the same run, so realizations of a negative seed repeat each otherĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày