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.
Key features, enhancements, or fixes for each release.
New features and capabilities.
Updates to existing functionality or improvements.
Features that are no longer recommended for use and may be removed in the future.
Bug fixes and reliability improvements.
Changes that require user action or may break existing usage.
aws_access_key_id, aws_secret_access_key), compression, custom headers, and NOSIGN for public buckets. PR #2674s3QueueEngineConfig.settings for S3Queue).Renamed ConsumptionApi to Api
Renamed EgressConfig to ApiConfig
Renamed ConsumptionUtil to ApiUtil
Renamed ConsumptionHelpers to ApiHelpers
ingest parameter has been renamed to ingestApi (TypeScript) and ingest_api (Python) for better clarity. The old parameter names are still supported with deprecation warnings.IngestPipeline Parameter Renamed — The ingest parameter in IngestPipeline configurations has been renamed for clarity:
ingest: true → ingestApi: trueingest=True → ingest_api=TrueThe old parameter names continue to work with deprecation warnings to ensure backwards compatibility. [Current PR]
IngestPipeline ingest parameter — The ingest parameter in IngestPipeline configurations is deprecated:
ingestApi instead of ingestingest_api instead of ingestThe old parameter will be removed in a future major version. Please update your code to use the new parameter names. [Current PR]
None - Full backwards compatibility maintained
null types for better flexibility.null types, enabling more flexible task definitions like Task<Foo, null> and Task<null, Bar>.None
Task and Workflow classes, enabling dynamic task composition and programmatic workflow orchestration. No more reliance on @task decorators or file naming conventions.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.validateRecord(), isValidRecord(), and assertValidRecord() methods providing compile-time type safety and runtime validation.Task[InputType, OutputType] and Workflow classes for dynamic workflow orchestration. Replaces the legacy @task decorator approach with explicit task definitions, enabling flexible task composition, type-safe chaining via on_complete, retries, timeouts, and scheduling with cron expressions.None
Task and Workflow classes, enabling dynamic task composition and programmatic workflow orchestration. No more reliance on file naming conventions for task execution order.Task<InputType, OutputType> and Workflow classes for dynamic workflow orchestration. Replaces the legacy file-based routing approach with explicit task definitions, enabling flexible task composition, type-safe chaining via onComplete, configurable retries and timeouts, and flexible scheduling with cron expressions.None
DeadLetterQueue<T> support — Handle failed streaming function messages with type-safe dead letter queues in TypeScript.DeadLetterModel API — Renamed as_t to as_typed for better clarity.None
None
None
Date type support — Store and query native date values in your schemas.None
None
list[str] support to Python AggregateFunction — Enables more flexible aggregation logic in Materialized Views.DeadLetterQueue[T] alpha release — Automatically route exceptions to a dead letter queue in streaming functions.None
JSON columns in TypeScript.None
Record<string, any> for type-safe JSON fields.enum support improved — More robust data models.IngestionFormat from IngestApi config for simpler ingestion setup.None
refresh CLI command — Quickly reload data and schema changes from changes applied directly to your database outside of Moose.LowCardinality type support — Better performance for categorical data.None
None
datetime64 support - Enables more precise datetime handling in Python data models.QueryClient - Automatically maps ClickHouse query result rows to the correct Pydantic model types.None
uint type support in TypeScript — Enables type safety for unsigned integer fields in Typescript data models.None
JSON_ARRAY configuration for IngestApi — Now accepts both arrays and single elements. Default config is now JSON_ARRAY.Decimal: clickhouse_decimal(precision, scale)datetime with precision: clickhouse_datetime64(precision)date: dateint with size annotations: Annotated[int, 'int8'], Annotated[int, 'int32'], etc.UUID: UUIDNone