Introduzione
Ciao, sono Non è mai troppo libero - Il capo ingegnere del software di Capgo.
Negli ultimi 8 mesi, ho sviluppato il sistema di organizzazione. e a partire dal 14 aprile, sono felice di annunciare che il sistema è stato completato 🎉 🎊Finalmente, dopo 8 mesi, ogni singola parte di __CAPGO_KEEP_0__ è accessibile ai membri dell'organizzazione.
Finally, after 8 months, every single part of Capgo is accessible to org members. This includes:
- applicazioni
- statistiche
- fatturazione
- supporto completo CLI
- e molto altro!
Non è stato facile arrivare fin qui; ci sono stati 3 rilevanti revisioni dei sistemi.
Organizzazioni v1
Le origini erano difficili… Inizialmente, ho iniziato a lavorare su questo 2 settimane dopo aver aderito al progetto. All'epoca, avevo una conoscenza limitata del codice o di alcuna idea più ampia su come implementare questo.
Ciò ha portato all'implementazione della soluzione più hacky che supportava solo l'accesso alle applicazioni, ai canali e alle versioni. Non consentiva nemmeno all'utente invitato di accedere alle statistiche.
E poi ho aspettato che Martin revisionasse questo. Ho aspettato e aspettato, ma nulla è realmente accaduto. 3 mesi dopo, ho deciso di tornare a questo e risolvere tutti i conflitti di merge. Ho anche deciso di testare, il che si è rivelato un'ottima idea. Non sorprende, la soluzione hacky è fallita completamente. In quel momento, ho deciso di risolvere tutti i bug e scrivere un test E2E estensivo. Ho dovuto lavorare con un code molto rotto e molte cattive decisioni fatte dalla mia precedente versione, ma dopo 2 settimane difficili, sono finalmente riuscito a farlo funzionare.
Ciò non significa, tuttavia, che fosse perfetto. L'owner dell'organizzazione aveva ancora molti più accessi di quelli anche dell'utente invitato più alto. L'esperienza utente era anche molto scarsa. L'utente invitato non poteva nemmeno vedere le statistiche delle applicazioni, gestire la fatturazione e il CLI era limitato all'upload solo.
Nonostante tutte queste sfide, Martin aveva revisionato il PR, e una settimana dopo, è stato spinto in prod.
Organizzazioni v2
La sistema delle organizzazioni funzionava piuttosto bene nonostante tutti i problemi. Gli utenti lo utilizzavano e ha veramente spinto l'intero progetto in avanti. Tuttavia, ho ancora dovuto:
- riparare il disastro creato in livello di sicurezza per riga
- aggiungere il supporto per l'intero CLI
- assicurarsi che gli utenti amministrativi abbiano gli stessi accessi del proprietario
Dopo molte discussioni con Martin, abbiamo deciso che il modo migliore per procedere era quello di ri scrivere le regole di sicurezza intere e di spostare l'intera proprietà dei risorse alle organizzazioni e non agli utenti. Ciò avrebbe permesso di integrare più facilmente il nuovo sistema delle organizzazioni e avrebbe anche eliminato molti code di legacy.
Scrivere il nuovo RLS code era molto noioso, ma dopo una settimana e mezza, la migrazione intera era pronta.
Questa volta, tuttavia, abbiamo deciso di non scrivere il test E2E, il che ha significato che abbiamo dovuto testarlo manualmente. Dopo 3 chiamate molto estensive insieme, Martin e io abbiamo finalmente deciso di pubblicare e sperare che andasse bene 🙏
Non è andato bene… Si scopre che ho rotto l'iscrizione degli utenti, e gli utenti nuovi non potevano creare un account 😅
Dopo una rapida chiamata di panico, ho spinto velocemente alcune modifiche in prod e sono andato a letto. Purtroppo, le mie modifiche hanno creato solo più problemi 😰
Dopo essermi svegliato, ho scoperto che gli utenti avevano molte organizzazioni vuote. Ciò non doveva succedere poiché solo 1 organizzazione doveva essere consentita per utente. È stato necessario un po' di tempo per brainstormare per eliminare tutte le org duplicate vuote, ma oltre a ciò, le modifiche sono andate piuttosto lisce.
Organizzazioni v3
Anche questo non era sufficiente. C'era ancora un componente enorme mancante - la fatturazione.
Fino a ora solo il proprietario poteva gestire la fatturazione. Ciò ha creato alcuni interessanti problemi dove un utente ha acquistato un piano pensando di comprarlo per l'organizzazione. Abbiamo risolto velocemente il problema manualmente e fu in questo momento che abbiamo deciso che questo problema era inaccettabile
La migrazione è stata piuttosto liscia. È stato necessario una settimana di lavoro ma rispetto a V1 e V2 non era davvero così difficile 🚀
Organizzazioni v4 - il futuro
Dopo tutto questo duro lavoro credo che sia ora di concentrarsi su qualcos'altro per ora 😎
Non è stato facile ma ho imparato molto e capgo ha ricevuto una funzione molto bella e importante Devo ancora deprecare le funzioni legacy, migliorare l'esperienza utente del webapp, monitorare per i bug, ma non dovrebbero esserci cambiamenti principali a questo sistema.
Grazie per aver letto 🚀
Continua da A un nuovo sistema di organizzazioni
Se stai utilizzando Un sistema organizzativo completamente nuovo per pianificare il dashboard e le API operazioni, connettilo con API Panoramica per i dettagli di implementazione in API Panoramica, Introduzione per i dettagli di implementazione in Introduzione, API Chiavi per i dettagli di implementazione in API Chiavi, Dispositivi per i dettagli di implementazione in Dispositivi, e Pacchetti per i dettagli di implementazione in Pacchetti.