feat(Content Analytics) #35525 : Add docker-compose examples for Experiments and new CA infrastructure.#35624
Conversation
…riments and new CA infrastructure.
|
Claude finished @jcastro-dotcms's task in 2m 40s —— View job Review of latest pushThe new commit ( What remains in New finding — minor
if [[ "$1" != "--experiments-only" ]]; then
echo " - dotCMS: http://localhost:8082 (admin:admin)"
echo " - Glowroot: http://localhost:4000"
fiThe arg parser at lines 47–65 accepts flags in any order (sets the Previously deferred (still open, per agreement to handle in a separate ticket)For traceability, these are still present in this PR and were explicitly deferred:
PR-description test plan items that referenced the now-deleted Otherwise, the deletion is well-scoped and the change is straightforward. |
@claude based on your feedback: The provided |
…Experiments-and-new-CA-infrastructure
|
Claude finished @jcastro-dotcms's task in 37s —— View job Acknowledged — with one caveatFair point on the production security / hardening items (#7 OpenSearch security defaults, #8 SNAPSHOT image, parts of #2 about coexistence policy) — agreed, those belong to the Platform Team's hardening pass and aren't blocking for a dev-only stack. That said, a few of my findings aren't about production safety — they're about whether the local dev environment actually works as documented. Wanted to flag them once more so you can decide explicitly to defer (totally valid) vs. fix (cheap):
Items 2 (port collisions), 5 (env-var indirection), 6 (JWKS_URI vs JWKS_URL), 9 (customer1 vs cust-001), 10 (comment wording), and the minor items — I agree those are fine to leave or address opportunistically. Your call. Happy to push fixes for #1, #3, and #4 (the "doesn't start cleanly" trio) on this branch if you want — just say the word. Otherwise approving the rationale: dev-only, Platform Team owns prod. |
@claude we'll take care of these changes in a separate ticket. |
|
Claude finished @jcastro-dotcms's task in 19s —— View job Acknowledged — deferred to separate ticketUnderstood — the three "doesn't start cleanly" findings (#1 For traceability when that ticket is opened, the concrete locations are:
Closing the loop here. Ping me on the follow-up ticket if you'd like me to pick up the fixes there. |
…the CA Event Manager repo
Summary
This PR restructures the Docker Compose developer environments under
docker/docker-compose-examples/by splitting what was a single mixed-purposeanalytics/stack into two focused, independent environments — one for the Content Analytics (CA) infrastructure and one for the Experiments feature stack.What Changed
analytics/— Redirects todot-ca-event-managerThe Content Analytics infrastructure (ClickHouse cluster +
ca-event-manager) has been moved to its own repository to avoid duplicating configuration files across repos:https://github.com/dotCMS/dot-ca-event-manager
The
analytics/directory now contains only aREADME.mdpointing there. Users should refer to thedocker/directory in that repository for the full setup, including the ClickHouse keeper, replica nodes, initialization scripts, and the event manager service.experiments/— New Directory for the Experiments StackAll files related to the dotCMS Experiments feature (A/B testing, analytics integrations via Keycloak + Jitsu + CubeJS) have been moved from
analytics/into a new dedicatedexperiments/directory.Services included:
keycloak— Identity provider for JWT-based authenticationjitsu— Event collection pipeline (stream mode for local dev)dotcms-analytics(Configurator) — Routes and configures analytics destinationscube— CubeJS analytics read layer with hot-reload schemach_server— Single-node ClickHouse instance for Experiments dataredis— Jitsu message queueanalytics-postgres— Shared DB for Keycloak + Configuratordotcms,dotcms-db,opensearch— Full dotCMS stack (behind--profile full)Key behaviors:
host.docker.internal(not container-to-container names), enabling the host-side app to share the same endpoints/api/v1/s2s/event(server-to-server path)start-analytics.sh→start-experiments.shUpdated
README.md— Corrected analytics URL documentation to reflect actualhost.docker.internalrouting, fixed env var names (DOT_ANALYTICS_*prefix), and addedPOSTGRESQL_HOST_PORTto the environment variables reference.Test Plan
cd docker/docker-compose-examples/experiments && docker compose up -d— all analytics-only services start without errorsdocker compose --profile full up -d— dotCMS starts, analytics pre-configured, connection test passes in Apps → dotExperiments-configdocker/docker-compose-examples/analytics/contains onlyREADME.mdwith a link todot-ca-event-manager🤖 Generated with Claude Code
This PR fixes: #35525