Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The following page describes the breaking changes that are introduced in Insight 8.4. In order to upgrade to the 8.4 version of Insight this document should be read in order to prepare to upgrade the Insight version. 

Page content:

Table of Contents


Database changes

In Insight 8.4 some database tables changes the primary key type. Previously Insight used the Integer type as the primary key but in Insight 8.4 we have changed that to be the Long type. 

Depending on the database type you are using you might have to follow below steps when upgrading to Insight 8.4.

SQL Server:

  1. Before installation, query the database:

    Code Block
    ALTER TABLE AO_8542F1_IFJ_OBJ_ATTR_VAL DROP CONSTRAINT fk_ao_8542f1_ifj_obj_attr_val_object_attribute_id;
  2. Install new Insight version.
  3. After installation, query the database:

    Code Block
    ALTER TABLE AO_8542F1_IFJ_OBJ_ATTR_VAL ADD CONSTRAINT fk_ao_8542f1_ifj_obj_attr_val_object_attribute_id 
    FOREIGN KEY (OBJECT_ATTRIBUTE_ID) REFERENCES AO_8542F1_IFJ_OBJ_ATTR(ID);

MySQL:

  1. Before installation, query the database:

    Code Block
    ALTER TABLE AO_8542F1_IFJ_OBJ_ATTR_VAL DROP FOREIGN KEY fk_ao_8542f1_ifj_obj_attr_val_object_attribute_id;
  2. Install new Insight version.
  3. After installation, query the database:

    Code Block
    ALTER TABLE AO_8542F1_IFJ_OBJ_ATTR_VAL ADD CONSTRAINT fk_ao_8542f1_ifj_obj_attr_val_object_attribute_id 
    FOREIGN KEY (OBJECT_ATTRIBUTE_ID) REFERENCES AO_8542F1_IFJ_OBJ_ATTR(ID);

H2:

  1. Before installation, query the database:

    Code Block
    ALTER TABLE AO_8542F1_IFJ_OBJ_ATTR_VAL DROP FOREIGN KEY fk_ao_8542f1_ifj_obj_attr_val_object_attribute_id;
  2. Install new Insight version.
  3. After installation, query the database:


    Code Block
    ALTER TABLE AO_8542F1_IFJ_OBJ_ATTR_VAL ADD FOREIGN KEY fk_ao_8542f1_ifj_obj_attr_val_object_attribute_id (OBJECT_ATTRIBUTE_ID) 
    REFERENCES AO_8542F1_IFJ_OBJ_ATTR(ID);


New database map

These changes The 8.4 release will affect the current map structure of our database. A digram of the the new database is shown below:

Event changes (Automation)

Status
colourRed
titleREmoved
 Object Cloned - The object clone event has been removed since it is a created event that happens. 


Old reports and gadgets

Status
colourRed
titleREmoved
 All old reports and gadgets are removed


REST API

The following changes describes the changes done in the REST API. It is of importance if you are using a custom integration that consumes the Insight REST API. These are breaking changes for the Insight v1 API. 

Objects 
Status
colourYellow
titlechanged

Queries related to objects

EndpointStatusReplacement

GET /rest/insight/1.0/objecttype/{id}/objects

Status
colourYellow
titlereplaced

GET /rest/insight/1.0/iql/objects?iql=objectTypeId={id}

GET /rest/insight/1.0/object/{id}/jiraissues

Status
colourYellow
titlereplaced

GET /rest/insight/1.0/objectconnectedtickets/{id}/tickets

Attachment 
Status
colourYellow
titleCHANGED

EndpointStatusReplacement

GET /plugins/servlet/com.riadalabs.jira.plugins.insight/attachment/<attachment_id>/<filename>

Status
colourYellow
titlereplaced

GET /rest/insight/1.0/attachments/{attachmentId}

General - Date and time request and response types

