diff --git a/CLAUDE.md b/CLAUDE.md index 3a03253..44accc7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -34,10 +34,10 @@ Agent-server protocol is defined in `cameleer3/cameleer3-common/PROTOCOL.md`. Th **vendor/** — Vendor console (platform:admin only) - `VendorTenantService.java` — orchestrates tenant creation (sync: DB + Logto + license, async: Docker provisioning + config push), suspend/activate, delete, restart server, license renewal -- `VendorTenantController.java` — REST at `/api/vendor/tenants` (platform:admin required) +- `VendorTenantController.java` — REST at `/api/vendor/tenants` (platform:admin required). List endpoint returns `VendorTenantSummary` with fleet health data (agentCount, environmentCount, agentLimit) fetched in parallel via `CompletableFuture`. **portal/** — Tenant admin portal (org-scoped) -- `TenantPortalService.java` — customer-facing: dashboard (health from server), license, SSO connectors, team, settings, server restart +- `TenantPortalService.java` — customer-facing: dashboard (health + agent/env counts from server via M2M), license, SSO connectors, team, settings (public endpoint URL), server restart - `TenantPortalController.java` — REST at `/api/tenant/*` (org-scoped, includes CA cert management at `/api/tenant/ca`) **provisioning/** — Pluggable tenant provisioning @@ -66,7 +66,7 @@ Agent-server protocol is defined in `cameleer3/cameleer3-common/PROTOCOL.md`. Th **identity/** — Logto & server integration - `LogtoConfig.java` — Logto endpoint, M2M credentials (reads from bootstrap file) - `LogtoManagementClient.java` — Logto Management API calls (create org, create user, add to org, get user, SSO connectors, JIT provisioning) -- `ServerApiClient.java` — M2M client for cameleer3-server API (Logto M2M token, `X-Cameleer-Protocol-Version: 1` header) +- `ServerApiClient.java` — M2M client for cameleer3-server API (Logto M2M token, `X-Cameleer-Protocol-Version: 1` header). Health checks, license/OIDC push, agent count, environment count per tenant server. **audit/** — Audit logging - `AuditEntity.java` — JPA entity (actor_id, actor_email, tenant_id, action, resource, status) @@ -306,7 +306,7 @@ PostgreSQL (Flyway): `src/main/resources/db/migration/` # GitNexus — Code Intelligence -This project is indexed by GitNexus as **cameleer-saas** (2057 symbols, 4069 relationships, 172 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. +This project is indexed by GitNexus as **cameleer-saas** (2436 symbols, 5282 relationships, 204 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. > If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first. diff --git a/HOWTO.md b/HOWTO.md index 4b63546..ceb9d44 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -320,7 +320,7 @@ Query params: `since`, `until` (ISO timestamps), `limit` (default 500), `stream` ### Vendor: Tenants (platform:admin) | Method | Path | Description | |--------|------|-------------| -| GET | `/api/vendor/tenants` | List all tenants | +| GET | `/api/vendor/tenants` | List all tenants (includes fleet health: agentCount, environmentCount, agentLimit) | | POST | `/api/vendor/tenants` | Create tenant (async provisioning) | | GET | `/api/vendor/tenants/{id}` | Tenant detail + server state | | POST | `/api/vendor/tenants/{id}/restart` | Restart server containers |