Skip to content

Releases: typedb/typedb-driver

TypeDB Client Java 2.18.1

02 Jun 19:53
42800e7
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.18.1</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

  • Split client construction and connection validation

    To prevent null pointer errors during failover tasks being executed, we go back to the previous model of first creating a client, then opening and validating the connection.

Code Refactors

Other Improvements

TypeDB Client Java 2.18.0

31 May 08:58
8c0caa1
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.18.0</version>
    </dependency>
</dependencies>

New Features

  • Introduce protocol versioning

    We use a new protocol API to perform a "connection open". This API does server-side protocol version compatibility checks, and also replaces our previous need to do a generic RPC call to check that the network is available.

    The user will receive an error about a protocol version mismatch if they are using a client-server combination that are not using exactly compatible protocols.

    1. The server will raise an error if the client tries to connect with a mismatching protocol version
    2. The client will raise an error if it tries to connect to the server and the server does not have that API

    Both errors imply a client-server mismatch and the error will suggest this as a fix.

    This change depends on typedb/typedb-protocol#185, which means that this client now implements protocol version 1.

  • Introduce Values to support expressions

    Introduce the 'Value' type, which is returned as the result of an expression's computation. This change follows from typedb/typeql#260, which outlines the capabilities of the new expression syntax.

    Values (representing any of Long, Double, Boolean, String, or DateTime) are returned as part of ConceptMap answers and are subtypes of Concept for the time being. Their main API is made of the .getValue() method and .getValueType() method, along with all the standard safe downcasting methods to convert a Concept into a Value, using Concept.isValue() and Concept.asValue().

    We also move the import location of ValueType from being nested in AttributeType to Concept and remove some APIs such as isKeyable from them.

  • Check BDD value equality using native types

    In BDD steps implementation we checked the equality of all values through the conversion to Strings. It might be incorrect when comparing Doubles especially if one of these values is a result of arithmetics.
    Now we compare Doubles by their absolute error.
    For consistency we compare all values using their native types equality.

  • Support generalised annotations and uniqueness

    We update the Typedb Protocol and TypeQL to the latest versions, which support the uniqueness annotation and generalised Type APIs. These generalised APIs allow querying by a set of annotations, rather than just boolean = true|false.

    For example:
    AttributeType.getOwners(boolean onlyKey) becomes AttributeType.getOwners(Set<TypeQLToken.Annotation> annotations)

    all usages of boolean flags to indicate key-ness should be replaced by using TypeQLToken.Annotation.KEY. The new @unique annotation is available as the token TypeQLToken.Annotation.UNIQUE.

  • Add behaviour test step definition for retrieving the currently connected user

    We've added a behaviour test step get connected user in line with changes made in typedb/typedb-behaviour#247

Bugs Fixed

Code Refactors

Other Improvements

  • Update release notes workflow

    We integrate the new release notes tooling. The release notes are now to be written by a person and committed to the repo.

  • Update BDD steps to reflect new annotation clause commas

  • Add build cache to build-dependency job

  • Add remote cache setup to ci tools

  • Use bazel cache for snapshot deployment jobs

  • Increase JSON serialisation test size

  • Enable the bazel cache

TypeDB Client Java 2.17.1

24 Apr 15:53
24653de
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.17.1</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements

  • Update TypeQL to 2.17.0

TypeDB Client Java 2.17.0

24 Apr 11:37
df8bf6f
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.17.0</version>
    </dependency>
</dependencies>

New Features

  • TypeDB Cluster Authentication Behaviour Tests

    We've added behaviour tests for password policy complexity and expiration to TypeDB Cluster.

    Following new methodology which isolates the test runners made in typedb-common, we've increased the Bazel test timeout to 30 minutes. Previously this wasn't necessary as we would re-use the runners between runs following a 'cleaning' step, but not rebooting the runner. Given each boot of TypeDB takes 3-4 seconds, the 97 scenarios in the match behaviour file would take ~339.5 seconds in booting time alone, exhausting the default Bazel test limit of 300 seconds.

    Now we take a more comprehensive approach, deleting all of the state stored in TypeDB between runs and allowing runners to be reset. This is more correct, but it takes more time.

  • Add API to retrieve current user

    Add an API to be able retrieve the currently authenticated user.

  • Concept map JSON serialization

    We implement the JSON serialization of concept maps according to typedb/typedb-behaviour#238.

Bugs Fixed

