-
Notifications
You must be signed in to change notification settings - Fork 179
Feature / implement teams filter #662
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds team-based access control by propagating userGroups through service and controller layers, filtering pipelines based on team membership, and updating the UI to display access teams.
- Propagate
userGroupsparameter to security, apps, deployments, logs, and pipelines services/controllers - Introduce
access.teamsinIPipelineand filter pipelines inKubernetesService.getPipelinesList - Update pipeline list UI to show team chips and adjust account views
Reviewed Changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| server/src/security/security.service.ts | Added userGroups to context and app fetch calls in security |
| server/src/security/security.controller.ts | Injected Request and passed userGroups to security service |
| server/src/repo/repo.service.ts | Hardcoded ['admin'] for internal rebuild/delete workflows |
| server/src/pipelines/pipelines.service.ts | Added userGroups arguments and forwarded to getContext |
| server/src/pipelines/pipelines.interface.ts | Added optional access.teams field to IPipeline |
| server/src/pipelines/pipelines.controller.ts | Passed userGroups from request to service methods |
| server/src/logs/logs.service.ts | Propagated userGroups through log retrieval; unused import |
| server/src/logs/logs.controller.ts | Injected Request and forwarded userGroups to logs service |
| server/src/kubernetes/kubernetes.service.ts | Filtered pipelines by access.teams using userGroups |
| server/src/deployments/deployments.service.ts | Forwarded userGroups to deployment operations |
| server/src/deployments/deployments.controller.ts | Injected Request and forwarded userGroups |
| server/src/apps/apps.service.ts | Added userGroups to all app operations (create, update, delete, rebuild, etc.) |
| server/src/apps/apps.controller.ts | Injected Request and forwarded userGroups to app endpoints |
| client/src/components/pipelines/list.vue | Display team chips and extend Pipeline type |
| client/src/components/accounts/users.vue | Updated team chip icon and username formatting |
| client/src/components/accounts/teams.vue | Added icon to team chip |
Comments suppressed due to low confidence (1)
server/src/kubernetes/kubernetes.service.ts:224
- The new team-based filter logic for pipelines should have corresponding unit or integration tests to verify that access rules are enforced correctly for various
userGroupsscenarios.
pipelines.items = pipelines.items.filter((pipeline) => {
| this.notificationsService.send(m); | ||
|
|
||
| this.appsService.rebuildApp(app); | ||
| this.appsService.rebuildApp(app, ['admin']); // return all pipelines to search for the app |
Copilot
AI
Jul 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider extracting the hardcoded ['admin'] group into a constant or configuration to avoid duplicate literals and make future changes easier.
| this.appsService.rebuildApp(app, ['admin']); // return all pipelines to search for the app | |
| this.appsService.rebuildApp(app, RepoService.DEFAULT_GROUPS); // return all pipelines to search for the app |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Description
Fixes # (issue)
Type of change
How Has This Been Tested?
Test Configuration:
Checklist: