Skip to content

Releases: thatdot/quine

Release Quine 1.7.2

15 Aug 18:50
Compare
Choose a tag to compare

Enhancements

  • Added log sanitization. This feature suppresses exception logging and hides values that may have been sourced from ingested records or query definitions. This behavior is enabled by default, and may be customized with the quine.log-config configuration section.
  • Added text.regexReplaceAll Cypher function for regex-based string substitution
  • Added function text.regexGroups that will, given a regular expression and a string, return all matching capture groups from the string.
  • Added support for <duration>.<unit> and <duration>["<unit">] syntax in Cypher queries
  • Added support for constructing duration Cypher values with approximate units, e.g., days
  • Updated logo colors in exploration UI
  • The REST API documentation UI now makes requests based on relative rather than absolute paths, allowing it to work in more deployment environments
  • Added additional logging to alert on issues caused by poor network connection
  • Clarified the language in some error messages
  • Simplify error formatting in ingest and standing query output streams
  • Added additional error handling for certain uses of invalid QuineIds and illegal regular expressions
  • Reduced log noise at DEBUG log level
  • Persistor errors that occur during all-node scans will now be reported consistently with all other persistor errors
  • Improved error handling for missing file errors in the recipe interpreter and file ingests

Bugfixes

  • Fixed compilation of WITH DISTINCT Cypher query clauses to now properly interpret the returned distinct set in all cases (contributed by @harpocrates)
  • The example standing query in the API no longer uses the removed exists(n.property) syntax
  • The error message returned by standing.wiretap when a standing query is not found now refers to the name argument, rather than the procedure name
  • MultipleValues standing queries with emitCancellations = false will no longer emit cancellations
  • Multiple Values Standing Queries no longer read node labels as a property

Updates

  • skunk-circe, skunk-core to 0.6.4
  • s3, sts to 2.25.70
  • scala-java-time to 2.6.0
  • pureconfig to 0.17.7
  • tapir-json-circe, ... to 1.10.10
  • pekko to 1.0.3
  • pekko-http-circe to 2.6.0
  • protobuf-java to 3.25.4
  • circe to 0.14.9
  • circe-yaml to 0.15.3
  • circe-generic-extras to 0.14.4
  • Dropwizard metrics to 4.2.26
  • scaffeine to 5.3.0
  • commons-codec to 1.17.1
  • Removed scala-java8-compat

Release 1.7.0

17 Jun 23:32
Compare
Choose a tag to compare

Updates with special concerns:

MultipleValues standing queries will not migrate from Quine 1.6.4.
If you have any MultipleValues standing queries and you are using RocksDB, your database files will not carry forward.
If you are using MultipleValues standing queries and Cassandra, perform the following steps to remove all MultipleValues data while leaving your graph intact:

  1. Before shutting down Quine 1.6.4, use the API to delete all MultipleValues standing queries
  2. After shutting down Quine 1.6.4, but before launching Quine 1.7.0, use cqlsh to TRUNCATE standing_query_states
  3. After launching Quine 1.7.0, use the API to recreate all MultipleValues standing queries

Ad-hoc queries now reflect SETs and REMOVEs made during the query
If your ad-hoc (i.e., ingest, Cypher standing query output, or /query/cypher/ POSTed) queries rely on the original "capture state on MATCH" behavior, add a variable with WITH capturing the state you need.
For example, MATCH (n) SET n.x = 2 RETURN n.x AS oldX becomes MATCH (n) WITH n, n.x AS oldX SET n.x = 2 RETURN oldX

Enhancements:

  • MultipleValues standing queries have been rewritten from the ground up for significant performance gains
  • Failing to deserialize an ingested record now logs a warning + INFO message, and resumes the stream, rather than moving the stream to an error state
  • Updated the behavior of the SET and REMOVE clause to reflect their expected changes on the in-memory copies of query-related values
  • Protobuf message types can now be set by short name or full name
  • Added toProtobuf Cypher serialization procedure
  • Protobuf procedures now yield null values on failing to serialize/deserialize
  • Enhanced telemetry with basic feature usage indicators to support prioritizing most-used features
  • Simplified and tuned ingest registration logic

Bugfixes:

  • It is now possible to wake nodes with persisted state referring to deleted MultipleValues standing queries
  • Cassandra persistor now respects the should-create-tables configuration option when using only the default namespace
  • Cypher log procedure now accepts log levels in a case-insensitive manner
  • ANSI control codes are no longer logged except when running a recipe
  • Cypher node.debug error no longer reports an error on nodes tracking MultipleValues standing queries

