chore: rename cameleer3 to cameleer
Rename Java packages from net.siegeln.cameleer3 to net.siegeln.cameleer, update all references in workflows, Docker configs, docs, and bootstrap. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -15,12 +15,12 @@ infrastructure themselves.
|
||||
|
||||
The system comprises three components:
|
||||
|
||||
**Cameleer Agent** (`cameleer3` repo) -- A Java agent using ByteBuddy for
|
||||
**Cameleer Agent** (`cameleer` repo) -- A Java agent using ByteBuddy for
|
||||
zero-code bytecode instrumentation. Captures route executions, processor traces,
|
||||
payloads, metrics, and route graph topology. Deployed as a `-javaagent` JAR
|
||||
alongside the customer's application.
|
||||
|
||||
**Cameleer Server** (`cameleer3-server` repo) -- A Spring Boot observability
|
||||
**Cameleer Server** (`cameleer-server` repo) -- A Spring Boot observability
|
||||
backend. Receives telemetry from agents via HTTP, pushes configuration and
|
||||
commands to agents via SSE. Stores data in PostgreSQL and ClickHouse. Provides
|
||||
a React SPA dashboard for direct observability access. JWT auth with Ed25519
|
||||
@@ -50,7 +50,7 @@ logging. Serves a React SPA that wraps the full user experience.
|
||||
| | /interaction) |
|
||||
v v v v
|
||||
+--------------+ +--------------+ +-----------+ +------------------+
|
||||
| cameleer-saas| | cameleer-saas| | Logto | | cameleer3-server |
|
||||
| cameleer-saas| | cameleer-saas| | Logto | | cameleer-server |
|
||||
| (API) | | (SPA) | | | | |
|
||||
| :8080 | | :8080 | | :3001 | | :8081 |
|
||||
+--------------+ +--------------+ +-----------+ +------------------+
|
||||
@@ -80,14 +80,14 @@ logging. Serves a React SPA that wraps the full user experience.
|
||||
| logto | `ghcr.io/logto-io/logto:latest` | 3001 | cameleer | OIDC identity provider |
|
||||
| logto-bootstrap | `postgres:16-alpine` (ephemeral) | -- | cameleer | One-shot bootstrap script |
|
||||
| cameleer-saas | `gitea.siegeln.net/cameleer/cameleer-saas` | 8080 | cameleer | SaaS API + SPA serving |
|
||||
| cameleer3-server | `gitea.siegeln.net/cameleer/cameleer3-server`| 8081 | cameleer | Observability backend |
|
||||
| cameleer-server | `gitea.siegeln.net/cameleer/cameleer-server`| 8081 | cameleer | Observability backend |
|
||||
| clickhouse | `clickhouse/clickhouse-server:latest` | 8123 | cameleer | Time-series telemetry storage |
|
||||
|
||||
### Docker Network
|
||||
|
||||
All services share a single Docker bridge network named `cameleer`. Customer app
|
||||
containers are also attached to this network so agents can reach the
|
||||
cameleer3-server.
|
||||
cameleer-server.
|
||||
|
||||
### Volumes
|
||||
|
||||
@@ -105,7 +105,7 @@ The shared PostgreSQL instance hosts three databases:
|
||||
|
||||
- `cameleer_saas` -- SaaS platform tables (tenants, environments, apps, etc.)
|
||||
- `logto` -- Logto identity provider data
|
||||
- `cameleer3` -- cameleer3-server operational data
|
||||
- `cameleer` -- cameleer-server operational data
|
||||
|
||||
The `docker/init-databases.sh` init script creates all three during first start.
|
||||
|
||||
@@ -128,9 +128,9 @@ The `docker/init-databases.sh` init script creates all three during first start.
|
||||
|--------------------|-----------------|------------------|----------------------|--------------------------------|
|
||||
| Logto user JWT | Logto | ES384 (asymmetric)| Any service via JWKS | SaaS UI users, server users |
|
||||
| Logto M2M JWT | Logto | ES384 (asymmetric)| Any service via JWKS | SaaS platform -> server calls |
|
||||
| Server internal JWT| cameleer3-server| HS256 (symmetric) | Issuing server only | Agents (after registration) |
|
||||
| API key (opaque) | SaaS platform | N/A (SHA-256 hash)| cameleer3-server | Agent initial registration |
|
||||
| Ed25519 signature | cameleer3-server| EdDSA | Agent | Server -> agent command signing|
|
||||
| Server internal JWT| cameleer-server| HS256 (symmetric) | Issuing server only | Agents (after registration) |
|
||||
| API key (opaque) | SaaS platform | N/A (SHA-256 hash)| cameleer-server | Agent initial registration |
|
||||
| Ed25519 signature | cameleer-server| EdDSA | Agent | Server -> agent command signing|
|
||||
|
||||
### 3.3 Scope Model
|
||||
|
||||
@@ -183,7 +183,7 @@ the bootstrap script (`docker/logto-bootstrap.sh`):
|
||||
4. `organization_id` claim in JWT resolves to internal tenant ID via
|
||||
`TenantIsolationInterceptor`.
|
||||
|
||||
**SaaS platform -> cameleer3-server API (M2M):**
|
||||
**SaaS platform -> cameleer-server API (M2M):**
|
||||
|
||||
1. SaaS platform obtains Logto M2M token (`client_credentials` grant) via
|
||||
`LogtoManagementClient`.
|
||||
@@ -191,7 +191,7 @@ the bootstrap script (`docker/logto-bootstrap.sh`):
|
||||
3. Server validates via Logto JWKS (OIDC resource server support).
|
||||
4. Server grants ADMIN role to valid M2M tokens.
|
||||
|
||||
**Agent -> cameleer3-server:**
|
||||
**Agent -> cameleer-server:**
|
||||
|
||||
1. Agent reads `CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKEN` environment variable (API key).
|
||||
2. Calls `POST /api/v1/agents/register` with the key as Bearer token.
|
||||
@@ -458,9 +458,9 @@ Defined in `AuditAction.java`:
|
||||
|
||||
### 5.1 Server-Per-Tenant
|
||||
|
||||
Each tenant gets a dedicated cameleer3-server instance. The SaaS platform
|
||||
Each tenant gets a dedicated cameleer-server instance. The SaaS platform
|
||||
provisions and manages these servers. In the current Docker Compose topology, a
|
||||
single shared cameleer3-server is used for the default tenant. Production
|
||||
single shared cameleer-server is used for the default tenant. Production
|
||||
deployments will run per-tenant servers as separate containers or K8s pods.
|
||||
|
||||
### 5.2 Customer App Deployment Flow
|
||||
@@ -495,7 +495,7 @@ The deployment lifecycle is managed by `DeploymentService`:
|
||||
|-----------------------------|----------------------------------------|
|
||||
| `CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKEN` | API key for agent registration |
|
||||
| `CAMELEER_EXPORT_TYPE` | `HTTP` |
|
||||
| `CAMELEER_SERVER_RUNTIME_SERVERURL` | cameleer3-server internal URL |
|
||||
| `CAMELEER_SERVER_RUNTIME_SERVERURL` | cameleer-server internal URL |
|
||||
| `CAMELEER_APPLICATION_ID` | App slug |
|
||||
| `CAMELEER_ENVIRONMENT_ID` | Environment slug |
|
||||
| `CAMELEER_DISPLAY_NAME` | `{tenant}-{env}-{app}` |
|
||||
@@ -524,14 +524,14 @@ Configured via `RuntimeConfig`:
|
||||
## 6. Agent-Server Protocol
|
||||
|
||||
The agent-server protocol is defined in full in
|
||||
`cameleer3/cameleer3-common/PROTOCOL.md`. This section summarizes the key
|
||||
`cameleer/cameleer-common/PROTOCOL.md`. This section summarizes the key
|
||||
aspects relevant to the SaaS platform.
|
||||
|
||||
### 6.1 Agent Registration
|
||||
|
||||
1. Agent starts with `CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKEN` environment variable (an API key
|
||||
generated by the SaaS platform, prefixed with `cmk_`).
|
||||
2. Agent calls `POST /api/v1/agents/register` on the cameleer3-server with the
|
||||
2. Agent calls `POST /api/v1/agents/register` on the cameleer-server with the
|
||||
API key as a Bearer token.
|
||||
3. Server validates the key and returns:
|
||||
- HMAC JWT access token (short-lived, ~1 hour)
|
||||
@@ -744,7 +744,7 @@ leaks regardless of whether the request succeeded or failed.
|
||||
|----------------------|-------------|------------------------------------|
|
||||
| Logto access token | ~1 hour | Configured in Logto, refreshed by SDK |
|
||||
| Logto refresh token | ~14 days | Used by `@logto/react` for silent refresh |
|
||||
| Server agent JWT | ~1 hour | cameleer3-server `CAMELEER_JWT_SECRET` |
|
||||
| Server agent JWT | ~1 hour | cameleer-server `CAMELEER_JWT_SECRET` |
|
||||
| Server refresh token | ~7 days | Agent re-registers when expired |
|
||||
|
||||
### 8.4 Audit Logging
|
||||
@@ -876,22 +876,22 @@ state (`currentTenantId`). Provides `logout` and `signIn` callbacks.
|
||||
|
||||
| Variable | Default | Description |
|
||||
|-----------------------------------|------------------------------------|----------------------------------|
|
||||
| `CAMELEER_SAAS_PROVISIONING_SERVERIMAGE` | `gitea.siegeln.net/cameleer/cameleer3-server:latest` | Docker image for per-tenant server |
|
||||
| `CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE` | `gitea.siegeln.net/cameleer/cameleer3-server-ui:latest` | Docker image for per-tenant UI |
|
||||
| `CAMELEER_SAAS_PROVISIONING_SERVERIMAGE` | `gitea.siegeln.net/cameleer/cameleer-server:latest` | Docker image for per-tenant server |
|
||||
| `CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE` | `gitea.siegeln.net/cameleer/cameleer-server-ui:latest` | Docker image for per-tenant UI |
|
||||
| `CAMELEER_SAAS_PROVISIONING_NETWORKNAME` | `cameleer-saas_cameleer` | Shared services Docker network |
|
||||
| `CAMELEER_SAAS_PROVISIONING_TRAEFIKNETWORK` | `cameleer-traefik` | Traefik Docker network |
|
||||
| `CAMELEER_SAAS_PROVISIONING_PUBLICHOST` | `localhost` | Public hostname (same as infrastructure `PUBLIC_HOST`) |
|
||||
| `CAMELEER_SAAS_PROVISIONING_PUBLICPROTOCOL` | `https` | Public protocol (same as infrastructure `PUBLIC_PROTOCOL`) |
|
||||
| `CAMELEER_SAAS_PROVISIONING_DATASOURCEURL` | `jdbc:postgresql://cameleer-postgres:5432/cameleer3` | PostgreSQL URL passed to tenant servers |
|
||||
| `CAMELEER_SAAS_PROVISIONING_DATASOURCEURL` | `jdbc:postgresql://cameleer-postgres:5432/cameleer` | PostgreSQL URL passed to tenant servers |
|
||||
| `CAMELEER_SAAS_PROVISIONING_CLICKHOUSEURL` | `jdbc:clickhouse://cameleer-clickhouse:8123/cameleer` | ClickHouse URL passed to tenant servers |
|
||||
|
||||
### 10.2 cameleer3-server (per-tenant)
|
||||
### 10.2 cameleer-server (per-tenant)
|
||||
|
||||
Env vars injected into provisioned per-tenant server containers by `DockerTenantProvisioner`. All server properties use the `cameleer.server.*` prefix (env vars: `CAMELEER_SERVER_*`).
|
||||
|
||||
| Variable | Default / Value | Description |
|
||||
|------------------------------|----------------------------------------------|----------------------------------|
|
||||
| `SPRING_DATASOURCE_URL` | `jdbc:postgresql://cameleer-postgres:5432/cameleer3` | PostgreSQL JDBC URL |
|
||||
| `SPRING_DATASOURCE_URL` | `jdbc:postgresql://cameleer-postgres:5432/cameleer` | PostgreSQL JDBC URL |
|
||||
| `SPRING_DATASOURCE_USERNAME`| `cameleer` | PostgreSQL user |
|
||||
| `SPRING_DATASOURCE_PASSWORD`| `cameleer_dev` | PostgreSQL password |
|
||||
| `CAMELEER_SERVER_CLICKHOUSE_URL` | `jdbc:clickhouse://cameleer-clickhouse:8123/cameleer` | ClickHouse JDBC URL |
|
||||
|
||||
Reference in New Issue
Block a user