Release Notes - GoodData.CN

GoodData.CN 2.4.0

Related products: GoodData.CN
GoodData.CN 2.4.0

New Features

Introducing SQL Datasets

You can now create the equivalent of views (virtual tables) directly in the logical data model using SQL datasets. The dataset is created based on a custom SQL query that you define.

With SQL datasets you can rapidly create new ‘virtual views’ without having to modify the original database, which may not always be possible.

Please note that at this moment this is a beta feature, and we discourage you from using beta features in production environments.

Learn More:

Create SQL Datasets

Convert Between Regular Datasets and SQL Datasets

You can now freely map your datasets back and forth between regular datasets (tied to a specific table or view in your database) and SQL datasets (our version of virtual tables).

Please note that at this moment this is a beta feature, and we discourage you from using beta features in production environments.

Learn More:

Create SQL Datasets

Drill from an Attribute

You now have the ability to add drill interactions to both metrics and attributes; previously only drilling from metric was supported.

Learn more:

Drilling in Dashboards

New Embedding Dialogs and Embedding Options

We have revamped the embedding dialogs in the dashboard and visualization editors. With a couple of mouse clicks you can copy code snippets to embed:

  • A dashboard as a React component, a Web Component or an iframe

  • A visualization as a React component or a Web Component.

Learn More:

Embed Visualizations Using Iframes

Embed Visualizations Using Web Components

Embed Visualizations Using React SDK

Embedded Dashboard Iframe Authentication

When embedding a dashboard into your web application via iframes, you can now authenticate users using the API authentication token.

Learn More:

Embed Visualizations Using Iframes

Single Value Selection Attribute Filters

Attribute filters in dashboards allow you to filter data using any combination of selected attributes. However, there may be instances when you want to restrict dashboard users to filtering by only one attribute value at a time. To address this need, we are introducing a single value selection option for attribute filters. This feature ensures that users can select only one value at a time when applying filters.

Learn More:

Use Attribute Filters on Dashboards

Workspace Object ID Generation and Custom Prefixes

In our ongoing effort to simplify working with workspace hierarchies, we are introducing the ability to set custom prefixes for individual workspaces. These prefixes will be automatically applied when the server generates an identifier for analytical objects, allowing you to easily identify the workspace from which specific metrics, visualizations, and other analytical objects originate.

Also, the server will now automatically generate an ID for new objects when no explicit ID is provided. If a custom prefix has been set for the workspace in which the object is being created, the prefix will be automatically added to the object ID.

Learn More:

Workspace Object Identification

Workspace Object Identifiers

We are changing how object IDs work in workspace hierarchies. Objects inherited from parent workspaces will no longer contain prefixes in their object IDs, instead the objects have metadata describing their origin that is accessible via the workspace object API. This should make for a less ambiguous and robust system going forward.

However this could be a breaking change for some of you, especially if you are using:

  • Dashboard plugins

  • GoodData.UI

  • Iframes

We have prepared a short article on what exactly the changes are and how you can address any problems that this change might cause. Please read the article here.

Learn More:

Workspace Object Identification

Entity API for Workspace Data Filters

You can now set workspace data filters directly using the /api/v1/entities/workspaces/<child_workspace_id>/workspaceDataFilterSettings/<object_id> entity API endpoint. This update offers a faster alternative to using the declarative API for the entire workspace, while also mitigating the risk of parallel overwrites when multiple users modify workspace settings simultaneously.

Learn More:

Set Up Data Filters in Workspaces

Support for More Databases

You can now create a data source out of the following databases:

  • Microsoft SQL

  • Azure SQL

  • Synapse SQL

Learn More:

Create an Azure SQL Data Source

Create a Microsoft SQL Server Data Source

Create a Synapse SQL Data Source

Customize the First Day of the Week

You now have the choice to set Monday as the start of the week in GoodData, instead of the default Sunday. This setting impacts date pickers in the user interface and weekly data analysis, allowing for a more tailored experience that fits your needs.

Learn more:


Change Date Format

Continuous Line for Combo, Line, and Stacked Area Charts

You can now choose to create a continuous line graph even if some of its values are missing.

Learn more:

Combo Charts
Line Charts
Stacked Area Charts

Rename Dashboard Filters

If your attributes filters have long or technical names, you can now change their names on Dashboards in the filter configuration while editing the dashboard. The name of the filter is changed only on the particular dashboard and is not propagated to other dashboards.

Learn More:
Use Attribute Filters on Dashboards

Streamlining Property ID Generation

Column names with specific GoodData-compatible prefixes (such as cp__, a__, f__ and so on) will no longer contain these prefixes in the generated dataset property identifiers. This should make it easier for you to work with these properties when writing in MAQL.

Learn More:

Prepare Your Data

GoodData.UI SDK 9.0

GoodData.UI now supports React 18 and there is new Accelerator Toolkit: @gooddata/app-toolkit

Overall, GoodData.UI SDK 9.0 is mainly focused on adding supported technologies and improving migration.

Breaking changes:

  • Moving strictly to ECMAScript Modules

  • IE11 is no longer supported.

  • Dashboard Plugins Lifecycle introduction

  • @gooddata/catalog-export configuration changes.

  • Namespaces Removal

