Passer au contenu principal
Histoire

Un nouveau système d'organisation

Une histoire sur la façon dont l'équipe capgo a ajouté un système d'organisation

Content Marketeur

A brand new systeme d'organisation

Introduction

Bonjour, je suis

WcaleNieWolny

- Le lead ingénieur logiciel de __CAPGO_KEEP_0__. Depuis les 8 derniers mois, j'ai développé le - Capgo’s lead software engineer.

, et à compter du 14 avril, je suis heureux de vous annoncer que le système est désormais terminé 🎉 🎊 Enfin, après 8 mois, chaque partie de __CAPGO_KEEP_0__ est désormais accessible aux membres de l'organisation. Cela inclut : Enfin, après 8 mois, chaque partie de __CAPGO_KEEP_0__ est désormais accessible aux membres de l'organisation. Cela inclut :

Enfin, après 8 mois, chaque partie de Capgo est désormais accessible aux membres de l'organisation. Cela inclut :

  • apps
  • statistiques
  • facturation
  • un support complet CLI
  • et bien plus encore !

Il n'a pas été facile d'arriver là; il y a eu 3 grandes révisions du système.

Organisations v1

Les débuts ont été difficiles… J'ai commencé à travailler sur ce projet 2 semaines après avoir rejoint l'équipe. À l'époque, j'avais peu de connaissances sur le codebase ou aucune idée plus grande sur la façon d'implémenter cela.

Cela a conduit à l'implémentation d'une solution très hacky qui ne supportait que l'accès aux applications, aux canaux et aux versions. Elle ne permettait même pas à l'utilisateur invité d'accéder aux statistiques.

Et puis j'ai attendu que Martin révise cela. J'ai attendu et attendu, mais rien ne s'est vraiment passé. 3 mois plus tard, j'ai décidé de revenir sur cela et de résoudre tous les conflits de fusion. J'ai également décidé de tester, ce qui s'est avéré être une excellente idée. Comme prévu, la solution hacky a complètement échoué. À ce moment-là, j'ai décidé de corriger tous les bogues et d'écrire un test E2E exhaustif. J'ai dû travailler avec un code très cassé et de nombreuses décisions mauvaises prises par le passé, mais après 2 semaines difficiles, j'ai finalement réussi à le faire fonctionner.

Cela ne signifie pas, cependant, que cela était parfait. Le propriétaire de l'organisation avait encore beaucoup plus d'accès que même l'utilisateur invité le plus élevé. L'expérience utilisateur était également très insatisfaisante. L'utilisateur invité ne pouvait même pas voir les statistiques d'application, gérer la facturation et le CLI était limité à l'upload uniquement.

Malgré tous ces défis, Martin a révisé le PR, et une semaine plus tard, cela a été poussé 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 poussé l'ensemble du projet en avant. Cependant, j'avais encore à :

  • réparer le désordre créé dans la sécurité au niveau de ligne
  • ajouter le support pour l'ensemble CLI
  • assurer que les utilisateurs administrateurs aient le même accès que le propriétaire

Après beaucoup de discussions with Martin, we decided that the best way to move forward was to rewrite the entire security rules and to move all the resource ownership to organizations and not users. This would allow for easier integration with the new organization system, and it would also remove a lot of legacy code.

Cela permettrait une intégration plus facile avec le nouveau système d'organisation, et cela supprimerait également beaucoup de legacy code.

Écrire les nouvelles RLS __CAPGO_KEEP_0__ était très fastidieux, mais après une semaine et demie, la migration entière était prête.

Cette fois, cependant, nous avons décidé de ne pas écrire le test E2E, ce qui signifie que nous devions le tester manuellement. Après 3 appels très étendus ensemble, Martin et moi avons finalement décidé de pousser vers la production et espérer qu'il irait bien 🙏

After un appel de panique rapide, j'ai rapidement poussé quelques modifications en prod et suis allé me coucher. Malheureusement, mes modifications n'ont créé que plus de problèmes 😰

Après avoir réveillé, j'ai découvert que les utilisateurs avaient beaucoup d'organisations vides. C'est pas censé arriver car qu'une seule organisation devrait être autorisée par utilisateur. Il a fallu un peu de temps de brainstorming pour supprimer toutes les orgs dupliquées vides, mais en dehors de cela, les modifications sont allées plutôt doucement.

Organisations v3

Même cela ne suffisait pas. Il y avait encore un composant immense manquant - le facturation.

Jusqu'à présent, seul le propriétaire pouvait gérer la facturation. Cela a créé quelques problèmes intéressants où un utilisateur a acheté un plan en pensant qu'il l'achetait pour l'organisation. Nous avons rapidement résolu le problème manuellement et c'est à ce moment-là que nous avons décidé que ce problème était inacceptable

La migration a été plutôt douce. Il a fallu une semaine de travail mais comparé à V1 et V2, cela n'était vraiment pas si dur 🚀

Organisations v4 - l'avenir

Après tout ce travail dur, je pense qu'il est temps de se concentrer sur autre chose pour l'instant 😎

Cela n'a pas été facile mais j'ai appris beaucoup et capgo a reçu une très belle et importante fonctionnalité Je dois encore dépréciquer les fonctions légacière, améliorer l'expérience utilisateur de l'application web, surveiller les bogues, mais il ne devrait pas y avoir de changements majeurs à ce système.


Merci de lire 🚀

Continuez de A un nouveau système d'organisation

Si vous utilisez Un nouveau système d'organisation pour entreprise pour planifier le tableau de bord et les opérations API, le connecter avec API Vue d'ensemble pour les détails d'implémentation dans API Vue d'ensemble, Introduction pour les détails d'implémentation dans Introduction, API Clés pour les détails d'implémentation dans API Clés, Appareils pour les détails d'implémentation dans Appareils, et Ensembles pour les détails d'implémentation dans Ensembles.

Mises à jour en temps réel pour les applications Capacitor

Lorsqu'un bug de la couche web est en ligne, expédiez la correction par le biais de Capgo au lieu d'attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les changements natifs restent dans la voie de revue normale.

Commencez maintenant

Dernières actualités de notre blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.