Assessment guide

The assessment walks a folder and writes one HTML report. It does not convert workflows or generate SQL. Every file that is not listed below is skipped. A file that cannot be read is marked failed, and the scan continues. A file larger than 512 MB is not read. An .xml file is classified from the earliest signature in its first 1 KB. Folders named .git, __pycache__, .venv, venv, and node_modules are skipped.

Report

The report is written to reports/<folder>.html. Pass -o name.html to choose the file name. A full path is used as given. --skip talend leaves a technology out. Repeat the flag to skip more than one.

Alteryx

Handled

  • .yxmd, .yxmc, and .yxwz workflows.
  • Workflows of those types packed inside a .yxzp zip.
  • .xml whose opening looks like AlteryxDocument.

Not handled

  • Other Alteryx files, including .yxdb, .yxft, and .cyz.
  • Zip members inside a .yxzp that are not workflows.

DataStage

Handled

  • .dsx text exports that start with BEGIN HEADER or BEGIN DSJOB.
  • .dsx XML exports, and .xml that is a DSExport or starts with BEGIN HEADER.

Not handled

  • .isx packages. They are counted and not opened.
  • A .dsx that is neither an export nor XML.

Informatica

Handled

  • PowerCenter .xml whose opening contains POWERMART or REPOSITORY.
  • .bin mapping files whose contents are JSON, starting with { or [.

Not handled

  • .bin files that are not JSON.
  • XML that is not a PowerCenter export.
  • Parameter files, session logs, and other Informatica artifacts.

Qlik

Handled

  • .qvs load scripts.
  • .qvf and .qvw apps, scored from the load script inside the file.

Not handled

  • .qvd data files.
  • A binary app whose load script is compressed in a form the reader cannot open. It is marked failed with "No load script was found."

ODI

Handled

  • .xml whose opening contains SunopsisExport.

Not handled

  • Other ODI files, including exports that do not use that root.

SSIS

Handled

  • .dtsx packages.
  • .xml whose opening contains DTS:Executable or Microsoft.Package.

Not handled

  • .ispac project packages, .dtproj projects, and .dtsConfig files.

Talend

Handled

  • .item and .xml jobs whose root is ProcessType, or that contain a node or componentItem.

Not handled

  • Context .item files, XMI, and routines that are not jobs.
  • .properties, .java, and zipped job archives.

COBOL

Handled

  • .cbl, .cob, and .cobol programs. A line counts as a statement when it starts with a COBOL verb, or when a verb follows ELSE, WHEN, or AT END. Continuation lines and paragraph names are not counted.
  • .cpy copybooks that contain data-description entries.
  • .jcl and .proc members that contain JOB, EXEC, or PROC, with or without a leading //.
  • A .jcl analysis file scored from the job text it carries.

Not handled

  • .txt and other extensions, even when the text is COBOL or JCL.
  • Easytrieve and other languages that share those folders.
  • A file with a handled extension that is not a program, a copybook, or JCL.

SAS

Handled

  • .sas programs. Counted items include data steps, proc steps, SQL, macros, arrays, retain, merge, do loops, if / else, include, %let, and libname, plus set, infile, where, hash objects, and call routines. A proc or statement is recognized only when it is on the supported lists in sas_reader.py. For example, proc glm and call missing are reported as unrecognized.
  • .egp Enterprise Guide projects. The zip is read in memory. Task order comes from project.xml, and each task is scored from its code.sas or embedded code. The SAS is not written out.
  • Data Integration programs inside a .sas file. They are recognized when the text contains %macro etls_, %etls_, _CLIENTTASKLABEL, transformID, or etls_loader. Lines before %etls_setDebug, bookkeeping %let lines, and the etls_loader wrapper are left out. proc sql and proc append inside that wrapper are kept.

Not handled

  • Data files such as .sas7bdat, logs (.log), and listing output (.lst).
  • A .sas file that is not a program, and an .egp that is not a zip or that contains no SAS program.