Python SDK 1.4

The new version 1.4 includes new documentation for GoodData Pandas and some QoL features. This version is tied to the latest version of GoodData.CN (2.4) and GoodData Cloud.

New features in Python SDK 1.4:

  • PDF, CSV, XLSX export support

  • Added dashboard permissions support

  • User Data Filters support

Quality of Life changes:

  • Unified API clients - gooddata-api-client

  • Added support for Python 3.11

Breaking Changes:

  • Dropped support for Python 3.7

Bug Fixes and Other Changes

Revised API Error Responses

In this release, we focused on enhancing the error responses from various API services by validating and fixing incorrect error codes and messages. The goal was to provide users with clearer and more informative responses, particularly when encountering errors.

  • Large OIDC ID tokens should no longer trigger the TooLongHttpLineException.

  • We fixed an issue that made it impossible to set dashboard permissions using the /actions/workspaces/:workspaceId/analyticalDashboards/:dashboardId/managePermissions API endpoint.

  • You can now import declarative layouts via PUT API calls even if they contain invalid objects. Similarly you can export declarative layouts together with any invalid objects that are stored within using GET API calls. This should provide some additional flexibility when you are reusing older backups or when you are debugging.

  • We have resolved issues with broken analytics in children workspaces during the declarative PUT LDM process.

  • To simplify log analysis, all logs now return durationMs instead of duration. This is because duration contained a formatted duration that machines could not process. This could be a breaking change for you if you have automated processes built on top of the log output.

  • We have replaced the demo schema in the PostgreSQL database embedded in the AIO image with the new ecommerce_demo schema. As a result, the credentials for connecting to the sample databases have been updated accordingly: demo is now ecommerce_demo for PostgreSQL, and GOODDATA_DEMO_SCHEMA is now ECOMMERCE_DEMO_SCHEMA for Snowflake.

  • GoodData.CN's next release, expected in September 2023, will be labeled as version 3.0.0. This indicates the inclusion of multiple major updates. 

Limitations

Deleting Objects with Identical IDs

As a result of discontinuing object ID prefixes, two objects can share an identical object ID. For example, you might have had a workspace with the metric revenue and an inherited metric parent_workspace_id:revenue. But since prefixes are no longer supported, you cannot directly reference the parent_workspace_id:revenue object; both objects will have the ID revenue. In such cases, we apply the “parent wins strategy”, where requesting the conflicting object ID revenue will return only the highest object in the workspace hierarchy.

Objects created in version 2.4.0 and newer are correctly deleted if their parent object (with the same ID) is removed. If you migrate objects created in an older version to version 2.4.0, removing their parent object will not affect them and such objects will not be deleted. However, in such cases, requesting the conflicting object ID still returns the highest object in the workspace hierarchy.

Get the Community Edition

Pull the Docker Community Edition to get started with the latest release:

docker pull gooddata/gooddata-cn-ce:2.4.0

Upgrade Guides

Upgrade Docker Community Edition to 2.4

Suppose you are using a docker volume to store metadata from your Docker Community Edition container. Download a new version of the Docker Community Edition docker image and start it with your volume. All your metadata is migrated automatically.

Upgrade Docker to 2.4

To upgrade the Helm chart, follow the general upgrade guide.

Upgrading from a Version 2.2 or Older

As a result of the discontinued object ID prefixes we recommend you check API for conflicts of duplicate objects if you are upgrading your deployment from an older version to version 2.3 or 2.4.

To check for conflicts, use the API endpoints /api/v1/actions/workspaces/<parent_workspace_id>/overriddenChildEntities and /api/v1/actions/workspaces/<parent_child_id>/inheritedEntityConflicts.

 See List and Resolve Conflicting Object IDs for details.

Upgrading the Apache Pulsar Helm Chart

Before upgrading the GoodData CN helm chart, you must upgrade the Apache Pulsar helm chart to version 3.0.0. It is necessary to update your customized-values-pulsar.yaml file. Refer to the new example values in the installation article and make sure that you uncomment the following two sections in both the zookeeper and bookkeeper keys:

securityContext: 
fsGroupChangePolicy: "Always"

Change other site-specific parameters (like setting a proper storageClassName) and perform the helm upgrade:

helm repo update apache
helm upgrade --namespace pulsar --version 3.0.0 \
-f customized-values-pulsar.yaml \
pulsar apache/pulsar --wait --timeout 10m

Wait for the upgrade to finish and check the results:

kubectl -n pulsar get pod
NAME READY STATUS RESTARTS AGE
pulsar-bookie-0 1/1 Running 0 28m
pulsar-bookie-1 1/1 Running 0 28m
pulsar-bookie-2 1/1 Running 0 28m
pulsar-broker-0 1/1 Running 0 28m
pulsar-broker-1 1/1 Running 0 27m
pulsar-recovery-0 1/1 Running 0 28m
pulsar-zookeeper-0 1/1 Running 0 28m
pulsar-zookeeper-1 1/1 Running 0 28m
pulsar-zookeeper-2 1/1 Running 0 28m

If all pods are running, proceed with the GoodData CN helm upgrade.