Renaming Measures and Attributes in Analytical Designer
To replace long names or to distinguish between the same measures with different filters, you can now rename measures, attributes, and dates in Analytical Designer for each insight that you create. If you add insights with renamed items to a KPI dashboard, the insight displays the new alias names there as well.
Learn more:
Rename Measures and Attributes in Individual Insights
Data Warehouse JDBC Driver 3.1.2 Available!
We have released version 3.1.2 of the Data Warehouse JDBC driver. Download it from the Downloads page at https://secure.gooddata.com/downloads.html.
NOTE: If you are a white-labeled customer, log in to the Downloads page from your white-labeled domain:
https://my.domain.com/downloads.html
What's new in this release:
Support for prepared statements. The following JDBC methods are now available:
execute
executeQuery
executeUpdate
executeBatch
addBatch
With those methods, you can use the following data type setters:
Int
Long
Double
Float
Boolean
String
BigDecimal
Bytes
Date
Timestamp
IMPORTANT! If you are still using the old JDBC URL schema that starts with jdbc:dss
, do the following:
- Upgrade the URL schema to the new format so that it starts with
jdbc:gdc:datawarehouse
. For more information, see Prepare the JDBC Connection String. - Change the used driver class to
com.gooddata.datawarehouse.jdbc.driver.DatawarehouseDriver
. For more information, see Access Data Warehouse from SQuirrel SQL.
The old JDBC URL format is still supported if you use com.gooddata.dss.jdbc.driver.DssDriver
as the driver class. However, it may be removed from future versions of the JDBC driver. We recommend that you switch to the new format of the URL schema as soon as possible.
Learn more:
Download the JDBC Driver
New API Event for Embedded Dashboards: No Access to Project
If you have embedded dashboards, you can now be notified when a user tries to access an embedded dashboard in a project that they do not have access rights to.
To do so, use the API event 'A user has no access to a project':
{
gdc: {
name: 'project.info.no.permission',
type: 'app.ok'
}
}
Learn more:
Embedded Dashboard Events (look for 'A user has no access to a project')
Embedded Dashboard and Report API - Events and Methods
New API Parameter for White Labeling
New API parameter suppressProjectLinks allows you to suppress hyperlinks for projects in email footers.
Learn more:
Customize the White-Labeled Domain
API Documentation
Project Metadata Objects Upgraded
Only for the customers who directly use the Visualization metadata objects using the programmatic API
We have upgraded project metadata.
- All project metadata objects of the
visualization
type were migrated to the newly createdvisualizationObject
type.
Thevisualization
type is no longer available for use, and any code still using it stops working. - A new property,
visualizationClass
, was introduced.
What are visualizationObject and visualizationClass?
Project metadata objects of the visualizationObject
type keep information about insights. Insights are created in Analytical Designer and can be then either used in Analytical Designer directly or added to KPI dashboards.
visualizationClass
defines the type of a visualizationObject
object (pie chart, line chart, and so on).
You can query for visualizationClass
using the following API:
/gdc/md/
{project_id}
/query/visualizationclasses
/gdc/md/{project_id}
/objects/query?category=visualizationClass&limit=50
How can this affect you?
- If you are using the GoodData SDKs, upgrade to the latest version of the SDK to adjust your code to the structural changes in the project metadata. For more information, see GoodData SDK.
- If you are using project metadata objects directly, use
visualizationObject
in your code instead ofvisualization
, and use a new API to query forvisualizationObject
instances.
Stop using:/gdc/md/{project_id}/query/visualizations
/gdc/md/{project_id}/objects/query?category=visualization
Use instead:/gdc/md/{project_id}/query/visualizationobjects
/gdc/md/{project_id}/objects/query?category=visualizationObject
Learn more:
visualization Object Type in Project Metadata
API for Saving Insights as Reports Changed
Due to the metadata upgrade (see the previous article in these Release Notes), the API for saving an insight as a report definition has changed.
What has changed?
- Endpoint URL
- Request body
What has NOT changed?
Response body.
How has the endpoint URL changed?
Old URL (stop using it): https://secure.gooddata.com/gdc/projects/{project_id}/convertVisualization
New URL (use instead the old one): https://secure.gooddata.com/gdc/projects/{project_id}/convertVisualizationObject
How has the request body changed?
Old request body | New request body |
---|---|
{ "visualization": { "content": { "type": "column", "buckets": { "categories": [ { "category": { "collection": "view", "attribute": "/gdc/md/{project_id}/obj/{attribute_id}", "displayForm": "/gdc/md/{project_id}/obj/{displayForm_id}", "type": "attribute" } } ], "measures": [ { "measure": { "showInPercent": false, "showPoP": false, "title": "Sales", "objectUri": "/gdc/md/{project_id}/obj/{metric_id}}", "measureFilters": [], "type": "metric" } } ], "filters": [ { "listAttributeFilter": { "default": { "negativeSelection": true, "attributeElements": [] }, "attribute": "/gdc/md/{project_id}/obj/{attribute_id}", "displayForm": "/gdc/md/{project_id}/obj/{displayForm_id}" } } ] } }, "meta": { "title": "Insight", "category": "visualization" } } } |
{ |
REMINDER: Add Mandatory User-Agent Header to API Request
Starting from March 31, 2018, the GoodData REST API will require every API request to contain the User-Agent
header. Any API request without the User-Agent
header made after March 31, 2018, will be rejected.
What is the purpose of the header?
The User-Agent
header helps us identify users of our API and what they use the API for.
What is the header format?
The User-Agent
header must be in one of the following formats:
{product}-{task}/{version} ({your_email@example.com})
or{company}-{task}/{version}
where:
-- {product
} is the product in whose context you use the API (it can be your company's product that you are responsible for).
-- {task
} is the business domain in which you use the API (for example, managing users, configuring white-label properties, or creating projects).
-- {company}
is your company name.
-- {version}
is the version of your API integration. If you are not sure what version to include, set it to 1.0
.
-- {your_email@example.com}
is your email or the email of the contact person responsible for the product in your company.
The User-Agent
header must not contain spaces or slashes ( / ) apart from those that are already specified by the format.
How can you construct the User-Agent header?
Use the following examples to understand how to set the header:
- John Roe works in a company called 'Acme Corporation', on a product called 'Insight'. He uses the GoodData API to orchestrate ETL graphs across projects in his department. Here is how John can set the
User-Agent
header:AcmeCorporation-ETLOrchestrator/1.0
Insight/1.0 (john.roe@acme.com) - Jane Doe works in a company called 'Initech'. She uses the GoodData API to perform general administrative tasks across multiple products. Here is how Jane can set the
User-Agent
header:Initech-AdminTools/1.0
Action needed!
If you use a tool for handling API calls or a custom library for integrating with the GoodData REST API, update them to include the User-Agent
header in every API request.
TIP: Set up one User-Agent
header per tool/custom library and per task. For example, if you are using one tool to perform many administrative tasks, use a general header of AdminTools
. However, if you are using a few tools or libraries or if you are performing tasks from different business areas (for instance, managing access to dashboards and adding users to a Data Warehouse instance), set up headers for each tool or for each task separately.
When is the deadline for implementing the User-Agent header?
The date is March 31, 2018. However, we strongly recommend that you do so as soon as possible.
Are CloudConnect users affected?
No. If you call the API from CloudConnect (for example, REST Connector or HTTP Connector), you do not have to specify the User-Agent
header. CloudConnect provides a default User-Agent
header for all API calls that these components make.
If you have any question, please contact GoodData Support.