[Feature][config-ui] Manage teams, members and account mapping from the UI
Maintainer thường phản hồi trong vòng 3 ngà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
- 45/100
Hướng nghiên cứu
Start by reading the config-ui pages and API client, then inspect the existing org plugin CSV endpoints for teams, users, and account mappings. Build a Teams page with three tabs that loads and saves each full CSV, including parent team selection, member team multi-select, and read-only account details with user mapping. Done when each tab round-trips its data and warns that saving replaces the full file; the issue names no files or tests.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Search before asking
- I had searched in the issues and found no similar feature requirement.
Use case
As an engineering manager, I want to define my teams and their members in DevLake so that the team dashboards show real numbers.
DevLake ships several dashboards that slice metrics by team:
- DORA (by Team)
- Engineering Throughput and Cycle Time - Team View
- GitHub Copilot Adoption by Team / by Team and User
All of them join through teams, team_users and user_accounts.
Description
Those three tables can only be populated through the org plugin's CSV endpoints:
| Endpoint | Columns |
|---|---|
GET/PUT /plugins/org/teams.csv |
Id, Name, Alias, ParentId, SortingIndex |
GET/PUT /plugins/org/users.csv |
Id, Name, Email, TeamIds (;-separated) |
GET/PUT /plugins/org/user_account_mapping.csv |
every account, with its mapped UserId |
config-ui references none of them. There is no page, button or upload control anywhere in the UI for team data, so the only way to set it up is to hand-craft a multipart upload:
curl -X PUT -F "[email protected]" http://localhost:8080/plugins/org/teams.csv
The practical effect is that on a fresh install every team dashboard renders blank, with no indication in the UI of what is missing or how to supply it. A new user who opens "DORA (by Team)" sees empty panels and no path forward. It is also easy to mistake the ?fake_data=true sample rows ("Tyrone K. Cummings") for the dashboards being built on placeholder data.
Proposed solution
A Teams page in config-ui with three tabs, built on the endpoints that already exist — no backend change:
- Teams — editable table; parent team chosen from a select of the other teams rather than typed as a raw id.
- Members — editable table; team membership as a multi-select that serialises back to the
;-delimitedTeamIdscell. - Account Mapping — every collected tool account with identity columns read-only and a select to map it to a member. Accounts come from data collection, so rows are not addable or removable here.
Each tab round-trips a whole CSV file, which matches the endpoints' existing delete-all-then-save behaviour; the page should say so, since a save overwrites rows added elsewhere since it loaded.
Possible follow-up
Per-row REST CRUD on the org plugin (POST/PATCH/DELETE for a single team or user) would remove the full-file replace and its clobbering window. That is a backend change and seems worth keeping separate from the UI work.
Related issues
None found.
Are you willing to submit a PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct
- Ngôn ngữ chính
- Go
- Star
- 3.2k
- Fork
- 824
- Merge trung bình
- 2 ngày 22 giờ
- Pull request đã merge (30 ngày)
- 46
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
- Không 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 apache/devlake
-
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 56/100
Maintainer thường phản hồi trong vòng 3 ngày
-
[Bug][SonarQube] Migration 20230927145127 is not re-runnable: fails with "constraint _tool_sonarqube_file_metrics_pkey does not exist" after an interrupted runCó thể đã có người làm @chenwei791129 đã nhận hôm nay. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 3 ngày
-
type/bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 64/100
Maintainer thường phản hồi trong vòng 3 ngày
-
[Bug][Blueprint] Scheduled run fails silently when plan generation errorsCó thể đã có người làm @jcamargos đã nhận 1 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của apache/devlake
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
blinklabs-io/dingo#5368 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
difficulty: easy enhancement frontend good first issue help wanted priority: P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
rafaelsilvabr/pdfHandler#18 ·
-
Độ khó 2/5 1-2 ngày Mức phù hợp với người mới 78/100
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 83/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày