Skip to content

Releases: cardano-foundation/cardano-graphql

Cardano Graphql 5.1.0-beta.0

12 Aug 16:08
959768a
Compare
Choose a tag to compare
Pre-release

This pre-production feature release extends the API to include Alonzo concepts, including new top level queries for scripts, collateralInputs, and redeemers, plus extensions to the Transaction model, protocol parameters, and genesis.

The API is not guaranteed to be stable, however is suitable for testing integrations on non-mainnet networks. See the schema diff for full details.

Compatible with:

Features

  • Alonzo data mapping (eff1d9c)
  • Add AlonzoGenesis(d600dc0)
  • Add Alonzo blocks to conditional chain following (8d6aaf4)

Bug Fixes

  • Guard logic (110deaa)
  • OperationRequiresNodeInCurrentEra -> OperationRequiresSyncedNode (6165965)
  • startup race-condition with chain-followers (0b15315)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 5.0.0

26 Jul 15:21
754d9e9
Compare
Choose a tag to compare

This major release improves the efficiency and reliability of the service by utilising Ogmios as the node interface, replacing cardano-cli and implementing a chain-sync client for discovering assets upon first mint in favour of regularly diffing a large data set. A PostgreSQL-backed queue helps achieve this, and can be observed within the pgboss schema. The docker-compose stack now uses cardano-node-ogmios as a drop-in replacement for cardano-node, and enables all communication from the cardano-graphql service to be done via TCP. There are a number of small features, and bug fixes listed below. Please follow the upgrade instructions in the Wiki

Compatible with:

⚠ BREAKING CHANGES

  • Asset.assetName and Asset.assetId are now typed as Hex, as the relationship from Assets to TokenMints needed to be established using the underlying table, where assetId is not present.
  • Configuration of the asset metadata fetching is now a single value. POLLING_INTERVAL_METADATA_SYNC_INITIAL and POLLING_INTERVAL_METADATA_SYNC_ONGOING are replaced by ASSET_METADATA_UPDATE_INTERVAL, which is the number of seconds before the service checks the registry for updates.
  • AssetSupply.total is now an optional field and can return null.
  • Transaction.metadata is now JSON type, not JSONObject
    • Despite the name, JSONObject was mapped to the underlying JSON resolver as a workaround to avoid breaking changes.
  • The fields previously modeled on Token have been nested under Token.asset
  • tokens and tokens_aggregate have been removed in favour of assets and assets_aggregate
  • Asset properties nested under PaymentAddress.assets are now under PaymentAddress.assets.asset
  • Block.merkleRoot removed, as no longer part of cardano-db-sync schema. (8b3b718)

Features

  • Replaces the use of cardano-cli with Ogmios for interacting with the node using JSON-WSP, and implements the convenient cardano-node-ogmios Docker image as a drop-in replacement for the cardano-node image.
  • Sync assets using chain-sync protocol via Ogmios (784509e)
  • tokenMints and tokenMints_aggregate queries (f803b94)
  • Add query complexity validations (24a14a9),
  • Add default query complexity calculations with arguments (b16c77d)
  • Implement complexity in resolvers (5664a55)
  • Use cardano-node config for lastConfiguredMajorVersion (5a621c2), closes #454
  • Add Epoch_bool_exp.startedAt (4cc580a)
  • Add TransactionOutput_bool_exp.index (34d5438)
  • Allow ordering of assets by token mint count (cfbb039)
  • Asset metadata decimals (082f509)

Bug Fixes

  • Improve startup robustness (7054a59)
    • The GraphQL server is now delayed until all modules are initialized, and running. If cardano-db-sync reboots, all
      modules are shutdown, and restarted and therefore links the server availability with a fully initialized stack.
  • Add order_by to asset query (5848c24)
  • Asset_bool_exp.tokenMints (7616a49)
  • assetFingerprint bug when no assetName present (9a61d91), closes #487
  • Await all promises in shutdown function (3d7ef11)
  • Await CardanoNodeClient init before starting server (f33f6aa)
  • cardanoDbSyncMeta.initialized during startup (d6649cf)
  • Casing on invalid hereafter in GraphQL schema (854ec4a), closes #390
  • Copy cardano-node config into Docker image (4bf4866)
  • Default metadata server URI (2a98055)
  • Disable CORS in Hasura graphql-engine (4499422), closes #392
  • Ensure DB is in current era before completing HasuraClient initialization (0d43abc)
  • Guards on missing current epoch row (6204c96)
  • Log all error messages during service startup, not just HostDoesNotExist (c81aad8)
  • Memory leak in Hasura GraphQL client (3c8511d)
  • Move current era check to be lazy operation (7830c91)
  • Move graphql-engine option under serve command (f76e944)
  • policyId comparison expression type (99318cc), closes #485
  • Remove promise chaining cycle (8b55ca0), closes #459
  • Reorder logging arguments based on Bunyan interface (46b26a0)
  • Restore protocol params fetcher init (e86fc1a)
  • Scoping on package (82e2040)
  • submitTransaction error mapping (3629725)

Known Issues

  • Submitting random string to the submitTransaction mutation hangs #545

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 4.0.0

29 Mar 14:13
058873f
Compare
Choose a tag to compare

