简介
嘿,我是 WcaleNieWolny - Capgo 的首席软件工程师。
在过去的 8 个月里,我一直在开发 组织系统,并且截至 2024 年 4 月 14 日,我很高兴宣布该系统已完成 🎉 🎊
Finally, after 8 months, every single part of Capgo is accessible to org members. This includes:
- __CAPGO_KEEP_0__
- 的所有部分都可以供组织成员访问。这包括:
- 应用
- full CLI support
- and so much more!
来到这里并非易事;经过了3次系统的重大修订。
组织v1
起步不顺…我加入项目后2周开始工作时,几乎对代码库一无所知,甚至不知道如何实施。
最终我采用了最hack的解决方案,仅支持访问应用、频道和版本。
And then I waited for Martin to review this. I waited and waited, but nothing really happened. 3 months later, I decided to come back to this and fix all the merge conflicts. I also decided to test, which turned out to be a great idea. To no surprise, the hacky solution completely failed. At that moment, I decided to fix all bugs and write an extensive E2E test. I had to work with very broken code and a lot of bad decisions made by the past me, but after 2 hard weeks, I finally got it to function.
That does not, however, mean that it was perfect. The owner of the organization still had a lot more access than even the highest invited user. User experience also was quite lacking. The invited user could not even see the application statistics, manage billing, and the CLI was limited to upload only.
我还决定进行测试,这是一个很好的决定。
结果,hack的解决方案完全失败了。这个时候,我决定修复所有的bug并编写一个全面的E2E测试。
尽管面临各种挑战,组织系统仍然运作良好。用户正在使用它,整个项目都因此推进了。然而,我仍然需要:
- 修复 行级安全
- 为整个CLI添加支持
- 确保管理员用户具有与所有者相同的访问权限
之后 与马丁进行了大量讨论后,我们决定最好的方法是重写整个安全规则,并将所有资源的所有权转移到组织中,而不是用户。 这将使与新组织系统的集成更容易,并且也将移除大量的遗留__CAPGO_KEEP_0__。 编写新的RLScode非常枯燥,但经过一周半的时间,整个迁移就准备好了。
Writing the new RLS code was very tedious, but after a week and a half, the entire migration was ready.
然而,它并没有… Turns out我破坏了用户注册,新用户无法创建账户 😅
在一通紧急电话后,我迅速推送了一些更改到生产环境,然后就睡了。然而,我的更改只会带来更多问题 😰
之后
我醒来后发现用户有很多空的组织。这不是应该发生的事情,因为每个用户只应该允许一个组织。经过一些时间的思考和讨论后,我们成功地移除了所有的重复和空的组织,除了这点之外,其他变化都比较顺利。
组织 v3
即使这样也还不够。还缺少一个巨大的组件——计费。
目前只有管理员才能管理计费。这导致了一个有趣的问题:用户购买了一个计划,认为他是在为组织购买的。 我们快速地修复了这个问题,之后我们决定这个问题是不可接受的。
迁移过程相对比较顺利。花了一个星期的时间,但与 V1 和 V2 相比,确实不是那么难以承受的 🚀
组织 v4 - 未来
经过了这么多的努力,我觉得现在是时候专注于其他事情了 😎
这不是容易的,但我学到了很多,capgo 也获得了一个非常棒和重要的功能 我还需要废弃旧的函数、改善 Web 应用用户体验、监控 bug 等,但这个系统应该不会有太大的变化。
感谢您的阅读 🚀
从 A 开始,新的组织系统
如果您正在使用 新的组织系统 为计划仪表板和API操作,连接它 API概览 在API概览中了解实现细节 简介 在简介中了解实现细节 API密钥 在API密钥中了解实现细节 设备 在设备中了解实现细节 捆绑包 在捆绑包中了解实现细节