Release Notes: Mitto Version 2.9.0

Breaking Changes

  1. Before upgrading an existing Mitto system with mitto upgrade, javac must first be installed. This can be done via:

    sudo apt install openjdk-8-jdk-headless
    

    This step is not necessary when running Mitto in a cloud provider image built with packer using Mitto release 2.9.0-rc3 or later.

    When running the apt install command, if errors are encountered reconfiguring the mitto package, it may mean that Mitto was not fully installed prior to running apt install. If such errors occur, running mitto upgrade, despite the apt install errors, may resolve the errors.

Issues Resolved in this Release

New Feature

Issue

Summary

Resolution

MIT-2083

Regex - show matching file info in logs at start of job.

MIT-1975

MongoDB input

MIT-1955

System Monitoring Job Type

MIT-1897

Create IncludeTransform

Done

MIT-1896

Create ExcludeTransform

Done

MIT-1817

Update styles for json-schema Drag and Drop element

Done

MIT-1798

tojson, tojsonl code

MIT-1792

files - add pagination + search

MIT-1674

Move Create jobs wizard from modal to page like Sequence editor

Done

MIT-1492

stretch the modals to give more room for editing (e.g. SQL)

Done

MIT-1491

Hide Credentials for dbo

Done

MIT-1473

set default output database / database when using SQL connector

MIT-1413

Duplicate button for sequences

Done

MIT-1393

Allow comments in JSON configuration files

MIT-1390

Test amCharts FDG in Mitto

MIT-1039

Change control record in Mitto

Done

MIT-733

potentially create AWS IAM user for each new Mitto instance - to use the AWS api (client could whitelist IPs via Mitto instance for example)

Done

MIT-687

automatically altering column data types (string lengths) makes snapshots more difficult with current methods

Done

MIT-608

check source endpoint periodically (daily?) for endpoints that don’t have jobs in Mitto - alert the user and allow them to add those jobs’

Done

MIT-426

UI for filtering history by date range

Done

MIT-267

based on the schedules, show in the UI (on the job manager page for example) the next time a job is supposed to run and the delta between when it actually runs

Done

MIT-252

Monitoring job can return results of SQL query

Done

MIT-179

ability to define default database output (localhost postgres is default)

Done

MIT-166

need a way to apply new messaging/notification settings to all existing jobs

Done

Improvement

Issue

Summary

Resolution

MIT-2262

Allow creation of report of a release’s Jira tickets without overwriting remainder of release notes.

Done

MIT-2244

sql job - add SQL statement of job to job log on job run

MIT-2219

IMAP plugin icon

MIT-2210

Add Debian postinstall step to remove existing dataeditor plugin

MIT-2201

job edit - hjson - pretty format on save

Done

MIT-2184

Change default sender for notifications

MIT-2182

Remove unused frontend code from the dataeditor.

Done

MIT-2172

Links for “prod” version of documentation

MIT-2165

command job wizard - increase size of “command” box

MIT-2159

naming and sort order consistency

Done

MIT-2156

update documentation to show ticket status

MIT-2152

xsv plugin wizard - remove “define the columns” screen and remove SDL from resulting job config

MIT-2136

query plugin wizard - remove SDL from resulting job

MIT-2124

tag filter - order alphabetically

Done

MIT-2118

Mitto and TLS < 1.2

MIT-2113

Modify frontend to call /metrics endpoints on websocket messages only.

Done

MIT-2092

Use mitto.settings.TMP_PATH instead of /tmp

MIT-2087

add created_at and updated_at information to job page

Done

MIT-2081

Add support for multiple versions of Mitto documentation

MIT-2063

Unify set of filter across pages

Done

MIT-2062

wrap schedule text on jobs lists pages

Done

MIT-2049

Add metrics for mitto instance

MIT-2044

File upload: modify version string

Done

MIT-2026

monitor job type - add SQL tab

Done

MIT-2014

Changes to generic job builtin to support comments in job configurations