This major release adds support for querying asset information outside the context of a transaction, including a cached copy of the off-chain metadata from the Cardano Token Registry. The Token type has been adapted to support a more natural model, with Token.asset now containing the on-chain asset information alongside the metadata properties. There are two new config options to customise the metadata sync behaviour, which are documented in the Wiki. This release also reduces resource demand introduced in 3.2.0, and takes the opportunity to complete a few API-breaking chores that are listed below.

Compatible with:

BREAKING CHANGES

  • StakePool.url no longer URL type. The ledger does not validate the url value provided by the owner, therefore trying to impose rules around the structure will fail.

  • Transaction.metadata is now more accurately JSON type, not JSONObject. Despite the name, JSONObject was currently mapped to the underlying JSON resolver as a workaround to avoid breaking changes.

  • The fields previously modelled on Token have been nested under Token.asset. tokens and tokens_aggregate have been removed in favour of assets and assets_aggregate. Asset properties are now nested under PaymentAddress.summary.assetBalances.asset

Features

  • Introduce asset model and fetch metadata from external service (#432)
  • Ada Pots (#450)
  • Asset.tokenMints and Asset.tokenMints_aggregate

Bug Fixes

  • ActiveStake.stakePoolHash field name (08fe609)
  • Add Mint.asset relationship (0deaaac)
  • Add remaining Asset fields Hasura query used to fulfil paymentAddress query (879db94)
  • Batch asset synchronising operations (637d607)
  • Block.merkelRoot -> Block.merkleRoot (b9e1e13)
  • Include rewards in ada circulating supply (69f23c1)
  • StakePool.url is now type String (a661525)
  • StakePoolRetirement_bool_exp.inEffectFrom type (96aa708)
  • Correct Transaction.metadata type (79205a2)
  • Remove cardano-cli ledger-state query, make AssetSupply.total optional (f86ef42)
  • Use cardano-node config for lastConfiguredMajorVersion (5a621c2), closes #454
  • Replace cardano-cli query with db lookup for protocol params (a6387b3)
  • Throw error in resolver rather than return it (dd9a031)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 3.2.0

02 Feb 11:23
914746b
Compare
Choose a tag to compare

This feature release includes the major items of supporting Native Tokens, adds a query to return Ada supply information, and provides a GraphQL mutation to submit a signed transaction to the network. Users need to upgrade to this version (or later) to cross the Native Tokens hard fork.

Please note that the repository now contains git submodules. Clone instructions are in the README.

Compatible with:

Features

  • Multi-asset support #404
  • Ada supply query #386
  • Submit transaction mutation #414
  • Structured logging #386
  • Improve delegation and active stake models #409
  • Report sync progress in logs during initialisation #409

Bug Fixes

  • GraphQL schema order_by #409
  • Guard against simultaneous data fetches #386
  • Opt-out of Hasura CLI telemetry #409
  • Pass logger to onFailedAttempt #404
  • Replaces the time-based logic to determine sync progress and initialisation state #407, closes #248
  • Reward and StakeDeregistration order_by fields #384, closes #382

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️

Cardano GraphQL 3.1.1

13 Jan 16:14
5b2b2e4
Compare
Choose a tag to compare

This minor release fixes issue #389 as documented in the CHANGELOG.

Compatible with:

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️

Cardano GraphQL 3.1.0

11 Dec 21:20
cbdb22a
Compare
Choose a tag to compare

This feature release is compatible with the upcoming token locking Cardano update. It adds transaction validity interval fields and includes fixes as documented in the CHANGELOG.

Compatible with:

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️

Cardano GraphQL 3.0.1

28 Nov 11:51
829144b
Compare
Choose a tag to compare

This patch release incorporates the [email protected] fix, updates to Hasura v1.3.3, and includes internal fixes as documented in the CHANGELOG.

Compatible with:

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️

Cardano GraphQL 3.0.0

10 Nov 13:32
a472e0f
Compare
Choose a tag to compare

This new major version brings the second round of Shelley-era features to the API, including rewards, active stake captured at each epoch boundary, transaction metadata, protocol parameters in effect during the epoch, and custom types for the Bech32 values covered by CIP5.

You may be impacted by breaking changes, which are listed in the CHANGELOG

Compatible with:

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️

Cardano GraphQL 2.2.1

23 Oct 14:00
12f00a1
Compare
Choose a tag to compare

This is a maintenance release with cardano-db-sync dependency upgrade to its latest cardano-db-sync 5.0.3 release to move off cardano-db-sync 5.0.2, which has a known critical issue.

Compatible with

Improvements

Documentation

README provides complete overview and documentation:

Supported Platforms

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Release Manager ✔️

Cardano GraphQL 2.2.0

24 Sep 15:32
Compare
Choose a tag to compare

This minor update makes it possible to naturally access withdrawals from the context of a transaction, rather than performing two separate queries and combining the result sets. Now the total output for a transaction can be accounted for using Transaction.withdrawals in addition to Transaction.inputs. A combined schema is also now included in the TypeScript client package, to simplify IDE configuration and code generation operations.

Compatible with

New Features

  • Added Transaction.withdrawals in api-cardano-db-hasura: #318

Improvements

  • Merged schema in @cardano-graphql/client-ts #273 #320

Documentation

README provides complete overview and documentation:

Supported Platforms

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️