itaispiegel opened a new issue, #9206: URL: https://github.com/apache/devlake/issues/9206
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/devlake/issues?q=is%3Aissue) 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: ```bash 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 `;`-delimited `TeamIds` cell. - **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? - [X] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
