Moose Changelog
What is this page?
This changelog tracks all meaningful changes to Moose. Each entry includes the PR link and contributor credit, organized by date (newest first). Use this page to stay informed about new features, fixes, and breaking changes that might affect your projects.
How to read this changelog:
Release Highlights
Key features, enhancements, or fixes for each release.
Added
New features and capabilities.
Changed
Updates to existing functionality or improvements.
Deprecated
Features that are no longer recommended for use and may be removed in the future.
Fixed
Bug fixes and reliability improvements.
Breaking Changes
Changes that require user action or may break existing usage.
2025-08-21
Release Highlights
- Analytics API Standardization — Standardized naming of classes and utilities for analytics APIs
- Complete S3Queue Engine Support — Full implementation of ClickHouse S3Queue engine with comprehensive parameter support, modular architecture, and generic settings framework.
Added
- S3Queue Engine Configuration — Added complete support for all ClickHouse S3Queue engine parameters including authentication (
aws_access_key_id,aws_secret_access_key), compression, custom headers, and NOSIGN for public buckets. PR #2674 - Generic Settings Framework — Introduced a flexible settings system that allows any engine to use configuration settings, laying groundwork for future engine implementations.
- Enhanced Documentation — Added comprehensive documentation for OlapTable S3Queue configuration in both TypeScript and Python SDKs.
Changed
- Improved Architecture — Moved ClickHouse-specific types from core infrastructure to ClickHouse module for better separation of concerns.
- Settings Location — Engine-specific settings are now properly encapsulated within their respective engine configurations (e.g.,
s3QueueEngineConfig.settingsfor S3Queue). - API Consistency — Unified configuration APIs across TypeScript and Python SDKs for S3Queue engine.
Fixed
- Compilation Issues — Fixed struct patterns to handle new S3Queue parameter structure correctly.
- Diff Strategy — Enhanced diff strategy to properly handle S3Queue parameter changes.
Breaking Changes
-
ConsumptionApirenamed toApi -
EgressConfigrenamed toApiConfig -
ConsumptionUtilrenamed toApiUtil -
ConsumptionHelpersrenamed toApiHelpers
2025-08-20
Release Highlights
- Improved IngestPipeline API Clarity — The confusing
ingestparameter has been renamed toingestApi(TypeScript) andingest_api(Python) for better clarity. The old parameter names are still supported with deprecation warnings.
Changed
-
IngestPipeline Parameter Renamed — The
ingestparameter in IngestPipeline configurations has been renamed for clarity:- TypeScript:
ingest: true→ingestApi: true - Python:
ingest=True→ingest_api=True
The old parameter names continue to work with deprecation warnings to ensure backwards compatibility. [Current PR]
- TypeScript:
Deprecated
-
IngestPipeline
ingestparameter — Theingestparameter in IngestPipeline configurations is deprecated:- TypeScript: Use
ingestApiinstead ofingest - Python: Use
ingest_apiinstead ofingest
The old parameter will be removed in a future major version. Please update your code to use the new parameter names. [Current PR]
- TypeScript: Use
Breaking Changes
None - Full backwards compatibility maintained
2025-06-12
Release Highlights
- Enhanced TypeScript Workflow Types — Improved type safety for Tasks with optional input/output parameters, supporting
nulltypes for better flexibility.
Fixed
- TypeScript workflow Task types now properly support optional input/output with
nulltypes, enabling more flexible task definitions likeTask<Foo, null>andTask<null, Bar>.
#2442 by DatGuyJonathan
Breaking Changes
None
2025-06-10
Release Highlights
- OlapTable Direct Insert API — New comprehensive insert API with advanced error handling, typia validation, and multiple failure strategies. Enables direct data insertion into ClickHouse tables with production-ready reliability features.
- Python Workflows V2 — Replaces static file-based routing with explicit
TaskandWorkflowclasses, enabling dynamic task composition and programmatic workflow orchestration. No more reliance on@taskdecorators or file naming conventions.
Added
- OlapTable direct insert API with
insert()method supporting arrays and Node.js streams. Features comprehensive typia-based validation, three error handling strategies (fail-fast,discard,isolate), configurable error thresholds, memoized ClickHouse connections, and detailed insertion results with failed record tracking.
#2437 by callicles - Enhanced typia validation integration for OlapTable and IngestPipeline with
validateRecord(),isValidRecord(), andassertValidRecord()methods providing compile-time type safety and runtime validation.
#2437 by callicles - Python Workflows V2 with
Task[InputType, OutputType]andWorkflowclasses for dynamic workflow orchestration. Replaces the legacy@taskdecorator approach with explicit task definitions, enabling flexible task composition, type-safe chaining viaon_complete, retries, timeouts, and scheduling with cron expressions.
#2439 by DatGuyJonathan
Breaking Changes
None
2025-06-06
Release Highlights
- TypeScript Workflows V2 — Replaces static file-based routing with explicit
TaskandWorkflowclasses, enabling dynamic task composition and programmatic workflow orchestration. No more reliance on file naming conventions for task execution order.
Added
- TypeScript Workflows V2 with
Task<InputType, OutputType>andWorkflowclasses for dynamic workflow orchestration. Replaces the legacy file-based routing approach with explicit task definitions, enabling flexible task composition, type-safe chaining viaonComplete, configurable retries and timeouts, and flexible scheduling with cron expressions.
#2421 by DatGuyJonathan
Breaking Changes
None
2025-05-23
Release Highlights
- TypeScript
DeadLetterQueue<T>support — Handle failed streaming function messages with type-safe dead letter queues in TypeScript. - Improved Python
DeadLetterModelAPI — Renamedas_ttoas_typedfor better clarity.
2025-05-22
Release Highlights
- Refactored CLI ‘peek’ command — Now supports peeking into both tables and streams with unified parameters.
- Simplified CLI experience — Removed unused commands and routines for a cleaner interface.
Breaking Changes
None
2025-05-21
Release Highlights
- Infrastructure state sync — Auto-syncs DB state before changes, handling manual modifications and failed DDL runs.
- Fixed nested data type support — Use objects and arrays in your Moose models.
Fixed
- Handling of nested data structures in Moose models for correct support of complex objects and arrays.
#2357 by georgevanderson
Breaking Changes
None
2025-05-27
Release Highlights
- IPv4 and IPv6 Type Support — Added native support for IP address types in ClickHouse data models, enabling efficient storage and querying of network data.
Breaking Changes
None
2025-05-20
Release Highlights
- ClickHouse
Datetype support — Store and query native date values in your schemas.
Breaking Changes
None
2025-05-19
Release Highlights
- Metadata map propagation — Metadata is now tracked and available in the infra map for both Python and TypeScript. Improves LLM accuracy and reliability when working with Moose objects.
Added
- Metadata map propagation to infra map for consistent tracking and availability in both Python and TypeScript.
#2326 by georgevanderson
Breaking Changes
None
2025-05-16
Release Highlights
- New
list[str]support to PythonAggregateFunction— Enables more flexible aggregation logic in Materialized Views. - Python
DeadLetterQueue[T]alpha release — Automatically route exceptions to a dead letter queue in streaming functions.
Breaking Changes
None
2025-05-15
Release Highlights
- **Hotfix — casing fix for
JSONcolumns in TypeScript.
Breaking Changes
None
2025-05-14
Release Highlights
- Introduced TypeScript JSON columns — Use
Record<string, any>for type-safe JSON fields. - Ingestion config simplified — Less config needed for ingestion setup.
- Python
enumsupport improved — More robust data models.
Deprecated
IngestionFormatfromIngestApiconfig for simpler ingestion setup.
#2306 by georgevanderson
Breaking Changes
None
2025-05-13
Release Highlights
- New
refreshCLI command — Quickly reload data and schema changes from changes applied directly to your database outside of Moose. - Python:
LowCardinalitytype support — Better performance for categorical data.
Breaking Changes
None
2025-05-10
Release Highlights
- Dependency-based execution order for Materialized Views — Reduces migration errors and improves reliability.
Breaking Changes
None
2025-05-07
Release Highlights
- Python
datetime64support - Enables more precise datetime handling in Python data models. - Type mapping in Python
QueryClient- Automatically maps ClickHouse query result rows to the correct Pydantic model types.
Breaking Changes
None
2025-05-06
Release Highlights
uinttype support in TypeScript — Enables type safety for unsigned integer fields in Typescript data models.
Breaking Changes
None
2025-05-01
Release Highlights
- Explicit dependency tracking for materialized views — Improves data lineage, migration reliability, and documentation.
2025-04-30
Release Highlights
- More flexible
JSON_ARRAYconfiguration forIngestApi— Now accepts both arrays and single elements. Default config is nowJSON_ARRAY. - Python rich ClickHouse type support — Added support for advanced types in Python models:
Decimal:clickhouse_decimal(precision, scale)datetimewith precision:clickhouse_datetime64(precision)date:dateintwith size annotations:Annotated[int, 'int8'],Annotated[int, 'int32'], etc.UUID:UUID
Added
Breaking Changes
None