Pular para o conteúdo principal

Crimoo Mastery Learning Path

This path is for a developer who already knows the Angular dashboard and wants to master the full Crimoo system: business rules, backend ownership, server-side GTM runtime, tracking data flow, infrastructure, debugging, and tests.

Crimoo is a GTM server-side administration platform. The product lets a customer create and operate server-side GTM containers, route tracking traffic through first-party domains, capture CRM identities, inspect browser events, send offline conversions, and manage subscriptions.

How to Use These Docs

Read in passes:

  1. Use this page as the roadmap.
  2. Read Business Logic to learn the domain language.
  3. Use Project Map to understand which folder owns each concern.
  4. Open the project pages under Projects when you need implementation detail.
  5. Use Skill Consultation Index when asking Codex or a future skill about logic, ownership, or debugging.

Phase 1: Product and Domain Model

Goal: explain Crimoo without mentioning a framework.

You should be able to answer:

  • What is a workspace, and why does it scope GTMs, CRM, conversions, and analytics?
  • What is a GTM record versus a Docker GTM container?
  • What is a primary domain, custom domain, loader domain, and tracking domain?
  • What data is stored in PostgreSQL versus ClickHouse?
  • Why does the normal tracking path return 202 Accepted before the GTM container processes the event?
  • Why is preview/debug routed synchronously?

Read:

Practice:

  • Draw the path for a page view from browser to gtm-proxy, Pub/Sub, gtm-fabric, GTM container, and ClickHouse.
  • Pick one GTM in the UI and identify the matching backend entity, domains, VM, containers, ports, and certificates.

Phase 2: Control Plane

Goal: understand how Crimoo stores configuration and coordinates all other services.

The control plane is mainly node-api plus PostgreSQL, ClickHouse, Stripe, Gemini, Cloudflare, and the internal HTTP APIs used by gtm-fabric and gtm-proxy.

Read:

Master:

  • Express route registration and middleware order.
  • TypeORM entities and migrations.
  • Workspace scoping and auth guards.
  • GTM lifecycle use cases.
  • Internal fabric endpoints under /internal/fabric/*.
  • Certificate renewal scheduler.
  • Billing lifecycle with Stripe checkout and webhooks.
  • Copilot and Gemini integration boundaries.

Practice:

  • Trace POST /api/v1/gtm from route to controller, use case, persistence, and fabric call.
  • Trace GET /internal/fabric/gtms?vmId=X and list the fields a data-plane service needs at startup.
  • Trace one CRM capture batch from fabric to node-api and into contacts.

Phase 3: Data Plane

Goal: understand the runtime that receives production tracking traffic.

The data plane is primarily gtm-proxy and gtm-fabric.

Read:

Master:

  • Netty request routing and dynamic SNI certificate lookup.
  • api.crimoo.com routing to node-api.
  • Customer-domain /api/* routing to management/fabric.
  • Async tracking path: proxy returns 202, then publishes to Pub/Sub.
  • Sync preview path: proxy forwards directly to the GTM container.
  • GA4 bypass and path/query deobfuscation.
  • Pub/Sub consumer, rate limiting, circuit breaker, parser chain, enrichment, and ClickHouse batch inserts.
  • Stateless config in gtm-fabric: startup fetch from node-api and in-memory cache.

Practice:

  • Given a host and path, decide whether gtm-proxy returns 403, 404, 503, custom loader JS, Pub/Sub publish, node-api forward, fabric forward, or direct GTM container proxy.
  • Simulate a certificate cache miss and explain every component involved.
  • Explain why blocking I/O inside the Netty event loop is dangerous.

Phase 4: Angular and Developer Experience

Goal: connect your Angular knowledge to the backend and data-plane contracts.

Read:

Master:

  • withCredentials: true auth model.
  • Workspace context and request scoping.
  • GTM setup wizard and settings pages.
  • CRM contacts, deals, timelines, and capture configuration.
  • Offline conversions screens.
  • Analytics dashboard widgets and filters.
  • Copilot UI entry points.

Practice:

  • Pick one Angular service and map every method to a backend endpoint.
  • Pick one dashboard action and trace its state change, HTTP call, backend effect, and UI feedback.

Phase 5: Inspector, Copilot, and Integrations

Goal: understand tools that run around the core platform.

Read:

Master:

  • Inspector Shadow DOM injection and postMessage rule creation.
  • Copilot session lifecycle and iframe click passthrough.
  • Gemini/GTM automation boundaries.
  • WordPress and Shopify plugin intent.

Practice:

  • Open a debug session and explain how the inspector bundle gets loaded.
  • Follow a crimoo:create-rule message from the customer site back to Angular and then to the backend.

Phase 6: Infra, Deployment, and Legacy Context

Goal: know what runs in production, what is historical, and what is experimental.

Read:

Master:

  • Hostinger VPS production topology.
  • Firebase Hosting for the Angular UI.
  • Docker Compose around node-api, PostgreSQL, and ClickHouse.
  • Why gtm-proxy is the current production edge path.
  • Which older Go/VM-manager projects contain useful ideas but are not the documented production tagging path.

Practice:

  • Rebuild the deployment diagram from memory.
  • List what must be checked before calling a folder production-critical.

Phase 7: Testing and Confidence

Goal: know how to validate changes without guessing.

Read:

Master:

  • Unit and integration tests in node-api.
  • Maven tests in Java services.
  • Angular unit tests.
  • Playwright browser tests.
  • Manual smoke tests for GTM lifecycle, tracking, CRM capture, and billing.

Practice:

  • Run the smallest relevant test before touching a module.
  • After a cross-service change, write a manual verification script with expected requests, logs, and database effects.

Mastery Checklist

You are ready to work across the whole project when you can:

  • Explain the full normal and preview tracking paths.
  • Change a GTM lifecycle behavior without breaking the proxy/fabric contract.
  • Add a backend endpoint and wire it to Angular with workspace/auth rules.
  • Debug SSL/certificate issues across Cloudflare, node-api, fabric, and proxy.
  • Inspect ClickHouse event writes and PostgreSQL control data.
  • Reason about async failure modes: Pub/Sub retry, container timeouts, circuit breakers, and cache staleness.
  • Tell which top-level folders are production core, supporting tools, docs apps, tests, plugins, or legacy/experimental.