Skip to content

Latest commit

 

History

History
736 lines (596 loc) · 24.3 KB

CHANGELOG.md

File metadata and controls

736 lines (596 loc) · 24.3 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

This version is the first step to move away from AngularJS. The single AngularJS application is split into several smaller applications. This will make it easier to remove AngularJS piece by piece.

Several pages already work without any AngularJS code:

  • Authentication pages (/login and /logout)
  • Home page
  • Shared space
  • Import
  • Export
  • User pages
  • Role pages
  • Datasource pages

Breaking changes

  • Node.js 12, 14 and 16 are no longer supported. Supported versions are 18 and 20
  • MongoDB 4.0, 4.2 and 4.4 are no longer supported. Supported versions are 5.0, 6.0 and 7.0

Changed

  • After a successful login, redirect the user to where it was before being redirected to the login page
  • When the mouse hovers a report in the dashboard sidebar, the corresponding report in the dashboard view is highlighted to help locate where a report is used.
  • Similarly, when the mouse hovers a report in the dashboard view, the corresponding report in the dashboard sidebar is highlighted.

Fixed

  • Fixed a bug that was preventing to import the same report multiple times in the same dashboard. Problematic reports need to be removed from dashboard then imported again
  • The "selection box" that appears around a dashboard block when selected now correctly follows the selected block when the user scrolls

Dependencies

  • Added gettext.js 2.0.3
  • Added gettext-parser 7.0.1 (dev)
  • Added globals 15.9.0 (dev)
  • Added jest-environment-jsdom 29.7.0 (dev)
  • Added jest-jasmine2 29.7.0 (dev)
  • Added jstree 3.3.12
  • Added liquidjs 10.16.3
  • Added merge-stream 2.0.0 (dev)
  • Added negotiator 0.6.3
  • Added prettier 3.3.3 (dev)
  • Added stylelint-config-recommended 14.0.1 (dev)
  • Added vinyl 2.2.1 (dev)
  • Updated angular-mocks to 1.8.3 (dev)
  • Updated angular-sanitize to 1.8.3
  • Updated arg to 5.0.2
  • Updated clipboard to 2.0.11
  • Updated connect-mongo to 5.1.0
  • Updated config to 3.3.12
  • Updated cookie-parser to 1.4.6
  • Updated eslint to 8.57.0 (dev)
  • Updated eslint-config-standard to 17.1.0 (dev)
  • Updated eslint-plugin-import to 2.29.1 (dev)
  • Updated eslint-plugin-jest to 28.8.0 (dev)
  • Updated eslint-plugin-promise to 6.6.0 (dev)
  • Updated express-session to 1.18.0
  • Updated gulp to 5.0.0 (dev)
  • Updated htmlhint to 1.1.4 (dev)
  • Updated intro.js to 7.2.0
  • Updated jest to 29.7.0 (dev)
  • Updated jquery to 3.7.1
  • Updated jquery-validation to 1.21.0
  • Updated migrate-mongo to 11.0.0
  • Updated mongoose to 8.5.3
  • Updated mongodb-memory-server to 10.0.0 (dev)
  • Updated mssql to 11.0.1
  • Updated oracledb to 6.6.0
  • Updated pg to 8.12.0
  • Updated set-cookie-parser to 2.7.0 (dev)
  • Updated stylelint to 16.8.2 (dev)
  • Updated supertest to 7.0.0 (dev)
  • Updated vinyl to 3.0.0 (dev)
  • Removed angular-intro.js
  • Removed angular-gettext
  • Removed angular-route
  • Removed angularjs-bootstrap-datetimepicker
  • Removed ejs
  • Removed eslint-config-standard (dev)
  • Removed eslint-plugin-import (dev)
  • Removed eslint-plugin-node (dev)
  • Removed node-fetch
  • Removed stylelint-config-standard (dev)

3.2.4 - 2024-07-09

3.2.3 - 2024-07-08

  • Prompt (runtime filter) label defaults to element label if no label is defined in the filter configuration
  • Run npm audit fix to reduce the number of security vulnerabilities

3.2.2 - 2023-09-19