MIT-2012

add credential id to credentials page

Done

MIT-1973

JDBC input

MIT-1967

Swimlanes - add # of failed jobs and decimal precision

Done

MIT-1931

Support removal of Schedules for Extracts in Tableau Online

MIT-1924

Add ability to prevent writing header for tocsv()

MIT-1881

io - Unicode encode/decode handling

MIT-1878

Tableau Extract Refresh job type - list Extract Refresh schedules in alphabetical order

MIT-1869

Query - Add “create_engine” arguments

MIT-1848

mitto cli - add version

MIT-1845

add /api/key documentation to Swagger /docs

MIT-1844

ExtraColumnsTransform - Ignore columns not just objects

MIT-1839

Benchmark picke/json, JSON/UJSON

Done

MIT-1838

add “custom” option to job timeouts

Done

MIT-1830

Copy create_engine to apitoolbox

MIT-1829

graph - Add ability to filter by time range

Done

MIT-1812

Graph - add filter by status, time range filters

Done

MIT-1795

Job exited with returncode 143 - Nested sequence/job error

Done

MIT-1791

Select all (multi-select) jobs

Done

MIT-1780

Ace worker not found

Done

MIT-1771

Command plugin - tag jobs created via wizard with “cmd”

Done

MIT-1770

Excel plugin - wizard - output - move Schema above Table

MIT-1766

file manager - indicate the user can drag and drop in files (like csv plugin wizard)

Done

MIT-1755

Named Credentials - Store Google Credentials as named credentials

MIT-1745

New release mechanism:

MIT-1730

Graph - Filter by tag (API support)

Done

MIT-1723

wizard icons - Excel, Imap

MIT-1672

IO - Do not fetch table info on every step

MIT-1660

allow ReflectTransform to take extra SDL in job - remove lines 27-29 in existing code

Done

MIT-1657

job timeout - add 3 hours and custom number of minutes

Done

MIT-1652

add support for “end of” schedules - end of month, end of quarter, etc

MIT-1651

command job - add AceEditor for “cmd”

Done

MIT-1631

Show line number in message when error is found in Job

Done

MIT-1613

add Mitto job STEP to remove JSON store

MIT-1590

Feature Request: Mitto - Job Listing Page - Open RHS Job Panel

Done

MIT-1563

Remove the “upgrade” action from the /api/pkg Mitto API endpoint

Done

MIT-1500

snowflake - add QUERY_TAG for Mitto connections to snowflake

Done

MIT-1472

named credentials - add databases as an option

Done

MIT-1415

Consolidate pagination response format

Done

MIT-1395

Cleanup mitto package.json scripts

Done

MIT-1281

Graph - Filter by tag

Done

MIT-1275

swimlane - currently running job should be at the top of the list and have a width for the duration it has been running

Done

MIT-1027

add search to history page

Done

MIT-1020

Improve SSL on nginx

MIT-941

table viewer crosstab - fit to width of screen

Done

MIT-888

Add the :embed query string parameter

Done

MIT-886

add regex search to file manager files

MIT-841

Implement simple pagination for the dataeditor

Done

MIT-840

show which table in the database the data editor is tied to

Done

MIT-751

set a default timeout for jobs? - SQL jobs for example most of the time complete within seconds

Done

MIT-702

add “last run” time taken column?

Done

MIT-671

Allow store = True/False

MIT-668

[Mit 2110] Need a way to change the admin password in UX

Done

MIT-534

Mitto Sales Demo - Initial Password Setup instructions

Done

MIT-479

message notifications should probably only be turned on by default for sequences

MIT-467

with pagination we can’t use CTRL+F to find specific jobs - will need wildcard job filtering at the same time as pagination

Done

MIT-466

fit Navigation menu wording

Done

MIT-443

Install haveged

Done

MIT-356

auto generated tags

Done

MIT-265

Allow Save & Start from the Save component

Done

MIT-181

