Pasar al contenido principal
Historia

Un nuevo sistema de organización

Un backstory sobre cómo el equipo capgo agregó un sistema de organización

WcaleNieWolny

WcaleNieWolny

Gerente de Contenido

Un nuevo sistema de organización

Introducción

Hola, soy El ingeniero de software principal de __CAPGO_KEEP_0__. - Capgo’s lead software engineer.

sistema de organización , y a partir del 14 de abril, estoy encantado de anunciar que el sistema ha sido completado 🎉 🎊Finalmente, después de 8 meses, cada parte de __CAPGO_KEEP_0__ está accesible para los miembros de la organización. Esto incluye:

Finalmente, después de 8 meses, cada parte de Capgo está accesible para los miembros de la organización. Esto incluye:

  • aplicaciones
  • estadísticas
  • facturación
  • soporte completo CLI
  • y mucho más!

No ha sido fácil llegar hasta aquí; han habido 3 revisiones importantes de los sistemas.

Organizaciones v1

Los comienzos fueron difíciles… Empecé a trabajar en esto 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.

Esto llevó a implementar la solución más hackeada que solo apoyaba el acceso a las aplicaciones, canales y versiones. Ni siquiera permitía que el usuario invitado accediera a las estadísticas.

Y luego esperé a que Martin revisara esto. Esperé y esperé, pero nada realmente sucedió. 3 meses después, decidí volver a este y solucionar todos los conflictos de fusión. También decidí probar, lo cual resultó ser una gran idea. No fue ninguna 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 un code muy roto y muchas malas decisiones que había tomado yo en el pasado, pero después de 2 semanas difíciles, finalmente lo hice funcionar.

Eso no significa, sin embargo, que fuera perfecto. El propietario de la organización todavía tenía acceso a mucho más 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 las estadísticas de la aplicación, gestionar la facturación, ni 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ó en prod.

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 a nivel de fila
  • agregar soporte para toda la CLI
  • asegurarse de que los usuarios administradores tengan el mismo acceso que el propietario

Después muchas discusiones 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.

Esto permitiría una integración más fácil con el nuevo sistema de organizaciones, y también eliminaría muchos legados code.

Escribir el nuevo RLS __CAPGO_KEEP_0__ fue muy tedioso, pero después de una semana y media, la migración completa estaba lista.

Esta vez, sin embargo, decidimos no escribir la prueba 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 fuera bien 🙏

After una llamada de pánico rápida, empujé algunos 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 estaba supuesto a suceder, ya que solo se debía permitir una organización por usuario. Tomó algún tiempo de brainstorming para eliminar todas las orgs duplicadas y vacías, pero aparte de eso, los cambios fueron bastante suaves.

Organizaciones v3

Even esto no fue suficiente. Aún faltaba un componente gigante - facturación.

Así que 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 lo estaba comprando para la organización. Rápidamente resolvimos el problema manualmente y fue en este punto que decidimos que este problema era inaceptable

La migración fue bastante suave. Tomó una semana de trabajo pero comparado con V1 y V2 realmente no fue tan difícil 🚀

Organizaciones v4 - el futuro

Después de todo este trabajo duro creo que es hora de enfocarme en algo más por ahora 😎

No fue fácil pero aprendí mucho y capgo ha recibido una característica muy bonita e importante Todavía tengo que deprecate las funciones legadas, mejorar la experiencia del usuario de la webapp, monitorear para errores, pero no debería haber cambios importantes en este sistema.


Gracias por leer 🚀

Sigue adelante desde A un sistema de organizaciones completamente nuevo

Si estás utilizando A un nuevo sistema de organización para planificar la consola y API operaciones, conectándolo con API Resumen para los detalles de implementación en API Resumen, 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.

Actualizaciones en vivo para aplicaciones Capacitor

Cuando un error en la capa web está activo, envíe la corrección a través de Capgo en lugar de esperar días para la aprobación de la tienda de aplicaciones. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

Comienza Ahora

Últimas noticias de nuestro Blog

Capgo le da las mejores perspectivas que necesita para crear una aplicación móvil verdaderamente profesional.