[Feature][config-ui] Manage teams, members and account mapping from the UI
Les mainteneurs répondent en général sous 3 jours
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 45/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Go
- Étoiles
- 3.2k
- Forks
- 819
- Merge moyen
- 2 j 21 h
- PR mergées (30 j)
- 46
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/devlake
-
[Bug][e2e] Several plugin e2e tests fail on a fresh database because they depend on tables created by other testsPeut-être pris @chenwei791129 l’a pris aujourd’hui. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 3/5 Une demi-journée Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de apache/devlake
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
os: RawConn methods of a closed File return internal/poll.ErrFileClosing instead of ErrClosedOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: Bedrock invoke-with-response-stream reports `stop_reason: "end_turn"` for tool-use turnsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
oalders/clodhopper#162 ·
Les mainteneurs répondent en général sous 1 jour
-
component/server severity/minor type/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour