GoodData.CN 2.1.0

Released September 8th, 2022.New FeaturesCustomizable AppearanceYou can now customize the color schemes of your GoodData.CN deployment using the newly added Appearance settings. You can create custom themes for your dashboard and analytical designer, as well as color palettes for your visualization.The color schemes are applied to the organization as a whole by default, but you can use different themes for different workspaces via API.Please note that this feature is currently not available in GoodData.CN Community Edition.Learn more:Customize AppearanceSupport for Filtering of Empty Attribute ValuesIn GoodData.CN, attribute filters now support the empty (NULL) values.You can now include or exclude these empty values from your filters in MAQL definitions or directly in Analytical Designer or Dashboards.Learn more:Filter Visualizations by Attributes and DatesRelational OperatorsSupport for Time ZonesYou can now configure time zones for your whole organization, or individual workspaces or users via API.If not specifically configured, users inherit time zone settings from their workspace; workspaces inherit the time zone settings from their parent workspace or organization.With correct time zones, your users can always see relevant data when they filter to, for example, Today or Last hour.Notes:If you use the TIMESTAMPTZ data type and you are a current GoodData.CN user, scan your data sources again to detect the columns with the time zone information. We recommend configuring the time zone for the organization or workspace, so that you always see relevant data (the default is UTC)Learn more:Manage Time ZonesOrder of Items in Stacked ChartsTo improve the readability of charts with stacked items, we have reversed the order of the items displayed.In bar charts, column charts, and stacked area charts, the order of the items now corresponds with the left-to-right order in the legend.New Entitlements APIWe have expanded the previously introduced API endpoint /actions/resolveEntitlements.Organization administrators can now get information about the current number of used workspaces and users from in license.We have also introduced a new API endpoint /actions/collectUsage that displays how many workspaces and users currently exist in your organization. Learn more:View EntitlementsView UsageNew API Filter EntityYou can now filter workspace entities using the origin=ALL|PARENTS|NATIVE filter to get only the workspace itself, or only its parent workspaces, or both. Learn more:OriginConfigurable CSP For OrganizationsControl hostname restrictions for your GoodData deployment with Content Security Policy (CSP). Your organization's CSP directives can be configured using the new API endpoint /entities/cspDirectives.Learn more:Enable CSP for an OrganizationEnd of Beta For Permissions After months of testing we now consider permissions to be a fully tested feature and no longer in beta. Our thanks goes to all the early adopters.Learn more:Manage PermissionsFixes and UpdatesYou can now set a custom Timeout duration when connecting to Google BigQuery, allowing you to increase the duration past the 10 second default. We fixed an issue where queries that return large amounts of data, on the order of millions of rows, would fail due to cache memory issues. GoodData.CN now uses Redshift driver version 2.1.0.9 and Snowflake driver version 3.13.21. GoodData.CN now uses Apache Pulsar 2.9.3. Please note that this will require you to update customized-values-pulsar.yaml when upgrading to GoodData.CN 2.1, for more information, see Upgrade GoodData.CN to 2.1 below.Get the Community EditionPull the GoodData.CN Community Edition to get started with the latest release:docker pull gooddata/gooddata-cn-ce:2.1.0Upgrade GuidesUpgrade GoodData.CN Community Edition to 2.1Suppose you are using a docker volume to store metadata from your GoodData.CN CE container. Download a new version of the GoodData.CN CE docker image and start it with your volume. All your metadata is migrated automatically.Upgrade GoodData.CN to 2.1Preload updated Custom Resource Definition (CRD) for Organization resources. Due to the helm command limitation, it is impossible to update CRD automatically by Helm. Therefore it is necessary to update this CRD manually by following this procedure: Download and extract gooddata-cn helm chart to an empty directory on local disk. helm pull gooddata/gooddata-cn --version 2.1.0 --untar Update modified CRD in the cluster where the older GoodData.CN release is deployed: kubectl apply -f gooddata-cn/crds/organization-crd.yaml You can clean local extracted helm chart rm-r gooddata-cn The new version of Apache Pulsar in GoodData.CN 2.1 requires you update the customized-values-pulsar.yaml. The following two lines need to be added to the Pulsar broker configuration: systemTopicEnabled: "true" topicLevelPoliciesEnabled: "true" Note that you may need to restart the broker pod after making this change, or just uncomment the restartPodsOnConfigMapChange: true line. See Use Customized values.yaml for Pulsar that contains the updated version of customized-values-pulsar.yaml with these changes already integrated. If you are using embedded PostgreSQL database, refer to the following Upgrade Postgresql-ha Helm Chart section for instructions on how to upgrade it. Perform a rescan of your data source with replace mode, to create an up-to-date version of the physical data model and to avoid any unwanted errors when regenerating the logical data model.Upgrade Postgresql-ha Helm ChartIf you're using external PostgreSQL database (when you deployed gooddata-cn helm chart with option deployPostgresHA: false), you can skip this step because it is not relevant for your deployment.If you're using embedded PostgreSQL database (with deployPostgresHA: true set in values.yaml), you will need to perform the following process to upgrade postgresql-ha helm chart from version 8.6.13 to 9.1.5. The upgrade includes migration of PostgreSQL database version from 11 to 14. Due to the nature of the upgrade, this action will cause a service disruption. Please schedule maintenance window for this operation.Important Notes:All commands must end successfully. Any error must be addressed properly to avoid data loss. Get familiar with the procedure on test environment before applying it to production. Always start the upgrade in an empty folder. Procedure creates helper files for rollback purposes. If two upgrade procedures are executed from the same folder, helper files from two environments mix up and rollback will not be possible without proper manual intervention. Procedure expects kubectl in version 1.23 or above because of parameter --retries of cp subcommand. It is possible to execute the procedure with older version. Just remove --retries and double-check complete data were transferred.Steps: If you have not done so already, create a /tmp/organization-layout.json JSON dump from your GoodData.CN 2.0.x organization layout. See Back Up the Organization. Set up your shell environment, make sure you change the following values: # namespace GoodData.CN is deployed toexport NAMESPACE=gooddata-cn# name of helm release used to deploy GoodData.CN export HELM_RELEASE=release-name# path to helm values file used to deploy GoodData.CNexport HELM_VALUES_FILE="values-gooddata-cn.yaml"# postgres name as specified in values.yaml postgresql-ha.nameOverrideexport PG_NAME=db# PG-HA admin user as defined in values.yaml postgresql-ha.postgresql.usernameexport PGUSER=postgres# PG-HA admin user password as defined in values.yaml postgresql-ha.postgresql.password export PGPASSWORD=$(cat pg_password.txt)export PGHOST=${HELM_RELEASE}-${PG_NAME}-postgresql-0# helm release name of temporary PG in destination version started to execute pg_dumpexport TMP_PGDUMP_RELEASE=tmp-pg-dumpexport TMP_PGDUMP_POD=${TMP_PGDUMP_RELEASE}-postgresql-0# location of dumps in temporary containerexport DUMP_LOCATION=/bitnami/postgresql/dumps Disable access to your GoodData.CN application: helm upgrade --namespace$NAMESPACE--version 2.0.1 \ --wait--timeout 7m -f$HELM_VALUES_FILE\ --set metadataApi.replicaCount=0 \ --set sqlExecutor.replicaCount=0 \ --set dex.replicaCount=0 \ $HELM_RELEASE gooddata/gooddata-cn Note that once the command finishes, users will see Internal Server Error message when trying to access any deployment organization. Deploy a temporary container to dump your data into: cat << EOT > /tmp/values-${TMP_PGDUMP_RELEASE}.yamlauth: postgresPassword: dumpdataprimary: persistence: enabled: falsereadReplicas: replicaCount: 0EOThelm upgrade --install--namespace$NAMESPACE--version 11.6.6 \ --wait--timeout 2m --values /tmp/values-${TMP_PGDUMP_RELEASE}.yaml \ ${TMP_PGDUMP_RELEASE} bitnami/postgresql Enable network access between gooddata-cn-db-pgpool and tmp-pg-dump-postgresql: cat << EOT > /tmp/network-access-tmp-pg-2-prod-pg.yamlapiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: namespace: $NAMESPACE name: $TMP_PGDUMP_RELEASE-ingressspec: ingress: - from: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: $NAMESPACE podSelector: matchLabels: app.kubernetes.io/instance: $TMP_PGDUMP_RELEASE app.kubernetes.io/name: postgresql ports: - port: 5432 protocol: TCP podSelector: matchLabels: app.kubernetes.io/component: postgresql app.kubernetes.io/instance: $NAMESPACE app.kubernetes.io/name: $PG_NAME policyTypes: - IngressEOTkubectl apply -f /tmp/network-access-tmp-pg-2-prod-pg.yaml List available databases in the postgres-ha deployment: kubectl -n$NAMESPACEexec$PGHOST--env PGPASSWORD=$PGPASSWORD psql -U postgres -c"\l" Pick databases to be preserved. Use their names as input for variable USER_DBS_TO_TRANSFER in the next step. Note that: databases md, execution and dex are always preserved databases template0 and template1 must be always skipped Dump databases that you want preserved, edit the USER_DBS_TO_TRANSFER and USER_ROLES_BY_PG_HA values: # space separate list of user DBs to be dumped, system DBs md, execution and dex are included automaticallyexport USER_DBS_TO_TRANSFER="tigerdb"# space separated list of user-defined PG roles delivered by postgresql-ha helm chart;# the roles will be excluded from roles dump as they are created automatically during PG-HA ecosystem provisioning;# roles repmgr, postgres and executor are excluded automaticallyexport USER_ROLES_BY_PG_HA=""cat << "EOT" > ./dump-pg-dbs.sh#!/bin/bashset -xset -ePGHOST_IP=$(kubectl get pod -n$NAMESPACE$PGHOST--template'{{.status.podIP}}')kubectl -n $NAMESPACE exec $TMP_PGDUMP_POD -- mkdir -p $DUMP_LOCATION# exclude all the roles created automatically by:# - PG-HA chart # - postgres installation# - GD charttime kubectl exec -it -n $NAMESPACE$TMP_PGDUMP_POD -- bash -c "env PGPASSWORD=$PGPASSWORD \ pg_dumpall -h $PGHOST_IP -U $PGUSER --roles-only > /tmp/0_dump_pg_roles_all.sql"ROLES_TO_EXCLUDE="repmgr postgres executor"if [[ "$USER_ROLES_BY_PG_HA" != "" ]]; then ROLES_TO_EXCLUDE="${ROLES_TO_EXCLUDE}$USER_ROLES_BY_PG_HA"fiROLES_TO_EXCLUDE=$(echo$ROLES_TO_EXCLUDE | tr' ''|')kubectl exec -n $NAMESPACE$TMP_PGDUMP_POD -- bash -c "grep -i -v \ -E \"^(CREATE|ALTER) ROLE (${ROLES_TO_EXCLUDE})\"\ /tmp/0_dump_pg_roles_all.sql | gzip > $DUMP_LOCATION/0_dump_pg_roles.sql.gz"# dump selected databasesALL_DBS_TO_TRANSFER="md execution dex ${USER_DBS_TO_TRANSFER}"ITER_ID=1for db in $ALL_DBS_TO_TRANSFER; do DUMP_DEST_FILE="$DUMP_LOCATION/${ITER_ID}_dump_pg_db_${db}.sql.gz" echo "Creating dump of DB ${db} to file ${DUMP_DEST_FILE}" time kubectl exec -it -n $NAMESPACE$TMP_PGDUMP_POD -- bash -c "env PGPASSWORD=$PGPASSWORD \ pg_dump -h $PGHOST_IP -U $PGUSER --quote-all-identifiers --create ${db} | gzip > $DUMP_DEST_FILE" ITER_ID=$(($ITER_ID+1))doneEOTchmod 754 dump-pg-dbs.sh./dump-pg-dbs.sh The script first dumps only roles, those are PostgreSQL instance level definitions. After that, databases are dumped one by one. Before moving forward, verify that temporary POD contains all the requested dumps. It means: 3 dumps (files) for md, dex and execution databases 1 dump for roles 1 dump for each database specified in USER_DBS_TO_TRANSFER variable kubectl exec-n$NAMESPACE$TMP_PGDUMP_POD-- bash -c"ls -la $DUMP_LOCATION" (Optional) Download dumps to local machine for backup: Note: This step requires kubectl in version 1.23 or above. The version 1.23 adds parameter --retries kubectl exec-n$NAMESPACE$TMP_PGDUMP_POD-- bash -c"cd $DUMP_LOCATION/../; tar cf dumps.tar dumps/*"kubectl cp-n$NAMESPACE--retries-1$TMP_PGDUMP_POD:/bitnami/postgresql/dumps.tar ./dumps.tar# verify, data were transferred completely - compare MD5 hashkubectl exec-n$NAMESPACE$TMP_PGDUMP_POD--md5sum$DUMP_LOCATION/../dumps.tarmd5sum ./dumps.tar Remove postgresql-ha: helm upgrade --namespace$NAMESPACE--version 2.0.1 \ --wait--timeout 2m -f$HELM_VALUES_FILE\ --set metadataApi.replicaCount=0 \ --set sqlExecutor.replicaCount=0 \ --set dex.replicaCount=0 \ --setdeployPostgresHA=false\ $HELM_RELEASE gooddata/gooddata-cn Remove persistent volume claims and backup related persistent volumes: cat << "EOT" > ./backup-pvs.sh#!/bin/bashset -xset -ePV_NAME_BACKUP_PREFIX=pv_name_backupPVC_BACKUP_PREFIX=pvc_bckPVC_PV_LINES=$(kubectl get pvc -n $NAMESPACE --sort-by=.metadata.name \--selector="app.kubernetes.io/component=postgresql,app.kubernetes.io/instance=${HELM_RELEASE},app.kubernetes.io/name=${PG_NAME}" \-o jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.volumeName}{"\n"}{end}')echo "$PVC_PV_LINES" | while read -r line; do PVC_INSTANCE=$(echo $line | cut -f 1 -d ' ') PV_INSTANCE=$(echo $line | cut -f 2 -d ' ') # make sure PV is not deleted by k8s after PVC is removed echo "Setting Retain policy for PV=${PV_INSTANCE}" kubectl patch pv "$PV_INSTANCE" -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' # remember PV name for rollback purposes PV_NAME_BACKUP_FILE="${PV_NAME_BACKUP_PREFIX}_${PV_INSTANCE}" echo "Creating PV name backup as $PV_NAME_BACKUP_FILE" touch $PV_NAME_BACKUP_FILE # Backup PVC definition for rollback purposes PVC_BCK_FILE="${PVC_BACKUP_PREFIX}_$PVC_INSTANCE.yaml" echo "Creating PVC backup file $PVC_BCK_FILE" kubectl get pvc -n $NAMESPACE $PVC_INSTANCE -o yaml > $PVC_BCK_FILE # delete PVC echo "Deleting PVC $PVC_INSTANCE" kubectl delete pvc -n $NAMESPACE $PVC_INSTANCEdoneEOTchmod 754 backup-pvs.sh./backup-pvs.sh Upgrade chart to 2.1.0, this includes upgrade of postgresql-ha chart to 9.x.x: helm upgrade --namespace$NAMESPACE--version 2.1.0 \ --wait--timeout 7m -f$HELM_VALUES_FILE\ --set metadataApi.replicaCount=0 \ --set sqlExecutor.replicaCount=0 \ --set dex.replicaCount=0 \ --setdeployPostgresHA=true\ $HELM_RELEASE gooddata/gooddata-cn Verify postgres DB version: kubectl exec-n$NAMESPACE$PGHOST-c postgresql -- psql --version Enable network access between gooddata-cn-db-pgpool and tmp-pg-dump-postgresql: cat << "EOT" > ./restore-data.sh#!/bin/bashset -xset -ePGHOST_IP=$(kubectl get pod -n $NAMESPACE $PGHOST --template '{{.status.podIP}}') DUMP_FILES=$(kubectl exec -n $NAMESPACE $TMP_PGDUMP_POD -- ls $DUMP_LOCATION)for dump_file in $DUMP_FILES; do echo "Restoring dump ${dump_file}" time kubectl exec -it -n $NAMESPACE $TMP_PGDUMP_POD -c postgresql -- bash -c "\ gzip -cd $DUMP_LOCATION/$dump_file | \ env PGPASSWORD=$PGPASSWORD psql -h $PGHOST_IP -U $PGUSER"doneEOTchmod 754 restore-data.sh./restore-data.sh Verify that all databases exist in a PostgreSQL instance: kubectl -n$NAMESPACEexec$PGHOST--env PGPASSWORD=$PGPASSWORD psql -U postgres -c"\l" Enable application: helm upgrade --namespace$NAMESPACE--version 2.1.0 \ --wait--timeout 7m -f$HELM_VALUES_FILE\ $HELM_RELEASE gooddata/gooddata-cn Test the GoodData.CN deployment: Is it possible to log in? Does dashboard reports compute? Remove network policies: kubectl delete -f /tmp/network-access-tmp-pg-2-prod-pg.yaml Remove temporary PG deployed to create DB dumps: Warning: This operation drops all pg_dump backups. If step (8) was skipped backups will be lost. helm uninstall --namespace$NAMESPACE$TMP_PGDUMP_RELEASE RollbackIn case something goes wrong, you can use persistent volumes backed in step 7 to revert back to version 2.1.0.Steps: Disable access to the application and remove postgresql-ha: helm upgrade --namespace$NAMESPACE--version 2.1.0 \ --wait--timeout 2m -f$HELM_VALUES_FILE\ --set metadataApi.replicaCount=0 \ --set sqlExecutor.replicaCount=0 \ --set dex.replicaCount=0 \ --setdeployPostgresHA=false\$HELM_RELEASE gooddata/gooddata-cn Remove PVCs and backup new PVs: cat << "EOT" > ./remove-new-pvc.sh#!/bin/bashset -x set -ePV_NAME_BACKUP_PREFIX=pv14_name_backupPVC_BACKUP_PREFIX=pvc14_bckPVC_PV_LINES=$(kubectl get pvc -n $NAMESPACE --sort-by=.metadata.name \--selector="app.kubernetes.io/component=postgresql,app.kubernetes.io/instance=${HELM_RELEASE},app.kubernetes.io/name=${PG_NAME}" \-o jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.volumeName}{"\n"}{end}') echo "$PVC_PV_LINES" | while read -r line; do PVC_INSTANCE=$(echo $line | cut -f 1 -d ' ') PV_INSTANCE=$(echo $line | cut -f 2 -d ' ') # make sure PV is not deleted by k8s after PVC is removed echo "Setting Retain policy for PV=${PV_INSTANCE}" kubectl patch pv "$PV_INSTANCE" -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' PV_NAME_BACKUP_FILE="${PV_NAME_BACKUP_PREFIX}_${PV_INSTANCE}" # remember PV name for possible investigation purposes echo "Creating PV name backup as $PV_NAME_BACKUP_FILE" touch $PV_NAME_BACKUP_FILE # Backup PVC definition for rollback purposes PVC_BCK_FILE="${PVC_BACKUP_PREFIX}_$PVC_INSTANCE.yaml" echo "Creating PVC backup file $PVC_BCK_FILE" kubectl get pvc -n $NAMESPACE $PVC_INSTANCE -o yaml > $PVC_BCK_FILE # delete PVC echo "Deleting PVC $PVC_INSTANCE" kubectl delete pvc -n $NAMESPACE $PVC_INSTANCEdoneEOTchmod 754 remove-new-pvc.sh./remove-new-pvc.sh Restore original PVCs and bind them to PV backups: cat << "EOT" > ./restore-orig-pvc.sh#!/bin/bash set -xset -ePV_NAME_BACKUP_PREFIX=pv_name_backupPVC_BACKUP_PREFIX=pvc_bck # prepare original PVs to be joined by PVCsfor bck_pv in $(ls ${PV_NAME_BACKUP_PREFIX}*); do PV_INSTANCE=${bck_pv#"${PV_NAME_BACKUP_PREFIX}_"} echo "Making PV ${PV_INSTANCE} available" kubectl patch pv "$PV_INSTANCE" --type json -p '[{"op": "remove", "path": "/spec/claimRef"}]' echo "Setting Retain policy for PV=${PV_INSTANCE} to delete" kubectl patch pv "$PV_INSTANCE" -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}'done# restore original PVCsfor bck_pvc in $(ls ${PVC_BACKUP_PREFIX}*); do  PVC_INSTANCE=${bck_pvc#"${PVC_BACKUP_PREFIX}_"} echo "Creating PVC ${PVC_INSTANCE}" kubectl create -f $bck_pvcdoneEOTchmod 754 restore-orig-pvc.sh./restore-orig-pvc.sh Install application in the original version: helm upgrade --namespace $NAMESPACE --version 2.0.1 \ --wait--timeout 2m -f$HELM_VALUES_FILE\ --set metadataApi.replicaCount=0 \ --set sqlExecutor.replicaCount=0 \ --set dex.replicaCount=0 \ --setdeployPostgresHA=true\$HELM_RELEASE gooddata/gooddata-cn Verify postgres DB version: kubectl exec-n$NAMESPACE$PGHOST-c postgresql -- psql --version Enable application: helm upgrade --namespace$NAMESPACE--version 2.0.1 \ --wait--timeout 7m -f$HELM_VALUES_FILE\$HELM_RELEASE gooddata/gooddata-cn Test the GoodData.CN deployment after rollback: Is it possible to log in? Do visualizations on dashboard compute?

