Skip to main content

DCH 2.5

· 3 min read

What's New

Version 2.5 includes the following new features and changes.

Data Provider Workers (Beta)

Data Pumps were previously the primary method for data import into DCH. This version introduces Data Provider Workers as the new system for importing data. A Data Provider Worker is a standalone application implementing a pre-defined contract and exposing a REST API for communication with one or multiple DCH instances. It can be developed in any programming language, offering enhanced flexibility. While Data Pumps are tightly coupled to DCH, the decoupled nature of Data Provider Workers allows for a smoother transition when changes are introduced.

Additional benefits include increased performance and traceability of imported data. Previously, Data Pumps loaded all available data at once, which could lead to memory constraints. Additionally, the single large job structure didn't provide visibility into processing progress. Data Provider Workers handle data in multiple batches, enabling quick feedback and comprehensive traceability.

info

This feature is in Beta and might not work flawlessly

DCH UI Updates

The following features have been migrated to the new UI introduced in version 2.4:

  • Connectors: Corresponds to the Data Pump Images section from GBS UI
  • Workers: Corresponds to the Workers section from GBS UI
  • Model: Introduces worker support for Data Source functionality
  • Build: Provides enhanced data import and processing capabilities, succeeding Graph Processing from GBS UI
  • Data Import Configuration: Corresponds to the Data Importer from GBS UI

Interface enhancements:

  • Extended isolation functionality now covers Relationships and Data Sources
  • Refined configuration panel for Target Entities, Relationships and Data Sources
  • Enhanced Model views with customizable layouts and Data Source toggling options

Removed DAG Uploader

Due to Airflow's lack of native DAG upload functionality, previous versions required a custom Uploader application. Version 2.5 implements a multi-mount volume solution, eliminating the need for the Uploader component and streamlining the overall stack architecture.

M4AI Updates

The following features have been added to M4AI:

  • Agent System Versioning: Enables creation and management of multiple Agent System versions
  • Deep Context Logic (DIAna): Implements conversational context building for enhanced agent system exploration
  • UI Enhancement: Introduces toggle functionality between Standard and Deep Context chat modes
  • Advanced Analytics (experimental): Integrates coding agent within context building phase, enabling automated data transformation and aggregation capabilities

Bug Fixes and Improvements

  • Fixed a bug that incorrectly prevented properties with *_ID naming pattern from being used in relationships
  • Implemented safeguards against modifications of processed entities in the new interface
  • Added validation to prevent expression creation on unmapped properties
  • Enhanced entity deletion to automatically remove associated incoming and outgoing relationships
  • Introduced a warning system for Load Plan dependencies when removing Target Entities

API Changes

This release introduces several API changes to enhance usability and standardization.

Deprecations

The following API endpoints have been deprecated:

  • [EBS] /api/graph/search/advanced-search: Please use /api/graph/search/advanced endpoint instead, which includes pagination support

Deployment Changes

As part of this update, the following adjustments have been made to the deployment configuration.

Neo4j Configuration via Environment Variables

This release simplifies DCH instance deployment by relocating Neo4j configuration from the SysConfiguration table to environment variables. The following environment variables are required for the backend, gbs, and m4ai_backend services:

  • NEO4J_USERNAME
  • NEO4J_PASSWORD
  • NEO4J_DB
  • NEO4J_HOST
  • NEO4J_PORT
  • NEO4J_PROTOCOL

Multi-mount for DAGs

Multi-mount support is required for DAGs. To enable this, you have to define a storage class with ReadWriteMany access mode in values.yaml at airflow.persistence.storageClassName.