need a way to add and then enable/disable all jobs in a sequence based on something (tag, etc)

Done

MIT-130

Add locking to dpkg.json

Done

Sub-task

Issue

Summary

Resolution

MIT-2185

Fix cron migration script.

MIT-2110

Add API endpoint to change password

MIT-2109

Mitto UI is not working on the fresh installation.

MIT-2102

Migrate GET api/v2/jobs to POST api/jobs/search

Done

MIT-2094

Fix adding same job to sequence on front-end

Done

MIT-2080

Time filter update

MIT-2077

Add new query parameter to the GET api/v2/jobs?exclude=

MIT-2068

GET /api/v2/jobs - pages: Stage, Jobs - need to add ability to filter by time ranges

MIT-2067

GET /api/graph - pages: Graph - need to add ability to filter by job’s type and by search term

MIT-2066

GET /api/v2/history - pages: Swimlanes, History - need to add ability to filter by job’s tags

MIT-2065

Check if websockets are receiving notify messages on the job edit.

MIT-2057

Fix navs endpoint

MIT-2052

Fix Jobs created without conf

MIT-2050

Fix GET about/config endpoint

MIT-2033

Migrate xsv bultin to plugin V2

MIT-2032

Migrate dataeditor plugin to use APIv2

MIT-2031

Migrate query plugin to use APIv2

MIT-2029

Delete unused API v1 endpoints

MIT-1993

Switch the usage of old endpoint POST /api/job/<job_id>/_action in the frontend.

Done

Task

Issue

Summary

Resolution

MIT-2122

upgrade from 2.8 to 2.9 fails due to library dependency

MIT-2074

Fix failed CircleCI builds - delete package-lock.json

MIT-2060

Investigate SyncStore memory consumption

MIT-1989

List API endpoints that the front end uses which are still being served by uwsgi

MIT-1988

Investigate python-rocksdb==0.6.9.1 differences.

Bug

Issue

Summary

Resolution

MIT-2263

Upgrade fails if gcloud credentials are present and unencrypted.

Cannot Reproduce

MIT-2257

remove ssh from jpype in requirements.txt

MIT-2256

job config - hjson - commenting last line of object moves that line to line above

MIT-2249

CircleCI jpype segfault

MIT-2248

sequence - jobs last completed all increase as jobs run

Duplicate

MIT-2245

Job completion times for sequence are incorrect

MIT-2243

job logs - out of order by timestamp

MIT-2242

XSV plugin: Unclear error message if no XLS files present

MIT-2241

Credentials with invalid JSON are created

MIT-2239

jobs - run duration much longer than it should be

MIT-2238

database page - schemas don’t appear to be sorted

MIT-2237

jobs - tag filter - long tag text overflows

MIT-2236

webhooks - overflows it’s UI section on smaller screen

MIT-2235

jobs - multi select action throws js error - vendor-ba42ebbbb53f5017be2e.bundle.js:336 TypeError: ctrl.status is not a function

MIT-2233

Google sheets wizard - 404 Not Found on 2nd screen

MIT-2232

loading indicator flashes and interrupts user action while jobs starting

MIT-2231

sequence is created with “Invalid Value” for schedule.

Duplicate

MIT-2230

ui and cli performance issues

MIT-2228

Excel wizard fails when invalid start_row specified.

MIT-2227

Credentials list on first screen doesn’t show up when clicking previous from the next screen

MIT-2226

job’s updated at should not update when a job is started

MIT-2225

system job - fails on 2.9 - KeyError: ‘jobs’

MIT-2224

xlsx file with non-data sheets (data on sheet #5) causes wizard to fail

MIT-2223

sampling - 70% samples as integer - error = psycopg2.errors.InvalidTextRepresentation: invalid input syntax for integer: “0.7”

MIT-2220

global filters - multi selected values text outside button

MIT-2217

upgrade from 2.8.12 to 2.9.0-rc0 fails

MIT-2214

Snowflake - Object ‘TEST’ already exists.

MIT-2213

“builtin” test failures

MIT-2211

Fix sequence schedule ‘Invalid value’

MIT-2203

job edit - saving returns this console error - vendor-4f8b5ddafc7b7d4a44e4.bundle.js:336 TypeError: Cannot read property ‘length’ of undefined

Done

MIT-2202

json/jsonl inputs - json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)