Related products:GoodData.CN

GoodData Platform - August 11, 2022

GoodData.UI Version 8.10 Available User Group Dashboard Permissions Propagate with the LCM Bricks New Default Behavior for Synchronizing User Groups New Default Behavior for Responsive and Pixel Perfect Shared Dashboards Users can now be Removed from User Groups GoodData.UI Version 8.10 AvailableWe have released Version 8.10 of GoodData.UI, our powerful library for building analytical applications powered by GoodData.What's new in GoodData.UI Version 8.10Support for Gooddata Cloud GoodData Cloud is now fully supported by GoodData.UI from version 8.10 Dashboard selectors are public now The filterContext, user, and permission selectors are now public. Execution definition by slices/series can be used without React You can use the @alpha version of DataViewLoader from @gooddata/sdk-ui Additional fixes and improvementsUser Group Dashboard Permissions Propagate with the LCM BricksThe release brick, provisioning brick, and the rollout brick now support User Group Dashboard Permissions. They have been expanded with additional parameters and new default behaviors.New Default Behavior for Synchronizing User GroupsThe provisioning and rollout brick now synchronize user groups from master workspaces to client workspaces. Only the user groups are synchronized. The members of the user group are not included. The release brick already had this support.New Default Behavior for Responsive and Pixel Perfect Shared DashboardsIn a segment's master workspace, dashboards can be private or shared with all or some users/user groups.At release, rollout, and provisioning, sharing permissions are now propagated in the following way:Dashboards set as private in the master workspace remain private in the client workspaces. Dashboards shared with all users in the master workspace become dashboards shared with all users in the client workspaces. Dashboards shared with some users/user groups in the master workspace become dashboards shared with some user groups in the client workspaces.The same logic applies for development workspaces and master workspaces.To disable the propagation of the user group permissions for shared dashboards, specify the following new parameters in the release, provision, and rollot bricks according to your dashboard type:disable_kd_dashboard_permission true if your dashboards are built in the Responsive disable_pp_dashboard_permission trueif your dashboards are built in the Pixel-perfect UI.Users can now be Removed from User GroupsUsers can now be removed from user groups through the Users Brick. To remove a user from a user group, the user_group input must be blank or null for a user.Learn More:Use Groups to Share Dashboards with Multiple UsersShare DashboardsRelease BrickProvisioning BrickRollout BrickUsers Brick