In previous versions Insight REST API always returned all date and time information adjusted to the logged in users timezone as well as the configured date (or date time) format configured on the Jira server. To make the API more integration friendly all dates and times are changed to ISO8601 format. 

When mutating attribute values in Insight the input is expected to be sent in ISO8601 format as well. This change is made backward compatible meaning that the input will be assumed to be in ISO8601 format if the input fails to be parsed in this way the input will be parsed using the old way i.e. based on the Jira settings and the user timezone. 

Date attribute type

All attribute values of type Date will be returned as an ISO8601 formatted date e.g. 2017-10-26. The expected input when creating or updating is the same format. 

Comparison between old and new
Code Block
themeEclipse
titleOld Response
collapsetrue
"objectAttributeValues": [
  {
    "displayValue": "29/Nov/2019",
    "value": "29/Nov/2019"
   }
]
Code Block
themeEclipse
titleNew Response
collapsetrue
"objectAttributeValues": [
  {
    "value": "2019-11-29",
    "searchValue": "2019-11-29",
    "displayValue": "29/Nov/2019",
    "referencedType": false
  }
]

DateTime attributes

All date time attributes are now returned in ISO8601 format in UTC with milliseconds e.g. 2010-11-26T07:21:37.123Z. Input is expected in ISO8601 format in an arbitrary timezone that is added as described by the standard e.g. 2010-11-26T06:21:37+0100. 

Comparison between old and new (note timezone difference in the new response)
Code Block
themeEclipse
titleOld Response
collapsetrue
"objectAttributeValues": [
  {
    "displayValue": "26/Nov/19 9:07 AM",
    "value": "26/Nov/19 9:07 AM"
  }
]
Code Block
themeEclipse
titleNew Response
collapsetrue
"objectAttributeValues": [
  {
    "value": "2019-11-26T08:07:08.063Z",
    "searchValue": "2019-11-26T08:07:08.063Z",
    "displayValue": "26/Nov/19 9:07 AM",
    "referencedType": false
  }
]

Timestamps

All timestamps in Insight are now represented in the REST API in ISO8601 format in UTC. That is all created, updated, started, finished etc. are returned in ISO8601 format in UTC with milliseconds e.g. 2010-11-26T07:21:37.123Z

Comparison between old and new
Code Block
themeEclipse
titleOld Response
collapsetrue
"objectType": {
  "abstractObjectType": false,
  "created": "24/Oct/2019 01:11 AM",
  "icon": {
    "id": 29,
    "name": "Computer",
    "url16": "https://url/rest/insight/1.0/objecttype/143477/icon.png?size=16&inherited=true&abstract=false&time=1571919096176",
    "url48": "https://url/rest/insight/1.0/objecttype/143477/icon.png?size=48&inherited=true&abstract=false&time=1571919096176"
  },
  "id": 143477,
  "inherited": true,
  "name": "Laptop",
  "objectCount": 0,
  "objectSchemaId": 58583,
  "parentObjectTypeId": 143476,
  "parentObjectTypeInherited": true,
  "position": 0,
  "type": 0,
  "updated": "24/Oct/2019 01:11 AM"
}
Code Block
themeEclipse
titleNew Response
collapsetrue
"objectType": {
  "id": 143477,
  "name": "Laptop",
  "type": 0,
  "icon": {
    "id": 29,
    "name": "Computer",
    "url16": "https://url/rest/insight/1.0/objecttype/143477/icon.png?size=16",
    "url48": "https://url/rest/insight/1.0/objecttype/143477/icon.png?size=48"
  },
  "position": 0,
  "created": "2019-10-24T00:11:02.891Z",
  "updated": "2019-10-24T00:11:02.891Z",
  "objectCount": 0,
  "objectSchemaId": 58583,
  "inherited": true,
  "abstractObjectType": false,
  "parentObjectTypeInherited": true
}

Post functions

Assign Object based on Jira custom field - removed

Status
colourRed
titleREmoved

