yau-plant-assistant/compose
Claude 410062af78 Make Cube v1 run at all: Cube Store, refresh worker, healthcheck
Phase 5 deployed to lin001 for the first time, and the cube service as
committed could not answer a single query. Three separate faults, none of them
visible without deploying it.

  - CUBEJS_EXT_DB_TYPE: postgres is not supported in Cube v1. Cube Store is the
    only external pre-aggregation store, and it is also the default cache and
    queue driver, so naming Postgres failed EVERY query - not just
    pre-aggregated ones - with "It`s not possible to use Cube Store as
    queue/cache driver without using it as external". So cubestore is now a
    service: pinned in lockstep with cube, ai-internal only, no ports, data on
    /datadisk because it grows and / is 62 GB.

    CUBEJS_CACHE_AND_QUEUE_DRIVER: memory is NOT a way out. It does not fall
    back - it hangs /readyz and every query indefinitely, logging nothing at
    level warn. That cost longer to diagnose than the original error.

    This is a deviation from the build spec, which says pre-aggregations
    materialise into pg-ai schema cube_preagg. They cannot, on this version.
    cube_preagg and its grants in 003_roles.sql stay, unused, so that nothing
    else has to change if a later Cube restores Postgres as an external store.

  - CUBEJS_REFRESH_WORKER was never set, so nothing built the pre-aggregations.
    A query matching a rollup does not fall back to the source: it fails with
    "No pre-aggregation partitions were built yet". max_value, min_value and
    sample_count were dead on arrival while avg_value worked, which reads as a
    per-measure bug and is not one.

  - The healthcheck ran wget, which is not in the image (nor is curl). A
    perfectly healthy cube reported unhealthy on every deploy, training the
    reader to ignore the one signal that would show a real fault. It uses node,
    which the image does have.

Verified on lin001: cube healthy, no published host ports, ai-internal and
proxy only, and a query matching alarms_by_hour now returns external: true -
served from Cube Store rather than scanning the source.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 14:35:52 +10:00
..
ai-compose.yml Make Cube v1 run at all: Cube Store, refresh worker, healthcheck 2026-08-21 14:35:52 +10:00
langfuse-compose.yml Fix four defects in langfuse-compose found deploying Phase 2 2026-08-21 10:38:04 +10:00