Related products:GoodData Platform

GoodData.CN 2.0.0

Released July 14th, 2022.New FeaturesWe added a new Developer settings page that lets you perform the following actions within the GoodData web UI: Create and manage cross-origin resource sharing (CORS). See Enable CORS For an Organization. Create and manage API authentication tokens. See Use an API Token for Authentication. Secondary label functionality has been expanded upon. You can now add multiple labels to an attribute and use these labels to customize the way your data is presented in visualizations. See Manage Labels. You can now sort attributes in ascending or descending order using one of its labels, giving you an additional layer of control over the way data is displayed in your visualizations. See Sort Labels. We added support for M:N mapping. See Many-to-Many in Logical Data Models. We have reworked the data source administration UI in the Data modeller. Connecting to and editing connections to data sources should be more user-friendly now. Time filtering in visualizations has been expanded. You can create multiple filters with different dimensions for your visualizations, exclude current periods to remove incomplete data, and compare your data with previous time periods. See Filter Visualizations by Attributes or Dates. Pivot tables now support subtotals. See Table Totals. Metric editor now supports multiple tabs even when it is opened in the Analyze tab. Multiple axis titles are now displayed on charts that have multiple Y-axis (there are multiple items in the View By bucket). You can now customize the URL where the issued OAuth2 Authorization Code is sent from the OIDC provider to the GoodData backend (the so-called "OIDC redirect URL"). Expanded support for Snowflake: We now support week granularity of the date dimension. We now support lower-cased DB and WAREHOUSE names. We now support proxy settings for JDBC URL for Snowflake data sources. See Permitted parameters. Fixes and UpdatesApache Pulsar has been updated to version 2.9.2. When you stack a bar chart by an attribute, the bars are now be correctly sorted by their total value. You are now be able to embed a dashboard with filtered tags than contain spaces between words. Fixed a bug where the collectLabelElements API endpoint would return elements even if a given offset was greater than total count of elements. The Hyperlink in attribute label option in the Drill to URL are now be available in Dashboards as well.Breaking ChangesPostrgreSQL database in GoodData.CN Community Edition all-in-one image was upgraded to version 13. If you're upgrading from Community Edition 1.7 to 2.0, and want to migrate all your data to the new version. See Upgrade Guides. The API is now versioned. All /api/<endpoint> calls have to be updated to /api/v1/<endpoint>. See Versioning. The pivot table API layout has been reworked as a consequence of the addition of subtotals to pivot tables. The grandTotals and includedDimensions objects have been renamed to totals and totalDimensions, among other breaking changes. The primary property in logicalModel declarative API has been deprecated. Attributes are now mapped directly to database columns using the sourceColumn property in Logical Data Model declarative and entity APIs.Deprecation AnnouncementsWe deprecated support for Kubernetes older than version 1.21. We deprecated the tablePrefix and viewPrefix parameters in the API endpoint generateLogicalModel. We deprecated the API endpoint license.Get the Community EditionPull the GoodData.CN Community Edition to get started with the latest release:docker pull gooddata/gooddata-cn-ce:2.0.0Upgrade GuidesFollow these guides if you want to upgrade your GoodData deployment from 1.7 to 2.0 without losing your data in the process.For GoodData.CN (Kubernetes Edition) users, follow the instructions in Upgrade GoodData.CN to 2.0.For GoodData.CN Community Edition users: To upgrade your Community Edition while keeping the same organization layout see Upgrade GoodData.CN Community Edition to 2.0 - Including Your Organization Layout. To upgrade your community Edition while keeping the same organization layout and your database, see Upgrade GoodData.CN Community Edition to 2.0 - Including Your Organization Layout and Database. Upgrade GoodData.CN to 2.0Before upgrading gooddata-cn helm chart, upgrade your Kubernetes cluster to version 1.21 (up to 1.24).Upgrade Apache Pulsar deployment to version 2.9.2.Preload updated Custom Resource Definition (CRD) for Organization resources. Due to the helm command limitation, it is impossible to update CRD automatically by Helm. Therefore it is necessary to update this CRD manually by following this procedure: Download and extract gooddata-cn helm chart to an empty directory on local disk. helm pull gooddata/gooddata-cn --version 2.0.0 --untar Update modified CRD in the cluster where the older GoodData.CN release is deployed: kubectl apply -f gooddata-cn/crds/organization-crd.yaml You can clean local extracted helm chart rm -r gooddata-cn Upgrade Postgresql-ha Helm ChartIf you're using external PostgreSQL database (when you deployed gooddata-cn helm chart with option deployPostgresHA: false), you can skip this step because it is not relevant for your deployment.If you're using embedded PostgreSQL database (with deployPostgresHA: true set in values.yaml), you will need to perform the following process to upgrade postgresql-ha helm chart. Due to the nature of the upgrade, this action will cause a service disruption. Please schedule maintenance window for this operation. Scale down PostgreSQL StatefulSet to single replica: kubectl -n gooddata-cn scale --replicas=1 statefulset gooddata-cn-db-postgresql Perform GoodData.CN helm chart upgrade to version 2.0.0 according to the general upgrade guide, but append the following extra parameters on command line of helm upgrade command: --set postgresql-ha.postgresql.replicaCount=1 \--set postgresql-ha.postgresql.upgradeRepmgrExtension=true Reapply the GoodData.CN helm chart version 2.0.0 using helm upgrade command, but without two extra paramteters mentioned in the previous step. It will automatically scales up PostgreSQL StatefulSet to three pods. Upgrade GoodData.CN Community Edition to 2.0 - Including Your Organization LayoutAs an administrator, you may want to import an organization dump from the version 1.7 / 1.7.x deployment into the version 2.0 deployment. Before you can do so, you need to add sourceColumn to an attribute definition, that is the same as for label with flag primary=true, then remove the label with flag primary=true and finally remove flag primary=false from other labels. The label with flag primary=true is no longer part of the declarative document, and it will be automatically recreated on import from the attribute definition.PostgreSQL database data are deleted from the volume as part of procedure. In our instructions we are using gd-data:/data as an example.Steps: If you have not done so already, create a /tmp/organization-layout.json JSON dump from your GoodData.CN 1.7.x organization layout. See Back Up the Organization. Use the following command to create an updated version of the organization-layout.json dump file: jq ".workspaces[].model.ldm.datasets[].attributes[] |= ( .sourceColumn = (.labels[] | select (.primary == true) | .sourceColumn) | .labels = [ (.labels[] | if (.primary == false) then del(.primary) else empty end) ])" /tmp/organization-layout.json > /tmp/updated-organization-layout.json Stop your GoodData.CN 1.7 instance. Remove old PostgreSQL data and prepare volume for start of GoodData.CN 2.0: docker run --rm -v gd-data:/data busybox:1.34 rm -rf /data/postgresqldocker run --rm -v gd-data:/data busybox:1.34 rm -rf /run/s6 Start the GoodData.CN 2.0 instance. Import the updated-organization-layout.json file into your GoodData.CN 2.0 deployment. See Restore the Organization. Upgrade GoodData.CN Community Edition to 2.0 - Including Your Organization Layout and DatabaseIn GoodData Community Edition version 2.0 the PostgreSQL database has been updated to version 13. This upgrade guide lets you update the database without losing any of your data.Please note that you can upgrade the PostgreSQL database only if your current GoodData Community Edition is using a named docker volume to keep the data. In our instructions we are using gd-data:/data as an example.Steps: Export your organization layout using the API. This will let you verify the upgrade was successful at a later point in this procedure. Turn off your current Community Edition deployment: docker stop -t 60 <container-running-old-version>docker rm <container-running-old-version> Prepare environmental variables: PGDATABCK=/data/postgresql-bckPGDATAOLD=/data/postgresql-oldPGDATANEW=/data/postgresqlCURR_DATETIME="$(date +'%Y-%m-%d_%H:%M')"CHECK_DATA="/data/check_${CURR_DATETIME}"UPGRADE_DATA="/data/upgrade_${CURR_DATETIME}" Create a backup. This is for rollback purposes only and can be deleted after a successful migration: docker run --rm -v gd-volume:/data busybox:1.34 cp -a $PGDATANEW/ $PGDATABCK Create another version of the database which is going to be upgraded: docker run --rm -v gd-volume:/data busybox:1.34 mv $PGDATANEW/ $PGDATAOLD Ensure the upgrade is possible: docker run --rm -v gd-volume:/data \-e PGDATAOLD=$PGDATAOLD -e PGDATANEW=$PGDATANEW \--workdir="${CHECK_DATA}" \tianon/postgres-upgrade:11-to-13 --link --check \-o "-c config_file=/data/postgresql/postgresql.conf -c hba_file=/data/postgresql/pg_hba.conf" Upgrade: docker run --rm -v gd-volume:/data \-e PGDATAOLD=$PGDATAOLD -e PGDATANEW=$PGDATANEW \--workdir="${UPGRADE_DATA}" \tianon/postgres-upgrade:11-to-13 --link \-o "-c config_file=/data/postgresql/postgresql.conf -c hba_file=/data/postgresql/pg_hba.conf"# Set correct user and group for scripts created by upgrade proceduredocker run --rm -v gd-volume:/data busybox:1.34 chown -R 102:103 "$UPGRADE_DATA" Launch GoodData Community Edition 2.0. Ensure it starts properly. Collect database statistics: docker exec --workdir "$UPGRADE_DATA" -u postgres <container-running-version-2.0> bash -c "./analyze_new_cluster.sh" You can verify the contents of the organization by creating an export of the organization layout and comparing it to the export you created in step 1. If the upgrade was successful, you may delete the backup: docker exec <container-running-version-2.0> rm -rf $PGDATABCK and the base data for the upgrade: docker exec --workdir "$UPGRADE_DATA" <container-running-version-2.0> bash -c "./delete_old_cluster.sh" RollbackIn case something goes wrong, you can use the backup you have created in step 4 to restore your database.Steps: Stop the current container running your GoodData Community Edition: docker stop -t 60 <container-running-old-version>docker rm <container-running-old-version> Restore your data: docker run --rm -v gd-volume:/data busybox:1.34 rm -rf $PGDATANEWdocker run --rm -v gd-volume:/data busybox:1.34 mv $PGDATABCK/ $PGDATANEW Launch the previous version of your GoodData Community Edition.

