0.19.x releases


This page contains details of releases in the 0.19.xx set of releases.

0.19.0

0.19 is a feature release, containing multiple new features, including some breaking changes.

Taxi version

The Taxi version has not changed in this release, and remains on 1.30.2.

Breaking change - Pipeline Runner Changes

If using a bespoke Pipeline Runner application, you'll need to make the following changes:

Remove the following annotation from the Spring boot application class (i.e. the type annotated with @SpringBootApplication)

@EnableConfigurationProperties(VyneCacheConfiguration::class)

Add the following imports:

import io.vyne.spring.config.VyneSpringCacheConfiguration
import io.vyne.spring.config.VyneSpringHazelcastConfiguration
import io.vyne.spring.config.VyneSpringProjectionConfiguration
import io.vyne.spring.http.auth.HttpAuthConfig
import org.springframework.context.annotation.Import

and annotate the Spring boot application class with these additional statements:

@Import(HttpAuthConfig::class)
@EnableConfigurationProperties(VyneSpringCacheConfiguration::class, VyneSpringProjectionConfiguration::class, VyneSpringHazelcastConfiguration::class)

Update 'vyne' configuration block in your application.yaml with the new mandatory projection and hazelcast configuration blocks. As an example, update:

    vyne:
        schema:
            publicationMethod: EUREKA
        queryService:
            name: QUERY-SERVICE
        pipelinesOrchestratorService:
            name: PIPELINES-ORCHESTRATOR
        caskService:
            name: CASK
        queryServiceUrl: http://query-service
        graph:
            vyneGraphBuilderCache:
                baseSchemaCacheSize: 100
                graphWithFactTypesCacheSize: 100
                baseSchemaGraphCacheSize: 100
            vyneDiscoverGraphQuery:
                schemaGraphCacheSize: 5
                searchPathExclusionsCacheSize: 200000

as:

    vyne:
       schema:
          publicationMethod: EUREKA
       queryService:
          name: QUERY-SERVICE
       pipelinesOrchestratorService:
          name: PIPELINES-ORCHESTRATOR
       caskService:
          name: CASK
       queryServiceUrl: http://query-service
       graph:
          vyneGraphBuilderCache:
             baseSchemaCacheSize: 100
             graphWithFactTypesCacheSize: 100
             baseSchemaGraphCacheSize: 100
          vyneDiscoverGraphQuery:
             schemaGraphCacheSize: 5
             searchPathExclusionsCacheSize: 200000
       projection:
          distributionMode: LOCAL # One of [LOCAL | HAZELCAST] LOCAL = projections are performed on the instance process the query, HAZELCAST = distribute projection work to eligible members
          distributionPacketSize: 100 # Number of TypedInstances in a distributed workload - only applicable where distributionMode = HAZELCAST
          distributionRemoteBias: 10 # Number of nodes in the hazelcast cluster before work is preferentially distributed to remote nodes
       hazelcast:
          enabled: false # Enable or disable starting a hazelcast cluster
          discovery: MULTICAST # One of aws/multicast/swarm
          memberTag: vyne-query-service # Member tags allow delegation of responsibilities
          eurekaUri: http://127.0.0.1:8761/eureka/

Breaking change - Embedded Vyne

Applications using Vyne in embedded mode will need to make the following changes upon updating to 0.19.0.

Remove the following annotation from the Spring boot 'application class' (i.e. the type annotated with @SpringBootApplication)

@EnableConfigurationProperties(VyneCacheConfiguration::class)

Add the following imports:

import io.vyne.spring.config.VyneSpringCacheConfiguration
import io.vyne.spring.config.VyneSpringHazelcastConfiguration
import io.vyne.spring.config.VyneSpringProjectionConfiguration
import io.vyne.spring.http.auth.HttpAuthConfig
import org.springframework.context.annotation.Import

and annotate the Spring boot application class with these additional statements:

@Import(HttpAuthConfig::class)
@EnableConfigurationProperties(VyneSpringCacheConfiguration::class, VyneSpringProjectionConfiguration::class, VyneSpringHazelcastConfiguration::class)

