Releases

There's new stuff! We're constantly making AWS Blu Insights better. Here are some of the notable new features and improvements that we've made to AWS Blu Insights since it first launched.

Adhara

Following the launch of AWS Blu Insights in 15 regions, we continued our collaboration with our Security Engineers to meet AWS standards in terms of security and operational excellence. We also dedicated efforts to enhance product features and provide support to our customers on ongoing projects.

Improvements

Download permissions

Users can now manage the download permissions of uploaded attachments in Codebase, To-Dos and Transformation Center projects. Attachments downloads can be allowed based on the users’ profile.

Dependencies engine

  • Mainframe - The following Cobol example shows a dynamic call using the variable VAR. In the previous version, we create a link for every VAR value although the value is set only before the call statement. In this version, the following example is treated like a direct call of PROGA.
MOVE "PROGA" TO VAR.
CALL VAR.
  • SQL - In DB2, it is possible to create an external stored procedure coded in Cobol or C, for example. Now, this kind of procedure leads to a link between the SQL procedure node and the external program.
  CREATE PROCEDURE SYSPROC.MYPROC(IN INT, OUT INT, OUT DECIMAL(7,2))
LANGUAGE COBOL
EXTERNAL NAME MYMODULE;

Transformation Center

  • Billing: The number of installments is now calculated based on the project duration estimated by AWS Blu Insights Estimates.
  • Java version: Velocity engine is now running with Java 17. Following this, the property java.version from the Transformation Center configuration is deprecated for versions after 3.10.0.
  • The project information is updated in the Usage module after Codebase actions that may affect Total Lines Of Code (Classification, Extraction, …)

Bug fixes

Codebase

  • Cannot launch Manage extensions when updating only some extensions.
  • Import excel was failing if some nodes were missing without a name.
  • Presigned S3 URL check has been strengthened for better security.
  • The workpackages Entry Points column now displays the correct number.

Dependencies engine

Mainframe - JCL: when a variable contains a program name followed by parameters, the dependency analysis didn’t consider the dynamic call. 

Transformation Center

  • Files without types no longer cause errors in Files and Runs tabs.
  • Creating projects via race condition is controlled with locks.
  • The workpackages view has been fixed. The status bars contain the correct status instead of being stuck with “Unknown” value.

Estimates

  • Estimates free tier was applied twice during cost calculation. It is now applied only once for “Calibration” phase.

Common

  • Fix security checks that blocked the display of Management & Documents pages.
  • Booster URL can no more point to internal resources.
  • Invitation control has been strengthened.
  • More controls have been added to improve the security (such as link control in descriptions, resource access controls, logged information, etc.).
  • Fixed a display bug on comments.

Behind the scene

  • We maintained, updated and enriched our test scenarios (~3,150).
  • We continued at a frenetic pace to fix our remaining non-critical pentest findings.
  • We are investing our R&D in new AI functionalities in Blu Insights as well as accelerating page load times. More to follow.

The final countdown

In the past few months, we collaborated closely with the AWS Security team, conducting 2 PenTests with 15 dedicated PenTesters over 9 weeks. They scrutinized the code, infrastructure, features, and 900+ APIs of AWS Blu Insights. This was an intensive period for our team, but the outcomes are outstanding for the benefits of our customers. 🕵🏽

Although we mainly focused on the PenTests, we continued to improve the product features and support our customers.

New Features

Blu Age Toolbox