Cannot Reproduce

MIT-2200

job edit - save & start - add indicator that something is happening

Done

MIT-2197

query plugin wizard - add credentials to first screen (input)

MIT-2196

“Save” and “Save & Start” buttons intermittently fail to work

Done

MIT-2192

data editor - bottom scroll bar

MIT-2191

database page - PostgreSQL listed 2x

MIT-2189

swimlanes - global type filter reverts on quick changes

Done

MIT-2188

swimlanes - order of jobs should be by completed date desc, running at the top

MIT-2183

job history - status filter - make multi select and/or add “all” option

Done

MIT-2180

change password - false error appears

Done

MIT-2179

tableau extract refresh wizard - 500 error using existing credential

MIT-2178

files - uploading same file should overwrite existing file (or at least prompt)

MIT-2177

job schedules not firing

MIT-2176

jobs page - selecting job (gray background) and keyboard arrow keys

Done

MIT-2175

The Dataeditor updates the wrong record

Done

MIT-2174

Fix dataeditor pagination

Done

MIT-2170

query job - output to snowflake - table names with mixed capitalization - KeyError: ‘test_snowflake_naming_MIXED’

MIT-2164

sql job transaction parameter doesn’t do anything?

Won’t Do

MIT-2163

HJSON - Job created with (working) hjson fails on creation

MIT-2161

sort order of a single job’s history is in ascending status id instead of descending status id

MIT-2160

data editor - change generic “database” to the name of the database of the data editor

MIT-2157

builtin.query.QueryInput uses incorrect comparison for upsert

MIT-2155

test issue - ignore

Cannot Reproduce

MIT-2153

repeated GET /v2/metrics calls while idle in UI

Done

MIT-2151

add /store endpoints to swagger /docs

MIT-2150

informatory message logged as WARNING

MIT-2144

job - schedule is blank on job creation (should say manual)

Done

MIT-2143

job edit - pressing escape key throws error - Error: Transition Rejection($id: 39 type: 4, message: This transition is invalid, detail: The following parameter values are not valid for state ‘edit’: [id:undefined])

Done

MIT-2142

Excel plugin wizard - credentials should be directly under database on last screen

MIT-2141

Excel plugin wizard - unable to specify index for value for “sheet”

MIT-2140

command plugin wizard - first screen includes blank key and value

MIT-2139

sql - editing job - Uncaught TypeError: Cannot assign to read only property ‘length’ of string ‘ select 1;’

MIT-2138

job edit - unable to save job - Uncaught TypeError: ctrl.conf.input.query.join is not a function

Done

MIT-2137

job edit - command/ctrl + s no longer saves the job config

Done

MIT-2135

Databases - Page load is very slow on Stage

Done

MIT-2130

global filters - ran during - jobs text with relative date needs to be reworded

Done

MIT-2129

global filters - search - needs minimum width

Done

MIT-2128

global filters - ran during - value and text of start date incorrect

Done

MIT-2127

jobs pages - filters in url parameter and on page, but not actually applying on page swap

Done

MIT-2126

files page - typo on upload note

Done

MIT-2125

swimlanes - metrics missing styling

Done

MIT-2123

Fix jobs filtering

Done

MIT-2121

test_redshift_upsert fails after PR#676

MIT-2119

Fix mitto 0020 py migration error

MIT-2115

Query jobs - wizard should add stream_results input parameter with a reasonable default value

MIT-2100

Pickup SDL fixes made in 2.8.x

MIT-2095

Fix job conf validation - “init() takes exactly 3 positional arguments (2 given)”,

