Introduction
Salut, je suis WcaleNieWolny - l'ingénieur logiciel principal de Capgo.
Au cours des 8 derniers mois, j'ai développé le système d'organisation, et depuis le 14 avril, je suis ravi d'annoncer que le système est terminé 🎉 🎊
Enfin, après 8 mois, chaque partie de Capgo est accessible aux membres de l'organisation. Cela inclut :
- les apps
- les statistiques
- la facturation
- support complet de CLI
- et bien plus encore !
Le chemin n'a pas été facile ; nous avons effectué 3 révisions majeures des systèmes.
Organisations v1
Les débuts ont été rudes… Au départ, j'ai commencé à travailler dessus 2 semaines après avoir rejoint le projet. À l'époque, je n'avais quasiment aucune connaissance de la codebase ni d'idée précise sur la manière de l'implémenter.
Cela nous a conduits à mettre en place la solution la plus bricolée, qui ne permettait que d'accéder aux apps, aux canaux et aux versions. Elle ne permettait même pas à l'utilisateur invité d'accéder aux stats.
Ensuite, j'ai attendu que Martin relise tout ça. J'ai attendu et attendu, mais rien ne s'est vraiment passé. 3 mois plus tard, j'ai décidé de m'y remettre pour régler tous les conflits de merge. J'ai aussi décidé de tester, ce qui s'est avéré être une excellente idée. Sans surprise, la solution bricolée a complètement échoué. À ce moment-là, j'ai décidé de corriger tous les bugs et d'écrire un test E2E complet. J'ai dû composer avec un code complètement cassé et beaucoup de mauvaises décisions de mon moi passé, mais après 2 semaines difficiles, j'ai enfin réussi à le faire fonctionner.
Cela ne signifie pas pour autant que c'était parfait. Le propriétaire de l'organisation avait toujours beaucoup plus d'accès que l'utilisateur invité disposant du plus haut niveau de droits. L'expérience utilisateur laissait aussi à désirer. L'utilisateur invité ne pouvait même pas voir les statistiques de l'application, gérer la facturation, et le CLI était limité à l'upload.
Malgré tous ces défis, Martin avait relu la PR et, une semaine plus tard, elle a été déployée en prod.
Organisations v2
Le système d'organisation fonctionnait plutôt bien malgré tous les défis. Les utilisateurs l'utilisaient, et cela a vraiment fait avancer tout le projet. Cependant, je devais encore :
- corriger le bazar laissé dans sécurité au niveau des lignes
- ajouter le support de l'ensemble du CLI
- garantir que les admins aient les mêmes accès que le propriétaire
Après beaucoup de discussions Avec Martin, nous avons décidé que la meilleure façon d'avancer était de réécrire l'intégralité des règles de sécurité et de transférer la propriété de toutes les ressources aux organisations plutôt qu'aux utilisateurs. Cela permettrait une intégration plus facile avec le nouveau système d'organisation, tout en supprimant beaucoup de code hérités.
L'écriture des nouvelles code RLS a été très fastidieuse, mais après une semaine et demie, toute la migration était prête.
Cette fois-ci, cependant, nous avons décidé de ne pas écrire de tests E2E, ce qui nous a obligés à tester manuellement. Après trois appels très approfondis, Martin et moi avons finalement décidé de pusher en production en espérant que tout se passe bien 🙏
Ça n'a pas marché... Il s'avère que j'ai cassé l'inscription des utilisateurs, et les nouveaux ne pouvaient pas créer de compte 😅
Après un appel de panique, j'ai rapidement poussé quelques changements en prod avant d'aller me coucher. Malheureusement, mes modifications n'ont fait qu'aggraver les problèmes 😰
En me réveillant, j'ai découvert que les utilisateurs avaient de nombreuses organisations vides. Cela ne devrait pas arriver, car une seule organisation devrait être autorisée par utilisateur. Il a fallu un peu de réflexion pour supprimer toutes les organisations vides et dupliquées, mais en dehors de cela, les changements se sont plutôt bien déroulés.
Organisations v3
Pourtant, cela ne suffisait pas. Il manquait encore un composant majeur : la facturation.
Jusqu'à présent, seul le propriétaire pouvait gérer la facturation. Cela a créé des problèmes intéressants où un utilisateur achetait un plan en pensant l'acheter pour l'organisation. Nous avons rapidement corrigé le problème manuellement, et c'est à ce moment-là que nous avons décidé que ce problème était inacceptable.
La migration s'est plutôt bien passée. Cela a demandé une semaine de travail, mais comparé aux V1 et V2, ce n'était vraiment pas si difficile 🚀
Organisations v4 - le futur
Après tout ce travail acharné, je pense qu'il est temps de se concentrer sur autre chose pour le moment 😎
Ce n'était pas facile, mais j'ai beaucoup appris et capgo a reçu une fonctionnalité très intéressante et importante. Je dois encore supprimer les anciennes fonctions, améliorer l'expérience utilisateur de la webapp et surveiller les bugs, mais il ne devrait plus y avoir de changements majeurs à ce système.
Merci de votre lecture 🚀
Continuer la lecture de A brand new organization system
Si vous utilisez Un tout nouveau système d'organisation pour planifier les opérations du dashboard et de API, connectez-l’avec Aperçu de API pour les détails d'implémentation dans « Vue d'ensemble de API », Introduction pour les détails d'implémentation dans l'introduction, Clés API pour les détails d'implémentation dans API Keys, Appareils pour les détails d'implémentation dans Devices, et Les bundles pour les détails d'implémentation dans Bundles.