The post function Assign Object based on Jira custom field is now removed (it was deprecated in Insight 5.3). Please use the "Assign Objects from an IQL query based on data from an issue" post function instead.


JQL Functions

attributeValue(attribute, operator, value) - removed

Status
colourRed
titleREmoved

The JQL function attributeValue("","","") has been removed and is replaced with the IQLFunction in JQL. The replacement will look similar to this

Code Block
themeEclipse
customField in iqlFunction("attribute operator value")

JAVA API

The JAVA API is used for the groovy scripting and custom integrations with Insight. 


Facade

ObjectFacade

Name and statusSignature Insight <=8.3Signature Insight 8.4


findObjectBeans

Status
colourRed
titleremoved

Code Block
languagejava
themeEclipse
@Deprecated
List<ObjectBean> findObjectBeans(int objectTypeId,
            boolean includeObjectTypesChilds,
            String filterName,
            int offset,
            Integer limit) throws InsightException;

Use IQLFacade instead example IQL

Code Block
themeEclipse
label = "filterName" AND objectType IN (objectTypeId)
Code Block
themeEclipse
label = "filterName" AND objectType IN objectTypeAndChildren(objectTypeId)

findObjectBeans

Status
colourRed
titleremoved

Code Block
languagejava
themeEclipse
    @Deprecated
    List<ObjectBean> findObjectBeans(int objectTypeId,
            String iql,
            boolean includeObjectTypesChilds,
            String nameQuery,
            int offset,
            Integer limit) throws InsightException;

Use IQLFacade instead example

Code Block
themeEclipse
label like "nameQuery" AND objectType IN (objectTypeId) AND iql
Code Block
themeEclipse
label like "nameQuery" AND objectType IN objectTypeAndChildren(objectTypeId) AND iql

findObjectBeans

Status
colourRed
titleremoved

Code Block
languagejava
themeEclipse
@Deprecated
List<ObjectBean> findObjectBeans(Set<Integer> objectTypeIds,
            String filterName,
            Long projectId,
            int offset,
            Integer limit) throws InsightException;

Use IQLFacade instead example

Code Block
themeEclipse
objectType IN (objectTypeId1, objectTypeId2, ..., objectTypeIdN) AND label = "filterName"

findObjectBeansByObjectSchema

Status
colourRed
titleremoved

Code Block
languagejava
themeEclipse
@Deprecated
List<ObjectBean> findObjectBeansByObjectSchema(int id, String namePrefix, int offset, Integer limit)
            throws InsightException;

Use IQLFacade instead example

Code Block
themeEclipse
objectSchemaId = id AND label startsWith "namePrefix"

findObjectBeansByName

Status
colourRed
titleremoved

Code Block
languagejava
themeEclipse
@Deprecated    
List<ObjectBean> findObjectBeansByName(int objectTypeId, boolean includeObjectTypesChilds, String name)
            throws InsightException;

Use IQLFacade instead example

Code Block
themeEclipse
label = "filterName" AND objectType IN (objectTypeId)
Code Block
themeEclipse
label = "filterName" AND objectType IN objectTypeAndChildren(objectTypeId)

findObjectBeansByAttributeValue

Status
colourRed
titleremoved

Code Block
languagejava
themeEclipse
@Deprecated
List<ObjectBean> findObjectBeansByAttributeValue(int objectTypeAttributeId, @Nonnull String operator, @Nonnull Object value)
            throws InsightException;

This one requires the change of objectTypeAttributeId → objectTypeAttributeName and value to be converted to it's string representation


Code Block
themeEclipse
 objectTypeAttributeName = "valueAsString"

findObjectJiraIssueBeans

Status
colourYellow
titlechanged

Code Block
languagejava
themeEclipse
List<ObjectJiraIssueBean> findObjectJiraIssueBeans(int objectId) throws InsightException;
Code Block
languagejava
themeEclipse
List<ObjectTicketConnection> findObjectTicketConnections(int objectId) throws InsightException;