Related products:GoodData.CN

GoodData Platform - June 16, 2022

Analytical Designer: Embed Insights via GoodData.UI Analytical Designer: Number of Data Points in Charts Increased End-of-Support of TLS Version 1.0 and 1.1Analytical Designer: Embed Insights via GoodData.UITo simplify the process of embedding individual insights using GoodData.UI, you can now copy the embedding code directly from Analytical Designer.You can embed each insight as:A live insight that will reflect any changes to the original insight, or A permanent insight that embeds the current insight version and will always stay the same.To disable this feature, set the enableEmbedButtonInAD platform setting to false.Learn more:Embed InsightsConfigure Various Features via Platform Settings Analytical Designer: Number of Data Points in Charts IncreasedTo improve the experience with charts and avoid the Too many datapoints to display message, we increased the limit for displayed data points to 3,000.This limit applies to bar charts, bullet charts, column charts, combo charts, line charts, and stacked area charts.Learn more:Platform Limits End-of-Support of TLS Version 1.0 and 1.1Transport Layer Security (TLS) version 1.0 and 1.1 is no longer supported.How does this affect you?All modern web browsers and programming languages already support the newer versions of TLS (1.2 and higher). Unless you use obsolete software or unsupported systems, you are not affected.You may be affected if you are using an older version of the libraries or programming languages in your tools. To verify, check the documentation for your tool:Java: https://blogs.oracle.com/java/post/jdk-8-will-use-tls-12-as-default Microsoft Windows: https://docs.microsoft.com/en-us/security/solving-tls1-problem Python: https://docs.python.org/3/library/ssl.html Ruby: https://blog.rubygems.org/2018/02/24/tls-10-and-11-deprecation-notice.htmlACTION REQUIRED!Make sure that all your components and integrations use TLS version 1.2 or higher as soon as possible.What happens if you have not upgraded to the newer versions?The integration with the GoodData platform stops working.Learn more:For more information about the deprecation of support for TLS version 1.0 and 1.1, see Support for TLS Version 1.0 and 1.1 (for GoodData Classic, click here). For more information about TLS protocols, see Supported TLS Security Protocols and Ciphers (for GoodData Classic, click here).

