Architecture
マルチテナンシー
組織、ワークスペース、ワークフロー、権限モデル、および YID 識別子について。
MyBotBox は設計の根底からマルチテナント対応です。3つのネストされたエンティティがあらゆる境界を定義し、単一の権限テーブルが誰が何にアクセスできるかを管理します。
階層構造
flowchart TB
classDef actor fill:#FF6B35,stroke:#C2410C,color:#fff
classDef tenant fill:#00D4AA,stroke:#0F766E,color:#06302B
classDef wf fill:#3B82F6,stroke:#1E40AF,color:#fff
classDef acl fill:#8B5CF6,stroke:#6D28D9,color:#fff
U(["User · YID"]):::actor
subgraph ORG["Organization — billing & team boundary"]
M["member<br/>owner / admin / member / viewer"]:::tenant
SUB["subscription<br/>Free · Starter · Pro · Enterprise"]:::tenant
end
subgraph WS["Workspaces"]
PRIV["Private<br/>ownerId = you"]:::tenant
SHARED["Shared<br/>granted access"]:::tenant
end
subgraph WORK["Workflow"]
WF["workflow"]:::wf
DEP["deployment version<br/>(immutable)"]:::wf
EX["executions + logs"]:::wf
end
PERM{{"permissions<br/>userId · entityType · entityId · type"}}:::acl
U --> M
U --> PRIV
PERM -. grants .-> SHARED
PRIV --> WF
SHARED --> WF
WF --> DEP --> EX
SUB -. meters .-> EX| エンティティ | 説明 |
|---|---|
| Organization | 請求とチームの境界。サブスクリプション、メンバー、ブランディング、SSO を管理します。 |
| Workspace | プロジェクトのコンテナ。プライベート ワークスペースは自分が所有するもの、共有 ワークスペースは権限付与を通じてアクセスするものです。 |
| Workflow | ワークスペース内に存在します。イミュータブルなバージョンにデプロイされ、実行ログはそこに紐づきます。 |
権限
アクセスは単一の permissions テーブルによって管理されます。(userId, entityType, entityId) ごとに1行が存在し、権限レベルは read、write、または admin です。権限グループを使用すると、組織管理者がまとめてアクセスを付与し、メンバーが参加した際に自動的に割り当てることができます。メンバー向けの詳細は 権限ガイド を参照してください。
すべてのクエリおよびワークフローの実行は workspaceId と
organizationId によってスコープされます。テナントをまたいだ読み取りパスは存在しません — ワークフローは自身の境界内のデータにしかアクセスできません。
YID — クロスプロダクト識別子
すべてのユーザーはサインアップ時にイミュータブルな YID を取得します: yid_<base62_11chars>_<YYYYMMDD>
(例: yid_aB3xK9mP2qR_20260417)
- 一度生成されると変更されません
- 日付サフィックスはアカウントの作成日をエンコードしています
- MyBotBox および将来のプロダクト全体で安定しており、アイデンティティのフェデレーションをクリーンに実現します
請求の境界
サブスクリプションは Organization に紐づき、使用量は実行単位で計測されます。各実行はモデル、トークン数、コストを記録し、それが組織の現在の請求期間に集計されます。プランの制限(ボット数、メッセージ数、シート数)は組織レベルで適用されます。詳細は 請求と使用状況 を参照してください。