Code Refactors

  • Define password expiry in terms of seconds

    We've redefined the way we expose how long until a password expires in seconds, rather than days as was done previously.

  • JSON serialization fixes

    We update the BDD test steps to reflect the changes in typedb-behaviour (typedb/typedb-behaviour#240).

Other Improvements

  • Implement new BDD connection opening syntax

    We implement the new BDD connection/user connection syntax set up in typedb/typedb-behaviour#244.

  • Update dependencies for 2.17.0 release

    Update all Vaticle dependencies to prepare for the next 2.17.0 release.

TypeDB Client Java 2.16.1

09 Mar 15:27
2a1d78f
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.16.1</version>
    </dependency>
</dependencies>

New Features

  • Cluster password policy and user management support

    Add functionality relevant to the changes made in typedb/typedb-cluster#456:

    • Optional password expiry in days for each user.
    • The ability for admins to set passwords of other users
    • User password update, which requires old and new password

Bugs Fixed

Code Refactors

Other Improvements

  • Trigger release

  • Update VERSION to 2.16.1 and dependencies

  • Bumped @vaticle_typedb_common

    Bumped dependency so that changes made in typedb/typedb-common@b5475e4 could be propagated to typedb-iam.

  • Bump @vaticle_dependencies

TypeDB Client Java 2.14.3

10 Feb 17:28
8e57c94
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.14.3</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

  • Use latest typedb artifact

    We updated the typedb artifact to the latest released version 2.14.3.

Other Improvements

  • Update VERSION to 2.14.3

  • Implement cluster-capable schema retrieval

  • Add transitive dependency on netty-handler to the connection package

    In line with bumping our netty dependencies (typedb/typedb-dependencies#415), we need to include a transitive dependency that has been introduced on netty's side between the version we used to depend on and the version we now depend on.

TypeDB Client Java 2.14.2

02 Dec 11:45
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.14.2</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements

  • Bump behaviour repo

  • bump VERSION to 2.14.2

  • Update TypeQL to 2.14.0

TypeDB Client Java 2.14.0

24 Nov 16:09
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.14.0</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

Code Refactors

Other Improvements

  • Update TypeQL to 2.14.0

  • Bump VERSION to 2.14.0

  • Improve getSchemaExceptions() to return TypeDBException that contains code and message

  • Bump @vaticle_typedb_artifact

  • Add GetSchemaExceptions to ConceptManager API

TypeDB Client Java 2.12.0

03 Nov 13:13
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.12.0</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

  • Serialise queries without pretty printing

    To avoid injecting unintended tab characters into user attributes containing new lines, we utilise TypeQL's new unformatted to string conversion for serialising queries to the server.

Code Refactors

  • Clean up maven related statements in WORKSPACE

    Group maven related statements together and add maven to all imported maven artifact aliases in the WORKSPACE file for clarity.

Other Improvements

  • Remove vaticle_typeql_lang hanging dependency

  • Update VERSION to 2.12.0

  • Bump factory-tracing to released version

  • Fix for deploying to GitHub, bump dependencies

    We've fixed the job involving deploying to GitHub and bumped dependencies in preparation for a release.

  • Migrate to Factory

    We've migrated our continuous integration for this repo to Vaticle Factory from Grabl.

  • Refactored 'isAbstract' to be a local field in Type as opposed to remote method

  • rename .grabl to .factory

  • Bump @vaticle_typedb_artifact

  • Bump @vaticle_typedb_artifact

  • Remove * imports

  • Bump @vaticle_typedb_artifact

  • Bump @vaticle_typedb_artifact

  • Add getPlayerTypesExplicit() to RoleType

  • Bump @vaticle_typedb_artifact (temporarily)

  • *Introduce RoleType.getRelationsInstances() and Explicit()

  • Introduce RoleType.getPlayerInstances() and getPlayerInstancesExplicit(), and rename getPlayers() to getPlayerTypes()

  • Bump @vaticle_typedb_protocol

  • Bump @vaticle_typedb_common

  • Fixed automation.yml to refer to the new typeql repo

  • Fixed TypeDBTransaction.onClose() to take in multiple callbacks

  • Extend license checkstyle tests and update licenses

    We introduce a test that ensures that the license text is correct.

TypeDB Client Java 2.11.1

15 Jul 10:57
Compare
Choose a tag to compare

Documentation: http://docs.vaticle.com/docs/client-api/java

Distribution

Available through https://repo.vaticle.com

<repositories>
    <repository>
        <id>repo.vaticle.com</id>
        <url>https://repo.vaticle.com/repository/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.vaticle.typedb</groupid>
        <artifactid>typedb-client</artifactid>
        <version>2.11.1</version>
    </dependency>
</dependencies>

New Features

Bugs Fixed

  • Fix memory leak in long-running sessions

    A long running session used to keep the reference to each closed transaction, continually growing in size. These references are inaccessible from outside the session object. The problem was compounded in the write transactions, when the caller did not collect the responses received after insert queries, which were held onto by the closed transaction objects.

    We now dispose of the closed transaction objects and free their memory.

  • When streaming, assume network latency >=1ms

    When streaming (e.g. match queries), we now assume the network latency is >=1ms, and have the server compensate accordingly. This sharply improves performance (up to 3x) when fetching answers from a server hosted at localhost.

Code Refactors

  • Update TypeDB Cluster runner

    We updated TypeDB Cluster runner usage according to the latest version of the API

Other Improvements

  • Update dependencies and VERSION to 2.11.1

  • When streaming, assume network latency >=1ms (#386)

  • Revert "When streaming, assume network latency is >=1ms"

  • When streaming, assume network latency is >=1ms

  • Bump copyright year to 2022

    We update the copyright header year to 2022.