Migrate config to cameleer.saas.* naming convention
Move all SaaS configuration properties under the cameleer.saas.* namespace with all-lowercase dot-separated names and mechanical env var mapping. Aligns with the server (cameleer.server.*) and agent (cameleer.agent.*) conventions. Changes: - Move cameleer.identity.* → cameleer.saas.identity.* - Move cameleer.provisioning.* → cameleer.saas.provisioning.* - Move cameleer.certs.* → cameleer.saas.certs.* - Rename kebab-case properties to concatenated lowercase - Update all env vars to CAMELEER_SAAS_* mechanical mapping - Update DockerTenantProvisioner to pass CAMELEER_SERVER_* env vars to provisioned server containers (matching server's new convention) - Spring JWT config now derives from SaaS properties via cross-reference - Clean up orphaned properties in application-local.yml - Update docker-compose.yml, docker-compose.dev.yml, .env.example - Update CLAUDE.md, HOWTO.md, architecture.md, user-manual.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -435,14 +435,12 @@ Copy `.env.example` to `.env` and configure as needed:
|
||||
| `POSTGRES_USER` | PostgreSQL username | `cameleer` |
|
||||
| `POSTGRES_PASSWORD` | PostgreSQL password | `change_me_in_production` |
|
||||
| `POSTGRES_DB` | PostgreSQL database name | `cameleer_saas` |
|
||||
| `LOGTO_ENDPOINT` | Internal Logto URL (container-to-container) | `http://logto:3001` |
|
||||
| `LOGTO_PUBLIC_ENDPOINT` | Public-facing Logto URL | `http://localhost:3001` |
|
||||
| `LOGTO_ISSUER_URI` | OIDC issuer URI | `http://localhost:3001/oidc` |
|
||||
| `LOGTO_JWK_SET_URI` | OIDC JWK set URI | `http://logto:3001/oidc/jwks` |
|
||||
| `LOGTO_M2M_CLIENT_ID` | Machine-to-machine client ID (auto-set by bootstrap) | _(empty)_ |
|
||||
| `LOGTO_M2M_CLIENT_SECRET` | Machine-to-machine client secret (auto-set by bootstrap) | _(empty)_ |
|
||||
| `LOGTO_SPA_CLIENT_ID` | SPA client ID for the frontend | _(empty)_ |
|
||||
| `CAMELEER_AUTH_TOKEN` | Bootstrap token for agent registration | `change_me_bootstrap_token` |
|
||||
| `CAMELEER_SAAS_IDENTITY_LOGTOENDPOINT` | Internal Logto URL (container-to-container) | `http://logto:3001` |
|
||||
| `CAMELEER_SAAS_IDENTITY_LOGTOPUBLICENDPOINT` | Public-facing Logto URL | `http://localhost:3001` |
|
||||
| `CAMELEER_SAAS_IDENTITY_M2MCLIENTID` | Machine-to-machine client ID (auto-set by bootstrap) | _(empty)_ |
|
||||
| `CAMELEER_SAAS_IDENTITY_M2MCLIENTSECRET` | Machine-to-machine client secret (auto-set by bootstrap) | _(empty)_ |
|
||||
| `CAMELEER_SAAS_IDENTITY_SPACLIENTID` | SPA client ID for the frontend | _(empty)_ |
|
||||
| `CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKEN` | Bootstrap token for agent registration | `change_me_bootstrap_token` |
|
||||
| `CAMELEER_CONTAINER_MEMORY_LIMIT` | Memory limit for deployed containers | `512m` |
|
||||
| `CAMELEER_CONTAINER_CPU_SHARES` | CPU shares for deployed containers | `512` |
|
||||
| `CAMELEER_TENANT_SLUG` | Default tenant slug | `default` |
|
||||
@@ -550,7 +548,7 @@ The Cameleer SaaS application itself does not need any changes -- all identity c
|
||||
**Resolution:**
|
||||
|
||||
1. Check backend logs: `docker compose logs cameleer-saas`.
|
||||
2. Verify that `LOGTO_ISSUER_URI` and `LOGTO_JWK_SET_URI` in `.env` are correct.
|
||||
2. Verify that `CAMELEER_SAAS_IDENTITY_LOGTOENDPOINT` in `.env` is correct (the OIDC issuer and JWK set URIs are derived from it automatically).
|
||||
3. If the issue persists, restart the services: `docker compose restart cameleer-saas logto`.
|
||||
|
||||
### Deployment Stuck in BUILDING
|
||||
@@ -577,14 +575,14 @@ The Cameleer SaaS application itself does not need any changes -- all identity c
|
||||
**Possible causes:**
|
||||
|
||||
- The agent cannot reach the cameleer3-server endpoint. Check network connectivity between the deployed container and the observability server.
|
||||
- The bootstrap token does not match. The agent uses `CAMELEER_AUTH_TOKEN` to register with the server.
|
||||
- The bootstrap token does not match. The agent uses `CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKEN` to register with the server.
|
||||
- The cameleer3-server is not healthy.
|
||||
|
||||
**Resolution:**
|
||||
|
||||
1. Check cameleer3-server health: `docker compose logs cameleer3-server`.
|
||||
2. Verify the app container's logs for agent connection errors (use the Logs tab on the app detail page).
|
||||
3. Confirm that `CAMELEER_AUTH_TOKEN` is the same in both the `cameleer-saas` and `cameleer3-server` service configurations.
|
||||
3. Confirm that `CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKEN` is the same in both the `cameleer-saas` and `cameleer3-server` service configurations.
|
||||
|
||||
### Container Health Check Failing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user