Hi @Kondo
Thanks for the write-up, and again, thanks for sharing the use case!
Here’s a follow-up with the setup that includes the incremental import settings to allow you to analyze the data across Time, to see the improvements you’ve made to the Jira instance.
With the incremental import, you can create reports like these:
Important to understand!
This approach uses a workaround for incremental import that will import the same data additionally to the existing one, but will map it to a different time stamp. So, any reports created with this data must also use the Time dimension (or Hour and Minute dimensions if the imports are run more than once a day).
Setting up:
Create a new eazyBI account for all these sources.
When copying a source definition, use a text editor to find and replace all “ecosystem.atlassian.net” links with your Cloud instance links “******.atlassian.net”.
When the links are replaced, do the following:
For each of the data sources, go to the Source Data tab, click “Add new source application” → “Import definition” and paste the definition in the text field.
In the authorization, provide your Email as Username and your Jira API key as Password.
License Management:
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/applicationrole",
"request_method": "get",
"pagination": "none",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "offset",
"offset_parameter_in_body": null,
"limit_parameter": "limit",
"limit_parameter_in_body": null,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.key + \"_\" + current_date.toISOString().substring(0,16);"
},
"columns_options": { "hide_unmapped": true },
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": ""
}
},
"source_cube_name": "License Management",
"columns": [
{
"name": "key",
"data_type": "string",
"dimension": "Product",
"dimension_level": "Product",
"key_column": true
},
{
"name": "name",
"data_type": "string",
"dimension": "Product",
"dimension_level": "Product",
"name_column": true
},
{ "name": "groups", "data_type": "array" },
{ "name": "groupDetails", "data_type": "array" },
{ "name": "defaultGroups", "data_type": "array" },
{ "name": "defaultGroupsDetails", "data_type": "array" },
{ "name": "selectedByDefault", "data_type": "string" },
{ "name": "defined", "data_type": "string" },
{
"name": "numberOfSeats",
"data_type": "integer",
"dimension": "Measures",
"dimension_member": "Licenses"
},
{
"name": "remainingSeats",
"data_type": "integer",
"dimension": "Measures",
"dimension_member": "Remaining licenses"
},
{
"name": "userCount",
"data_type": "integer",
"dimension": "Measures",
"dimension_member": "Licenses in use"
},
{ "name": "userCountDescription", "data_type": "string" },
{ "name": "hasUnlimitedSeats", "data_type": "string" },
{ "name": "platform", "data_type": "string" },
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true }
]
}
Fields Management (1):
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/field",
"request_method": "get",
"pagination": "none",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "offset",
"offset_parameter_in_body": null,
"limit_parameter": "limit",
"limit_parameter_in_body": null,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"columns_options": { "hide_unmapped": true },
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": ""
}
},
"source_cube_name": "Fields Management",
"columns": [
{
"name": "name",
"data_type": "string",
"dimension": "Field",
"dimension_level": "Field",
"name_column": true
},
{
"name": "id",
"data_type": "string",
"dimension": "Field",
"dimension_level": "Field",
"key_column": true
},
{
"name": "custom",
"data_type": "string",
"dimension": "Field",
"dimension_level": "Field",
"javascript_code": "if (value) {\n return \"Custom field\"\n} else {\n return \"Default field\"\n}",
"property": "Default or Custom field"
},
{
"name": "schema\ntype (1)",
"source_column_name": "schema\ntype",
"data_type": "string",
"dimension": "Field",
"dimension_level": "Field",
"property": "Type"
},
{
"name": "custom (1)",
"source_column_name": "custom",
"data_type": "string",
"dimension": "Default or Custom field",
"dimension_level": "Default or Custom field",
"javascript_code": "if (doc.custom == \"Custom field\") {\n return \"Custom field\"\n} else {\n return \"Default field\"\n}"
},
{
"name": "schema\ntype",
"data_type": "string",
"dimension": "Type",
"dimension_level": "Type"
},
{ "name": "key", "data_type": "string" },
{ "name": "orderable", "data_type": "string" },
{ "name": "navigable", "data_type": "string" },
{ "name": "searchable", "data_type": "string" },
{ "name": "clauseNames", "data_type": "array" },
{ "name": "schema\nitems", "data_type": "string" },
{ "name": "schema\nsystem", "data_type": "string" },
{ "name": "untranslatedName", "data_type": "string" },
{ "name": "schema\ncustom", "data_type": "string" },
{ "name": "schema\ncustomId", "data_type": "integer" },
{ "name": "scope\ntype", "data_type": "string" },
{ "name": "scope\nproject\nid", "data_type": "integer" },
{ "name": "schema\nconfiguration\nisMulti", "data_type": "string" },
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Custom fields created",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
},
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true },
{
"name": "schema\nconfiguration\ncom.atlassian.jira.plugin.system.customfieldtypes:atlassian-team",
"data_type": "string"
}
]
}
Fields Management (2):
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/field/search?expand=lastUsed",
"request_method": "get",
"pagination": "offset_limit",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "startAt",
"offset_parameter_in_body": null,
"limit_parameter": "total",
"limit_parameter_in_body": null,
"limit_value": 50,
"concurrency": 10,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"json_data_path": "$.values",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"columns_options": { "hide_unmapped": true },
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": ""
}
},
"source_cube_name": "Fields Management",
"columns": [
{
"name": "id",
"data_type": "string",
"dimension": "Field",
"key_column": true,
"skip_missing": true,
"dimension_level": "Field"
},
{
"name": "description",
"data_type": "text",
"dimension": "Field",
"property": "Description",
"dimension_level": "Field"
},
{ "name": "name", "data_type": "string" },
{ "name": "schema\ntype", "data_type": "string" },
{ "name": "schema\nitems", "data_type": "string" },
{ "name": "schema\nsystem", "data_type": "string" },
{ "name": "lastUsed\ntype", "data_type": "string" },
{ "name": "schema\ncustom", "data_type": "string" },
{ "name": "schema\ncustomId", "data_type": "integer" },
{
"name": "lastUsed\nvalue",
"data_type": "datetime",
"dimension": "Field",
"property": "Last used",
"dimension_level": "Field"
},
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true },
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Custom fields created",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
}
]
}
Issue Type Management (1):
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/issuetype",
"request_method": "get",
"pagination": "none",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "offset",
"offset_parameter_in_body": null,
"limit_parameter": "limit",
"limit_parameter_in_body": null,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"columns_options": { "hide_unmapped": true },
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": ""
}
},
"source_cube_name": "Issue Type Management",
"columns": [
{ "name": "self", "data_type": "string" },
{
"name": "id",
"data_type": "integer",
"dimension": "IssueType",
"dimension_level": "IssueType",
"property": "Key",
"key_column": true
},
{
"name": "name",
"data_type": "string",
"dimension": "IssueType",
"dimension_level": "IssueType",
"name_column": true
},
{
"name": "subtask",
"data_type": "string",
"dimension": "Is SubTask",
"dimension_level": "Is SubTask"
},
{
"name": "scope\ntype",
"data_type": "string",
"dimension": "Issue Type Scope",
"javascript_code": "if(value == null){\n return 'Global'\n}else{\n return 'Team-managed project'\n}",
"dimension_level": "Issue Type Scope"
},
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Row count",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
},
{ "name": "description", "data_type": "string" },
{ "name": "iconUrl", "data_type": "string" },
{ "name": "untranslatedName", "data_type": "string" },
{ "name": "avatarId", "data_type": "integer" },
{ "name": "hierarchyLevel", "data_type": "integer" },
{ "name": "scope\nproject\nid", "data_type": "integer" },
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true }
]
}
Issue Type Management (2):
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/issuetypescheme?expand=issueTypes",
"request_method": "get",
"pagination": "offset_limit",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "startAt",
"offset_parameter_in_body": null,
"limit_parameter": "total",
"limit_parameter_in_body": null,
"limit_value": 50,
"concurrency": 10,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"json_data_path": "$.values",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": "Berlin"
}
},
"source_cube_name": "Issue Type Management",
"columns": [
{
"name": "id",
"data_type": "integer",
"dimension": "IssueTypeScheme",
"dimension_level": "IssueTypeScheme",
"id_column": true
},
{
"name": "name",
"data_type": "string",
"dimension": "IssueTypeScheme",
"dimension_level": "IssueTypeScheme",
"name_column": true
},
{
"name": "Issue types in use",
"data_type": "string",
"source_column_name": "(internal)",
"javascript_code": "var issueTypes = doc.issueTypes.values;\nvar issueTypeContexts = [];\nfor(var i = issueTypes.length-1; i>= 0; i--) {\n var issueTypeId = issueTypes[i];\n issueTypeContexts.push(\n issueTypeId.id\n );\n}\nreturn issueTypeContexts;",
"dimension": "IssueTypeScheme",
"property": "issueTypesInUse",
"dimension_level": "IssueTypeScheme"
},
{ "name": "description", "data_type": "string" },
{ "name": "isDefault", "data_type": "string" },
{ "name": "issueTypes\nmaxResults", "data_type": "integer" },
{ "name": "issueTypes\nstartAt", "data_type": "integer" },
{ "name": "issueTypes\ntotal", "data_type": "integer" },
{ "name": "issueTypes\nisLast", "data_type": "string" },
{ "name": "issueTypes\nvalues", "data_type": "array" },
{ "name": "defaultIssueTypeId", "data_type": "integer" },
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "source_id", "data_type": "string", "source_id_column": true },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Row count",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
}
]
}
Issue Type Management (3):
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/project/search?expand=issueTypes",
"request_method": "get",
"pagination": "next_page_url",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "offset",
"offset_parameter_in_body": null,
"limit_parameter": "limit",
"limit_parameter_in_body": null,
"next_page_url_property": "nextPage",
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"json_data_path": "$.values",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"columns_options": { "hide_unmapped": true },
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": ""
}
},
"source_cube_name": "Issue Type Management",
"columns": [
{ "name": "expand", "data_type": "string" },
{ "name": "self", "data_type": "string" },
{
"name": "id",
"data_type": "integer",
"dimension": "Jira Project",
"dimension_level": "Jira Project",
"id_column": true
},
{
"name": "key",
"data_type": "string",
"dimension": "Jira Project",
"dimension_level": "Jira Project",
"key_column": true
},
{
"name": "name",
"data_type": "string",
"dimension": "Jira Project",
"dimension_level": "Jira Project",
"name_column": true
},
{
"name": "Issue types in use",
"data_type": "string",
"source_column_name": "(internal)",
"javascript_code": "var issueTypes = doc.issueTypes;\nvar issueTypeContexts = [];\nfor(var i = issueTypes.length-1; i>= 0; i--) {\n var issueTypeId = issueTypes[i];\n issueTypeContexts.push(\n issueTypeId.id\n );\n}\nreturn issueTypeContexts;",
"dimension": "Jira Project",
"property": "issueTypesInUse",
"dimension_level": "Jira Project"
},
{ "name": "issueTypes", "data_type": "array" },
{ "name": "avatarUrls\n48x48", "data_type": "string" },
{ "name": "avatarUrls\n24x24", "data_type": "string" },
{ "name": "avatarUrls\n16x16", "data_type": "string" },
{ "name": "avatarUrls\n32x32", "data_type": "string" },
{ "name": "projectTypeKey", "data_type": "string" },
{ "name": "simplified", "data_type": "string" },
{ "name": "style", "data_type": "string" },
{ "name": "isPrivate", "data_type": "string" },
{ "name": "entityId", "data_type": "string" },
{ "name": "uuid", "data_type": "string" },
{ "name": "projectCategory\nself", "data_type": "string" },
{ "name": "projectCategory\nid", "data_type": "integer" },
{ "name": "projectCategory\nname", "data_type": "string" },
{ "name": "projectCategory\ndescription", "data_type": "string" },
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true },
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Row count",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
}
]
}
Issue Type Scheme Management:
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/issuetypescheme?expand=projects",
"request_method": "get",
"pagination": "offset_limit",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "startAt",
"offset_parameter_in_body": null,
"limit_parameter": "total",
"limit_parameter_in_body": null,
"limit_value": 50,
"concurrency": 10,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"json_data_path": "$.values",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"columns_options": { "hide_unmapped": true },
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": ""
}
},
"source_cube_name": "Issue Type Scheme Management",
"columns": [
{
"name": "name",
"data_type": "string",
"dimension": "Issue Type Scheme",
"dimension_level": "Issue Type Scheme",
"name_column": true
},
{
"name": "id",
"data_type": "integer",
"dimension": "Issue Type Scheme",
"dimension_level": "Issue Type Scheme",
"key_column": true,
"property": "Key"
},
{
"name": "description",
"data_type": "text",
"dimension": "Issue Type Scheme",
"dimension_level": "Issue Type Scheme",
"property": "Description"
},
{
"name": "projects\nmaxResults (1)",
"source_column_name": "projects\nmaxResults",
"data_type": "string",
"javascript_code": "if(value > 0){\n return 'Active'\n}else{\n return 'Inactive'\n}",
"dimension": "Issue Type Scheme",
"dimension_level": "Issue Type Scheme",
"property": "Status"
},
{
"name": "projects\nmaxResults",
"data_type": "string",
"javascript_code": "if(value > 0){\n return 'Active'\n}else{\n return 'Inactive'\n}",
"dimension": "Issue Type Scheme Status",
"dimension_level": "Issue Type Scheme Status"
},
{ "name": "isDefault", "data_type": "string" },
{ "name": "defaultIssueTypeId", "data_type": "integer" },
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Issue Type Scheme count",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
},
{ "name": "projects\nstartAt", "data_type": "integer" },
{ "name": "projects\ntotal", "data_type": "integer" },
{ "name": "projects\nisLast", "data_type": "string" },
{ "name": "projects\nvalues", "data_type": "array" },
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true }
]
}
Issue Type Screen Scheme Management:
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/issuetypescreenscheme?expand=projects",
"request_method": "get",
"pagination": "offset_limit",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "startAt",
"offset_parameter_in_body": null,
"limit_parameter": "total",
"limit_parameter_in_body": null,
"limit_value": 50,
"concurrency": 10,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"json_data_path": "$.values",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"columns_options": { "hide_unmapped": true },
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": "Berlin"
}
},
"source_cube_name": "Issue Type Screen Scheme Management",
"columns": [
{
"name": "id",
"data_type": "integer",
"dimension": "IssueType Screen Scheme",
"dimension_level": "IssueType Screen Scheme",
"id_column": true
},
{
"name": "name",
"data_type": "string",
"dimension": "IssueType Screen Scheme",
"name_column": true,
"dimension_level": "IssueType Screen Scheme"
},
{
"name": "schemeStatus",
"data_type": "string",
"source_column_name": "(internal)",
"javascript_code": "if(doc.projects.maxResults > 0){\n return \"In use\";\n}else{\n return \"Not in use\";\n}",
"dimension": "IssueType Screen Scheme",
"dimension_level": "IssueType Screen Scheme",
"property": "Status"
},
{
"name": "Status",
"data_type": "string",
"source_column_name": "(internal)",
"javascript_code": "if(doc.projects.maxResults > 0){\n return \"In use\";\n}else{\n return \"Not in use\";\n}",
"dimension": "IssueType Screen Scheme Status"
},
{ "name": "description", "data_type": "string" },
{ "name": "projects\nmaxResults", "data_type": "integer" },
{ "name": "projects\nstartAt", "data_type": "integer" },
{ "name": "projects\ntotal", "data_type": "integer" },
{ "name": "projects\nisLast", "data_type": "string" },
{ "name": "projects\nvalues", "data_type": "array" },
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Issue Type Screen Scheme count",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
},
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true }
]
}
Status Management:
{
"application_type": "rest_api",
"application_params": {
"source_params": {
"url": "https://ecosystem.atlassian.net/rest/api/3/statuses/search?expand=usages,workflowUsages",
"request_method": "get",
"pagination": "next_page_url",
"page_parameter": "page",
"page_parameter_in_body": null,
"offset_parameter": "offset",
"offset_parameter_in_body": null,
"limit_parameter": "limit",
"limit_parameter_in_body": null,
"incremental": true,
"incremental_stop_import": null,
"authentication_type": "basic",
"content_type": "json",
"json_data_path": "$.values",
"next_page_url_property": "nextPage",
"username": "email",
"custom_javascript_code": "current_date = new Date();\n\ndoc.date = current_date.toISOString().substring(0,10);\ndoc.hour = current_date.getHours();\ndoc.minute = current_date.getMinutes();\ndoc.source_id = doc.id + \"_\" + current_date.toISOString().substring(0,16);"
},
"extra_options": {
"regular_import_frequency": 0,
"regular_import_at": "",
"time_zone": ""
}
},
"source_cube_name": "Status Management",
"columns": [
{
"name": "name",
"data_type": "string",
"dimension": "Status",
"dimension_level": "Status",
"name_column": true
},
{
"name": "id",
"data_type": "integer",
"dimension": "Status",
"dimension_level": "Status",
"property": "Status ID"
},
{
"name": "statusCategory (1)",
"source_column_name": "statusCategory",
"data_type": "string",
"dimension": "Status",
"dimension_level": "Status",
"property": "Category"
},
{
"name": "statusCategory",
"data_type": "string",
"dimension": "Status Category",
"dimension_level": "Status Category"
},
{
"name": "scope\ntype",
"data_type": "string",
"dimension": "Scope Type",
"dimension_level": "Scope Type"
},
{
"name": "description",
"data_type": "string",
"dimension": "Status",
"dimension_level": "Status",
"property": "Status Description"
},
{ "name": "usages", "data_type": "array" },
{
"name": "In use",
"data_type": "string",
"source_column_name": "(internal)",
"javascript_code": "var use\nif(_.some(doc.usages, \"project\", true, false)){\n use = \"In use\"\n}else{\n use = \"Not in use\"\n}\nreturn use",
"dimension": "In use",
"dimension_level": "In use"
},
{
"name": "Row count",
"dimension": "Measures",
"dimension_member": "Status Count",
"data_type": "integer",
"source_column_name": "(internal)",
"calculation": "row_count"
},
{ "name": "workflowUsages", "data_type": "array" },
{
"name": "In use in any workflow",
"data_type": "string",
"source_column_name": "(internal)",
"javascript_code": "var use\nif(_.some(doc.workflowUsages, \"workflowName\", true, false)){\n use = \"In use\"\n}else{\n use = \"Not in use\"\n}\nreturn use",
"dimension": "In use in workflow",
"dimension_level": "In use in workflow"
},
{ "name": "date", "data_type": "date", "dimension": "Time" },
{ "name": "hour", "data_type": "integer", "dimension": "Hour" },
{ "name": "minute", "data_type": "integer", "dimension": "Minute" },
{ "name": "source_id", "data_type": "string", "source_id_column": true }
]
}