MIT-2093

Fix multiple Custom sequence schedules

MIT-2090

adding same job to sequence 2x causes 500 error

MIT-2086

update PostgreSQL version in Mitto UI

MIT-2075

Frontend does not react on socket messages

Done

MIT-2072

Sequence ui bug when paginate jobs not currently in seq

Done

MIT-2061

Specify CPU architecture used when building rocksdb.

MIT-2059

RegEx - uppercase vs lower case column name out of order - missing values

MIT-2046

io - tojson fails when empty data is given

MIT-2041

/var/mitto/tmp - files not being cleaned up

MIT-2035

subscriptions - issue when subscription id exists in subscription status table but not subscription table - TypeError: ‘NoneType’ object is not iterable

MIT-2023

Column name with comma or single quote - jsonpath parse error

MIT-2020

ReflectTransform - Snowflake as input, output table empty

MIT-2019

Confirm consistent upsert logic across all implementations.

MIT-2018

subscriptions - 1 subscription failed out of many - job errors with returncode 138

MIT-1992

Files - Slow page load on stage

MIT-1990

correct special case of float sampling

MIT-1987

tests/test_job_subscriptions_process.py fails

MIT-1986

Snowflake error: Authentication token has expired

MIT-1980

Regex job failing on second run - snowflake

MIT-1979

Incorrect error message when killing the job manually.

Done

MIT-1972

CircleCI build failures

Done

MIT-1970

Query builtin: ‘sqlalchemy.sql.sqltypes’ has no attribute ‘TIMESTAMP_TZ’

MIT-1969

Test failures for BigQuery

MIT-1966

Imap job requires output format field.

MIT-1965

Jobs search does not find jobs from the previous/next page

Done

MIT-1964

Pagination widget shows wrong numbers.

Done

MIT-1960

BigQuery: address PendingDeprecationWarning

MIT-1958

Invalid CRON schedule (0 5 1 0 0) - Re: Mitto Fixed.

MIT-1952

Database page 500 error when table starts with space

MIT-1951

Database page - non analytics database shows wrong tables in schema

Done

MIT-1950

Command line plugin wizard - timeout doesn’t get added to job config

MIT-1944

Regex single file with modified date today the mtime is not a datetime

MIT-1942

rclone should be installed on every mitto

MIT-1938

Job doesn’t finish with broken webhook JSON

MIT-1936

Sampling - sampling large integer values can raise an exception

MIT-1935

Sampling - some values which should sample as SDL Integer are sampled as SDL Float

MIT-1928

job returns 500 error - Exactly 5 or 6 columns has to be specified for iteratorexpression. (type=value_error.croniterbadcron)

MIT-1927

Existing credential can be edited and saved without filling in the entire form

Done

MIT-1925

Fix broken mariadb tests

MIT-1922

MySQL & MSSQL - Cannot upgrade from Boolean to Integer

MIT-1921

test_max_timestamp_tz_awareness() does not test timestamp timezone correctly

MIT-1920

‘SnowflakeDialect’ object has no attribute ‘default_schema_name’

MIT-1919

Database Manager - job with output with invalid schema/table name - 502 bad gateway error

MIT-1918

PostgreSQL - 20 digit integer - sycopg2.errors.NumericValueOutOfRange: numeric field overflow DETAIL: A field with precision 18, scale 8 must round to an absolute value less than 10^10.

MIT-1917

logs pagination happens on mouse wheel scroll up and down

Done

MIT-1915

ReflectTransform - job config step without schema key

MIT-1913

SQL job with – comments - psycopg2.ProgrammingError: can’t execute an empty query

MIT-1912

Query - UPSERT STEPS CountTable (should be CollectMeta) out of order

MIT-1910

MySQL: Cannot insert more than 65535 chars

MIT-1909

Update tests to reflect the quoted SQL created as a result of MIT-1726

MIT-1908

Fix unittests

Done

MIT-1901

File Manager Load time

MIT-1895

