組織管理
Speakeasy では 組織(Organization) を中心にデータを分離しています。組織は グループ と 店舗(個別組織) の2種類があり、階層構造を形成します。
| 種類 | 説明 | DB 上の metadata |
|---|---|---|
| グループ | 複数店舗を束ねる親組織 | type: 'group' |
| 店舗(個別) | 実際の店舗。チャット・連絡先データの所有単位 | type: 'individual' |
- グループは 1階層 のみ(グループの中にグループは不可)
- 店舗は 1つのグループ にのみ所属可能(または未所属)
- 店舗の所属グループは変更可能
グループ作成
Section titled “グループ作成”Penthouse の組織管理画面から作成します。
Base RPC: createGroup({ name, slug? })slugは自動生成されない場合、名前から生成- Vault DB の
organizationテーブルにtype: 'group'で作成
Penthouse の組織管理画面から作成します。
Base RPC: createStore({ cookie, name, groupId?, pureloversShopId, image? })- Vault DB に
organizationを作成(type: 'individual') - Cellar DB に
shopレコードを作成 groupId指定時はorganization.metadataにparentIdを設定- 作成者を
ownerロールで自動追加
組織とデータの関連
Section titled “組織とデータの関連”店舗(Organization)が全データの所有単位です。ユーザーは Member として組織に所属し、ロールに応じた権限が付与されます。
アクティブ組織の切り替え
Section titled “アクティブ組織の切り替え”ユーザーが複数の組織に所属している場合、アクティブ組織を切り替えることで操作対象の店舗を変更します。
セッション内の組織情報
Section titled “セッション内の組織情報”// hooks.server.ts での組織情報取得const session = await platform.env.PROOF.getSession(cookie);// session.session.activeOrganizationId → 現在の店舗の組織IDアクティブ組織が設定されていない場合、最初に所属する組織が自動的にアクティブになります。
メンバー管理
Section titled “メンバー管理”メンバー追加
Section titled “メンバー追加”Proof RPC: addMember({ cookie, userId, organizationId, role })Base RPC: addMembership({ cookie, organizationId, userId, role })メンバー削除
Section titled “メンバー削除”Proof RPC: removeMember({ cookie, organizationId, memberId })Base RPC: removeMembership({ cookie, organizationId, memberId })| ロール | 説明 |
|---|---|
owner | 組織オーナー。全権限 |
admin | 管理者。メンバー管理・設定変更 |
member | 一般メンバー。チャット・連絡先操作 |
staff | スタッフ。閲覧中心の限定権限 |
詳細は RBAC を参照してください。
グループ操作
Section titled “グループ操作”店舗のグループ移動
Section titled “店舗のグループ移動”Base RPC: updateStoreGroup({ storeId, groupId })店舗の所属グループを変更します。Vault DB の organization.metadata.parentId を更新します。
グループの削除
Section titled “グループの削除”Base RPC: deleteGroup({ groupId, cascade? })cascade: false— 子店舗のグループ紐付けを解除してから削除cascade: true— 子店舗も含めて削除(Cellar DB の関連データもカスケード削除)
- RBAC - ロール別の権限定義
- Proof RPC メソッド - 組織関連 RPC
- Base RPC メソッド - 店舗・グループ管理 RPC
- Vault 組織テーブル - DB スキーマ