Related products:GoodData Platform

GoodData Platform - June 2, 2022

Date filters in Dashboards and Analytical Designer End-of-Support of TLS Version 1.0 and 1.1Date filters in Dashboards and Analytical DesignerWe renamed the Floating range to Relative period so that the name better matches its function (relative periods filter data by date relative to today and adjust in time - for example, from yesterday to today, or from 2 month ago to the next month).You can now use the Relative period also when filtering insights in Analytical Designer (previously it was only available in Dashboards). In date filters in Analytical Designer when you filter using the preset date periods (last 12 month, last 30 days), you can now exclude the current period which usually includes incomplete data.If you want to disable these updates, set the enableAdFloatingDateRangeFilter platform setting to false.Learn more:Filters in Analytical DesignerDate Filters in DashboardsCustomize Date Filters in Dashboards  End-of-Support of TLS Version 1.0 and 1.1Transport Layer Security (TLS) version 1.0 and 1.1 is no longer supported.How does this affect you?All modern web browsers and programming languages already support the newer versions of TLS (1.2 and higher). Unless you use obsolete software or unsupported systems, you are not affected.You may be affected if you are using an older version of the libraries or programming languages in your tools. To verify, check the documentation for your tool:Java: https://blogs.oracle.com/java/post/jdk-8-will-use-tls-12-as-default Microsoft Windows: https://docs.microsoft.com/en-us/security/solving-tls1-problem Python: https://docs.python.org/3/library/ssl.html Ruby: https://blog.rubygems.org/2018/02/24/tls-10-and-11-deprecation-notice.htmlACTION REQUIRED!Make sure that all your components and integrations use TLS version 1.2 or higher as soon as possible.What happens if you have not upgraded to the newer versions?The integration with the GoodData platform stops working.Learn more:For more information about the deprecation of support for TLS version 1.0 and 1.1, see Support for TLS Version 1.0 and 1.1 (for GoodData Classic, click here). For more information about TLS protocols, see Supported TLS Security Protocols and Ciphers (for GoodData Classic, click here).

