소개
안녕하세요, 저는 WcaleNieWolny - Capgo의 리드 소프트웨어 엔지니어입니다.
지난 8개월 동안, 저는 조직 시스템을 개발했습니다. 8개월 동안, and as of April 14, I am happy to announce that the system has been completed 🎉 🎊
8개월 동안 모든 Capgo 부분이 조직 구성원에게 접근 가능합니다. 이에는:
- 앱
- 통계
- 결제
- CLI 전체 지원
- 그리고 더 많은 것들!
여기까지 오는데 어려움이 많았습니다. 시스템을 3번이나 대대적으로 개선해야했습니다.
조직 v1
시작은 어려웠습니다... 프로젝트에 합류한 2주 후에 이 프로젝트를 시작했습니다. 당시에는 코드베이스에 대한 지식이 거의 없고, 이 프로젝트를 구현하는 큰 아이디어도 없었습니다.
이로 인해 앱, 채널, 버전만 접근할 수 있는 가장 간단한 해결책을 구현했습니다. 그것조차 초대된 사용자가 통계를 접근할 수 없었습니다.
그 후에 Martin에게 이 프로젝트를 검토해 달라고 기다렸습니다. 그러나 아무런 변화도 없었습니다. 3개월 후에 다시 이 프로젝트를 시작하고 모든 병합 충돌을 해결했습니다. 또한 테스트를 진행했습니다. 그러나 테스트 결과는 놀랍지 않았습니다. 가장 간단한 해결책은 완전히 실패했습니다. 그 순간에 모든 버그를 고치고 E2E 테스트를 작성하기로 결정했습니다. 과거의 나의 많은 잘못된 결정과 함께 매우 깨진 code와 함께 2주간 힘들게 작업했습니다. 그러나 결국에는 작동했습니다.
그것은 완벽하지는 않았지만, 그러나 그것은 완벽하지는 않았습니다. 조직의 소유자는 여전히 초대된 사용자보다 훨씬 더 많은 접근 권한을 가지고 있었고, 사용자 경험도 매우 부족했습니다. 초대된 사용자는 애플리케이션 통계를 볼 수 없으며, 청구 관리를 할 수 없었으며, CLI은 업로드만 가능했습니다.
모든 이 어려움에도 불구하고, 마틴은 PR을 검토하고, 1주 후에 프로덕션으로 푸시되었습니다.
조직 v2
조직 시스템은 모든 어려움에도 불구하고 잘 작동하고 있었습니다. 사용자는 그것을 사용하고 있었고, 그것은 프로젝트 전체를 앞서 나가게했습니다. 그러나 나는 여전히 해야 할 일들이 많았습니다.
- fix the mess made in 행단 보안
- 전체 CLI에 대한 지원을 추가하기 위해
- 관리자 사용자가 소유자와 동일한 접근 권한을 가지고 있도록하기 위해
After 마틴과 많은 토론을 통해 이제는 새로운 보안 규칙을 다시 작성하고, 모든 자원 소유권을 조직으로 옮기기로 결정했습니다. 이것은 새로운 조직 시스템과 더 쉽게 통합할 수 있도록 해주고, 또한 많은 레거시 code를 제거할 수 있도록 해주었습니다.
새로운 RLS code를 작성하는 것은 매우 지루했지만, 1주半 후에 전체 마이그레이션은 준비되었습니다.
이번에는 E2E 테스트를 작성하지 않기로 결정했습니다. 따라서 수동으로 테스트해야했습니다. Martin과 함께 3번의 매우 광범위한 전화통화를 하면서, 우리는 최종적으로 프로덕션에 푸시하고 잘 될 것이라는 희망을 가지고 production에 푸시했습니다. 🙏
그런데… 나의 사용자 등록이 깨졌고, 새로운 사용자는 계정을 만들 수 없었습니다 😅
빠른 공포 전화 후, 나는 프로덕션에 몇 가지 변경 사항을 푸시하고 잠을 청했습니다. 불행히도, 나의 변경 사항은 더 많은 문제를만들었습니다 😰
나는 잠에서 깨어났을 때, 사용자가 많은 빈 조직을 발견했습니다. 사용자는 1개의 조직만 허용되어야합니다. 이 문제를 해결하기 위해, 나는 몇 시간 동안 브레인스토밍을했습니다. 하지만, 이 문제를 제외하고는 변경 사항은 비교적MOOTH하게 진행되었습니다.
조직 v3
이것도 충분하지 않았습니다. 아직 큰 컴포넌트가 빠져있었습니다 - 청구.
현재는 오너만 청구를 관리할 수있었습니다. 이것은 사용자가 조직을 위해 구매한 생각을 구매한 것처럼 생각하는 문제를 발생시켰습니다. 이 문제를 수동으로 해결하고, 우리는 이 문제가 불가결한 문제라고 결정했습니다.
이번 마이그레이션은 비교적 smooth했습니다. 1주일의 노력이었지만, V1과 V2와 비교하면 정말로 어려운 문제가 아니었습니다 🚀
조직 v4 - 미래
이 모든 어려운 노력 후, 나는 지금은 다른 것을 집중할 때가 된 것 같습니다 😎
It was not easy but I learned a lot and capgo has received a very nice and important feature I still have to deprecate the legacy functions, improve the webapp user experience, monitor for bugs, but there should not be any major changes to this system.
읽어주셔서 감사합니다 🚀
A부터 새로운 조직 시스템으로 계속 가세요
아직 사용 중이신가요 계획 대시보드와 Capgo 운영을 위한 새로운 조직 시스템 to plan dashboard and API operations, connect it with API Overview for the implementation detail in API Overview, 소개 소개에서 구현 세부 정보를 확인하세요 API Keys for the implementation detail in API Keys, 기기 기기 구현 세부 사항에 대한 묶음 묶음 구현 세부 사항에 대한