Updates:

  • Remove aws-java-sdk-sts
  • scalajs to 1.16.0
  • kafka-clients to 3.6.2
  • amazon-kinesis-client to 2.5.8
  • marketplacemetering, s3, sts to 2.25.42
  • scala-parser-combinators to 2.4.0
  • sttp-circe to 3.9.7
  • sbt-paradox to 0.10.7
  • commons-io to 2.16.1
  • commons-compress to 1.26.1
  • commons-text to 1.12.0
  • circe to 0.14.7
  • logback-classic to 1.5.6
  • tapir to 1.10.8
  • jwt-circe to 10.0.1
  • guava to 33.2.1-jre
  • cats-core to 2.12.0
  • commons-compress to 1.26.2
  • shapeless to 2.3.12
  • scala-library to 2.13.14
  • scalacheck to 1.18.0
  • sbt, sbt-dependency-tree to 1.10.0
  • jedis to 5.1.3

Release 1.6.4

02 May 20:03
Compare
Choose a tag to compare

Quine 1.6.4

Enhancements:

  • Add round() and radians() cypher functions
  • Improve error handling in the exploration UI
  • Add parseProtobuf cypher procedure. This procedure takes 3 arguments: bytes to decode, schema URL, and type name; and yields a single value named value.

Bugfixes:

  • Unregistered routes will now return a "not found" page instead of an error about a missing query parameter
  • The cypher interpreter will no longer report "undefined variable" when returning variables bound to pattern expressions (e.g., MATCH p=(a) RETURN p)
  • SET n.prop = NULL now correctly removes the property
  • Multiple SET clauses in sequence now correctly updates the node's properties instead of replacing them

Updates:

  • cats-effect to 3.5.4
  • amazon-kinesis-client to 2.5.7
  • guava to 33.1.0-jre
  • commons-io to 2.16.0
  • webjars-locator to 0.52
  • pekko-http-circe to 2.4.0
  • logback-classic to 1.5.3
  • jedis to 5.1.2
  • scala-library to 2.13.13
  • Cassandra java-driver to 4.18.0.
  • commons-codec to 1.17.0
  • tapir to 1.10.6

Release 1.6.2

27 Mar 17:55
Compare
Choose a tag to compare

Quine 1.6.2

Enhancements:

  • Lowered node wake latency by parallelising journal rehydration

Bugfixes:

  • Webserver bind port or address can now be set without setting both

Updates:

  • Update antlr to 4.13.1
  • Update sbt-scalajs, scalajs-compiler, ... to 1.13.2
  • Update slinky-core, slinky-web to 0.7.4
  • Update jnr-posix to 3.1.19
  • Update aws-java-sdk-sts to 1.12.670
  • Update mapdb to 3.1.0
  • Update rocksdbjni to 8.11.3
  • Update pekko-http-circe to 2.3.4
  • Update pekko-http, pekko-http-xml to 1.0.1
  • Update marketplacemetering, s3, sts to 2.20.162

Release 1.6.1

05 Mar 20:17
Compare
Choose a tag to compare

Changes that may require attention:

  • Standardize the names of the NumberIteratorIngest fields startAtOffset and maxPerSecond. If you were previously using the names startAt or throttlePerSecond, you will need to update your recipes and API calls

Enhancements:

  • Reintroduce the classic single-line query bar on the Explore UI with SHIFT-ENTER to run a text query
  • Add support for arbitrary kafka properties on WriteToKafka Standing Query output via kafkaProperties field
  • Allow Multiple Values Standing Queries to event on arbitrarily-keyed property changes by using a RETURN properties(n) rather than having to list all properties manually

Bugfixes:

  • Reintroduce error messages encountered during Cypher query compilation which were lost as part of the Scala 2.13 migration in 1.6.0
  • Improve favicon support on all platforms

Updates:

  • pekko, pekko-stream, pekko-connectors to 1.0.2
  • Fix CVE-2024-25710: add explicit apache commons compress dep 1.26.0
  • scalajs-dom to 2.8.0
  • commons-codec to 1.16.1
  • pureconfig to 0.17.6
  • bootstrap to 5.3.3
  • sbt, sbt-dependency-tree to 1.9.9
  • logback-classic to 1.5.1
  • protobuf-java to 3.25.3
  • jedis to 5.1.1
  • everit-json-schema to 1.14.4
  • sttp to 3.9.2
  • webjars-locator to 0.50
  • pekko-http-circe to 2.1.1
  • circe-optics to 0.15.0
  • dropwizard metrics to 4.2.25
  • guava to 33.0.0-jre
  • skunk-circe, skunk-core to 0.6.3
  • thatDot-opencypher to 9.1.1
  • commons-text to 1.11.0
  • msgpack-core to 0.9.8
  • cats-effect to 3.5.3
  • rocksdbjni to 8.5.4

Release v1.6.0

24 Jan 23:09
Compare
Choose a tag to compare

Quine

Enhancements

  • Migrate from Lightbend Akka to Apache Pekko Framework
  • Dropped Apache Pulsar ingest support due to Akka dependency
  • Migrate from Scala 2.12 to Scala 2.13
  • Forbid specifying JdniLoginModule as a sasl.jaas.config to avoid CVE-2023-25194
  • Limit InfluxDB metrics logging to error
  • Added open source telemetry, for more info visit quine.io/reference/telemetry
  • Support multiline queries in the Exploration UI

