Release Notes - GoodData.CN

GoodData.CN 1.1.0

Related products: GoodData.CN
GoodData.CN 1.1.0

New Features

Originally published 05/31/2021. List of limitations updated 06/02/2021.

  • GoodData.CN for Kubernetes is available as a Helm chart. You need a license key in order to run GoodData.CN in your Kubernetes environment.
  • You can use technical columns to filter your data in the workspace hierarchy. Columns with the prefix wdf_ are not used during model generation, however you can use them to filter data in your workspaces.

Changes

  • AQE caches were turned off by default as their behavior in multitenant use cases was not optimal. To migrate data sources from version 1.0 to 1.1 where this change is in effect, please use the migration procedure described in the Upgrade Guide section of these release notes.

Fixes

  • To reduce the occurrence of “not authorized” errors, we prolonged the duration of tokens from 1 hour to 24 hours.
  • Relationships in the logical data model (LDM) are now automatically generated for Vertica DB.
  • It is not possible to create API tokens for non-existing users anymore.
  • Declarative API (/api/entities/workspaces/<workspace is>/analyticalDashboards/) now works even when including visualization objects (?include=visualizationObjects).
  • Improved the error messages that appear in the following situations:
    • POST call to .../api/auth/users does not contain a password.
    • Missing user group during user creation through the API ../api/entities/users.
    • Data source is not available.
    • The hostname does not refer to an existing organization

Known Limitations

  • Logout does not work with Auth0 IdP or Google IdP.
  • Incompatibility with Amazon Cognito.
  • The column used as a Workspace Data Filter must be part of the logical data model. If the column is not part of the LDM, the filter is not applied when creating the physical data model.

Upgrade Guide

Preparation

  1. Set the environment variables.
    • If you used the demo environment from the GoodData.CN Community Edition (CE) image, use the following values:

      export ENDPOINT=http://localhost:3000

      export API_TOKEN=YWRtaW46Ym9vdHN0cmFwOmFkbWluMTIz

    • If you set up your own environment, use the values specific to your environment.
  2. Install a JSON command-line processor (for example, “jq”).

Back Up the Current Working Environment

If you want to start with a new environment after the upgrade, you can either

  • Back up only a specific portion of the metadata (for example, only data sources or users)
    or
  • Skip this step completely.

Back Up the Data Sources

Execute the following statement to save all the data sources as files named data-source_<id>.json in the /tmp directory:

for i in $(
  curl -s -H "Authorization: Bearer $API_TOKEN" \
    -X GET "$ENDPOINT/api/entities/dataSources" |
    jq -r '.data[].id'
); do
  echo "Exporting Data Source $i"
  curl -s -H "Authorization: Bearer $API_TOKEN" \
    -X GET $ENDPOINT/api/entities/dataSources/$i \
  > /tmp/data-source_$i.json; \
done

The passwords to the databases will not be included in the backup files. Ensure that you remember them or have them stored separately.

Note: Back up the data sources if you want to also back up and then restore the physical data model.

Back Up the Physical Data Model

Execute the following statement to save all the physical data models as files named pdm_<id>.json in the /tmp directory:

for i in $(
  curl -s -H "Authorization: Bearer $API_TOKEN" \
    -X GET "$ENDPOINT/api/entities/dataSources" |
    jq -r '.data[].id' \
); do \
  echo "Exporting PDM of Data Source $i"
  curl -s -H "Authorization: Bearer $API_TOKEN" \
    -X GET $ENDPOINT/api/layout/dataSources/$i/physicalModel \
  > /tmp/pdm_$i.json; \
done

Back Up the Logical Data Models and the Analytical Models of All Workspaces

Execute the following statement to save all the logical data models and analytical models of all your workspaces as a file named all-workspaces.json in the /tmp directory:

curl -X GET $ENDPOINT/api/layout/workspaces \
  -H "Authorization: Bearer $API_TOKEN" \
  > /tmp/all-workspaces.json

Back Up the Users and User Groups

The default admin group and both the admin user and the demo user will be automatically created when you start the new GoodData.CN CE image. If you have added other users to your current environment, you will have to re-add them after the upgrade.

Upgrade Your GoodData.CN

  1. Stop your current GoodData.CN CE image.
  2. Download the latest GoodData.CN CE image from hub.docker.com.
  3. Start the new GoodData.CN CE image as usual.

Initialize the Working Environment

Important! The Demo relational database model has changed with this update. If you initialize using a logical data model/physical data model related to this relational model, some measures, insights, and dashboards may stop working.
 
Use the procedure found in Demo Model to return to the previous version of the demo relational database model. The version 1.0 demo model can be found as a .zip file here, demo
 

Restore the Data Sources

  1. Prepare the passwords to your database because you will be prompted to enter them.
    For the password of the demo data source (demo-ds) see Register Datasource by API.
  2. Execute the following statement to restore the data sources from the files named data-source_<id>.json in the /tmp directory:
for i in /tmp/data-source_*.json ; do
  ds_name=$(basename $i .json)
  echo "Processing $ds_name";
  DB_PASSWORD=$(bash -c 'read -s -p "Enter password: " X; echo $X');
 echo "Updating password and removing deprecated fields in DataSource $ds_name"
jq ".data.attributes.password = \"$DB_PASSWORD\"" < $i | jq \
'del(.data.attributes.enableCaching)' | \
curl -X POST $ENDPOINT/api/entities/dataSources \
    -H "Content-Type:application/vnd.gooddata.api+json" \
    -H "Authorization: Bearer $API_TOKEN" \
    -d @-
done

Restore the Physical Data Model

Execute the following statement to restore all the physical data models from the files named pdm_<id>.json in the /tmp directory:

for i in /tmp/data-source_*.json; do
  id=$(jq -r '.data.id' < $i)
  echo "Restoring PDM of DataSource $id"
  curl -X PUT $ENDPOINT/api/layout/dataSources/$id/physicalModel \
    -H "Content-Type:application/json" \
    -H "Authorization: Bearer $API_TOKEN" \
    -d@/tmp/pdm_${id}.json; \
done

Restore the Logical Data Model and the Analytical Model

Execute the following statement to restore all the logical data models and analytical models of all your workspaces from the file named all-workspaces.json in the /tmp directory:

curl -X PUT $ENDPOINT/api/layout/workspaces \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type:application/json" \
  -d @/tmp/all-workspaces.json

Add the Users and User Groups

The default admin group and both the admin user and the demo user have been automatically created when you started the new GoodData.CN CE image. If you had other users in your previous installation, re-add them.