Skip to content

企業向けドメイン ​

Java サービスは module/<domain>/{api,service,persistence} に機能をまとめます。Flyway V9__enterprise_domains.sql は企業向けテーブルと権限を追加します。業務データの保存先は PostgreSQL、短期的な調整は Redis です。レスポンスは API 契約 に従い、フロントエンドクライアントは packages/effects/api/src/modules/enterprise.ts にあります。

テナント・組織・部署 ​

API用途権限
GET、POST /api/v1/tenants、PUT /api/v1/tenants/{id}テナント一覧・作成・更新admin ロールと tenant:list
GET /api/v1/organizations/current現在の組織department:list
PUT /api/v1/organizations/{id}組織の更新department:manage
GET /api/v1/departments、GET /api/v1/departments/{id}/members部署ツリー・所属者department:list
POST /api/v1/departments、PUT・DELETE /api/v1/departments/{id}部署の作成・更新・削除department:manage
PUT・DELETE /api/v1/departments/{id}/members/{userId}所属者の追加・削除department:manage

認証済みリクエストの tenantId は署名済み Access Token から取得します。MyBatis は保護対象テーブルにテナント条件を付与し、サービス層でも業務アクセスを確認します。明示的なテナント横断経路を使えるのは初期システム管理者だけです。匿名の /api/v1/public/** は X-Tenant-Code で有効なテナントを選び、省略時は default を使用します。存在しない、無効、または期限切れのテナントはエラーになります。

Java のログイン・登録リクエストは省略可能な tenantCode を受け付け、既定値は default です。現行のフロントエンド LoginParams とログイン画面にはこの項目がないため、画面からログインできるのは既定テナントだけです。別テナントの確認には Java 認証 API を直接呼び出してください。画面からの切り替えには型と UI の変更が必要です。

プロジェクト・タスク ​

API用途権限
GET /api/v1/projects、/{id}、/{id}/activitiesアクセス可能なプロジェクト、詳細、履歴project:list
POST /api/v1/projects作成。Idempotency-Key が必須project:create
PUT /api/v1/projects/{id}、/{id}/archive?version=Nバージョン付き更新・アーカイブproject:update
PUT・DELETE /api/v1/projects/{id}/members/{userId}メンバー管理project:update
GET・POST /api/v1/projects/{id}/tasksタスク一覧・作成project:list / task:create
GET・PUT /api/v1/tasks/{id}取得・version 付き更新project:list / task:update
GET・POST /api/v1/tasks/{id}/comments、GET /api/v1/tasks/{id}/activitiesコメント・履歴project:list

作成者はプロジェクトの所有者とメンバーになります。担当者はそのプロジェクトのメンバーである必要があります。アーカイブ後はタスク作成やメンバー変更ができず、未完了タスクの担当者は削除できません。変更と履歴は同一トランザクションで記録します。状態は TODO → IN_PROGRESS → BLOCKED → IN_PROGRESS、IN_PROGRESS → DONE、前の三状態から CANCELLED に遷移できます。DONE と CANCELLED は終端です。優先度は LOW、MEDIUM、HIGH、URGENT。古い version や不正な遷移は HTTP 409 です。

承認・通知・監査・ファイル ​

API用途権限
GET・POST /api/v1/approvals表示可能な申請・下書き作成認証 / approval:create
POST /api/v1/approvals/{id}/submit提出。Idempotency-Key が必須approval:create
POST /api/v1/approvals/{id}/approve、/reject、/cancel承認・却下・取消approval:action / approval:create
GET /api/v1/notifications、/unread-count、PUT /api/v1/notifications/{id}/read、/read-all個人通知認証
GET /api/v1/audit/operationsリクエスト操作メタデータaudit:view
POST /api/v1/files、GET・DELETE /api/v1/files/{tenantId}/{filename}アップロード・ダウンロード・削除file:upload / 認証 / file:upload

承認は DRAFT → PENDING → APPROVED または REJECTED で、申請者は下書きや審査中の申請を取り消せます。提出には責任者を設定した部署が必要です。部署責任者の後に管理者が処理します。通知は業務トランザクションのコミット後に作成されます。操作監査はリクエスト本文を保存しません。ファイルの現行実装はテナント別のローカルディレクトリを使用します。

プロジェクト作成と承認提出の Idempotency-Key は Redis で 24 時間保持されます。同じキーの再利用は HTTP 409 となり、最初のレスポンスは再送されません。通信障害後は、再試行前に対象リソースを確認してください。

現在、企業向け画面があるのは web-antd です。Nitro とブラウザ内の静的プレビューはメモリ上の createStaticEnterpriseApi を使います。ルートとデータ形状の確認には使えますが、PostgreSQL のトランザクション、Redis、永続ファイル、Java の完全な権限規則は検証できません。実サーバー連携で業務動作を確認してください。

Released under the MIT License.