Fixed

  • Fixed display of "runtime filter properties" button for browsers based on Chromium >= 114

3.2.1 - 2023-02-23

Fixed

  • Fixed user's first name not being shown in users list
  • Fix control access on dashboards according to role permission.
  • Fixed report column internal ID generation, which could cause problems like data not being exported for some columns in XLSX

3.2.0 - 2022-10-14

Added

  • Added ability for users to change their own password

Fixed

  • Fixed filter when layer column has date element type and switch to another type
  • Fix drag and drop issue with images within dashboards
  • Fix access control so that users without permission reportsCreate cannot modify or delete reports, even their own reports

3.1.1 - 2022-07-20

Fixed

  • Fixed a bug that prevented reports/dashboards to be calculated when mandatory filters were present

3.1.0 - 2022-06-30

Added

  • Add 'IS EMPTY' and 'IS NOT EMPTY' filter type for reports
  • Filter suggestions option on filter prompt modal to show or hide suggestions
  • Add CSS class "scrollable-dropdown-menu" for filter suggestions and filter type input
  • Now it's possible to delete a role, even if it contains users (with mention on modal)
  • Added tooltip on layer elements to show their description
  • Added a 'return to home' button on pages where the sidebar is not visible
  • Show the number of rows returned by a query in report editor

Changed

  • Moved notifications from top-right corner to bottom-right corner because they were hiding action buttons
  • The default behaviour after saving a layer/report/dashboard has changed: now we stay on the same page so we can continue editing. Other options have been added in a dropdown button

Fixed

  • Fixed XLSX export miscalculation of column id which caused some columns to be filled with 'undefined'
  • Removed the red background of each cell in XLSX export
  • Throw error when export failed with Pikitia
  • Now filters on reports or dashboards can be exported as PNG or PDF and stay updated with results
  • Fixed filter suggestions not being shown entirely in dashboard

3.0.0 - 2021-10-22

Breaking changes

  • Node.js 10 is no longer supported. Supported versions are: 12, 14 and 16
  • MongoDB 3.6 is no longer supported. Supported versions are: 4.0, 4.2, 4.4 and 5.0

Added

  • Added a service for notifications called "notify" (based actually on PNotify)
  • Added Spanish translation
  • Added report type pyramid
  • Added gulp task dev that combine watch and nodemon
  • Added ability to load an image into a dashboard using an URL
  • Added CLI command to list users: user-list
  • Added CLI command to print config: config-dump
  • Added ability to configure search_path for PostgreSQL data sources
  • Added ability to remove a user

