소개
안녕하세요, 저는 WcaleNieWolny - Capgo의 리드 소프트웨어 엔지니어입니다.
지난 8개월 동안, 나는 조직 관리 시스템을 개발해 왔습니다. 4월 14일 현재, 시스템이 완성되었습니다 🎉 🎊
8개월이 지난 후, Capgo의 모든 부분이 조직 구성원에게 접근할 수 있습니다. 이에는 다음과 같은 기능이 포함됩니다.
- 앱
- 통계
- 결제
- 전체 CLI 지원
- 그리고 더 많은 기능!
이곳에 오기까지 쉽지 않았습니다. 시스템의 3대 주요 개정판이 있었으며, 조직 관리 시스템 v1은 초기 버전이었습니다.
시작은 어려웠습니다... 처음에는 2주 만에 이 프로젝트에 참여했으며, 코드베이스나 구현 방법에 대한 큰 아이디어는 없었습니다.
apps statistics billing full __CAPGO_KEEP_0__ support and so much more It has not been easy to get here; there have been 3 major revisions of the systems. Organizations v1 The beginnings were rough… Initially, I started working on this 2 weeks after joining the project. At the time, I had little to no knowledge about the codebase or any bigger idea on how to implement this.
이것은 앱, 채널 및 버전만 접근할 수 있는 가장 hacky한 솔루션을 구현하는 데로 이어졌습니다. 이것조차 초대된 사용자가 통계를 접근할 수 있도록 허용하지도 않았습니다.
그 다음에 나는 마틴이 이 것을 검토할 것을 기다렸습니다. 기다리고 기다렸지만, 정말로 아무것도 일어나지 않았습니다. 3 개월 후, 나는 이 것을 다시 돌아와 모든 병합 충돌을 고치고 테스트를 하기로 결정했습니다. 하지만 놀랍게도, hacky한 솔루션은 완전히 실패했습니다. 그 순간에 나는 모든 버그를 고치고 광범위한 E2E 테스트를 작성하기로 결정했습니다. 나는 과거의 나의 많은 나쁜 결정과 매우 깨진 code와 함께 2주간의 힘든 작업을 해야했습니다. 하지만 결국에는 작동되었습니다.
그러나 이것은 완벽하지는 않았습니다. 조직의 소유자는 초대된 사용자보다도 더 많은 접근 권한을 가지고 있었으며, 사용자 경험도 매우 부족했습니다. 초대된 사용자는 애플리케이션 통계를 볼 수 없으며, 청구 관리도 할 수 없었으며, CLI는 업로드만 가능했습니다.
그러나 이러한 모든 난관에도 불구하고, 마틴은 PR를 검토했고, 1주 후에 프로덕션으로 푸시되었습니다.
조직 v2
조직 시스템은 모든 난관에도 불구하고 잘 작동하고 있었으며, 사용자들은 이를 사용하고 있었으며, 이는 프로젝트 전체를 앞서 나가게 만들었습니다. 그러나 나는 여전히 해야 할 일들이 많았습니다.
- fix the mess made in row level security
- 전체 CLI에 대한 지원을 추가해야했습니다.
- 관리자 사용자가 소유자와 동일한 접근 권한을 가지고 있도록 해야했습니다.
그 후 많은 토론이 있었지만 Martin과 함께, 앞으로 진행할 수 있는 가장 좋은 방법은 전체 보안 규칙을 다시 작성하고 리소스 소유권을 조직과 사용자 대신 조직으로 옮기는 것이었다. 이러한 조직 시스템과 새로운 통합을 용이하게 하며, 또한 많은 code의 유산을 제거할 수 있었다.
새로운 RLS code를 작성하는 것은 매우 지루했지만, 1주일 반만에 전체 마이그레이션을 준비할 수 있었다.
이번에는 E2E 테스트를 작성하지 않기로 결정했는데, 이는 수동으로 테스트해야 했음을 의미했다. Martin과 함께 3번의 매우 광범위한 통화를 한 후, 나는 Martin과 함께 프로덕션으로 푸시하고 잘 될 것이라는 희망을 가지고 있었다 🙏
그러나… 사용자 등록이 깨졌고, 새로운 사용자는 계정을 만들 수 없었다 😅
빠른 공포의 통화 후, 나는 즉시 프로덕션으로 몇 가지 변경 사항을 푸시하고 잠을 청했다. 그러나私の変更은 더 많은 문제를만들었다 😰
내가 잠에서 깨어난 후, 사용자가 많은 빈 조직을 가지고 있다는 것을 발견했다. 사용자는 1개의 조직만 허용되어야 한다. 빈 조직을 제거하기 위해 몇 시간 동안 브레인스토밍을 하였지만, 그 외에는 변경 사항이 비교적MOOTH하게 진행되었다.
조직 v3
이것도 충분하지 않았다. 아직도 하나의 거대한 구성 요소가 빠져 있었다 - 청구.
현재까지는 소유주만 계정 관리를 할 수 있었다. 이로 인해 사용자가 조직을 위해 구매한 생각으로 플랜을 구매한 경우가 있었다. 이 문제를 해결하기 위해 우리는 즉시 수동으로 문제를 해결했으며, 이 문제가 불가하다고 결정한 시점이 바로 이때였다.
이전 버전과 비교하여 이 마이그레이션은 상당히MOOTH했다. 한 주의 작업이 걸렸지만 V1과 V2와 비교하면 정말로 그렇게 어려운 것은 아니었다.
조직 v4 - 미래
이 모든 어려운 작업을 마치고 나서, 이제는 다른 것에 집중할 때가 된 것 같다.
이것은 쉽지 않았지만, capgo은 매우 좋은 기능을 받았다. 이제는 아직도 레거시 함수를 deprecated하고, 웹앱 사용자 경험을 개선하고, 버그를 모니터링해야 하지만, 이 시스템에 대한 주요 변경 사항은 없을 것이다.
읽어주셔서 감사합니다.
A - 새로운 조직 시스템으로 계속 가세요.
현재 사용 중인 경우 계획 대시보드 및 __CAPGO_KEEP_0__ 운영을 위해 사용하는 경우, 그것을 API 개요 에 대한 구현 세부 사항은 API 개요에서 확인할 수 있습니다. API __CAPGO_KEEP_0__ Introduction API Keys API Keys Capacitor 구현 세부 사항에 대한 __CAPGO_KEEP_0__ Keys Capacitor 장치 Capacitor 구현 세부 사항에 대한 장치 Capacitor 패키지