Related products:GoodData Platform

GoodData Platform - May 19, 2022

Self Service APIs for SSO Configuration Salesforce Downloader API Parameter Updates FINAL REMINDER: Use TLS Version 1.2 or Higher OnlySelf Service APIs for SSO ConfigurationThrough the API, GoodData domain administrators can now configure the ssoProvider parameter for PGP and SAML SSO implementations without the assistance of GoodData Support.Learn more:SAML SSO with GoodDataGoodData PGP Single Sign-OnSalesforce Downloader API Parameter UpdatesFor the Salesforce Downloader, the version parameter is now named api_version. The default value for the api_version parameter is 30.Learn more:Salesforce DownloaderFINAL REMINDER: Use TLS Version 1.2 or Higher OnlySupport for Transport Layer Security (TLS) version 1.0 and 1.1 is deprecated and will end on May 31, 2022.How does this affect you?All modern web browsers and programming languages already support the newer versions of TLS (1.2 and higher). Unless you use obsolete software or unsupported systems, you are not affected.You may be affected if you are using an older version of the libraries or programming languages in your tools. To verify, check the documentation for your tool:Java: https://blogs.oracle.com/java/post/jdk-8-will-use-tls-12-as-default Microsoft Windows: https://docs.microsoft.com/en-us/security/solving-tls1-problem Python: https://docs.python.org/3/library/ssl.html Ruby: https://blog.rubygems.org/2018/02/24/tls-10-and-11-deprecation-notice.htmlACTION REQUIRED!Make sure that all your components and integrations use TLS version 1.2 or higher as soon as possible.What will happen if you do not upgrade to the newer versions?When support for TLS version 1.0 and 1.1 ends on May 31, 2022, if you do not switch to a newer version of TLS, the integration with the GoodData platform will stop working.Learn more:For more information about the deprecation of support for TLS version 1.0 and 1.1, see Support for TLS Version 1.0 and 1.1 (for GoodData Classic, click here). For more information about TLS protocols, see Supported TLS Security Protocols and Ciphers (for GoodData Classic, click here).

Related products:GoodData Platform

GoodData Platform - May 5, 2022

Dashboards: Scheduled Export of Insights Analytical Designer: Sorting Data in Charts Dashboards: Hide Insight Titles Direct Data Distribution from MongoDB Connector for BI REMINDER: Use TLS Version 1.2 or Higher OnlyDashboards: Scheduled Export of InsightsOn Dashboards, you can now schedule exports of individual insights as well as the whole dashboard and receive them as attachments in regular emails.Dashboards are always exported as PDF files. Insights can be exported as raw data (CSV files) or as spreadsheets (XLSX files).You can manage all schedules directly on each dashboard (based on your user rights).Learn more:Schedule Automatic Emailing of Dashboards Analytical Designer: Sorting Data in ChartsIn a previous release, GoodData has introduced the possibility to sort data in insights in Analytical Designe alphabetically, numerically, or chronologically.This feature is now enabled by default.Learn more:Sort Data in Insight Dashboards: Hide Insight TitlesIn a previous release, GoodData has introduced the possibility to hide the titles of individual insights that you put on the dashboard.This feature is now enabled by default.Learn more:Create Dashboards Direct Data Distribution from MongoDB Connector for BIAutomated Data Distribution v2 (ADD v2) can now load data directly from MongoDB through the MongoDB Connector for BI.Learn more:Direct Data Distribution from Data Warehouses and Object Storage ServicesGoodData-MongoDB BI Connector Integration DetailsCreate a Data Source REMINDER: Use TLS Version 1.2 or Higher OnlySupport for Transport Layer Security (TLS) version 1.0 and 1.1 is deprecated and will end on May 31, 2022.How does this affect you?All modern web browsers and programming languages already support the newer versions of TLS (1.2 and higher). Unless you use obsolete software or unsupported systems, you are not affected.You may be affected if you are using an older version of the libraries or programming languages in your tools. To verify, check the documentation for your tool:Java: https://blogs.oracle.com/java/post/jdk-8-will-use-tls-12-as-default Microsoft Windows: https://docs.microsoft.com/en-us/security/solving-tls1-problem Python: https://docs.python.org/3/library/ssl.html Ruby: https://blog.rubygems.org/2018/02/24/tls-10-and-11-deprecation-notice.htmlACTION REQUIRED!Before May 31, 2022, make sure that all your components and integrations use TLS version 1.2 or higher.What will happen if you do not upgrade to the newer versions?When support for TLS version 1.0 and 1.1 ends on May 31, 2022, if you do not switch to a newer version of TLS, the integration with the GoodData platform will stop working.Learn more:For more information about the deprecation of support for TLS version 1.0 and 1.1, see Support for TLS Version 1.0 and 1.1 (for GoodData Classic, click here). For more information about TLS protocols, see Supported TLS Security Protocols and Ciphers (for GoodData Classic, click here).

Related products:GoodData Platform

GoodData Platform - April 21, 2022