Changed

  • Replaced Noty (unmaintainted) by PNotify
  • If no language is selected, use the language defined in browser preferences (#76)
  • Set SameSite=Strict for XSRF-TOKEN cookie
  • Removed the properties nd_trash_deleted and nd_trash_deleted_date. Deleted dashboards are now permanently removed from the database
  • Moved documentation to doc/user. It can now be built with Sphinx and is automatically built on https://urungi.readthedocs.io/

Fixed

  • XLSX export now takes into account dynamic filters (#252)
  • Logged in users that become inactive are no longer able to use the app and are redirected to the login page (#203)
  • Report data is no longer displayed automatically if there is a mandatory filter
  • Columns descriptions in report will automatically update when the corresponding layer object is renamed (#254)
  • If no date is selected in a date filter, the filter is now ignored instead of making the whole query fail.
  • Removed usage of non-standard CSS property zoom
  • Sidebar numbers are now updated automatically
  • Show only owned reports and dashboards if not admin
  • Fixed usage of an order column when that column wasn't appearing in the SELECT clause
  • Error handler sent by server to be displayed on the client-side
  • Fixed format support on line graph and similar
  • Using '?' in a custom field does not cause errors anymore (#22)
  • Grants permissions are really effective in the shared space
  • Dynamic filters on dashboards can now be styled
  • No longer necessary to enter password when editing an existing user

Dependencies

  • Added node-fetch 2.6.5
  • Updated angular to 1.8.2
  • Updated angular-gettext to 2.4.2
  • Updated arg to 5.0.1
  • Updated c3 to 0.7.20
  • Updated clipboard to 2.0.8
  • Updated config to 3.3.6
  • Updated connect-mongo to 4.6.0
  • Updated cookie-parser to 1.4.5
  • Updated csurf to 1.11.0
  • Updated debug to 4.3.2
  • Updated del to 6.0.0
  • Updated ejs to 3.1.6
  • Updated eslint to 7.32.0
  • Updated eslint-config-standard to 16.0.3
  • Updated eslint-plugin-import to 2.25.2
  • Updated eslint-plugin-jest to 24.7.0
  • Updated eslint-plugin-node to 11.1.0
  • Updated eslint-plugin-promise to 5.1.1
  • Updated express-session to 1.17.2
  • Updated gulp-less to 5.0.0
  • Updated htmlhint to 0.15.2
  • Updated intro.js to 4.2.2
  • Updated jest to 27.3.1
  • Updated jquery to 3.6.0
  • Updated jquery-validation to 1.19.3
  • Updated jsplumb to 2.15.6
  • Updated migrate-mongo to 8.2.3
  • Updated moment to 2.29.1
  • Updated mongodb-memory-server to 7.5.1
  • Updated mongoose to 6.0.11
  • Updated mssql to 6.3.2
  • Updated multer to 1.4.3
  • Updated mysql to 2.18.1
  • Updated nodemailer to 6.7.0
  • Updated oracledb to 5.2.0
  • Updated passport to 0.4.1
  • Updated password-generator to 2.3.2
  • Updated pg to 8.7.1
  • Updated request to 2.88.2
  • Updated set-cookie-parser to 2.4.8
  • Updated stylelint to 13.13.1
  • Updated stylelint-config-standard to 22.0.0
  • Updated supertest to 6.1.6
  • Removed eslint-plugin-standard
  • Removed gulp-concat
  • Removed gulp-decomment
  • Removed knex
  • Removed merge-stream
  • Removed request

2.2.0 - 2020-04-01

Added

  • Added command line interface (bin/cli)
  • Added ability to configure uploads path

Changed

  • scripts in script/ have been replaced by a command in the new CLI
  • Dockerfile now takes a build arg NODE_TAG
  • docker-compose.yml reads environment variables NODE_TAG and MONGO_TAG

Fixed

  • Fixed date filter when using patterns 'This month' and 'Last month'
  • Sanitized user input used as regexp

Removed

  • Removed "Remember me" feature at login because it was not secure

Dependencies

  • Added arg 4.1.2
  • Updated angular to 1.7.9
  • Updated angular-mocks to 1.7.9
  • Updated angular-route to 1.7.9
  • Updated angular-sanitize to 1.7.9
  • Updated eslint to 6.8.0
  • Updated eslint-plugin-import to 2.20.0
  • Updated eslint-plugin-jest to 23.6.0
  • Updated eslint-plugin-node to 11.0.0
  • Updated jest to 25.1.0
  • Updated mongodb-memory-server to 6.2.3
  • Updated mongoose to 5.8.6
  • Updated oracledb to 4.1.0
  • Updated set-cookie-parser to 2.4.1
  • Updated stylelint to 13.0.0

2.1.0 - 2020-01-02

Added

  • Added ability to configure the number of workers

Dependencies

  • Updated migrate-mongo to 7.0.1

2.0.1 - 2019-12-20

Fixed

  • Fixed sharing a dashboard or a report inside a shared space folder
  • Fixed shared space for non-admin users

Changed

  • Make users API routes more REST-like
  • Disabled the default http.Server timeout of 120s

2.0.0 - 2019-11-29

Important update information

  • The new ability to export reports and dashboards as PDF/PNG requires a new dependency: Pikitia

    You need to install it and configure it by setting options pikitia.url, pikitia.client_id, pikitia.client_secret and url (see Configuration section in README.md)

  • BREAKING Node.js 8 and MongoDB 3.4 are no longer supported. Upgrade to Node.js 10 and MongoDB 3.6 (#208)

Added

  • Added ability to change a column's label in report (#39)
  • Added ability to change column's format in report (for date and number) (#75)
  • Added ability to export dashboards and reports as PNG or PDF (#41, #110)
  • Added ability to calculate totals in grid and vgrid (#74)
  • Added ability to select a theme for reports and dashboards (#109)
  • Added ability to serve Urungi under a subdirectory (#139)

Changed

  • Move report columns settings into a modal
  • Move report settings into a modal
  • Use HTML table for building grid and vgrid
  • Use PivotTable.js instead of cynteka for building pivot table (#71)
  • Hide dashboard title on print (#165)
  • Use asynchronous autocompletion for filters to avoid loading thousands of values (#132)

Removed

  • Removed the Advanced tab in layer element modification (modal and sidebar) (#150)

Fixed

  • Fix scripts first-time-setup and set-password
  • Fix date filters for Oracle (#16)
  • Fix a bug where report/dashboard/layer name modification was not always saved (#141)
  • Fixed display issues for layers/reports/dashboards tables on small screens (#65)
  • Use default aggregation set in layer when adding columns to a report
  • Fixed drag and drop in dashboard (#37, #126, #146)
  • Fixed role permissions modification (#197)

Dependencies

  • Added pivottable 2.23.0
  • Added request 2.88.0
  • Added subtotal 1.11.0-alpha.0
  • Updated c3 to 0.7.11
  • Updated config to 3.2.3
  • Updated del to 5.1.0
  • Updated ejs to 2.7.1
  • Updated email-templates to 6.0.3
  • Updated eslint to 6.6.0
  • Updated eslint-config-standard to 14.1.0
  • Updated eslint-plugin-import to 2.18.2
  • Updated eslint-plugin-jest to 22.19.0
  • Updated eslint-plugin-node to 10.0.0
  • Updated eslint-plugin-standard to 4.0.1
  • Updated express-session to 1.17.0
  • Updated gulp-angular-gettext to 2.3.0
  • Updated jest to 24.9.0 and forced graceful-fs to 4.2.2
  • Updated jsplumb to 2.12.0
  • Updated knex to 0.19.5
  • Updated migrate-mongo to 6.0.2
  • Updated mongodb-memory-server to 5.2.8
  • Updated mongoose to 5.7.5
  • Updated multer to 1.4.2
  • Updated nodemailer to 6.3.1
  • Updated oracledb to 4.0.1
  • Updated pg to 7.12.1
  • Updated set-cookie-parser to 2.4.0
  • Updated stylelint to 11.1.1
  • Updated stylelint-config-standard to 19.0.0
  • Removed angular-draganddrop
  • Removed angular-vs-repeat
  • Removed angular-xeditable
  • Removed codecov
  • Removed cynteka-pivot-table-jquery
  • Removed email-templates

1.2.2 - 2019-08-30

Fixed

  • Rebuilt JSON for french translations

1.2.1 - 2019-08-30

Fixed

  • Fixed a bug preventing to change the sort direction in report editor
  • Fixed a bug that prevented the column's type (spline, bar, area, ...) to be saved
  • Columns and rows of pivot table are now sorted
  • Fixed a bug in SQL query builder when using date filters

1.2.0 - 2019-08-26

Changed

  • In Oracle layers, columns are now sorted by name

Fixed

  • Fixed queries with multiple filters
  • Fixed a bug that prevented to add new columns to existing reports
  • Fixed a bug that prevented editing reports after a modification of the layer
  • Fixed the icon for date fields in report editor
  • Fixed some graphical issues with grid and vGrid in dashboards

Removed

  • Removed deprecated JDBC connector for Oracle
  • Removed deprecated connector for Google BigQuery
  • Removed the datasource parameter 'packetsize', which was not used

1.1.1 - 2019-07-12

Changed

  • JDBC connector for Oracle have been deprecated and will be removed in the next version

    It is not tested, requires several build dependencies (openjdk, g++, make) and there is already an Oracle connector that works and is supported by knex.

  • Connector for Google BigQuery have been deprecated and will be removed in the next version

    It is not tested, depends on an old non-maintained package, which itself depends on packages that have security issues. It might be reintroduced in the future though, if someone is willing to implement it using packages that do not have these problems

Fixed

  • Fixed an infinite $digest look when editing a report
  • Fixed a weird bug where sometimes a click in layers/reports/dashboards list would do nothing
  • Fixed runtime filters (#99)
  • Fixed a bug preventing c3 to draw a pie/donut when there is a NULL value

Dependencies

  • Updated c3 to 0.7.2
  • Updated jsplumb to 2.10.2
  • Updated knex to 0.19.0
  • Updated mongoose to 5.6.4
  • Updated del to 5.0.0 (dev)
  • Updated eslint-plugin-jest to 22.7.2 (dev)

1.1.0 - 2019-07-11

Important update information

  • CSRF protection

    This version adds protection against CSRF. It is strongly recommended to upgrade.

  • Session's secret is now configurable

    Previously hardcoded, the secret used to sign the session ID cookie is now configurable. Generate a random string and set it to key session.secret in your local-{env}.js config file

  • Configuration object for mailer key has changed

    Check config/default.js and update your local-{env}.js config file accordingly

Added

  • Ability to make reports and dashboards public
  • Added ability to change maximum value for gauge
  • New icon set to be used in dashboards
  • Legend in custom layer element modal to know which columns correspond to the cryptic IDs
  • Added docker and docker-compose files
  • SQL views can be added to layers (Oracle only)
  • Added favicon

Changed

  • Move all "menu-list" code into several independent AngularJS components
  • Use $uibModal and its component option to make it easier to reuse modals
  • Cache all template files
  • Date input for filters can be changed manually (without datetimepicker)
  • Use uib-tabset everywhere we have tabs for consistency
  • Browser's sessionStorage is not used anymore for user data
  • Relocate 'datasourceID' property in layers and define explicit schema for layers, reports and dashboards
  • Configuration object for mailer key has changed, check config/default.js
  • Replace mocha and karma by jest for running tests
  • Tables are now ordered alphabetically in the layer modification page
  • Make import tool more picky and informative

Fixed

  • A compatibility issues between the jQuery plugin for pivot table and the recently upgraded jQuery 3
  • Remove import error messages that were false positives
  • A lot of minor issues raised by LGTM
  • Wrong use of GROUP BY when the query does not use aggregation
  • Fixed links to report/dashboard on home page
  • Fixed date filters (between, not between, is null, is not null)

Security

  • Session's secret is now configurable
  • Added CSRF protection

Dependencies

  • Added angular-intro.js
  • Added clipboard
  • Added codecov (dev)
  • Added csurf
  • Added eslint-plugin-jest (dev)
  • Added gulp-angular-templatecache (dev)
  • Added intro.js
  • Added jest (dev)
  • Added mongodb-memory-server (dev)
  • Added ngclipboard
  • Added oracledb
  • Added set-cookie-parser (dev)
  • Added supertest (dev)
  • Updated angular, angular-route and angular-sanitize to 1.7.8
  • Updated angular-mocks to 1.7.8 (dev)
  • Updated angular-ui-bootstrap to 2.5.6 (major update)
  • Updated angular-ui-sortable to 0.19.0
  • Updated angular-vs-repeat to 2.0.13
  • Updated angular-xeditable to 1.10.0
  • Updated angularjs-bootstrap-datetimepicker to 1.1.4 (major update)
  • Updated body-parser to 1.19.0
  • Updated bootstrap to 3.4.1
  • Updated c3 to 0.7.1
  • Updated config to 3.1.0 (major update)
  • Updated connect-mongo to 3.0.0 (major update)
  • Updated cookie-parser to 1.4.4
  • Updated debug to 4.1.1 (major update)
  • Updated del to 4.1.1 (dev, major update)
  • Updated ejs to 2.6.2
  • Updated email-templates to 6.0.0 (major update)
  • Updated eslint-plugin-import to 2.18.0 (dev)
  • Updated eslint-plugin-node to 9.1.0 (dev, major update)
  • Updated eslint-plugin-promise to 4.2.1 (dev)
  • Updated express to 4.17.1
  • Updated express-session to 1.16.2
  • Updated gulp to 4.0.2 (dev)
  • Updated jdbc to 0.6.4
  • Updated jquery to 3.4.1
  • Updated jquery-validation to 1.19.1
  • Updated jsplumb to 2.10.1 (major update)
  • Updated knex to 0.18.0
  • Updated merge-stream to 2.0.0 (dev, major update)
  • Updated migrate-mongo to 6.0.0 (major update)
  • Updated mongoose to 5.6.2 (major update)
  • Updated mssql to 5.1.0 (major update)
  • Updated multer to 1.4.1
  • Updated mysql to 2.17.1
  • Updated nodemailer to 6.2.1 (major update)
  • Updated noty to 3.2.0-beta (major update)
  • Updated numeral to 2.0.6 (major update)
  • Updated passport to 0.4.0
  • Updated passport-google-oauth20 to 2.0.0 (major update)
  • Updated password-generator to 2.2.0
  • Updated pg to 7.11.0 (major update)
  • Updated stylelint to 10.1.0 (dev)
  • Removed angular-loading-overlay
  • Removed angular-uuid2
  • Removed async
  • Removed bootstrap-datepicker
  • Removed chai (dev)
  • Removed chai-http (dev)
  • Removed express-ejs-layouts
  • Removed jasmine-core (dev)
  • Removed jsdom (dev)
  • Removed karma (dev)
  • Removed karma-jasmine (dev)
  • Removed karma-jsdom-launcher (dev)
  • Removed mocha (dev)

1.0.1 - 2019-05-03

Security

  • Upgrade ejs to 2.6.1

1.0.0 - 2019-05-03

These are the most notable changes made since the fork of Widestage.

Added

  • New report type: pivot table
  • New chart type: stacking bars
  • New column aggregation: COUNT(DISTINCT)
  • Ability to import and export reports, dashboards and layers from/to different Urungi instances
  • Ability to duplicate reports and dashboards
  • Ability to import (clone) an existing report into a dashboard
  • Ability to set the number of results returned in report editor
  • Ability to edit SQL queries in layer
  • Ability to use aggregate functions in report filters
  • Ability to add all columns of a collection to a layer in one click
  • Ability to fold collections in layer editor
  • Ability to sort and filter lists of reports, dashboards and layers
  • Ability to choose chart legend position between top, right, bottom or hidden
  • Ability to remove the background image from a dashboard element
  • Ability to create custom elements in layer
  • Ability to preview only a subset of results
  • Ability to delete layers
  • Ability to configure report height
  • Sorting rule for C3.js tooltip labels
  • Display query execution time in report editor
  • Localization of all strings, french translation and language selector
  • New "About" page
  • New scripts for the first-time setup and changing a user's password
  • Enforce JS style with ESLint and EditorConfig
  • Enforce CSS style with stylelint
  • Enforce HTML style with htmlhint
  • Unit tests for server-side and client-side code
  • Automated tests with Travis CI
  • This changelog

Changed

  • BREAKING: MongoDB 3.4 or greater is required
  • BREAKING: Node.js 8.x or greater is required
  • Application name (Widestage -> Urungi)
  • New skin, new logo
  • Disable automatic refresh in report builder
  • Show the "View SQL" button on page load in report edition page
  • Move reports type selection buttons to the top of the page
  • Use knex to build SQL queries and query SQL databases
  • Repaint reports when a report is dropped on dashboard
  • Add package-lock.json to git
  • Use config package to manage configuration files
  • Use debug package for debug messages
  • Upgrade angular-sanitize and angular-route to match angular version
  • Upgrade angular-ui-tree
  • Replace angular-editable-text by angular-xeditable
  • Update FontAwesome to 4.7.0
  • Replace bower by npm + gulp to manage client dependencies
  • Update email-templates to latest version
  • Update jquery and jquery-validation to latest version
  • Update moment to latest version
  • Update async to latest version

Removed

  • BREAKING: Support for MongoDB data sources
  • A lot of dead code
  • A lot of unused dependencies
  • Client-side session storage
  • Encryption of AJAX requests

Fixed

  • A lot of minor issues