This new service allows to see at a glance the lists of the AWS Blu Age products, their documentations and distribution mode, request access to one or multiple products and follow requests and their status (see https://bluinsights.aws/blog/say-hello-to-bluage-toolbox). 

Improvements

Codebase

  • Cyclomatic Cyclomatic is now available without languages selection (1 click).
  • Jira Booster handles the latest Atlassian SaaS versions.

Dependencies engine

In the SQL, there is a possibility of the creation of the same object from two or more places. Example: CREATE VIEW V1 FROM TABLE T1 in a file and another file contains CREATE OR REPLACE VIEW V1 FROM TABLE T2. Both are responsible for creating the same object V1. Initially, one of those was considered by the analysis and leading to missing dependencies link. Now it’s considered all possibilities. As the result, dependency analysis can produce the all outflow dependencies between object view object V1 and Table T1 and T2. It's also applies to other SQL objects like Trigger, Procedure, etc.

Registration and invitations

  • We have improved the registration form to share more details about the users to speed up the activation of accounts.
  • Invitations to projects are now handled following the certification levels https://bluinsights.aws/certification/.
  • Customers can be invited to their projects using a specific role.

Transformation Center

  • Run actions are hidden if it is only for Weather report generation.

System Utilities

  • L2 and L3 Certified individuals can now share suggestions to add or edit System Utilities.

Bug fixes

Common

  • In Settings of a project, the invited users have no longer access to modules after disabling/re-enabling them.
  • Registration form - can be submitted without reason of request.
  • Management - Cannot delete Status.

Dependencies engine

  • In CL, a program may call itself. This behaviour led to a missing node. This has been fixed.
  • In JCL, variable value can contain additional command parameter, like the following example.
//    S001PGM='SAMPLE,COND=(16,GT,V00000)'
//TEST EXEC PGM=&S001PGM

This was not considered as a valid program name by the dependencies analysis leading to missing node named &S001PGM. It is now fixed with a link to SAMPLE.

Behind the scene

  • We updated the documentation https://bluinsights.aws/docs/.
  • We improved the security and performance of AWS Blu Insights.
  • We organized bugbash sessions to identify and fix bugs.
  • We supported hundreds of users for their trainings, projects and proof-of-concepts.
  • We maintained, updated, and enriched our test scenarios.


Thank you all for your support, feedback and requests. We pushed the limits together to continually improve AWS Blu Insights. You will love our roadmap for 2024. It’s always day 1! 🔥

Zebra Finch

For this new release, and with a reduced team, we focused on quality and security, i.e. PenTest, BugBash and Major upgrades. We also delivered a set of improvements and bug fixes, mainly on dependencies analysis and the Transformation Center. See below for more details.

New Features

Transformation Center

To help investigate Velocity Issues, developers can now download related artifacts (legacy files, their dependencies, the run configuration and outputs and the error details) from the issue details pop-up.

Dependencies analysis

Mainframe Application Menu

The MNUDDS files show the Data Description Specification of an Application Menu, the dependency analysis can now handle this type of files and detect their dependencies. The dependency analysis handles FILE, FILES and INTERFACE statements. In the following examples, a dependency will be created to an appropriate file named FILE_ID

  • FILE
A  File (CALL FILE_ID)
  • FILES
A  Files (FILE_ID)
  • INTERFACE
A  Interface (FILE_ID)

 

Mainframe BMS

EXEC CICS SEND statement can deal with maps and map sets like follows.

EXEC CICS SEND MAP("MAP_NAME")
EXEC CICS SEND MAPSET("MAPSET_NAME")

Before, the dependencies analysis considered that MAP_NAME and MAPSET_NAME are equals to the BMS file name. This inaccuracy implies false missing nodes. Now dependency analysis handles DFHMDI and DFHMSD statements declaring respectively map and map set in BMS files. The following examples show how map and map set are declared in BMS files.

  • Map
MAP_NAME DFHMDI SIZE=(...
  • MapSet
MAPSET_NAME DFHMSD SIZE=(...

 

RPG

In RPG programs, free-form statements are written in a fixed-form code by having a space character in columns 6 and 7. From now, the dependency analysis handles those statements. In the following example, dcl-f is a free-form statement surrounded by fixed-form statements. 
 

     C                   callp     "PROGRAM"

dcl-f PID workstn extfile('LIBRARY/PROGRAM-ID') indds(indMap)
sfile(SFL_STOR:#RRN);
dindMap ds

Freeform statement ends with a line ending with a semi-column. 

Improvements

SSO - Access Request

An input to specify the request reason has been added to the access request form to help the accreditation team validate new users faster.

Excel Import

Most resource names (datasets, workpackages, etc.) require at least 2 characters. The Excel Import warning message has been modified to reflect these requirements. 

Dependencies analysis

CL

Generally, the FILE property in CL implies a dependency on a corresponding file. For instance ... FILE(MY_FILE) ... creates a dependency to MY_FILE
However, for the CRTSRCPF and DSPFD commands, this property should be ignored. 
The following examples create no more dependency.

CRTSRCPF FILE(MY_FILE)

DSPFD FILE(MY_FILE)

RPG

Dependencies analysis already handle LIBRARY/PROGRAMID notation to determine which program to link. This behaviour has been extended to external links in fixed-form and free-form.

dcl-f PROGRAMID workstn extfile('LIBRARY/PROGRAMID')

SQL

Now, the dependencies analysis is establishing the dependency link between trigger object and table or view objects used in the WHEN clause in the trigger creation statement. Existing link between trigger object and the targeted table or view object still applies because of ON clause. Example: For the below SQL statement, two dependency links will be established. First, from trigger object TRIGGER_1 to the table object TABLE_1 because of ON clause. Then from trigger object TRIGGER_1 to the table object TABLE_2 due to WHEN clause.

 CREATE TRIGGER TRIGGER_1 BEFORE INSERT ON TABLE_1 

REFERENCING
NEW AS N
FOR EACH ROW
MODE DB2SQL
WHEN (NOT EXISTS (SELECT 1
FROM TABLE_2))

Dependencies analysis now handles the creation of the SQL function object. Example: A link will create a link from the query source file to a new node named FUNCTION_1

CREATE FUNCTION FUNCTION_1;

Along with function object creation, dependency analysis also establishes the dependency link between trigger object and function object thanks to EXECUTE clause in the trigger statement. Example: For the below SQL statement, it will form a dependency link between the trigger object TRIGGER_1 and the function object FUNCTION_1

CREATE TRIGGER TRIGGER_1

INSTEAD OF INSERT ON VIEW_1
FOR EACH ROW
EXECUTE FUNCTION FUNCTION_1();

Bug fixes

Common

  • Attachment permissions are now based on each module.
  • System utilities page does not refresh when updating a utility.
  • A system utility with a used name can be created.
  • Member with new profile cannot see existing attachments.
  • Images in emails are visible again.
  • Availability date in Datasets can now be removed or modified.

Dependencies analysis

Mainframe - SQL

SQL statements in the Mainframe analysis are stripped and result in the failure to create the node. It's been fixed.

Natural

Improved the determination of establishing the dependency link between Programs/Sub-programs and Copycodes for the PERFORM statement. As per new implementation, PERFORM dependency link will create if copycode has been included in the program or sub-program thanks to INCLUDE statement. In the following example, PERFORM dependency link formed between PROGRAM1.NSP and COPYCODE1.NSC due to INCLUDE statement. 
PROGRAM1.NSP

PERFORM S1

INCLUDE COPYCODE1

COPYCODE1.NSC

DEFINE SUBROUTINE S1

Behind the scene

  • We have made major updates to the libraries we use in Blu Insights (mainly Spring Boot and Hibernate).
  • We maintained, updated and enriched our test scenarios (~2,800). Additionally, tests execution has been speed up to run them more often when it is needed.
  • PenTests’ main findings have been fixed.

Yellowhammer

We continuously collaborate with security experts to audit the service features and infrastructure, scrutinizing every API and configuration. For this new release of AWS Blu Insights, the team put the focus on quality and security mixing bug bash sessions and penetration tests (PenTest). In parallel, we delivered a set of improvements mainly on dependencies analysis and graph manipulation. 

New Features

Codebase

We added Manage types to Workspace to allow users classifying UNKNOWN files that are not recognized by the Classification. Read this article for more details.

Dependencies

We added the support of new statements both for zOS and AS400 languages.
 

  • CCDEF

CCDEF files are Compilation control definition files. In those files, SINC statements establish a link to any program source file. For the following sample, dependency establishes the link between CCDEF_FILE and COB_PROGRAM
 

SINC COB_PROGRAM SAMSRCE
  • CL temporary object definition

In CL, it’s possible to define temporary objects with OVRDBF, OVRPRTF or CRTPF commands. Those objects behave like aliases for external files and other programs can use them. Now the dependencies analysis supports such objects, which avoid several irrelevant missing nodes in the dependencies graph.

In the below example, we define the alias MY_ALIAS for a DDS file named MYFILE. Then the alias is used in the RPG file. 
Here, a link will be created between MY_CL_FILE and MYFILE but also between MY_RPG_FILE and MYFILE

MY_CL_FILE.cl
 

OVRDBF FILE(MY_ALIAS) TOFILE(MYFILE)
CALL PGM(MY_RPG_FILE)
DLTOVR FILE(MY_ALIAS)

MY_RPG_FILE.rpgle
 

     FMY_ALIAS IF   E           K DISK

CRTPF statement has the same behavior.

MY_CL_FILE.cl
 

CRTPF      FILE(MYFILE) SRCFILE(MY_ALIAS)
CALL PGM(MY_RPG_FILE)
DLTOVR FILE(MY_ALIAS)

It's also now possible to define those temporary objects in Cobol files thanks to the STRING and CALL ... USING statements

MY_COBOL_FILE.cbl
 

      STRING 
"OVRDBF FILE(MY_ALIAS) TOFILE(MYFILE)"
DELIMITED BY SIZE
INTO CL-COMMAND
END-STRING.

CALL "COB_PROG" USING CL-COMMAND
CLENGTH.
 
  • MNUCMD

Menu-Driven Application uses MNUCMD files to link menu selection in the MNUDDS file to an action like to call a program. The dependency analysis can now handle this type of files and detect their dependencies. The dependency analysis handles the following statements. In the following examples, a dependency will be created to an appropriate file named FILE_ID
 

  • Call
0022 CALL PGM(FILE_ID) PARM('1' ' ')
  • Change data

In this example, it will also lead to a dependency to a file named FILE2_ID.
 

0010 CHGDTA DFUPGM(QALIB/FILE2_ID) FILE(QADATA/FILE_ID)
  • Clear physical file member
0011 CLRPFM EBFILEMD
  • Menu redirection
0024 GO MENU(FILE_ID)
  • Run query
0007 RUNQRY QRY(QALIB/FILE_ID)
  • Submit job
0004 SBMJOB CMD(CALL PGM(CIS400/FILE_ID))

Dependencies graph

  • A small loading spinner is displayed on the bottom left corner of the graph when an operation is running in the background.
  • When files and/or nodes are selected in a graph, the robust organic layout, previously reserved for generated graphs, is now available to be requested from the UI under the name "smart organic layout". It runs on the server and provides better results than the client-side “Fast organic layout” on large graphs.

Terminals

  • Support running recorded scripts on the terminal itself (i.e. the source and target applications are based on TN3270 or TN5250). The Terminals application can run in headless mode, and can be integrated in a CI/CD pipeline. This is useful for legacy applications re-platformed on the AWS Cloud.
  • The distribution of the Terminals application is controlled by an access token using the AWS KMS service.

Scale Out / Scale In

We added scaling policies to our ECS configuration to adjust the number of running tasks dynamically, which led to optimizing resource utilization and cost efficiency. To ensure our end users do not experience any performance degradation, we conducted performance tests to carefully select the optimal scaling policy and the appropriate scaling metrics. Additionally, we implemented task scale-in protection to guarantee zero downtime.

Improvements

Security

  • Parameters within requests have been kept to a minimum.
  • Security of WebSockets connections has been strengthened.

Codebase

  • Speed up workpackage and label deletions by up to 100x.

Dependencies

  • JCL

JCL DD statements are now insensitive to parameter order, like EXEC statement in previous release.

The engine has been improved for JCL defining a lot of SQL queries and JCL using plenty of variable replacement.
 

  • CSD

In previous release of dependencies analysis, a Cobol program using a transaction defined in a CSD has a link to both nodes, CSD and transaction. We removed the confusing link from Cobol to CSD in this release. As a result, in a dependencies graph, apply show all children on a Cobol File will not bring all CSD children. Filtering the CSD and LISTCAT files to ease the work packages creation is no more useful 😊. Kindly see the improvement with following the CSD and Cobol program.

CSD_FILE.csd
 

DEFINE TRANSACTION(CCLI) GROUP(CARDDEMO)


COBOL_FILE.cob
 

       EXEC CICS START TRANSID("CCLI") ... END-EXEC

Previously, the dependency link is formed from CSD_FILE.csd to CCLI (Transaction) object and from COBOL_FILE.cob to CSD_FILE.csd. After the improvement, the dependency link is formed from CSD_FILE.csd to CCLI object and from CCLI object to COBOL_FILE.cob.

SQL also having the same issue as CSD. Before, the link is formed between the file and the SQL object. As the improvement, dependencies analysis establishes the relationship between two object nodes. 
In details, currently for create alias, dependency link is formed from the declaring file to alias object and also from declaring file to table/view creation file. However, now a dependency link is formed from the alias object to the table object directly.
For the below SQL statement, before improvement, the dependency link is established from CREATE_ALIAS.sql file to ALIAS_1 object and also from CREATE_ALIAS.sql to the CREATE_TABLE.sql. After the improvement, the dependency link is formed from CREATE_ALIAS.sql file to ALIAS_1 and also from alias object (ALIAS_1) to the table object (TABLE_1)

CREATE_ALIAS.sql
 

CREATE ALIAS ALIAS_1 FOR TABLE_1

CREATE_TABLE.sql
 

CREATE TABLE TABLE_1;

Object to object mapping also improved for SQL statements like MODULE, INDEX, TABLESPACE, TABLE, CONSTRAINTS and VIEW. Overall, the resulting graph is easy to navigate, and it's lighter.

Activities

  • We now differentiate between dependencies analysis launched and imported from a JSON in the activity title.

     

Bug fixes

My Stuff

  • Deleting filters no longer throw an error in the console.

Transformation Center

  • Status were not displayed on documents.
  • An invited member could not delete a To-dos card/list or edit a document.
  • Users in Transformation Center projects could not edit To-dos cards.

Codebase

  • Deleting test scenarios were not logged in activities.
  • In the dashboard settings, when we click “select all”, the Issues and Jobs cards are no longer selected if the toggle button is disabled.
  • Deleting To-dos list was not possible when its position is incorrect.
  • CSV exports ignore disabled columns (e.g. for Issues and Jobs related to Boosters.)
  • SAVF Extraction completes without errors, but no files get extracted.

Common

  • Deactivating a module in project settings no longer throws an error in the console.
  • Logging with 2 separate accounts was not reloading other tabs.

Dependencies graph

  • Automatic subgraphs generation no longer crashes when only nodes are selected.
  • The entrypoints filter (second step) in automatic subgraphs no longer throws an error if the filter value is invalid.
  • The “Missing:” prefix is now correctly applied to missing nodes. The bug caused some pre-fetch filter pop-ups to be empty, as missing nodes types were not found using the prefix.

Dependencies

  • False positive nodes were created for the SQL statement if library and name of the statement are presents in separated lines, &LIB/ was the false missing in the following example. It's fixed in this version.
001800150528CREATE INDEX &LIB/
001900150528 IMPAR02BL1
  • JCL files defining FROM term of select SQL queries on several lines have been fixed.
  • Generic analysis now considers identifiers with # as valid.

Behind the scene

  • We maintained and updated our test scenarios (~2,674).
  • We updated the online documentation (Website, docs and FAQ).
  • Four blog posts were already posted to introduce the new features.

Xantus’s Hummingbird

New Features

Codebase

  • Labels can be imported on nodes (missing, system, etc.) similar to files.
  • Parent workpackages can be specified in the Excel file.

TN3270 and TN5250

  • Playwright test files are now generated in addition to Selenium and Selenese.
  • Support for code pages of Japanese Katakana and Japanese Latin (extended range) for TN5250.
  • TLS v1.2 with custom certificate/keystore is available besides Telnet and Telnet/SSL.
  • More logs for connection setup and data exchange are generated to improve the installation debug.
  • The standalone version of the terminals can now be requested directly through AWS Blu Insights.
  • Users can now select between different workstation types in both TN3270 and TN5250.

To-Dos

Cards can be linked.

Classification

CLIST (script language to execute TSO/E commands) are now supported by the classification.

Dependencies

We added the support of new statements both of zOS and AS400 languages.
 

  • CLIST

CLIST files can refer to other CLIST files using a statement like NAME1.NAME2.CLIST(MY_PROG) where NAME1 and NAME2 are any valid names. 
 

  • CTL

The INCLUDE statement (to build relationships between CTL and Programs) is now supported based on these two formats:
 

INCLUDE PROGRAM1
INCLUDE LIBRARY(PROGRAM1)
  • IMS/MFS

Message format service (MFS) is a part of the IBM Information Management System (IMS). This service receives messages from IMS, formats and sends it back to IMS. The dependencies analysis can now identify the message identifier in MFS files and detect their usage in Cobol files. This will create a link between Cobol file and the MFS file that defines the message, CEM01O in the following example.

CEM01O message declaration in a MFS file
 

CEM01O   MSG   TYPE=OUTPUT,SOR=(CEM01,IGNORE),NXT=CEM01I

Use of CEM01O message in Cobol file
 

           CALL 'CBLTDLI' USING
IM-PARM-COUNT
IM-CALL-FUNC IO-PCB
TP-SEGMENT
'CEM01O'.
  • JCL

Many JCL statements can address CLIST files by prefixing their name by %. For instance %MY_CLIST refers to a CLIST file named MY_CLIST in the project. 
 

EXEC PGM=IKJEFT01 PARM='%MY_CLIST'

In JCL, there is a command named ISPSTART that is used to reference a program. The dependencies analysis now handles this statement. For example:
 

ISPSTART CMD(MY_PROG)

In JCL, we can execute a file, like MY_PROG, with statements like NAME1.NAME2.EXEC(MY_PROG). The NAME1 and NAME2 parts are any valid names. Statements like NAME1.EXEC(MY_PROG) are also valid. The dependencies analysis now handles such statements.
 

  • PL1

COPY statement is now supported to create links between PL1 programs and Copybook. The below statement establish relationship with Copybook CPY1 from the PL1 file.
 

COPY CPY1

Before, dependency analysis handle the INCLUDE statement with keyword INCLUDE and follows by a Copybook identifier. Now, it also handles the library name, either SYSLIB or SFSTDS, in between INCLUDE keyword and the identifier. Example for the INCLUDE statement with library name as follows.
 

% INCLUDE SYSLIB (CPY1 )
  • RPG
    • Free-form code

Free-form code is an evolution of RPG where statements can start at any column. RPG files starting with **FREE are full free-form programs. Now, the dependencies analysis handles those files. RPG dependencies analysis is already detecting free-form section between /FREE and /END-FREE instructions, but is only focusing on SQL requests in these sections.
 

/Free
Exec SQL Update USER
Set LAST-NAME = "DOE"
Where NAME = "JANE";
/End-Free
  • Free-form statements: The following improvements apply to full free-form files and free-form sections.

RPG statements /COPY, /INCLUDE and EXEC SQL are handled in free-form code like in a fixed-form RPG program, i.e. classic RPG or RPGLE code. The dependencies analysis handles declaration statements using an external data definition file, printer or program. Those statements are data structure declaration DCL-DS, file declaration DCL-F and prototype declaration DCL-PR,
 

dcl-ds local-alias extname('dds-file')
dcl-f printer-file printer
dcl-pr prototype-name EXTNAME('external-program')
 

 

Improvements

Security

  • Permissions control within a project has been strengthened.
  • Information on invited users within a project has been kept to a minimum.
  • 3 fields in Documents were vulnerable to XSS attacks - We secured them.
  • Unwanted permissions (e.g.: edit profiles for guest).
  • Removal of unused/deprecated APIs.

According to the service logs, none of the detected vulnerabilities have been exploited prior to the Bug Bounty Program.
 

Dependencies

  • Engine

In JCL, statement parameters are not ordered. Those two following examples are equivalent.
 

EXEC PROC=procedure_file ... NAME=program, PSB=psb_name 
EXEC PROC=procedure_file ... PSB=psb_name, NAME=program

The JCL analysis has been improved to take that into account for EXEC statements.
 

  • Show more links
    • Add BQL filter in Show more links dialog.
    • The Show more links dialog option is now available when selecting nodes with potential parents even if they have no potential children. This can, for example, allow finding parents for isolated nodes.
  • Performance
    • Navigation and changing zoom level on large graphs is up to 10x faster since nodes and links intersection tooltips are no longer displayed on a high enough zoom level.
    • Eliminate unnecessary render calls (up to a reduction factor of 20x) to more efficiently use the browser’s computational resources.
  • Import: JSON files with more than a 512MB size can now be imported.
  • Prefetch-filter: Graphs with more than 5 Million vertices and edges can now be filtered by node type before getting loaded. This allows loading these large graphs on smaller machines. The filtering popup is automatically displayed when the graph is detected to be large enough.

Documentation and website

  • Shared Spaces service is now renamed to Secured Spaces to make it crystal clear we are talking about a private and secured space.
  • Documentation and website updates https://bluinsights.aws/.
  • New blog posts about the new features published on https://bluinsights.aws/blog/.

 

Bug fixes

Versions Manager

  • Invited members to a VM project will have by default the Team profile.

Dependencies

  • Cobol

Some Cobol keywords in lower case, like the following example, generated false positive values for dynamic calls. 
 

move '27' to W01returnCode
  • CTL

False positive Missing Program has been prevented for the SQL statements with EXEC keyword.
 

  • PL1

Improved the interpretation of the PL1 procedure (PROC) definition to avoid the false positive Missing Program
 

  • RPG

In RPG we can declare a prototype linked to an external program. Until now, the dependencies analysis was only considering the usage of the declared prototypes. In some cases if the prototype wasn't used the dependencies analysis wouldn't create a link to the referenced program. The dependencies analysis now directly creates a dependency to the external program at the prototype declaration. In the example below we declare a prototype named myprototype that can be used later in the RPG file without creating new dependency. With the prototype declaration, we create a dependency to a program named MY_PROG in the project.
 

D myprototype PR EXTPGM('MY_PROG')
  • SQL

On a Mainframe, SQL files can have margins, like the following example. Now, dependencies analysis ignore margin while processing it.
 

000000000 CREATE TABLE
000000000 TABLE1;

To-Dos

  • Deleting multiple columns no longer throws an error in the console.
  • In the notes of to-dos, you can now add links, emoji, and change the color of the text without having a hard closing of the notes.
  • The PDF loading bar no longer persists after the PDF is completely loaded.
  • When moving a list with cards to another board, a reloading is no longer required to see the cards in the new board.

Woodpecker

“I very frequently get the question: ‘What’s going to change in the next 10 years?’ And that is a very interesting question; it’s a very common one. I almost never get the question: ‘What’s not going to change in the next 10 years?’ And I submit to you that second question is actually the more important of the two — because you can build a business strategy around the things that are stable in time […] When you have something that you know is true, even over the long term, you can afford to put a lot of energy into it.”

Jeff Bezos

This advice from Jeff is one pillar of the design of AWS Blu Insights. In the mainframe modernization business, there are a set of obvious things that will never change both for users (e.g. sales & delivery teams) and customers (end-users contracting the modernization). For example: increase prospects & customers trust, getting back to prospects within hours after receiving the source code, reducing the level of expertise required by non-technical or non-expert stakeholders (i.e. usually decisions makers on customers side), providing a sharp follow-up on project execution, sharing and collaborating transparently, building links among all the tools, identifying potential risks upfront, etc. We remain focus on our mission by delivering new features to address things that will never change. Although we are using new techniques and technologies to address them. Working backward as usual! This new release is full of novelties: Automatic graph decomposition, Potential extra links, graph operations, BI Builder, Duplicated program ids, Workspace in TC, Codebase from S3, etc. See details below.

New Features

AWS Blu Insights Builder

For users who have been using AWS Blu Insights for quite some time, getting a ready-for-assessment Codebase project can become a mechanical and time-consuming task with no added value. Most of the projects require the same steps to get the Transformation Center project up and running with no extra fine-tuning as AWS Blu Insights’ components get more mature. And this is exactly why we built BI Builder, i.e. jumpstart AWS Blu Insights projects and give you back those precious minutes (sometimes hours) to focus on the things that matter more. The Builder automates all the process by setting up your Codebase project, launching the required analysis, creating the Transformation Center Project and launching the first Velocity Run to get the first outputs. Blu Insights will notify you when each step is done.

Dependencies Graph

Automatic constraints-based subgraph extraction: Split your large graphs into multiple subgraphs by simply tweaking some configuration knobs: Pick the number of subgraphs to be generated, if needed, add other entry points that will be used to traverse the graph, specify maximum constraints (e.g. number of files, number of effective lines of code) that will be enforced (i.e. not exceeded) on all the generated subgraphs and if needed, specify a file type distribution to target. Subgraphs with similar types of distribution will be favored during the generation. Refer to the dedicated blog article to delve deeper into the vision and motivation behind this change, and to the accompanying documentation for a comprehensive and practical guide on leveraging this feature.

Supercharge your graphs with custom artefacts: Users can customize the presented artefacts of the graph by editing their types and colors. They can also hide and show nodes in their subgraphs. For expert users, they can download the results as a JSON file, rework it and upload it again. Usually the goal is to add or remove some vertices and/or edges to get the graph that most fits the customer’s needs or the project methodology. Now, it is possible to add, customize, and remove edges and vertices within a few clicks.

Guided-enrichment using cross references: Enrich your graphs with potential undetected dependencies. When you launch a dependency analysis, a specific engine supporting hundreds of statements run to detect relationships. Sometimes it may miss a few links (e.g. new statement, new language, etc.) which may lead to an incomplete result. This new feature will help you remove these gaps based on filtered propositions using cross references between files.

Dependencies Engine

We added the support of new languages and statements based on actual use cases shared by the delivery teams.

  • Easytrieve

Dependency analysis can now handle the Easytrieve (EZT) language. In particular, when an Easytrieve macro (MACRO) named macro-file is used in Easytrieve source file, like the following example:

%<macro-file>

  • JCL

Besides other programs, dependency analysis supports control card (CTL) files linkage for the system utility scenario. In the following example, JCL establish the dependency link with CTL named CTL_FILE and PSB named PSB_FILE file.

EXEC PGM=DFSRRC00, PARM=(DLI, CTL_FILE, PSB_FILE)

Dependency analysis can now handle ADDRQ, DEMAND and DEMANDH statements, and create the dependency link between the JCL files and the job in the parameter of these statements. In the following example, the dependencies are FIRST_FILE and SECOND_FILE in the first statement and the dependency is FIRST_FILE in the second one.

ADDRQ,JOB=FIRST_FILE,DEPJOB=SECOND_FILE
DEMAND,JOB=FIRST_FILE

  • Mainframe

In ASM and Cobol files, it is possible to define an ENTRY statement. This statement is an entry point to a program. The dependencies analysis can now detect and link such calls.

  • Mainframe IMS (MFS)

COPY statements among MFS files are now detected.

  • SQLC

SQLC files are similar to SQL but with extra margins. The dependency analysis can now handle this type of files and detect their dependencies.

Transformation Center

New billing mechanism: The Transformation Center service pricing has evolved to address customers' needs and expectations. The key changes are:

  • The pricing is now based only on the number of lines of code (LoC) transformed by Blu Age engines.
  • The service now includes a Free Tier of 120,000 Lines of code that will help you explore all its features.
  • The billing is based on installments to avoid upfront invoices.

More details can be found in the documentation and FAQ.

Weather report: This report allows to see at a glance the compliance of the inputs and estimate the efforts required to modernize the related codebase. The option Only Weather Report in the Velocity pop-up allows you to get as many weather reports as you would like at no cost.

Workspace: We can now visualize transformation outputs directly in Blu Insights and benefits from all its IDE-like features.

Codebase

Create codebase projects from S3 bucket: This feature allows users to create codebase projects from an S3 bucket by granting Blu Insights temporary access to their source code through the S3 presigned URL. The project creation is handled in the following steps: First, the user creates a presigned URL from the source code file hosted in an S3 bucket. Then, they pass the URL to Blu Insights. This latter uploads the source code based on the provided URL to its infrastructure and then creates the project.

Duplicated Cobol program identifiers detection: Some Cobol files with different names may have the same PROGRAM-ID. Getting the list of those files during the assessment is important in order to help understand the dependencies among all programs. Blu Insights offers a new feature to automatically extract this information. You can find this tool in Assets > Statistics in the menu. The goal of this tool is to group all files that have the same Program ID in order to let the user compare and replace the files that do not have a unique Program ID.

Versions Manager

Automatic Impacts analysis: This new module lets you see at a glance all workpackages, test scenarios, labels, statuses and team members that are impacted by the code refresh. The Impacts module goes through all the artefacts (workpackages, test scenarios, statuses, labels and team members) of the reference project, and checks if they are linked to a file that is modified or deleted in the refreshed project. Each artifact category has its own tab. The impacted artifacts are listed in their tab, along with the files impacting them.

To-Dos

Board Notes: We added a new notes section to let you keep your project notes in one private and unique place.

Improvements

Versions Manager

  • Adding people to the project became easier, you can now invite them through two tabs. The first one allows you to select the users that are already invited to both codebase projects (reference and refreshed). The second one lets you invite users to all three projects (reference, refreshed and versions manager) at a time. If they are already invited to one of them, you will be notified and the user will only get invited to the two other projects.
  • A small card with the number of Modified Files got added to the dashboard.
  • In the ‘Modified files’ of the Comparison module, an additional column now shows if the file comes from the reference or the latest project. When comparing two files, the editor also specifies which project (reference or latest) each file come from.

Codebase

  • Assets:
    • Commented lines are now counted for BMS files.
    • Files deletion gets faster as we decouple it from the dependencies graph update.
    • Workpackages and Labels column sizes improved in the files table to fit the content length.
    • Dependencies graph nodes can now have multiple types, separated by a semicolon. Filters are now aware of these composite types, and offer the possibility to filter by any specific individual type within the composite.
    • Manage extensions: To avoid many consequent issues, the “Manage Extensions” job will no longer allow extensions transformations that will lead to having two or more files with the same path. The conflicting path is displayed to be handled by the user before running the job.
    • Workspace
      • We added the possibility to include/exclude files for the Search.
      • Binary files are no more excluded by default from the Search.
      • All files whose name starts with “.” (hidden files) are excluded by default, in order not to pollute the search result.
      • Java files are now semantically highlighted.
  • Management:
    • In the timeline, the names are now sorted in the alphabetical order.
  • To-Dos:
    • We’ve implemented a new filter for card comments, allowing you to view only cards with the comments you’re looking for.

Capture & Replay

In TN5250, the connection phase is separated from the terminal screen. In case of a connection failure, Errors like server/socket issue or unavailability of the workstationId will be displayed on the form page.

Transformation Center

  • We can now see Velocity versions in issue view.
  • The Velocity runs view no longer gets refreshed after changes on the reference codebase project.

Estimates

We updated the estimates service to align with the Transformation Center pricing model and the new SOW template.

Bug fixes

Classification

  • Assembly (ASM): Some files were wrongly classified as ‘CSD’.
  • Cobol: Character encoding in the Cobol file leads to wrong classification. It’s been fixed by using the UTF-8 encoding.
  • Easytrieve: Some documentation files are wrongly classified as ‘EZT’. Now, those documentation files are filtered to avoid false positive. As the result, documentation files are remains as ‘Unknown’.
  • IMS – DatabBse Description (DBD): Classification cannot classify the DBD files if command starts with a label. In the following example, AMLABEL is the label, and it’s been considered for DBD statement.

AMLABEL DBD NAME=AMPROGRAM,ACCESS=(HIDAM,VSAM)

Dependencies

  • Filters on Link type are now working properly on all projects.
  • PL1
    • Call statement in string literals are now ignored.

DCL HELP_TEXT_TAB_01(170) CHAR(110) INIT('CALL PROGRAM')

  •  
    • Comments are ignored to prevent false positives.
    • Dynamic calls with ENTRY variables are now supported.
  • RPG
    • RPG files with no extension were not properly handled.
    • Some file types were not accurate (e.g. RPG type now is DSPF and PRTF now is RPGLE).
    • SQL queries can now address logical files (LF) like physical files (PF).

Workspace

  • Sometimes, Search buttons were disabled.

Documentation & Communication

Behind the scene

  • We supported all ongoing opportunities, proof-of-concepts, projects and trainings.
  • We performed a security update of the website and for all our products based on Amazon Inspector findings.
  • We improved the performance of the dependencies analysis (going from hours to minutes in some projects and analysis).
  • We organized our monthly BugBash (No critical/major bugs detected and most findings are fixed in the current version).
  • We maintained, updated and enriched our test scenarios (~2500).

Veery

One of our favorite Leadership Principle is “Insist on Highest Standards”. We apply it in our work methodology, our testing strategy, development workflow, deployment strategy, etc. It is actionable and the outcomes are easy to identify (i.e. less bugs and more satisfied customers). For example, we maintain over 2000 test cases covering the most used UI features, the dependencies statements, the classification, the security, the performance, etc. This new release was fully dedicated to quality, i.e. we updated over 200 test cases and mainly improved existing features (e.g. UI fixes, dependencies results and Capture&Replay fine tuning).

We are receiving more and more feedbacks from all of you. Please continue doing so, we are happy to help and improve AWS Blu Insights working backward from your needs.

All the details about this new release are below and the documentation has been updated accordingly. Enjoy!

New Features

Dependencies

  • CL
    • Dependencies analysis is already supporting file paths in the CALL statement. However, it was not supportive for Library. Now, dependency analysis handles the libraries (*LIBL, *CURLIB, library name) in the CALL statement.
    • *LIBL: files matches in all libraries. E.g. CALL PGM(*LIBL/file)
    • *CURLIB: files matches in the current library
    • library name: files matches in the named library. E.g. CALL PGM(COMMONLIB/file). Here, if COMMONLIB (library name) is not found during analysis, then Missing Library node named COMMONLIB is created.
  • COBOL
    • Read, rewrite and write can be applied to a subfile by using the keyword SUBFILE after READ, REWRITE or WRITE keyword. The keyword SUBFILE was a false positive. These statements are now handled.

REWRITE SUBFILE STUDENT-SUBFILE

    • Sort Description declarations are now supported in Cobol and will create Object nodes like FD declaration does. For instance: SD MYSORTDESC. Sort Description can be addressed through SQL statements.
  • IMS
    • Dependency analysis can now handle the IMS (Information Management System) and create the dependency link between PSB (Program Specification Block) and DBD (Database Description) using the PCB (Program Communication Block) statement.

label PCB TYPE=DB DBDNAME=DBD_FILE

  • JCL
    • Dependency analysis is already supporting the system utilities (like DFSRRC00) in the JCL file. We added the support for the additional system utility DLIBMP. With the help of system utility, JCL file is accessing the database using PSB file. Hence, dependency analysis is establishing the link from JCL file to PSB file and COBOL program.

EXEC DLIBMP,NAME=COBOL_PROGRAM,PSB=PSBFILE

  • RPG
    • JFILE and PFILE statements in the logical file supports multiple parameters E.g.: JFILE(PF1 PF2). Dependency analysis is now handling this case.
    • Dependency analysis is supporting libraries (*LIBL, *CURLIB, library name) as similar to CL language in the JFILE and PFILE statement.
    • Logical file also create the ‘Missing library’ node as similar to CL language in case of library name is not found during the analysis.

Improvements

File deletetion

We improved the performances of files deletion in Codebase projects (going from 60+ minutes to 30 seconds for 2000 files)!

Dependencies

  • Dependencies performance on large projects has been improved by 20%.
  • Mainframe
    • CL
    • Handling of comments section in the CLP language has been improved to avoid the false positive dependency link.
    • Label with CALL keyword (Ex: CALLTRN) is lead to having a false positive dependency link. It has been fixed.
    • The CALL keyword presents in the STRING value (Ex: SNDUSRMSG MSG(‘CALL IN MSG’)) is causing a false positive dependency link. Now, dependency analysis is ignoring the content inside STRING values.
    • The SRCMBR parameter of RUNSQLSTM statement gave a false positive in the dependency analysis. This issue has been fixed.
    • CALL statements can be used as an expression, for example, in IF statements. The dependency analysis didn’t detect these calls. This issue has been fixed.

IF COND(&VAR *EQ '1') THEN(CALL PGM(PGM1))

    • RPG
      • In physical file, when a REFFLD parameter is followed by another parameter like COLHDG, the analysis showed a false positive composed by the value of REFFLD and the parameter COLHDG value. This issue has been fixed. In the following example, the false positive was COLHDG(‘HDG1’

A B1KID2 R REFFLD(FLD) COLHDG('HDG1')

      • An array initialisation section can begin with two star characters only. The dependency analysis doesn’t handle that, a false positive can appear on some rare occasions. This issue has been fixed.
      • RPG freeform statements can refer to their own source file. In those cases, missing nodes were created in the dependency graph. The dependency analysis will no longer consider such false positives.
      • The variables used in RPG dynamic calls should have a variable assigned to them. If not, the dependency analysis was creating false positive nodes with the variable’s name. Such nodes were irrelevant, so the dependency analysis was improved to ignore dynamic calls when no value can be found for the variable.
      • The dependencies engine now ignores hidden files and folders to improve the performance and provide more consistent graphs.
      • The download of empty JSON is not proposed anymore, the empty JSON is handled as a failure.
      • The parsing doesn’t fail if a node name is null or empty.

Transformation Center

  • In order to enhance the user experience of the Transformation Center, Velocity versions are now split into Nightly Builds and Official Releases.
  • In order to simplify the launch of a run, you can now launch a set of files without mandatory dependency analysis.

Capture & Replay

  • Removed hidden fields verification from JSON and side files in TN5250 (20% decrease in the file size, i.e. faster loading for users).
  • Side and JSON files are still generated in case the video is not available.
  • The Side file is more readable and its commands comments contains timestamps.
  • Duration color changes with a displayable tooltip if the duration exceeds ten minutes.

Login/Registration

Legacy login and registration pages (using the MFA) are now deprecated, and the user is redirected to the Single Sign-On pages.

Profile

You can now add a description for your profile. It will help you identify at a glance which account you are working on. This description is displayed under your name at the top right of the application.

Codebase

  • Test scenarios can now have multiple parents.
  • Homonyms are now case insensitive.

Bug fixes

Capture & Replay

  • WRITE actions on written fields have the wrong column value.
  • Recording can be lost if the video crashes.

Transformation Center

  • Status and labels were not displayed on Todo cards.
  • Fix a bug on the metrics of transformed lines of code.
  • Fix the refresh of the Transformation Center Usage page.
  • Fix the inability to create a Billed Transformation Center project.
  • Velocity version was not displayed correctly while saving the run.
  • The value of Processed inputs was updated when deleting inputs related to the run.
  • The Generic analysis fails to calculate the lines metrics after the versioning (bulk upload) of files with no extensions.

Common

  • Services were not displayed in showcase.

Behind the scene

  • We updated all our technical dependencies (based on Amazon Inspector findings).
  • We added over 45 test scenarios to our qualification pipeline.
  • We provided support to the ongoing projects, pocs and trainings (+90 requests).
  • We enhanced Velocity build tests against new outputs that might be generated when a configuration is provided.

Ural Owl

This new version of AWS Blu Insights embeds, as usual, new features and improvements, but it also brings major changes such as Single Sign-On (SSO) and the Transformation Center billing.

Single Sign-On
We are excited to share that AWS Blu Insights has added Single Sign-On (SSO) capabilities to improve the security and simplify navigation from the parent service (Mainframe Modernization). AWS Blu Insights access will be possible directly from the AWS Console. Registration on https://bluinsights.aws/ will no longer be required (and will later be deprecated).

We frequently heard from customers that they wanted to use their AWS accounts when working on AWS Blu Age refactoring projects. With this new feature, customers can now safely manage their accounts, leveraging AWS authentication mechanisms. The migration of the legacy accounts is ongoing.

Billing of the transformation
The usage of the Transformation Center is now charged following the pricing model described here. We describe all the details on how it works here.

The design, implementation and deployment of these two features required a thorough security validation (through a PenTest) in collaboration with AppSec teams. The outcome is a more secured AWS Blu Insights for the benefits of our customers.

More resources (Your inputs are welcome)
The team added over 100 new entries to the FAQ dealing with the different features, security, etc. We also added a new Resources section which will contain more details about major updates, useful links, usage examples, etc. We invite all of you to help us enrich this section. Please share your contributions and lessons learned.

New features

Transformation Center

  • Usage module and billing: Transformation Center usage is now billed based on transformed lines and weeks of usage per project. You can consult usage history in “Usage”, a new module accessible both in the Transformation Center and Business services. You can also consult billing details in AWS Console’s Billing service similar to other AWS services.
  • Issues view: you can now view the list of issues organized into three levels based on their language, type, and summary.
  • Invitation workflow: we simplified the invitation workflow for Transformation Center projects so that you can invite multiple members of the reference Codebase project at once. In addition, it is now possible to invite new members (not part of the reference Codebase project) directly in the TC project.
  • Workpackage view: we added a new view in Inputs to display a merged status for each workpackage inherited from the Codebase project. For each file, we pick the status of the latest Run or tag it as “Unknown” if never transformed.

Codebase

  • Workpackages: you can now compute the number of entry points per workpackage based on the dependencies analysis result.
  • Dependencies graphs: we started supporting graphs of projects up to 3x larger (up to 2 millions vertices and 8 millions edges).

Versions manager

  • Dashboard: we improved the dashboard with new cards, charts and changed the naming to better align with trainings and business vocabulary (e.g. code refresh).

Authentication

  • Single Sign-On from the AWS Console.
  • You are now notified and asked to reload the page on all active tabs when you log out of your account.
  • Users can now autonomously re-enable their accounts if disabled for inactivity (no more need to contact the support).

Secured Spaces

  • We added the ability to preview files (pdf, text, images…).

Common

  • Number of projects: the number of AWS Blu Insights projects is now unlimited except for the Transformation Center service, which is based on your certification level and role (click on your avatar on the right upper corner to see this information).
  • Operations: maintenance is now announced directly inside AWS Blu Insights with a blue banner displayed at the top of the website.
  • Filters: the suggestion list in the search bar is now filtered based on the typed value.
  • Download permissions: users can now manage download permissions with much more granularity than before in Secured Spaces, Codebase, Transformation Center and Versions Manager projects. Both source code and Excel files downloads can be allowed depending on the users’ profile. The download action is also traced in the Codebase project activities and notifications email.

Dependencies

  • Cobol
    • In Cobol, it’s possible to execute JCL code through a string. In order to do that, the code is stored in a variable which is used in a CALL USING statement. The dependency analysis now handles such a behavior.
      In the example below, a link to MY_PROG will be created:
      MOVE "CALL PGM(MY_PROG)" TO MY_VAR
      CALL ANOTHER_FILE USING MY_VAR
  •  
    • Cobol allows to concatenate string literals using a STRING statement and store the result in a variable. We now consider those statements in order to get the correct values for dynamic dependencies. We only handle the direct assignment of a string to a variable.
  • JCL
    • The system utilities program (like DFSRRC00) is helpful for accessing the database using the ‘Program Specification Block (PSB)’. To handle this scenario, the dependency analysis can link the from JCL file to PSB file and COBOL program. Refer to JCL docs for more details.
    • The dependency analysis handles the SQL statements present in JCL files.
    • EXEC PGM statement can now address the Easytrieve program dependency.
  • RPG
    • Record declarations in RPG physical files are now supported and will create an object node. We also consider calls to record objects through a Cobol COPY OF statement. In the following example, a link between COB_FILE.cob and DSPF_RECORD will be created.
      DSPF_FILE.dspf: A R DSPF_RECORD
      COB_FILE.cob: COPY DDS-DSPF_RECORD-O OF DSPF_FILE
      When there is a missing node, the category will no longer be “Missing Copy” but “Missing Record”.

Classification

  • Mainframe – Add Mark IV language to supported file types.

Improvements

Codebase

  • The language displayed in Workspace is set to the file type if its extension is missing or .txt.

Transformation Center

  • The Include required dependencies option now adds dependencies of Velocity Includes, which are mandatory during the modernization.
  • You can now distinguish between the latest velocity version available and the current velocity version you are using for your runs.
  • Display a warning message if the project contains unauthorized types and disable launching (relaunching velocity runs).
  • Revoking access to the Codebase project automatically revokes access to its related Transformation Center projects.

Capture & Replay

  • Non found fields do not stop the replay anymore (the Selenium execution continues while showing an error instead of stopping).

Bug fixes

Classification

  • CSD: detection of DEFINE keyword because of extra white spaces is now handled.
  • Cobol: COPY statements with quotes identifiers are now recognized.

Dependencies

  • Fix PL/I irrelevant dependency creation by handling multi-line comments.

Versions manager

  • Fix display bugs in the project page creation.

Transformation Center

  • Fix a minor bug on the metrics of patch lines of code.

TocoToucan

The team is excited to see how hundreds of users are adopting the solution to modernize legacy applications and move them to the Cloud. We have an ambitious plan for this year and the first outcomes are already here in this release full of improvements and new features. You may also noticed that AWS Blu Insights moved from bluinsights.aws to bluinsights.aws!

New features

Codebase

  • Users are now notified by email when their project is created and ready (no need to wait in front of the screen, although we have a nice collection of funnies).
  • You can download the dependencies result as a JSON file if the graph’s generation fails, but the dependencies’ computation succeeds (we just wanted to make sure it does not block you but believe us, you never see that).
  • If for any reason you want to force the encoding of your files (expert mode), you will be able to.
  • We alert users if the dependency analysis becomes outdated and needs to be relaunched (e.g. new files added using Catch-up.

Capture & Replay

  • You can now pause and resume the recording. This may be useful if you need to do some intermediate activities and thus will not have a long video with a long inactivity period.
  • Support enabled for workstation id for TN5250 to specify how the server will configure sessions.
  • Host Code Page support for TN5250 to specify the Code Page used by the emulator
  • Recording duration is now displayed next to the recording buttons to let you monitor a reasonable test scenario duration.

Dashboards

  • Permissions on dashboards are now managed through users profile.

Improvements

Transformation Center

We have made most of the improvements to speed up Runs launching and results display.

  • Only Velocity output files are displayed in the Runs view. We removed the includes files to reduce loading time and improve readability of the results (no more ignored status). A new button in the toolbar allows to show Velocity Includes used during a specific Run.
  • We ignore dependencies extraction when all the selected files are supported by Velocity. This allows to reduce unnecessary computation.
  • Parallel Runs are now proposed to users only when AWS Blu Insights require them (i.e. +50M loc in the Run).
  • We added a maximal Run limit to avoid performance flaws dealing with Runs page. From now, you cannot keep over 50 Runs (which is sufficient for all projects).
  • We removed “Select artifacts” action from Issues since “Load issues” is easier to use.
  • We automatically disable the Refactor action (and skip it during Run execution) if we find no Refactor zip.
  • We added the columns “Effective lines of code”, “Contractual lines of code”, “Number of Issues” and “Total lines of code” to the Runs.
  • Users can now delete multiple Runs.
  • Users can delete all the Patch configurations.
  • We added a filter to the form Metadata/Property set to facilitate the search for the properties. Velocity properties can now be filtered in the Metadata and Property set configuration based on their name or description.
  • We added advanced filtering options in Configuration.
  • Update existing project configurations when non-editable properties are edited, added, or removed.

Codebase

  • We removed the project size calculation (this information is not useful, and it takes time to compute on large project creations).
  • We redesigned the UX of “Show” and “Select” menus in dependencies graph.
  • We improved the performance in tree tables (Statistics, Files, …) for large projects.
  • We explicitly tell the users of project creation fails cause (e.g. archive protected with a password, too much files, corrupted archive…).
  • The “Manage type” option is now disabled after adding new unknown files with Catch-up.
  • CL comments highlighting improved in file visualization.
  • In Catch-up, users are informed when the module is not available for the demo projects and during ongoing analysis.

Dependencies

  • We refactored the missing labels to refer to a category of source files instead of a list of wanted file types, for example “Missing Program” instead of “Missing[COB, PL1, RPG]”
  • We optimized the dependencies analysis performance, especially for very long statements and files.
  • In JCL, irrelevant “CICS FILE FILE DEFINITION” missing node are now deleted.
  • In Cobol, a program without “PROCEDURE DIVISION” is now analyzed correctly.

Classification

  • We added the support for IMS (Information Management System), PSB (Program Specification Block), DBD (Database Description) generation and MFS (Message Format Service)
  • We improved detection of ASM, Easytrieve, JCL, PL1, CSD and LISTCAT language.

Secured Spaces

  • You can now invite multiple users at once (comma separated emails).
  • Searching results in Secured Spaces includes their related files.

Capture & Replay

  • Removed empty fields verification from json and side files.
  • Several layouts improvements have been added (e.g. states, underlying, colors)

System Utilities

  • Technologies and label columns are sorted in alphabetical order.
  • When system utilities are selected, the count number in the selection pop-up is updated.

Misc

  • Do not allow creating projects with special characters in the name to avoid errors when downloading files.
  • Support the preview of .webm and .mov videos

Website & Documentation

Bug fixes

Codebase

  • Delete files with labels can’t be done.
  • Update an event in Schedule will create a new event.
  • The save button of subgraphs is not working.

Transformation Center

  • In the table of Runs, when selecting multiple actions and clicking on the load issues button, the issues are not loaded correctly.

Capture & Replay

  • Actions in the last position of a field or in screens without fields are not captured in TN5250.

Misc

  • Pictures are not saved in the description fields of To-Do cards.

Behind the scene

  • We added +40 more test cases (for front-end, back end and security).
  • We performed a security update of all AWS Blu Insights (infrastructure, dependencies, etc.).
  • We participated to an AWS Blu Age training sessions (+80 participants).

Sapayoa

New features

Transformation Center

  • Configuration can be cloned from existing projects for a faster setup.
  • A Refactor skeleton zip can be downloaded directly from the Configuration.
  • File types column is available in the Velocity Runs tab (and thus can be used in the filters).

Capture & Replay

  • Connection parameters (host, port,…) used will persist as default configuration for future visits.
  • Capture simplification by regrouping video and interactions recordings in a single action.
  • The recording is automatically disabled for non supported browsers.
  • All actions are time-stamped in the Json file (based on video start time).
  • ESC key is now supported for TN5250.

Dependencies

  • PL1: Alias of type Entry are no more handled as missing.
  • SQL: Call from SQL files to CL programs is added.
  • CL: In CALLPGM statements, use paths to identify the file to link with.
  • LNK files are handled. Those files specify the version of a program to be executed at runtime (see documentation).

Misc

  • The Web page title is the name of the project and its type.

Improvements

Capture & Replay

  • The value of the fields just written to is no longer checked.
  • Irrelevant key press for the modernized application are now ignored. For instance, instead of capturing each individual modification (Delete, Backspace…) in an input field, we create a single “Write” Selenium command corresponding to the whole value of the input.
  • The value of all fields and text values are now checked using a Verify Selenium command.
  • If interacting with a target field is impossible, function keys will now interact with the whole page.
  • All verify actions for text values are now performed on trimmed values.

Transformation Center

  • Dependencies extraction is ignored when all files or patched inputs are selected.
  • Only charts with data are now displayed in the newly created Transformation Center dashboard.
  • Names of the Runs are extracted from filters names (if applied).
  • Numbers are easier to read, in the Velocity page, as they have commas after every third digit.
  • When launching Velocity, the transform step can’t be toggled off.
  • Improve error management when a run fails.
  • Perform security checks for Transformation Center.
  • Prevent to add a new member if they are not invited in Codebase.

Dependencies

  • RPG: Handle external datastructure file involving dependencies on a DDS file.
  • JCL:
    • Variables are replaced by their value. For example, if a variable “VAR” has a value “A”, an usage like “PROG&VAR” will be replaced by “PROGA”.
    • Dependency analysis will be processed on control cards (CTL) called by a JCL program, like it is done with CPY file for Cobol.

Misc

  • Allow users to export data to Excel or CSV files only if they are allowed to download them.
  • Improve To-Dos performances dealing with large boards and many cards.

Bug fixes

Capture & Replay

  • Press the space bar stops the record.
  • Time bar is not displayed in recorded videos.
  • “Tab” action not recorded properly.
  • Enter action in the SIDE file is not working.
  • Write actions captured on protected fields (labels).
  • Video recorded twice when we relaunch it after leaving the page.
  • Crash after an erase command from the server in TN5250.

Codebase

  • When creating a large subgraph, sometimes the main graph is displayed instead of the subgraph.
  • The size of the dependency graph’s nodes and text is too tiny on Mac.

Transformation Center

  • Generate Patch configuration is not considered.
  • The patched inputs were not displayed under the three Categories (Velocity Includes, Velocity Outputs, Others).
  • The error icon is only displayed if the transformation center project is not supported by velocity.
  • The values shown in the version column of the Velocity tab were not correct.
  • The paths shown when versioning a file were not correct.
  • We could toggle the Transform and Refactor steps off while having the Generate step toggled on.
  • In the Inputs tab, clicking on the path of a file didn’t open a view of the file for all files.
  • The versioning feature did not work for all files in the Velocity Issues view.
  • In issues view, all columns can be hidden.

Dependencies

  • JCL: In-stream procedures were handled as missing.
  • Cobol: Cobol sub programs were handled as missing.
  • CSD: CICS File definitions were not linked to related CICS dataset.
  • CL: CALLPGM dependencies now are supported as a variation of CALL PGM.

MiscSEmail update with invalid email breaks the Profile.

  • Sort by “Last Modified” not working properly in Secured Spaces.
  • Added, deleted, and modified files can’t be displayed in Versions Manager.
  • Last modified information on the folders does not have the expected value.

Redthroat

This is one of the major versions of AWS Blu Insights! Most of the work is behind the scene but it brings more stability, better performances, improved User eXperience and much more. Enjoy!

New Features

Dependencies

  • Engine
    • CSD parsing to extract CICS object definitions (i.e. transactions, files, datasets)
    • CICS statements are now linked to the CICS object (File and Dataset)
    • “EXEC CICS START TRANSID” and “EXEC CICS LOAD” statements are now detected
    • RPG menu files are now considered “CMD CALL …”
    • Detection of PL/I procedures declared as “generic”
    • Include of include with PL/I .INC files
    • PL/I procedures declared in an included file are now detected
    • Cobol – Handle aliases declared with “SELECT … ASSIGN TO …” in FILE-CONTROL section
    • Names resolution handles special characters
  • Visualization
    • Show and select all levels of children, parents, and neighbors’ nodes within one click

Improvements

Performances

This new version of AWS Blu Insights brings multiple performance improvements including:

  • Loading projects is almost x6 times faster than before
  • Downloading multiple legacy files or Run outputs is almost x10 times faster than before
  • Versioning inputs is almost instantaneous
  • Deleting files and Runs is almost instantaneous
  • Displaying dependencies graphs is almost x12 times faster than before
  • Run splits algorithm has been improved for better Velocity outputs management
  • Input files copy is parallelized to let Run launch up to x2 times faster
  • Loading of inputs page in large projects is up to x3 times faster
  • Dependencies graph processing before running a Velocity run is up to x10 faster on medium and large projects, and no longer freezes on large projects

Codebase

  • SAVF extraction with specific CCSID (Coded Character Set IDentifier)
  • Impacts of the catch-up on cyclomatic complexity, dependency analysis or Zip Extraction are detected and the user is alerted
  • Identical homonyms can be filtered

Terminals

  • Added support for F13 to F24 function keys, “+”, “-”, and special characters
  • When writing in a field, we now write the result of the field instead of all the individual key pressed
  • Function keys press are now assigned to a field in the Selenium script
  • Copy/Paste is handled
  • Hidden fields are underlined
  • Control on field types
  • When editing the fields’ values, the colors are now set properly
  • Error messages are now displayed in the right position
  • Browser scrolling turned off when the spacebar is pressed

Transformation Center

  • Project name is automatically populated with details from the reference Codebase project
  • The Velocity version is saved for future Runs
  • Run names are suggested in multiple scenarios
  • Export Velocity Issues to Excel
  • Preview (with syntax highlighting) for configuration files
  • Runs view contains total lines of code, contractual lines of code and effective lines of code columns
  • Removed double scrollbars
  • Launch of splits using only patched inputs is possible
  • Run outputs zip file name is more explicit
  • Configuration values are validated against the expected types
  • Patches can be deleted by any team member invited to the project
  • The welcome message has been updated to match the various scenarios (Customers, Trainings…)

Misc

  • The registration email details the required actions to activate the account
  • Inactivity emails are sent 5 days prior to disable the account
  • Natural system utilities has been added
  • Download permissions inside Workspace are also controlled
  • Improved activity emails for documents, labels and To-Dos modifications
  • Inviting an existing user to a project is not more allowed

Bug fixes

Codebase

  • Workspace search results are now consisted when using filters.

TN5250

  • Backspaces and delete keys are not working after some server commands
  • The cursor is sometimes not being correctly initialized after a screen change
  • The terminal sometimes freezes after sending a message to the server with no response

Transformation Center

  • Issues view was not showing all issues if they were on the same line of a file
  • Runs may fail due to file with one character name long
  • Refactor zip configuration is not considered
  • Documents Visualization is not working

Misc

  • Email update with invalid email breaks the Profile
  • Needs to refresh the To-Dos after modificaitons
  • Document-based resources (Library/Training) cannot be deleted

Quetzal

New features

Codebase

  • Codebase projects cannot be deleted if they are referenced in Versions Manager and/or Transformation Center projects in order to avoid inconsistency.
  • Cobol dependencies
    • Add support for EXEC CICS DATASET
    • Add support for dynamic calls for EXEC CICS FILE
    • Add the UNLOCK action for EXEC CICS DATASET/FILE

Transformation Center

  • A set of filters are automatically inserted in new projects.
  • Source code inputs and patches (last version for each input) can be downloaded.

Improvements

Transformation Center

  • Issues view has been updated to make issues analysis easier and faster.
  • The extraction of required dependencies has been changed to better align with projects practice.
  • Runs view loading time has been reduced (especially when it contains multiple Runs).
  • Deleting inputs and patches performance has been enhanced.

Capture & Replay

    • TN5250 and TN3270 : Added underline on fields.
    • Added screen size selection in the connection page
      • TN3270 supports 24×80
      • TN5250 supports 24×80, 27×132 and automatic screen size

    Codebase

      • Homonyms table can be automatically expanded/collapsed.

      Bug fixes

      Transformation Center:

      • Issue view does not load if related artifacts have been deleted.
      • Patches cannot be deleted.
      • Configuration attributes cannot be edited or removed in the Console.
      • Metadata properties are not synchronized with the Console.
      • For TXT files, the Velocity support check considers the file type.
      • Before launching Velocity, update the path of the selected patched inputs.
      • Fix Velocity dialog steps.
      • Impossible to create a TC project using a codebase project with txt files and a supported legacy type that wasn’t detected as a valid project by TC.

      Capture & Replay (TN5250):

      • Tab are not working to change field.
      • Backspaces cannot go at the start of a field.
      • Videos and screenshots are ignoring fields when the server is not defining the color.
      • The emulator sometimes ignores the last character of a field.
      • Pop-up not displayed correctly.
      • The restore command from the server is ignored.

      Dependencies:

      • RPG
        • Add a filter to avoid RPG keyword as missing dependencies.
        • PF files are now a potential target for SQL queries.
        • Handle dynamic calls through constant.
        • Handle RPG line continuation with ellipsis and hyphen.
      • Mainframe
        • Fix missing dependency type when using dynamic calls for EXEC CICS DATASET and EXEC CICS FILE.
      • Several graphs can now be edited at the same time.

      Documentation: The website (and documentation) has been updated with all the novelties.

      Peacock

      It’s the summer, our team is taking a few days to relax, take some rest and come back later full of energy to deliver new features. During this batch, we mainly focus on improvements, documentation updates and a lot of non-visible work (test automations, technical updates, security checks, etc.). Here are the main achievements.

      New features

       

      Transformation Center

      • Split large amount of inputs between multiple runs. Large legacy applications can take some time to be modernized by velocity. Splitting them will launch multiple parallel runs.
      • Relaunch runs if they are failed or blocked in progress for a long time. It will relaunch the run from scratch, deleting all the previous outputs.
      • Order metadata sections in configuration section. The chosen order is applied while generating the metadata file.

       

      Capture & Replay

      • Added a new “Connection Type” option before connecting with 2 choices : “Telnet” & “Telnet/SSL”

       

      Codebase

      • In the project creation form, you can now specify the encoding of the source code files (same for Catch-up)

      Improvements

       

      Transformation Center

      • Performance: improve loading time on Input page.
      • Bulk upload of patches is visible with a Toaster.
      • Dashboard Settings made easy by selecting all the velocity charts.

       

      Dependencies

      • Mainframe
        • Cobol
          • Improved usage of prefixes and suffixes in “COPY” statement
        • RPG
          • Improved the creation of dependencies from RPG program data area
          • Ignore “/TITLE” keyword
          • Handle RPG DDS I/O declaration used in “F” lines
        • SQL
          • Better handling of “CREATE OR REPLACE”
        • Various
          • Handle dependencies between “CMD” files and mainframe programs
          • Handle dependencies between mainframe programs and “BND” files
      • UX: Add a loading when extracting, merging or editing subgraphs

      Issues

       

      Transformation Center:

      • Dashboard view not showing due to deleted files.
      • Run end date should be the last executed action end date.

       

      Estimates

      • Some old estimates had an issue because of the missing workload step.

       

      Secured Space

      • When a filter is applied and removed, sizes are now correct in tags.
      • When we share a file, our own email address is no longer mentioned in the phrase “Uploaded content will be shared with…”.

       

      Codebase

      • Manage Extensions:Shows the new extension when the transformation is in progress.
      • Dashboard – Total documents per status chart:When we use the Total Documents by Status chart and apply a filter, the correct values ​​are displayed.
      • Task Status could not be deleted if assigned to a Document.

       

      To-Dos

      • In To-Dos type projects, the Excel export of status and labels offers to select the right columns linked to the section.

       

      Various

      • Login/Register: The “Login” and “Register” buttons are the correct color when using auto completion.

       

       

      Documentation: The website (and documentation) has been updated with all the novelties.

      Osprey

      New features

      • Transformation Center
        • Dashboard
          • Multiple charts (Outputs by type, by status…).
        • Configuration
          • Granular Specific patch management directly in the configuration.
        • Velocity
          • Add new information on the Velocity view for elements that have been processed.
          • Add a status bar for actions allow to get a quick overview of the status of files in one sight from the Velocity table.
        • Inputs
          • Add a new option to automatically include all dependencies for the selected artifacts.
          • Add a new view to see inputs under three Categories (Velocity Includes, Velocity Outputs, Others).
        • TN5250:  Added new functionnalities for TN5250 (see the documentation).
        • Classification : Shell files without extensions are now recognized by the classification engine.
        • Catch-up: Add Secured Spaces in Catch-up to import files.
        • Timeline: Add captions for the displayed artifacts.
        • My Stuff: Add jobs to files, workpackages or test scenarios by importing an Excel file.

      Improvements

      • UX/UI
        • Added tooltips to multiple buttons to better explain their role (e.g. TN3270 & TN5250 record user interactions buttons)
        • Added Spinners, Loaders and Pop-ups to better explain the workflow for multiple services (Transformation Center, Secured Spaces, etc.).
        • Grant and Remove access to a member from a project and keep all the activities.
      • Performances
        • Improve performances of the dependencies engine.
        • Enhance upload speed for large files and sets of multiple files in Secured Spaces.
        • Optimize dependencies CSV export.
        • Decrease the time to download outputs for large projects in the Transformation Center.
      • Transformation Center
        • When including dependencies, the latest version of the file (patch) is now used.
        • Only members of the reference Codebase project can be invited to the transformation project.
        • Velocity issues view: We now see the lines before and after the error.
        • Velocity columns: Added Start date / end date for files, actions, and display timestamps instead of dates.
        • Inputs – configuration: Add a toaster for all configuration uploads

      Bug fixes

      • Capture & Replays
        • Fixed “modify field” responses from a server not being handled correctly in TN3270
        • Fixed not being able to retake control of TN3270 using the Escape button when the server issues an error response
        • Added a way to control the access to Capture & Replays functionalities using the Admin panel
      • Dependencies: Make the launch button available after classification.
      • Catch-up: Fix the import of files with special characters.
      • User profile: Allows to change avatar.
      • Classification : Fix Copy files recognition
      • Secured spaces: The list of contributors is now well formatted
      • Dependencies:
        • Assembly – remove irrelevant matches with MCALL
        • JCL – remove &ENTRY from executed program’s dependencies
        • Homogenization of dependency’s link types
      • Transformation Centre:
        • Fix show end date in velocity table
        • Fix console error in issues
        • Display issues informations
        • Display of up to 10 files when selecting artifacts
        • Incorrect file type after classification or versioning of patch inputs.
        • Only display a Run that has at least a step with the status Done, hide runs with no issues, etc.

      Documentation: The website (and documentation) has been updated with all the novelties.

      Namaqua Dove

      Features
      • Transformation Center:
        • Display only supported codebase projects to create new transformation projects (the Transformation Center supports a codebase project if it contains at least one legacy type of the type velocity output except for SQL).
        • A new view has been added to Velocity module, to see at a glance the issues that might have been occurred during each transformation step. This view regroups the issues found in a table grouped by file and step.
        • In the “Check versions” step, instead of ignoring files with multiple versions, we will take the latest version.
        • Download transformation center velocity outputs for each file and action (Transform, Refactor or Generate).
        • View the log of an action.
        • Automatically add required dependencies for Velocity.
      • Codebase:
        • A new metric has been added to the Selection Properties, based on Contractual Lines of code.
        • Add an Encoding parameter to SAVF Extraction to parse correctly and extract special characters, such as Danish characters.
      • Register & Profile:
      • People:
        • Disable access to the project to a member without removing it from the project to keep all the history.
      • Estimates:
        • New legacy workload form has been added to catch more information about your legacy application architecture.

      Improvements

      • Transformation Center:
        • New configuration options have been added to the input module. You can now add Transform and Generate properties specific to your project to match your needs.
        • New charts have been added (e.g. Velocity versions & Total Runs per status)
        • It is now possible to run Velocity only for supported files.
        • Several improvements have been added (e.g. a toaster after adding Velocity).
      • UI/UX:
        • Simplify the use of Dependencies menus.
        • Add a notification when an upload has failed.
        • Improved responsiveness on small screens for the login and registration page
        • Added scrolling text to the home page.
        • When creating a codebase project from a Secured Space, messages are adapted for when you have no Secured Space with archive or when your filter does not match any archives.
        • Inform how many login attempts you have before your account is disabled
        • Email when an account will be disabled.
        • Improve UI of Secured Space and Authentication pages.
      • Security:
        • When sharing space, prohibit emails which are not allowed by the registrations rules.
        • For more security, no longer make member proposals when creating a Secured Space or member invitation in People.
      • Performances:
        • Improve performances and maintainability of the Cyclomatic Complexity and the Classification.
        • Improve performances when creating projects and deleting files.
        • Improve download performances in Secured Space.

      Bug Fixes

      • Dependencies – Mainframe:
        • Fix some issues with definition files.
        • Fix some false missing in JCL.
        • Fix some false missing in RPG.
      • Dependencies – Java: Missing packages and called systems are shown.
      • Dependencies – Graph: Add link types in the Dependencies export.
      • Classification: Fix LISTCAT files.
      • Secured Spaces:
        • Secured Space owners are now invited to Codebase projects created from their own Secured Space.
        • Allow capital letters in Secured Space emails.
        • Sorting by file size.
      • Authentication: Prohibit disabled accounts from resetting their password.
      • Import Excel: Pre-fill the name field with the name of the Excel file.
      • Project creation: Fixed search from Secured Spaces.
      • Uploads: Uploads can no longer exceed to 2GB in Documents, Catch-Up and Secured Spaces.