導入
こんにちは、私は WcaleNieWolny - Capgoのリードソフトウェアエンジニアです。
過去8ヶ月間、組織システムを開発してきました。 組織システムの完成は4月14日に達成しました。ようやく8ヶ月の長い道のりを通して、__CAPGO_KEEP_0__の全ての機能が組織メンバーにアクセス可能になりました。
Finally, after 8 months, every single part of Capgo is accessible to org members. This includes:
- 統計
- 請求
- __CAPGO_KEEP_0__の完全なサポート
- full CLI support
- これまでの道のりは容易ではありませんでした。システムの3つのメジャーなリビジョンを経て、現在の形に至りました。
組織v1
このプロジェクトに参加してから2週間で開発を開始しました。
当時はコードベースや実装方法についての知識がほとんどありませんでした。
これは、最もハッキリとした解決策を実装することにつながりました。ただし、しかもアプリ、チャネル、バージョンのみにアクセスすることができました。 これは、招待されたユーザーが統計にアクセスすることを許可していませんでした。
そして、Martinがレビューするのを待ちました。待ち続けましたが、実際には何も起こらなかったのです。3ヶ月後、私はこの問題に戻り、すべてのマージコンフリクトを解決し、テストも行うことにしました。実際には、テストは素晴らしいアイデアでした。 しかし、ハッキリとした解決策は完全に失敗しました。すると、私はすべてのバグを修正し、E2Eテストを書き直すことにしました。 しかし、私は非常に壊れたcodeと、過去の私が多くの悪い決定を下したことと戦いました。2週間の厳しい努力の後、ようやく機能するようになりました。
しかし、それは完璧ではありませんでした。組織のオーナーは、招待されたユーザーよりも多くのアクセス権を持っていました。ユーザー体験も非常に不足していました。招待されたユーザーは、統計を表示することができず、請求管理もできず、CLIはアップロードのみに制限されていました。
それでも、MartinはPRをレビューし、1週間後にはプロダクションにプッシュされました。
組織v2
組織システムは、すべての課題を乗り越えて良好に機能していました。ユーザーはそれを使用し、プロジェクト全体に大きな影響を与えていました。しかし、私はまだ以下のことを修正する必要がありました。
- 行った 行レベルセキュリティ
- すべてのCLIのサポートを追加する
- 管理者ユーザーがオーナーと同じアクセス権を持つことを保証する
後 多くの議論の後 マーティンと一緒に、進むための最良の方法は、セキュリティのルールをすべて書き直し、リソースの所有権を組織に移し、ユーザーではなく、組織に移すことにすることに決定しました。 これにより、新しい組織システムとの統合が容易になり、また、多くのレガシーのcodeも削除することができました。
新しい RLS code を書くことはとても面倒でしたが、半分の週で全ての移行が完了しました。
しかし、今回は、E2E テストを書くことにしました。つまり、手動でテストする必要がありました。マーティンと私は、3 回の非常に詳細な電話会議をして、最終的にプロダクションにプッシュし、うまくいくことを願った。
しかし、うまくいきませんでした。ユーザー登録が壊れ、新規ユーザーはアカウントを作成できませんでした。
急いで電話会議をし、すぐにプロダクションに変更をプッシュし、寝ました。残念ながら、変更はさらに問題を生み出しました。
寝た後、ユーザーが多くの空の組織を持っていることを発見しました。これは、1 つの組織だけがユーザーにつけられるはずなので、起こるはずではありませんでした。空の組織をすべて削除するのに時間がかかりましたが、残りの変更は比較的順調に進みました。
組織 v3
しかし、これでも十分ではありませんでした。まだ、ビリングの巨大なコンポーネントが欠けていました。
今までに、管理者しか請求管理を実行できませんでした。これは、ユーザーが組織のために購入したと考えていたプランを購入した場合に、興味深い問題を生み出していました。 手動で問題を解決した後、問題が不適切であると判断し、この問題を解決することにしました
移行は比較的 smooth でした。1 週間の作業が必要でしたが、V1 と V2 と比べるとそれほど難しくはありませんでした 🚀
組織 v4 - 未来
このような大きな仕事を終えた後、現在は他のことに焦点を当てたいと思います 😎
これは簡単ではありませんでしたが、capgo に重要で素敵な機能が追加されました まだ、古い機能を非推奨にし、Web アプリのユーザー エクスペリエンスを向上させ、バグを監視する必要がありますが、このシステムに大きな変更はありません。
読んでくれてありがとう 🚀
A から始めてください。新しい組織システム
あなたが使用している 新しい組織システム ダッシュボードと API の運用を計画する場合、API に接続してください API の概要 API の概要の実装詳細については、API の概要を参照してください。 __CAPGO_KEEP_0__ Introduction API Keys API Keys Devices __CAPGO_KEEP_0__ Bundles __CAPGO_KEEP_0__