This release focuses on developer experience and database reliability. Moose now surfaces ClickHouse connection details at startup and supports JSON output for CI/CD automation, while a suite of fixes ensures database configurations are respected across migrations, sync processes, and client libraries.
The moose dev command now displays ClickHouse connection URLs when starting local infrastructure, making it easier for developers to connect to their databases for debugging and data exploration. Connection details are shown with masked passwords for security.
> moose dev
> analytical-moosestack@0.0 dev /Users/mitchell/repos/analytical-moosestack
> moose-cli dev
Created docker compose file
Warning Using legacy pnpm deploy - add `inject-workspace-packages=true` to .npmrc and run `pnpm install`
Local infrastructure started successfully
Validated analytical-moosestack-clickhousedb-1 docker container
ClickHouse Conn http://panda:******@localhost:18123/?database=local
See moose.config.toml for complete connection details
Validated analytical-moosestack-redpanda-1 docker container
Validated Redpanda cluster
Validated analytical-moosestack-temporal-1 docker container
Node Id: analytical-moosestack::2d5e4bdc-935e-48a6-b258-069a8631fdfd
Starting development modePR: #3103
Added support for VersionedCollapsingMergeTree, CollapsingMergeTree, and their replicated variants in ClickHouse table engines. Users can now define data models that use these specialized merge tree engines for handling versioned data and collapsing operations, enabling more advanced data deduplication and versioning patterns in their streaming pipelines.
import { Key } from "@514labs/moose-lib"; // Define a data model using VersionedCollapsingMergeTree for user profile updates// This allows tracking profile changes over time with automatic deduplicationexport interface UserProfile { userId: Key<string>; email: string; name: string; lastLoginAt: Date; // Required fields for VersionedCollapsingMergeTree sign: number; // 1 for insert, -1 for delete/update version: number; // Monotonically increasing version number} // Configure the table to use VersionedCollapsingMergeTree engineexport default { tableName: "user_profiles", engine: { VersionedCollapsingMergeTree: { sign: "sign", // Column name for the sign field ver: "version" // Column name for the version field } }, orderBy: ["userId", "version"], // Order by user ID and version primaryKey: ["userId"]}; // Example usage in a streaming functionexport function processUserUpdate(oldProfile: UserProfile, newProfile: UserProfile) { return [ // Mark old record for deletion { ...oldProfile, sign: -1 }, // Insert new record { ...newProfile, sign: 1, version: oldProfile.version + 1 } ];}PR: #3055 | Docs: OlapTable | VersionedCollapsingMergeTree | CollapsingMergeTree
moose plan – The moose plan command now supports a --json flag that outputs the infrastructure plan in JSON format for programmatic use and automation. This enables users to integrate plan results into CI/CD pipelines, scripts, and other tooling. #3099moose ls – The moose ls command now supports filtering by web-apps infrastructure type, allowing users to view web application components in their data pipeline alongside other infrastructure types like tables, streams, and ingestion endpoints. #3054db pull command flag – The moose db pull command now uses --clickhouse-url instead of --connection-string for consistency with other CLI commands. The command also supports the CLICKHOUSE_URL environment variable as a fallback. #3106