Analytical Designer: Show Axis Names When Slicing by Two AttributesIn column charts and bar charts, you can now display the axis name even when you slice the chart by two attributes. This option is now enabled by default.Learn more:Configure Insight Properties Updated Explorer User RolesWe have updated the Explorer and Explorer (embedded) user roles with additional rights. Users with these roles can now also share dashboards.Learn more:Share DashboardsUser RolesUser Roles Permissions ACTION REQUIRED: Dashboard Plugins Configuration UpdateWe discovered a potential issue with existing Dashboard plugins (all the versions of GoodData.UI are affected). In certain situations using different versions of plugins on different dashboards in the same workspace may lead to unexpected errors.To prevent these problems, please perform the following actions for any Dashboard plugins you currently have:Update the webpack.config.js file in the root of your Dashboard plugin directory as shown in the diff. Build your Dashboard plugin again. Deploy the new build of the Dashboard plugin to your hosting.Learn more:Upgrade Dashboard Plugins REMINDER: Use TLS Version 1.2 or Higher OnlySupport for Transport Layer Security (TLS) version 1.0 and 1.1 is deprecated and will end on May 31, 2022.How does this affect you?All modern web browsers and programming languages already support the newer versions of TLS (1.2 and higher). Unless you use obsolete software or unsupported systems, you are not affected.You may be affected if you are using an older version of the libraries or programming languages in your tools. To verify, check the documentation for your tool:Java: https://blogs.oracle.com/java/post/jdk-8-will-use-tls-12-as-default Microsoft Windows: https://docs.microsoft.com/en-us/security/solving-tls1-problem Python: https://docs.python.org/3/library/ssl.html Ruby: https://blog.rubygems.org/2018/02/24/tls-10-and-11-deprecation-notice.htmlACTION REQUIRED!Before May 31, 2022, make sure that all your components and integrations use TLS version 1.2 or higher.What will happen if you do not upgrade to the newer versions?When support for TLS version 1.0 and 1.1 ends on May 31, 2022, if you do not switch to a newer version of TLS, the integration with the GoodData platform will stop working.Learn more:For more information about the deprecation of support for TLS version 1.0 and 1.1, see Support for TLS Version 1.0 and 1.1 (for GoodData Classic, click here). For more information about TLS protocols, see Supported TLS Security Protocols and Ciphers (for GoodData Classic, click here).

Related products:GoodData Platform

GoodData.CN 1.7.2

Released April 14th, 2022.New FeaturesThis is a patch release. There are no new features since release 1.7.0.FixesWe mitigated 0-day vulnerability CVE-2022-22965 in the Spring Boot framework. If you are using a BigQuery database, see BigQuery Database Driver Update below. We increased the maximum header size for API calls to support larger authentication cookies and fix issues with some Identity Providers. We removed ability to use proxy in Snowflake JDBC connection string because we found out behavior which was not secure in the multitenant environment.Get the Community EditionPull the GoodData.CN Community Edition to get started with the latest release:docker pull gooddata/gooddata-cn-ce:1.7.2Upgrade GuidesBigQuery Database Driver UpdateTo be able to upgrade Spring Boot to mitigate the 0-day vulnerability, we’ve also had to upgrade the gRPC library to version 1.45.1. Since the BigQuery database driver also relies on gRPC, it needs to be upgraded to at least version 1.2.22.To upgrade your existing deployment, please follow the guide for injecting custom JDBC drivers using the updated driver version.GoodData.CN Community EditionIf you are using a docker volume to store metadata from your GoodData.CN Community Edition (CE) container, download a new version of the GoodData.CN CE docker image and start it with your volume. All your metadata will be migrated.If you are not using a docker volume to store metadata from your GoodData.CN CE container, follow the version specific and general upgrade guides.GoodData.CN Production K8S EditionTo upgrade Helm chart, follow the general upgrade guide.

Related products:GoodData.CN

GoodData Platform - April 8, 2022

Analytical Designer: Sorting Data in Charts Dashboards: Hide Insight Titles GoodData.UI: End-of-Support of Version 7.x Analytical Designer: Sorting Data in ChartsGoodData is introducing the possibility to sort data in insights in Analytical Designer.You can organize your data alphabetically, numerically, or chronologically - whichever way suits your needs.Sorting is available for bar charts, column charts, area charts, combo charts, bullet charts, pie charts, donut charts, and heatmaps.This feature is currently disabled by default. To enable it, set the enableChartsSorting platform setting to true.Learn more:Sort Data in InsightConfigure Various Features via Platform Settings Dashboards: Hide Insight TitlesOn Dashboards, you can now hide the titles of individual insights that you put on the dashboard.This feature is disabled by default. To enable it, set the enableHidingOfWidgetTitle platform setting to true.Learn more:Create DashboardsConfigure Various Features via Platform Settings GoodData.UI: End-of-Support of Version 7.xVersion 7.x of GoodData.UI reached its end-of-support on March 31, 2022. Versions 7.x and older are no longer supported.How does it affect you?You are affected if you are using a version of GoodData.UI older than Version 8.x.ACTION REQUIRED!Upgrade your GoodData.UI to Version 8.x as soon as possible.Review the breaking changes in Version 8.0. Follow our step-by-step Migration Guide that will walk you through the migration process.What happens if you have not upgraded to Version 8.x?Version 7.x will receive neither new features nor bug fixes. Technical support is no longer provided. Although the version is still available for use, we do not recommend that you use it.Learn more:To learn more about how different versions of GoodData.UI go through the life cycle phases and what level of support you can expect when using a specific version, see Supported Versions and Compatibility.

Related products:GoodData Platform

GoodData Platform - March 24, 2022