Update Vyne configuration block in your application.yaml with the new mandatory projection and hazelcast configuration blocks. As an example, update:

    vyne:
        schema:
            publicationMethod: EUREKA
        queryService:
            name: QUERY-SERVICE
        pipelinesOrchestratorService:
            name: PIPELINES-ORCHESTRATOR
        caskService:
            name: CASK
        queryServiceUrl: http://query-service
        graph:
            vyneGraphBuilderCache:
                baseSchemaCacheSize: 100
                graphWithFactTypesCacheSize: 100
                baseSchemaGraphCacheSize: 100
            vyneDiscoverGraphQuery:
                schemaGraphCacheSize: 5
                searchPathExclusionsCacheSize: 200000

as:

vyne:
  queryServiceUrl: http://localhost
  schema:
    publicationMethod: EUREKA
  queryService:
    name: query-service
  graph:
    vyneGraphBuilderCache:
      baseSchemaCacheSize: 100
      graphWithFactTypesCacheSize: 100
      baseSchemaGraphCacheSize: 100
    vyneDiscoverGraphQuery:
      schemaGraphCacheSize: 5
      searchPathExclusionsCacheSize: 200000
  projection:
    distributionMode: LOCAL # One of [LOCAL | HAZELCAST] LOCAL = projections are performed on the instance process the query, HAZELCAST = distribute projection work to eligible members
    distributionPacketSize: 100 # Number of TypedInstances in a distributed workload - only applicable where distributionMode = HAZELCAST
    distributionRemoteBias: 10 # Number of nodes in the hazelcast cluster before work is preferentially distributed to remote nodes
  hazelcast:
    enabled: false # Enable or disable starting a hazelcast cluster
    discovery: MULTICAST # One of aws/multicast/swarm
    memberTag: vyne-query-service # Member tags allow delegation of responsibilities
    eurekaUri: http://127.0.0.1:8761/eureka/

Package rename: File Schema Server Changed

file-schema-server renamed as schema-server and hence starting from version 0.19.0 the corresponding docker image name is vyneco/schema-server

Feature: Cask message retention

Casks can now be configured to retain messages for a specified duration. Messages which are older than this duration are periodically purged.

See Configuring cask retention for more details

Feature: Writing Cask messages to Kafka

Casks can now be configured to output messages to Kafka as they are ingested. For casks with a @PrimaryKey annotation, messages contain both the old and the new states. Otherwise, the full message is output.

Enabling this setting is per-cask, and comes with a performance overhead at ingestion time.

See Writing Cask Messages to kafka for more details.

Feature: Authentication headers

Vyne can now be configured to include authentication headers when calling upstream services.

See Authentication Vyne to other services for more details.

Feature: Distributing projection work over a cluster

Vyne can now be deployed with a cluster of nodes, and configured to parallelize the projection work of projecting queries.

See clustered deployments for details of how to deploy Vyne in this configuration. This is only supported for query server workloads, and not currently available for embedded clients.

Feature: Support for continuous queries in Vyne

Vyne now supports continuous queries - ie., queries from data sources that provide infinite streams of data.

Any service can publish support for continuous queries, by exposing a text/event-stream endpoint, and defining the return type as Stream<T> in the schema.

See Continuous queries for more details.

Feature: Continuous query support in Casks

Support for continuous queries has been added to Casks, and is enabled by default.

See Continuous queries with Casks for more details.

0.19.1

0.19.1 is a minor feature release

Taxi version

The Taxi version has changed in this release, new version is 1.30.5.

Feature: String replace function

This release of Vyne brings support for the String replace function, recently added to Taxi lang.

replace(String, String, String)
Replaces the contents of the provided String, returning a new String
      Accepts three args:
       * String: The string to search
       * String: The string to search for
       * String: The string to use as a replacement
      ]]

Example usage

model Actor {
    actorName : ActorName
    anotherName : String by replace(this.actorName, "TEXT_TO_REPLACE", "REPLACEMENT_TEXT")
}

Fix: Column type change in Cask tables

