Projektbasierte Organisation mit Einstellungen, Berechtigungen, Workflows und Reviews #11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
Das gesamte System (Repos, AppSignal-Apps, Tickets) soll projektbasiert organisiert werden.
Aktuell sind alle Tickets, Repos und Einstellungen global — es gibt keine Möglichkeit,
verschiedene Kunden/Projekte (z.B. "Henke") mit eigenen Konfigurationen zu betreiben.
Ein neues Projekt-Konzept soll eingeführt werden, das als zentraler Organisationsrahmen dient:
Jedes Projekt bündelt Repos, Tickets, Benutzer, Workflows und Review-Konfigurationen.
Hintergrund
Wenn Bruno für mehrere Kunden/Projekte eingesetzt wird, braucht jedes Projekt:
Ohne diese Trennung können verschiedene Projekte nicht sauber parallel betrieben werden.
Konzept (basierend auf PROJEKT-SPEC.md)
1. Neues Datenmodell:
Project2. Einstellungen pro Projekt:
ProjectSettings3. Berechtigungen/User:
ProjectMember4. Workflow-Konfiguration:
WorkflowConfig5. Review-Konfiguration:
ReviewConfig6. Betroffene bestehende Models
Ticket, Repo, AppSignalApp erhalten jeweils:
nullable=Truefür Rückwärtskompatibilität.7. Neue API-Endpoints
Bestehende Endpoints erhalten optionalen
?project=slugFilter.8. Frontend: Neue Seiten
Akzeptanzkriterien
ProjectModel mit Alembic-MigrationProjectSettings,ProjectMember,WorkflowConfig,ReviewConfigModelsproject_idFK (nullable für Rückwärtskompatibilität)Technische Hinweise
Betroffene Dateien (neu):
backend/models/project.pybackend/api/projects.pyfrontend/src/pages/ProjectList.tsx,ProjectDetail.tsxfrontend/src/components/ProjectSelector.tsxBetroffene Dateien (ändern):
backend/models/ticket.py— project_id FKbackend/models/repo.py— project_id FKbackend/models/appsignal_app.py— project_id FKbackend/services/pipeline.py— Projekt-Settings ladenbackend/services/scoring_engine.py— Schwellwerte aus Projektbackend/services/review_agent.py— Review-Kriterien aus Projektbackend/api/tickets.py— project-Filterbackend/api/repos.py— project-Filterbackend/config.py— Globale Settings als Fallbackbackend/main.py— Router registrierenfrontend/src/App.tsx— Neue Routenfrontend/src/api/client.ts— Neue API-FunktionenMigration nötig: ja (Alembic: neue Tabellen + FKs)
Ansatz: Schrittweise — erst Models + API, dann Pipeline-Integration, dann Frontend
Aufwand: XL
Neuer Service-Bereich, 15+ Dateien betroffen, mehrere Tage Implementierung.
Empfehlung: In Sub-Issues aufteilen (Models → API → Pipeline-Integration → Frontend).
Review bestanden
Label auf
dokugesetzt.Dokumentation aktualisiert. Issue wird geschlossen.
Geaenderte Docs:
README.md: Projektbasierte Organisation, API-Tabelle, Projektstruktur, Auth-RollenCLAUDE.md: Einschraenkungen (JWT, Projekte, Repo-Verzeichnisse)