Analytical Designer: Show Axis Names When Slicing by Two Attributes Dashboards: Improved Zooming in Geo Charts Load Configuration Enhancements for ADD v2 from Data Warehouses Date Dimension Loader Enhanced GoodData.UI Version 8.9 Available: Dashboard Events and Commands, and Dashboard Component State FINAL REMINDER: Upgrade Your GoodData.UI to Version 8.x REMINDER: Use TLS Version 1.2 or Higher OnlyAnalytical Designer: Show Axis Names When Slicing by Two AttributesIn column charts and bar charts, you can now display the axis name even when you slice the chart by two attributes. Previously, this option was disabled.This feature is disabled by default. To enable it, set the enableAxisNameViewByTwoAttributes platform setting to true.Learn more:Configure Insight Properties Dashboards: Improved Zooming in Geo ChartsWhen you hover your mouse over a geo chart map in Dashboards, you must now use the Control or Command key (based on your operating system) to zoom in/out while scrolling.In geo charts in Analytical Designer, you can still scroll directly without pressing any key when hovering over a map. Load Configuration Enhancements for ADD v2 from Data WarehousesWhen you are mapping your LDM to objects in your data warehouse, it is now possible to load to workspaces a dataset that has multiple fields mapped to the same source column.For example, you are now able to use an existing date column for both driving incremental loads and data analysis. You can do this by mapping the x__timestamp technical field to the same source column used by an already existing date field in your dataset.Learn more:Mapping between a Logical Data Model and the Data SourceDirect Data Distribution from Data Warehouses and Object Storage Services Date Dimension Loader EnhancedWe have made the following changes to Date Dimension Loader, a component of our data preparation and distribution pipeline (for GoodData Classic, click here):Performance of Date Dimension Loader has been improved to work better with multiple date dimensions and large sets of workspaces. In addition to client IDs, you can now use workspace IDs to specify the workspaces where Date Dimension Loader should load the date dimensions to. This allows you to use Date Dimension Loader in cases when you do not have Life Cycle Management (LCM) deployed on your site and therefore your workspaces do not have the client IDs assigned.Learn more:Date Dimension Loader (for GoodData Classic, click here). GoodData.UI Version 8.9 Available: Dashboard Events and Commands, and Dashboard Component StateWe have released Version 8.9 of GoodData.UI, our powerful library for building analytical applications powered by GoodData.What's new in GoodData.UI Version 8.9Dashboard events and commands You can now use dashboard events and commands. The general dashboard events allow dashboard plugins and the application embedding the dashboards to react to changes that are made to the whole dashboard (for example, the dashboard was saved as a new one or dashboard access permissions were changed). For more information, see the DashboardEvents API. The filter dashboard events allow dashboard plugins and the application embedding the dashboards to react to changes that are made to the dashboard filters. For more information, see the DashboardEvents API. The filter dashboard commands allow dashboard plugins and the application embedding the dashboards to change the dashboard filters. For more information, see the DashboardCommands API. Dashboard component state You can now access the state of the Dashboard component from outside the component. For more information, see Dashboard Component. FINAL REMINDER: Upgrade Your GoodData.UI to Version 8.xVersion 7.x of GoodData.UI reached its end-of-development, and it is now in maintenance mode until March 31, 2022, when it will reach its end-of-support. The versions older than Version 7.x are no longer supported.How does it affect you?You are affected if you are using a version of GoodData.UI older than Version 8.x.ACTION REQUIRED!Upgrade your GoodData.UI to Version 8.x as soon as possible.Review the breaking changes in Version 8.0. Follow our step-by-step Migration Guide that will walk you through the migration process.What will happen if you do not upgrade to Version 8.x?When Version 7.x reaches its end-of-support, it will receive neither new features nor bug fixes. No technical support will be provided. Although the version will still be available for use, we do not recommend that you use it.Learn more:To learn more about how different versions of GoodData.UI go through the life cycle phases and what level of support you can expect when using a specific version, see Supported Versions and Compatibility. REMINDER: Use TLS Version 1.2 or Higher OnlySupport for Transport Layer Security (TLS) version 1.0 and 1.1 is deprecated and will end on May 31, 2022.How does this affect you?All modern web browsers and programming languages already support the newer versions of TLS (1.2 and higher). Unless you use obsolete software or unsupported systems, you are not affected.You may be affected if you are using an older version of the libraries or programming languages in your tools. To verify, check the documentation for your tool:Java: https://blogs.oracle.com/java/post/jdk-8-will-use-tls-12-as-default Microsoft Windows: https://docs.microsoft.com/en-us/security/solving-tls1-problem Python: https://docs.python.org/3/library/ssl.html Ruby: https://blog.rubygems.org/2018/02/24/tls-10-and-11-deprecation-notice.htmlACTION REQUIRED!Before May 31, 2022, make sure that all your components and integrations use TLS version 1.2 or higher.What will happen if you do not upgrade to the newer versions?When support for TLS version 1.0 and 1.1 ends on May 31, 2022, if you do not switch to a newer version of TLS, the integration with the GoodData platform will stop working.Learn more:For more information about the deprecation of support for TLS version 1.0 and 1.1, see Support for TLS Version 1.0 and 1.1 (for GoodData Classic, click here). For more information about TLS protocols, see Supported TLS Security Protocols and Ciphers (for GoodData Classic, click here).

Related products:GoodData Platform

GoodData.CN 1.7.0

Released March 24th, 2022.New FeaturesYou can now use GoodData.CN Community Edition even for production use cases. Read our new GOODDATA.CN COMMUNITY EDITION LICENSE AGREEMENT for details. We are enabling additional type of drill in Dashboards. You can now drill to URL. You can now connect applications from multiple hostnames to a single organization by setting multiple CORS origins for your organization. Learn how. We updated the product Homepage so that you can now list and search through all workspaces in your organization. Metric editor now supports multiple tabs, allowing you to open and edit multiple metrics at the same time.Fixes and UpdatesWe have improved performance and memory management of attribute filters (collectLabelElements API). This should prevent out of memory exception in cases where an attribute with large number of values is used in the filter. Queries that run longer than 3 minutes should no longer overload data sources. This applies to all data source managers and all supported data sources except for Google BigQuery. We are now caching authentication status in order to cut down on communication with external OIDC providers.API changesWe have updated performance and memory management for the collectLabelElements API.Beta FeaturesBeta features are available for users to test and provide feedback. Please note that the implementation of these features is not finalized, and the behavior or interface of these features is subject to change. We are preparing a permissions framework for GoodData.CN. In this release we are releasing it as a beta feature. Learn which permissions/roles can be used and how to configure them. Please note that if you are updating to GoodData.CN 1.7, and importing your organization from an older version, you need to follow this upgrade guide first. You then have to go through your organization’s user groups and ensure users have the appropriate permissions to be able to use GoodData.CN 1.7 as expected. Or if you want to keep the same user experience (everybody can access everything) then move all users into the bootstrap user group (named adminGroup by default) before you migrate to version 1.7. Permission to manage the whole organisation will be added during the update process. We are working on an integration with Data Source Managers such as Dremio, Apache Drill, or Presto. Thanks to the Data Source Managers, you can work with data lakes, federate multiple Data Sources in one workspace, or query non-SQL data such as REST APIs or files. Read more about the current implementation. Deprecation AnnouncementWe deprecated GET method for the API endpoint /collectLabelElements in GoodData.CN 1.7.0. The endpoint allows only the POST method from now on. If you are using GoodData.UI, you have to migrate to version 8.7.0. which supports the POST method for this endpoint.Get the Community EditionPull the GoodData.CN Community Edition to get started with the latest release:docker pull gooddata/gooddata-cn-ce:1.7.0Upgrade GuidesUpgrade Declarative JSONs Saved In Previous VersionsAs an administrator, you may want to import an organization dump from the version 1.6 deployment into the version 1.7 deployment. Before you can do so, you need to add the MANAGE permission to the adminGroup (as defined here), otherwise the import will fail.Steps: If you have not done so already, create a JSON dump from your GoodData.CN 1.6 organization layout. See Back Up the Organization. If you are unsure what the name of your adminGroup user group is in your GoodData.CN 1.7 deployment, use the following command to find it: ADMIN_GROUP_NAME=$( \ curl -L -H "Authorization: Bearer $GDC_API_TOKEN" \ $ENDPOINT/api/entities/organization?include=bootstrapUserGroup \ | jq -r '.data.relationships.bootstrapUserGroup.data.id' ) Create an updated layout JSON file from the old GoodData.CN 1.6 layout dump with the basic permissions setup: jq --arg bootstrap_group $ADMIN_GROUP_NAME \ '.organization += {"permissions": [{"assignee": {"id": $bootstrap_group, type: "userGroup"}, "name": "MANAGE"}]}' \ <layout_file_name>.json > updated_layout.json Import the updated_layout.json file into your GoodData.CN 1.7 deployment: curl --data @updated_layout.json \ -H "Authorization: Bearer $GDC_API_TOKEN" \ -H "Content-type: application/json" \ -X PUT $ENDPOINT/api/layout/organization GoodData.CN Community EditionSuppose you are using a docker volume to store metadata from your GoodData.CN CE container. Download a new version of the GoodData.CN CE docker image and start it with your volume. All your metadata is migrated automatically.Please note that the automatic migration only assigns the MANAGE organization permission to users in the adminGroup user group. Other users and user groups need to have their permissions set up manually. See Manage Permissions.If you are not using a docker volume to store metadata from your GoodData.CN CE container, follow the version specific and general upgrade guides.GoodData.CN Production K8S EditionTo upgrade Helm chart, follow the general upgrade guide.

Related products:GoodData.CN