cask_message now stores references to LOB data as oid. This enables usage of the vacuumlo Postgres utility ( see https://www.postgresql.org/docs/12/vacuumlo.html ) to remove orphaned large object from cask postgres database.

0.19.2

0.19.2 is a patch release, containing only one bug fix.

Taxi version

No change in taxi version (still 1.30.5) - Same as in 0.19.1

Bug Fixes

  • Vyne now can use the result of interim 'post' rest api responses correctly during enrichment. (Fixes HLP-80)

0.19.3

0.19.3 is a patch release, containing only one bug fix and updates to Vyne configuration settings for embedded vyne and applications publishing schemas.

Taxi version

No change in taxi version (still 1.30.5) - Same as in 0.19.2

Bug Fixes

  • Vyne now can explore additional enrichment paths when it re-evaluates a previously failed path during search process.

Configuration Changes

When embedding vyne to existing JVM application, release 0.19.2 requires adding 'projection' and 'hazelcast' configuration sections into the application configuration:

    vyne:
       schema:
          publicationMethod: EUREKA
       queryService:
          name: QUERY-SERVICE
       pipelinesOrchestratorService:
          name: PIPELINES-ORCHESTRATOR
       caskService:
          name: CASK
       queryServiceUrl: http://query-service
       graph:
          vyneGraphBuilderCache:
             baseSchemaCacheSize: 100
             graphWithFactTypesCacheSize: 100
             baseSchemaGraphCacheSize: 100
          vyneDiscoverGraphQuery:
             schemaGraphCacheSize: 5
             searchPathExclusionsCacheSize: 200000
       projection:
          distributionMode: LOCAL # One of [LOCAL | HAZELCAST] LOCAL = projections are performed on the instance process the query, HAZELCAST = distribute projection work to eligible members
          distributionPacketSize: 100 # Number of TypedInstances in a distributed workload - only applicable where distributionMode = HAZELCAST
          distributionRemoteBias: 10 # Number of nodes in the hazelcast cluster before work is preferentially distributed to remote nodes
       hazelcast:
          enabled: false # Enable or disable starting a hazelcast cluster
          discovery: MULTICAST # One of aws/multicast/swarm
          memberTag: vyne-query-service # Member tags allow delegation of responsibilities
          eurekaUri: http://127.0.0.1:8761/eureka/

Above is not required anymore and 'projection' and 'hazelcast' vyne configuration sections can be omitted:

spring.application.name: embedded-vyne-sample


spring:
  codec:
    max-in-memory-size: 100MB
  mvc:
    async:
      request-timeout: 18000000


api.title: "Sample Embedded Vyne Application"
api.description: "Executes VyneQL queries via embedded Vyne"

server:
  port: 18031

feign:
  client:
    config:
      default:
        connectTimeout: 5000
        readTimeout: 5000

vyne:
  schema:
    publicationMethod: EUREKA
  queryService:
    name: query-service
  graph:
    vyneGraphBuilderCache:
      baseSchemaCacheSize: 100
      graphWithFactTypesCacheSize: 100
      baseSchemaGraphCacheSize: 100
    vyneDiscoverGraphQuery:
      schemaGraphCacheSize: 5
      searchPathExclusionsCacheSize: 200000

eureka:
  uri: http://127.0.0.1:8761
  client:
    registryFetchIntervalSeconds: 1
    initialInstanceInfoReplicationIntervalSeconds: 5
    serviceUrl:
      defaultZone: ${eureka.uri}/eureka/
  instance:
    leaseRenewalIntervalInSeconds: 2
    leaseExpirationDurationInSeconds: 5

0.19.4

0.19.4 is a patch release, containing only one bug fix.

Taxi version

No change in taxi version (still 1.30.5) - Same as in 0.19.3

Bug Fixes

  • Enrichment search algorithm rectified to fix an issue in failed search path processing.

0.19.5

0.19.5 is a patch release, containing only the upgrade of H2 dependency to address RCE in H2 Console Vulnerability. While we do not believe Vyne is affected by the exploit, this release upgrades the dependency as advised by H2, and as a precautionary measure.

Taxi version

No change in taxi version (still 1.30.5) - Same as in 0.19.4

Security Fixes

  • Vyne query server H2 runtime dependency version upgraded to 2.0.206.