findObjectJiraIssueBeans

Status
colourYellow
titlechanged

Code Block
languagejava
themeEclipse
List<ObjectJiraIssueBean> findObjectJiraIssueBeans(int objectId, int offset, int limit) throws InsightException;

Code Block
languagejava
themeEclipse
@Deprecated
List<ObjectTicketConnection> findObjectTicketConnections(int objectId, int offset, int limit)
            throws InsightException;

findObjectJiraIssueBeans

Status
colourYellow
titlechanged

Code Block
languagejava
themeEclipse
List<ObjectJiraIssueBean> findObjectJiraIssueBeans(Long jiraIssueId) throws InsightException;
Code Block
languagejava
themeEclipse
List<ObjectTicketConnection> findObjectTicketConnections(long ticketId) throws InsightException;

ObjectSchemaFacade


Name and statusSignature Insight <=8.3Signature Insight 8.4

loadObjectSchemaBean

Status
colourBlue
titledeprecated

Code Block
languagejava
themeEclipse
ObjectSchemaBean loadObjectSchemaBean(final int id) throws InsightException;
Code Block
languagejava
themeEclipse
ObjectSchemaBean loadObjectSchema(final int id) throws InsightException;


ObjectTypeAttributeFacade


DeprecatedSignature Insight <=8.3Signature Insight 8.4

loadObjectTypeAttributeBean

Status
colourBlue
titledeprecated

Code Block
languagejava
themeEclipse
ObjectSchemaBean loadObjectSchemaBean(final int id) throws InsightException;
Code Block
languagejava
themeEclipse
ObjectTypeAttributeBean loadObjectTypeAttribute(final int id) throws InsightException;

loadObjectTypeAttributeBean

Status
colourBlue
titledeprecated

Code Block
languagejava
themeEclipse
ObjectTypeAttributeBean loadObjectTypeAttributeBean(int objectTypeId, String name) throws InsightException;
Code Block
languagejava
themeEclipse
ObjectTypeAttributeBean loadObjectTypeAttribute(int objectTypeId, String name) throws InsightException;


ObjectTypeFacade

DeprecatedSignature Insight <=8.3Signature Insight 8.4

loadObjectTypeBean

Status
colourBlue
titledeprecated

Code Block
languagejava
themeEclipse
ObjectTypeBean loadObjectTypeBean(final int id) throws InsightException;



Code Block
languagejava
themeEclipse
ObjectTypeBean loadObjectType(final int id) throws InsightException;

loadObjectTypeBean

Status
colourBlue
titledeprecated

Code Block
languagejava
themeEclipse
@Deprecated
ObjectTypeBean loadObjectTypeBean(final int id, Object object) throws InsightException;
Code Block
languagejava
themeEclipse
@Deprecated
ObjectTypeBean loadObjectType(final int id, Object object) throws InsightException;

ObjectTicketFacade (New facade)



Signature Insight 8.4

findTicketsForObject

Status
colourGreen
titlenew


Code Block
languagejava
themeEclipse
@Nonnull
ObjectTickets findTicketsForObject(int objectId, @Nullable Long filterId, @Nullable Integer limit);

Model classes

The model classes are used in some of the ObjectFacade methods as parameters and response objects. 

ObjectAttributeValueBean

  • Added getId() to retrieve the id
  • Changed toString() from "[" + getValue() + "]" to "[" + id + "(" + getValue() + ")]"

RoleBean

  • getType() no longer return int but return a RoleType
  • setType(int type) is changed to setType(RoleType)


Import 
Anchor
import
import

CSV import

The CSV import will now validate the content stream that the content is indeed a CSV file. This might affect import configurations that are importing CSV from a URL. 

Download Beta Version

OBRDate Time

View file
nameinsight-8.4.0-BETA.obr
height250

2019-12-13: 11.26 PM