Bugfixes:

  • Fixed "Run again as text query" button in the results panel in the Exploration UI

Updates:

  • scala-library 2.13 to 2.13.12
  • msgpack-core to 0.9.6
  • dropwizard metrics-core, metrics-jmx, metrics-jvm to 4.2.20
  • commons-compress to 1.25.0 to address CVE-2021-35516, CVE-2021-35517, CVE-2021-36090
  • mapdb to 3.0.10
  • kafka-clients to 2.7.2
  • avro to 1.11.3 to address CVE-2023-39410
  • aws-sdk to 2.20.159
  • guava to 32.1.3-jre
  • circe-config to 0.10.1
  • circe-yaml-v12 to 0.15.1
  • commons-io to 2.15.1
  • logback-classic to 1.4.13

Release Quine 1.5.7

21 Sep 22:51
Compare
Choose a tag to compare

Enhancements:

  • SSL is now supported when interacting with Quine in an untrusted environment by using the SSL_KEYSTORE_PATH and SSL_KEYSTORE_PASSWORD environment variables
  • Add create.setProperty procedure to allow setting a property with a dynamic key, dual to accessing a property with square-bracket syntax
  • Additional performance metrics can be added with enableDebugMetrics setting to help diagnose internal messaging and node load/unload throughput

Bugfixes:

  • Multiple Value Standing Query (MVSQ) will now properly trigger a change when a property is set/unset to null

Updates:

  • stoplight elements to v7.12.0
  • snakeyaml-engine to 2.7
  • logback-classic to 1.4.11
  • sts to 2.20.139
  • cats-core to 2.10.0
  • circe-core, circe-parser, ... to 0.14.6
  • msgpack-core to 0.9.5
  • scalajs-dom to 2.6.0
  • guava to 32.1.2-jre

Release Quine 1.5.6

26 Jul 22:53
Compare
Choose a tag to compare

Enhancements:

  • Added support for STS assumed-role authentication to experimental AWS Keyspaces persistor

Bugfixes:

  • Removed "total memory" gauge from metrics dashboard when maximum total memory can't be calculated based on the running JVM
  • Fixed a "stream stopped before async invocation was processed" error message that could occur when resuming ingests on startup

Updates:

  • webjars-locator to 0.47
  • sbt-jmh to 0.4.5
  • guava to 32.0.1-jre
  • dropwizard metrics to 4.2.19
  • logback-classic to 1.4.8
  • scala-library to 2.12.18
  • cats-effect to 3.5.1
  • scala-collection-compat to 2.11.0

Release Quine 1.5.5

21 Jun 17:56
Compare
Choose a tag to compare

Enhancements:

  • Ingest status is now preserved across restarts when restore-ingest configuration is set
  • Improved error handling within Keyspaces persistor

Bugfixes:

  • Valid Kafka configurations (e.g., ssl.truststore.location) are now accepted by the KafkaIngest stream configuration object
  • Remove unnecessary log line

Updates:

  • bootstrap to 5.3.0
  • flatbuffers-java to 23.5.26
  • pureconfig to 0.17.4
  • commons-io to 2.12.0
  • guava to 32.0.0-jre

Release Quine 1.5.4

24 May 19:37
Compare
Choose a tag to compare

Upgrading to Quine 1.5.4:

Temporal types have had a spring cleaning! Time values created in Quine 1.5.3 and earlier (without timezones) are automatically converted to LocalTime values in Quine 1.5.4. No user action is required.

Enhancements

  • Added support for localtime function and values to the Quine graph and Cypher
  • Updated documentation for Kinesis ingest to reflect the new name "Kinesis Data Streams"
  • Added AWS Keyspaces persistor for preview
  • Improved configuration linting and error reporting for Kafka ingest
  • Added support for purgeNode procedure to RocksDB and MapDB persistors
  • Added automatic recovery (up to 3 attempts) of ingests that fail to start/restart due to upstream issues
  • Simplified reify.time-generated nodes to use static labels for easier styling
  • Improved documentation for administrative APIs
  • Added scheduler checkpoint settings maxBatchSize and maxBatchWait to Kinesis Data Streams ingests

Bugfixes

  • Resuming a failed ingest now reports an HTTP error instead of timing out
  • Time values in the Quine graph now correctly store and use offsets from UTC
  • The date function now always correctly returns a date instead of a datetime.
  • Errors that occur while submitting an invalid standing query are now reported as "Bad Request"

Updates

  • Base docker image to JVM 20
  • sbt-scalajs-crossproject to 1.3.1
  • scalajs to 1.13.1
  • circe to 0.14.5
  • pureconfig to 0.17.3
  • endpoints4s to 3.8.15
  • logback-classic to 1.4.7
  • scala-collection-compat to 2.10.0