Introducción
Hola, soy WcaleNieWolny - El ingeniero de software principal de Capgo.
Durante los últimos 8 meses, he estado desarrollando el sistema de organización sistema de organizaciónFinalmente, después de 8 meses, cada parte del __CAPGO_KEEP_0__ está disponible para los miembros de la organización. Esto incluye:
Finally, after 8 months, every single part of Capgo is accessible to org members. This includes:
- estadísticas
- facturación
- soporte completo de __CAPGO_KEEP_0__
- full CLI support
- No ha sido fácil llegar aquí; han habido 3 revisiones importantes del sistema.
Organizaciones v1
Los comienzos fueron difíciles… Inicialmente, comencé a trabajar en este proyecto 2 semanas después de unirme al proyecto. En ese momento, tenía poco o ningún conocimiento sobre el código base o ninguna idea más grande sobre cómo implementarlo.
Organizaciones v1
This led to implementar la solución más hackeada que solo apoyaba el acceso a las aplicaciones, canales y versiones. No incluso permitió que el usuario invitado accediera a estadísticas.
Y luego esperé a que Martin revisara esto. Esperé y esperé, pero nada realmente sucedió. 3 meses después, decidí volver a esto y solucionar todos los conflictos de fusión. También decidí probar, lo que resultó ser una gran idea. No fue de sorpresa, la solución hackeada falló completamente. En ese momento, decidí solucionar todos los errores y escribir una prueba E2E exhaustiva. Tuvieron que trabajar con muy malas code y muchas malas decisiones tomadas por el pasado yo, pero después de 2 semanas duras, finalmente lo hice funcionar.
No obstante, eso no significa que fuera perfecto. El propietario de la organización todavía tenía mucho más acceso que incluso el usuario invitado más alto. La experiencia del usuario también era bastante deficiente. El usuario invitado no podía ni ver estadísticas de la aplicación, gestionar facturación, y el CLI estaba limitado a subir solo.
A pesar de todas esas dificultades, Martin había revisado el PR, y una semana después, se lanzó a producción.
Organizaciones v2
El sistema de organizaciones funcionaba bastante bien a pesar de todas las dificultades. Los usuarios lo estaban utilizando, y realmente impulsó todo el proyecto hacia adelante. Sin embargo, todavía tenía que:
- arreglar el desastre hecho en seguridad de nivel de fila
- agregar soporte para toda la CLI
- asegurarse de que los usuarios administrativos tengan el mismo acceso que el propietario
Después muchas discusiones con Martin, decidimos que la mejor forma de avanzar era reescribir todas las reglas de seguridad y mover la propiedad de todos los recursos a las organizaciones y no a los usuarios. Esto permitiría una integración más fácil con el nuevo sistema de organizaciones, y también eliminaría una gran cantidad de legado code.
Escribir los nuevos RLS code fue muy tedioso, pero después de una semana y media, la migración completa estaba lista.
Esta vez, sin embargo, decidimos no escribir las pruebas E2E, lo que significó que tuvimos que probarlo manualmente. Después de 3 llamadas muy extensas juntos, Martin y yo finalmente decidimos empujar a producción y esperar que todo saliera bien 🙏
No lo hizo… Resultó que había roto la inscripción de usuarios, y los nuevos usuarios no podían crear una cuenta 😅
Después de una llamada de pánico rápida, empujé rápidamente algunas cambios a prod y me fui a la cama. Desafortunadamente, mis cambios solo crearon más problemas 😰
Después de despertar, descubrí que los usuarios tenían muchas organizaciones vacías. Esto no está supuesto a suceder, ya que solo se debe permitir una organización por usuario. Tomó algún tiempo de brainstorming para eliminar todas las organizaciones duplicadas vacías, pero aparte de eso, los cambios fueron bastante suaves.
Organizaciones v3
Incluso esto no fue suficiente. Faltaba un componente gigante - facturación.
Hasta ahora solo el propietario podía gestionar la facturación. Esto ha creado algunos problemas interesantes donde un usuario compró un plan pensando que estaba comprándolo para la organización.
Rápidamente corregimos el problema manualmente y fue en este punto que decidimos que este problema era inaceptable
Organizaciones v4 - el futuro
Después de todo este trabajo duro creo que es hora de enfocarse en algo más por ahora
No fue fácil pero aprendí mucho y capgo ha recibido una característica muy bonita e importante
Aún tengo que deprecate las funciones legadas, mejorar la experiencia del usuario en la webapp, monitorear errores,
pero no debería haber cambios importantes en este sistema
Gracias por leer Sigue adelante desde A un nuevo sistema de organización to plan dashboard and API operations, connect it with API Overview para planificar el panel de control y API operaciones, conecta con Introducción para los detalles de implementación en Introducción, API Claves para los detalles de implementación en API Claves, Dispositivos para los detalles de implementación en Dispositivos, y Paquetes para los detalles de implementación en Paquetes.