Einführung
Hallo, ich bin WcaleNieWolny - Capgo's Leiter der Softwareentwicklung.
Im Laufe der letzten 8 Monate habe ich an der Organisationsstruktur, und ab dem 14. April freue ich mich, Ihnen mitteilen zu können, dass das System abgeschlossen ist 🎉 🎊
Finally, after 8 months, every single part of Capgo is accessible to org members. This includes:
- Anwendungen
- Statistiken
- Rechnungswesen
- full CLI support
- und noch viel mehr!
Es war nicht leicht, hier zu gelangen; es gab 3 große Revisionen des Systems.
Organisationen v1
Die Anfänge waren rau… Ich begann zunächst mit der Arbeit an diesem Projekt 2 Wochen nach meiner Einstellung. Zum Zeitpunkt hatte ich wenig bis gar keine Kenntnisse über die Codebasis oder irgendeine größere Idee, wie man dies umsetzen sollte.
Dies führte dazu, dass die am wenigsten hackige Lösung implementiert wurde, die nur die Zugriff auf die Apps, Kanäle und Versionen unterstützte. Es ermöglichte nicht einmal den eingeladenen Benutzer, Zugriff auf Statistiken zu erhalten.
Und dann wartete ich auf Martin, um dies zu überprüfen. Ich wartete und wartete, aber nichts wirklich geschah. 3 Monate später entschied ich mich, zurückzukehren und alle Merge-Konflikte zu lösen. Ich entschied mich auch, zu testen, was sich als großartige Idee herausstellte. Zu keiner Überraschung funktionierte die hackige Lösung nicht. In diesem Moment entschied ich mich, alle Bugs zu beheben und eine umfassende E2E-Test zu schreiben. Ich musste mit sehr gebrochenen code und einer Vielzahl schlechter Entscheidungen arbeiten, die ich in der Vergangenheit getroffen hatte, aber nach 2 harten Wochen bekam ich es endlich zum Laufen.
Das bedeutet jedoch nicht, dass es perfekt war. Der Besitzer der Organisation hatte immer noch viel mehr Zugriff als sogar der höchst eingeladene Benutzer. Die Benutzererfahrung war auch sehr mangelhaft. Der eingeladene Benutzer konnte nicht einmal die Anwendungstatistiken sehen, die Abrechnung verwalten und der CLI war auf das Hochladen beschränkt.
Trotz all dieser Herausforderungen hatte Martin das PR geprüft und eine Woche später wurde es in die Produktion geschoben.
Organisationen v2
Das Organisationssystem funktionierte trotz all der Herausforderungen recht gut. Benutzer nutzten es und es trieb den gesamten Projekt voran. Ich musste jedoch immer noch:
- den Schlamassel in Zeilenbereichssicherheit
- die Unterstützung für die gesamte CLI
- sicherstellen, dass Administratoren den gleichen Zugriff wie der Besitzer haben
Nach vielen Diskussionen Wir haben mit Martin entschieden, dass der beste Weg vorwärts zu gehen darin besteht, die gesamten Sicherheitsregeln neu zu schreiben und die Ressourcenzuweisung auf Organisationen und nicht auf Benutzer umzustellen. Dies würde eine leichtere Integration mit dem neuen Organisationssystem ermöglichen und würde außerdem viele legacy code entfernen.
Das Schreiben der neuen RLS code war sehr zeitaufwändig, aber nach einer Woche und einem halben Tag war die gesamte Migration fertig.
Diesmal haben wir jedoch gegen das Schreiben von E2E-Tests entschieden, was bedeutete, dass wir es manuell testen mussten. Nach 3 sehr ausführlichen Gesprächen zusammen mit Martin und ich haben uns endlich entschieden, in die Produktion zu pushen und hoffen, dass es gut geht 🤩
Es ging nicht… Es stellte sich heraus, dass ich die Benutzerregistrierung gebrochen hatte und neue Benutzer konnten kein Konto erstellen 😪
Nach einem schnellen Panikgespräch habe ich schnell einige Änderungen in die Produktion geschoben und mich hingelegt. Leider haben meine Änderungen nur noch mehr Probleme geschaffen 🛈
Nachdem ich aufgewacht war, entdeckte ich, dass Benutzer viele leere Organisationen hatten. Dies sollte nicht passieren, da nur eine Organisation pro Benutzer erlaubt sein sollte. Es dauerte einige Zeit, um alle dupizierten, leeren Orgs zu entfernen, aber abgesehen davon gingen die Änderungen ziemlich reibungslos.
Organisationen v3
Selbst das reichte nicht aus. Es fehlte noch ein riesiger Komponente - die Abrechnung.
Bisher konnte nur der Besitzer die Rechnung verwalten. Dies hat einige interessante Probleme geschaffen, bei denen ein Benutzer ein Abonnement gekauft hat, weil er dachte, er kaufe es für die Organisation. Wir haben das Problem schnell manuell gelöst und es war in diesem Moment, dass wir beschlossen, dass dieses Problem unannehmbar war
Die Migration war ziemlich glatt. Es dauerte eine Woche Arbeit, aber verglichen mit V1 und V2 war es wirklich nicht so schwer 💂
Organisationen v4 - die Zukunft
Nach all diesem harten Arbeit denke ich, es ist Zeit, sich auf etwas anderes zu konzentrieren, für jetzt 😊
Es war nicht leicht, aber ich habe viel gelernt und capgo hat eine sehr nette und wichtige Funktion erhalten Ich muss noch die veralteten Funktionen deprecieren, die Benutzererfahrung der Webanwendung verbessern, nach Fehlern überwachen, Aber es sollten keine großen Änderungen an diesem System geben
Vielen Dank für das Lesen 💂
Weiter geht es von A brand new organization system
Wenn Sie "A brand new organization system" verwenden A brand new organization system um das Plan-Dashboard und API-Operationen zu planen und mit API zu verbinden API-Übersicht für die Implementierungsdetails in API-Übersicht Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel, Geräte für die Implementierungsdetails in Geräte, und Pakete für die Implementierungsdetails in Pakete.