MySQL - error when increasing size of varchar column

Done

MIT-1894

Redshift - Invalid argument(s) ‘s3_bucket’,’s3_access_key’,’s3_secret_key’ sent to create_engine()

MIT-1893

MySQL - Text columns altered on every run

MIT-1892

iov2.utils.json_encoder can cause reduced precision for decimal numbers

MIT-1886

update DEBIAN/opt/mitto/etc/nginx/nginx.conf

MIT-1882

Snowflake - rollback calls count was reduced but still high

Done

MIT-1868

Store to table - investigate memory issue

MIT-1843

Sequences can be duplicated from pane view, but duplicating certain sequences results in error

Done

MIT-1832

Mitto 2.8 - jobs in sequence removed by dragging do not stay removed

Done

MIT-1822

CSV wizard io job fails on added columns

Done

MIT-1821

Random pytest DB assertion error

Done

MIT-1820

Redshift - error converting BOOLEAN to STRING

MIT-1818

Redirect after login not working.

Done

MIT-1815

Very long job name - able to scroll down page way beyond content

Done

MIT-1813

Backticks not working in mysql queries.

Declined

MIT-1810

Tableau Extract Refresh - credentials are created for every job instead of one Tableau Server/Online credential

MIT-1803

job notifications modal - text overflowing out of modal

Done

MIT-1793

Some Mitto scheduler log statements going to /var/log/syslog

MIT-1779

Job schedules - bogus value in “custom” field with “daily” schedule causes job to be uneditable/unrunnable

MIT-1777

Job Runner - Handle job kill

MIT-1760

Understand, and possibly correct, incorrect pylint warnings

Done

MIT-1754

Renaming a job doesn’t rename the store directory

Done

MIT-1748

closing add job modal sends user to /stage instead of returning user to current page

Done

MIT-1746

Mitto Bug - XSVRe /CSV Jobs - Monetary Columns with “(” import as varchar

MIT-1740

Tests - Fix warnings

MIT-1738

Blank Job page when using a direct link for nonexistent job

Done

MIT-1726

PostgreSQL reserved words - ALTER COLUMN from TYPE VARC…

Done

MIT-1718

swimlanes - large number of job runs > 10k doesn’t match pagination number

Done

MIT-1688

extra dots when adding long named jobs to sequence

Done

MIT-1677

column name with single quote (CSV, Google Sheets) fails

MIT-1675

Query - io input error on upsert

MIT-1669

file list sorting - B is listed before a

Done

MIT-1649

stage page missing pagination

MIT-1643

kill of cmd jobs leaves processes running

MIT-1604

[CUSTOMER] psycopg2.errors.InvalidCursorState: opening multiple cursors from within the same client connection is not allowed.

MIT-1581

Redshift - concurrent jobs into meta table - Serializable isolation violation on table

MIT-1520

Change CountTable to CollectMeta in Query job

Done

MIT-1456

Data Editor Column Headings Pushed to the right

Done

MIT-1428

Any mitto CLI command creates an auth app instance

MIT-1421

Credentials Page - /credentials_type request is made on every Add/Edit modal opening

Done

MIT-1341

INVALID - Store - upsert doesn’t work without “updated_at” set

Done

MIT-1224

date being converted to timestamp with time zone instead of date

MIT-1223

“short” date being converted to string instead of date

MIT-1203

CUSTOMER BUG - SQL Server - table upsert incorrect (datetime2 data type) - store upsert correct however

Done

MIT-1187

JSON job consuming 4x memory compared to size of file (2.2GB)

Done

MIT-1013

Delete Same-name job in different tab, can’t recreate job until you exit job-creation window

Done

MIT-896

MSSQL - job should create schema if it doesn’t exist (like PostgreSQL currently does)

MIT-845

500 error when editing existing data editor row, and saving with a different ID value than original

MIT-658

Invalid boolean for Redshift

MIT-549

Sampling bug when converting Float to String

Done