メインコンテンツにジャンプ
ストーリー

新しい組織システム

A backstory on how the capgo team added a organization system

記事のクレジット

マーティン・ドナディュー

ライター

バレリア

レビュアー

ジョーダン

エディター

新しい組織システム

導入

こんにちは、私は ワケライネウルニー - Capgoのリードソフトウェアエンジニアです。

過去8ヶ月間、組織システムの開発を進めてきました。 組織システム、そして2023年4月14日、システムは完成しました🎉 🎊

ようやく8ヶ月後、Capgoのすべての部分は組織メンバーにアクセス可能になりました。これには

  • アプリ
  • 統計
  • 課金
  • 完全な CLI サポート
  • そしてもっとも!

ここまで来るには、システムの3つの大きな改訂版を経てきました。

組織 v1

最初は、プロジェクトに参加してから2週間でこの作業を始めました。時点では、コードベースや実装方法についてのより大きなアイデアはほとんどありませんでした。

これにより、最もハック的な解決策が実装され、しかもアプリ、チャネル、バージョンにしかアクセスできませんでした。招待されたユーザーは統計を参照できませんでした。

そして、Martinにレビューを依頼しました。待ち続けましたが、実際には何も起こらなかった。3か月後、再びこの作業に戻り、すべてのマージコンフリクトを解決し、テストも行いました。結果として、ハック的な解決策は完全に失敗しました。そこで、すべてのバグを修正し、E2Eテストを書きました。過去の私が残した、非常に壊れた code と、多くの悪い決定を伴うことになりましたが、2週間の厳しい努力の末に、ようやく機能するようになりました。

しかし、それでも完璧ではありませんでした。組織のオーナーは、招待されたユーザーよりも多くのアクセス権を持っており、ユーザー体験も不足していました。招待されたユーザーは、統計を参照できず、課金を管理できず、 CLI はアップロードのみに制限されていました。

それでも、MartinはPRをレビューし、1週間後にはプロダクションにプッシュされました。

組織 v2

組織システムは、すべての課題にもかかわらず、うまく機能していました。ユーザーはそれを使用し、プロジェクト全体を前進させました。しかし、まだ私には:

  • 行ったことのない混乱を直す必要がありました 行レベルセキュリティ
  • 全体のCLIに対するサポートを追加する必要がありました
  • 管理者ユーザーがオーナーと同じアクセス権を持つようにする必要がありました

後 マーティンと多くの議論 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.

Writing the new RLS code was very tedious, but after a week and a half, the entire migration was ready.

新しいRLS__CAPGO_KEEP_0__を書くことはとても面倒だったが、半月後には全ての移行が完了した。

しかし、今回はエンドツーエンドのテストを書かなかったため、手動でテストしなければならなかった。3回の長い電話の後、マーティンと私はプロダクションにプッシュし、うまくいくことを願った。

しかし、うまくいかなかった…ユーザー登録が壊れ、新規ユーザーはアカウントを作成できなかった…😅

起床後、ユーザーが大量の空の組織を持っていることを発見した。1つの組織だけが許可されるはずなので、これは起こるはずがない。組織の重複削除には時間がかかったが、変更自体は比較的順調だった。

組織 v3

それでも十分ではなかった。まだ、課金に関する大きな要素が欠けていた。

現在、課金はオーナーしか管理できなかった。これにより、ユーザーが組織に課金を購入したと誤解した問題が生じた。 この問題を手動で解決した後、オーナーが課金を管理できるようにすることを決定した。

移行は比較的順調だった。1週間の作業がかかったが、V1とV2と比べるとそれほど難しくなかった。

組織 v4 - 未来

このような努力の結果、__CAPGO_KEEP_0__ に重要な機能が追加されたと思い、他のことに焦点を当てる時間がきたと思う。

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 brand new organization system から続く

Capgo を使用している場合 A brand new organization system 計画ダッシュボードとAPIの運用を計画し、 APIの概要 APIの概要の実装詳細については 導入 導入の実装詳細については APIのキー APIのキーの実装詳細については デバイス デバイスの実装詳細については バンドル バンドルの実装詳細については

ライブアップデートはCapacitorアプリに適用されます

ウェブ層のバグが生じた場合、Capgoを通じて修正を配信し、数日間待つ必要のないアプリストアの承認を待つ必要がなくなる。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路を通じて行われる

マーティンから人間のサポートを受けます

今すぐ始めましょう

最新のブログ記事

Capgoは、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します