Changelog

1.0

1.7.3

Release date: 20.11.2024

Improvements & Bug Fixes

  • Fixed a bug where sometimes the io.Manager Server would fail to load environment variables from a file.

1.7.2

Release date: 19.11.2024

Improvements & Bug Fixes

  • Added consistency validation for apps:
    • name and definition.name must be the same;
    • name and definition.appId (if present) must be the same;
  • Added consistency validation for Layouts:
    • name and definition.name must be the same;
    • type and definition.type must be the same;

1.7.1

Release date: 07.11.2024

New Features

  • Exposed appsV2 and layoutsV2 via the Server interface for custom scripts.

Improvements & Bug Fixes

  • Fixed a bug where some PostgreSQL queries wouldn't use the correct schema.

1.7.0

Release date: 01.11.2024

New Features

  • Added OpenTelemetry support.
  • Added new environment variable API_MONITORING_SENTRY_DSN - custom Sentry DSN to use when using monitoring via Sentry.
  • Added new environment variable API_AUTH_AUTH0_ISSUER_BASE_URL for Auth0 authentication - base URL for the Auth0 issuer.
  • Added database connectivity health check as well as Docker health checks for the io.Manager Server and Admin UI Docker images.
  • Added a purgeAtStartupEnabled optional Boolean property to the PurgeConfig object. If set to true (default), will run the purge task at startup of the io.Manager Server. You can also use the API_PURGE_AT_STARTUP_ENABLED environment variable to configure the purge behavior.
  • Added database column others to the last_updated table (for PostgreSQL and MSSQL only).

⚠️ Note that users who don't use automatic schema migration must create the others column manually by running the following scripts:

For PostgreSQL:

ALTER TABLE last_updated
    ADD COLUMN IF NOT EXISTS others JSON NULL;

For MSSQL:

IF NOT EXISTS (
    SELECT *
    FROM   sys.columns
    WHERE  object_id = OBJECT_ID(N'[dbo].[last_updated]')
      AND name = 'others'
)
ALTER TABLE last_updated
    ADD others NVARCHAR(MAX);

1.6.4

Release date: 11.09.2024

Improvements & Bug Fixes

  • Fixed a bug where io.Manager would fail to save a crash dump generated by io.Connect Desktop.

1.6.3

Release date: 10.09.2024

Improvements & Bug Fixes

  • Fixed a bug where invoking controllers directly via the RestServer class would throw an error.

1.6.2

Release date: 05.09.2024

Improvements & Bug Fixes

  • Moved dotenv package from "devDependencies" to "dependencies" to fix a bug introduced in v1.6.0.

1.6.1

Release date: 04.09.2024

Improvements & Bug Fixes

  • Fixed a bug where the total record count wasn't calculated correctly for data requests to PostgreSQL and MSSQL.

1.6.0

Release date: 29.08.2024

New Features

  • Implemented automatic failover when using PostgreSQL databases with io.Manager. To specify multiple PostgreSQL hosts, use the hosts property of the store object for configuring the connection to a PostgreSQL database. The hosts property accepts an array of objects describing PostgreSQL database hosts that will be tried in the order they are provided.

The following example demonstrates configuring io.Manager Server to use multiple PostgreSQL hosts:

import { start } from "@interopio/manager";

// Configuration for the io.Manager Server.
const config = {
    name: "my-server",
    port: 4242,
    token: {
        secret: "my-secret"
    },
    // Configuration for connecting to a PostgreSQL database.
    store: {
        type: "postgresql",
        // Specifying multiple PostgreSQL hosts to which to connect.
        hosts: [
            {
                connection: "postgresql://my_user:password@localhost:5432",
                dbName: "my_db",
                schemaName: "my_schema"
            },
            {
                connection: "postgresql://my_user:password@localhost:5433",
                dbName: "my_db",
                schemaName: "my_schema",
                // io.Manager won't attempt to execute write operations on this host.
                isReadOnly: true
            }
        ]
    }
};

// Initializing the io.Manager Server.
const server = await start(config);

Improvements & Bug Fixes

  • Added database column browser to the machines table (for PostgreSQL and MSSQL only). Users who don't use automatic schema migration must create the column manually by running the following scripts:

For PostgreSQL:

ALTER TABLE machines
    ADD COLUMN IF NOT EXISTS browser JSON NULL;

For MSSQL:

IF NOT EXISTS (
    SELECT *
    FROM   sys.columns
    WHERE  object_id = OBJECT_ID(N'[dbo].[machines]')
    AND name = 'browser'
)
ALTER TABLE machines
    ADD browser NVARCHAR(MAX);
  • Fixed a bug that would prevent MongoDB users from seeing feedback in the feedback list in the io.Manager Admin UI.
  • Layouts can now be filtered by the id field using the Admin API.

1.5.0

Release date: 16.08.2024

New Features

  • New REST API endpoints have been added:
New Endpoint Description
GET /v2/server/info Returns information about the io.Manager Server, such as server version and available capabilities.
POST /v2/apps/add Creates a new app definition or returns status code 400 if an app definition with the same name property already exists. Returns the created app definition.
POST /v2/apps/add-or-update Creates a new app definition or updates an existing one if an app definition with the same name property already exists. Returns the created or updated app definition.
POST /v2/apps/update Updates an app definition or returns status code 404 if an app definition with the specified name property isn't found. Returns the updated app definition.
POST /v2/layouts/add Creates a new Layout definition or returns status code 400 if a Layout definition with the same combination of name, type and owner properties already exists. Returns the created Layout definition.
POST /v2/layouts/add-or-update Creates a new Layout definition or updates an existing one if a Layout definition with the same id property (or the same combination of name, type and owner properties if id isn't provided) already exists. Returns the created or updated Layout definition.
POST /v2/layouts/update Updates a Layout definition or returns status code 404 if a Layout definition with the specified id property (or the specified combination of name, type and owner properties if id isn't provided) isn't found. Returns the updated Layout definition.

Deprecated Endpoints

The following REST API endpoints have been deprecated:

Deprecated Endpoint New Endpoint
POST /apps Use POST /v2/apps/add-or-update instead.
POST /apps/:name Use POST /v2/apps/update instead.
POST /layouts Use POST /v2/layouts/add-or-update instead.
POST /users/:name/layouts Use POST /v2/layouts/add instead.

1.4.0

Release date: 15.05.2024

New Features

  • Support for Okta authentication.
  • Implemented "empty" DataRequest filter type for all filter types where applicable.

Improvements & Bug Fixes

  • Added inRange filters support for MongoDB.
  • Fixed preferences upsert.

1.3.0

Release date: 26.04.2024

New Features

  • DB purge operation now happens at startup.
  • Exposed extra MSSQL options.

Improvements & Bug Fixes

  • Fixed inconsistent group resolution between apps and Layouts in io.Manager.
  • Fixed broken last updated timestamps in io.Manager leading to unnecessary database requests and hashing operations when configured with PostgreSQL or MSSQL.
  • Fixed summary endpoint on MSSQL and PostgreSQL.
  • DB purge interval is stopped when server.stop() is called.
  • Remove server-x token groups usage in sessions service.

1.2.0

Release date: 22.03.2024

New Features

  • Added a configurable purge job for purging old audit logs, feedback and crashes in order to reduce database usage.
  • Added API_STORE_POSTGRESQL_NATIVE_PG_DRIVER and API_STORE_MSSQL_DOMAIN environment variables.

Improvements & Bug Fixes

  • Implemented ORFilters and excludeFields for PG and MSSQL.
  • User groups defined in database are considered when using custom auth provider and the data store.
  • Rebuilt the Data Request functionality for PG and MSSQL to use SQL parameters, fixed - various related bugs.
  • Added migration for missing constraints in layouts and prefs tables in PG and MSSQL.

1.1.1

Release date: 06.03.2024

Improvements & Bug Fixes

  • When a user saves a shared Layout, a new private copy of that Layout is created. Previously, the shared Layout was transferred to the user that had saved it.

1.1.0

Release date: 24.02.2024

New Features

⚠️ Note that pg-native isn't a dependency of the @interopio/manager package and you must install it separately in your project.

Improvements & Bug Fixes

  • Microsoft SQL Server support: fixed a bug where the accessList column of the apps table wasn't written if empty.
  • Updated dependencies.

1.0.0

Release date: 17.01.2024

Breaking Changes

  • Users can now be compared in a case-insensitive way. Added new a configuration property username_case_sensitive and a new environment variable API_USERNAME_CASE_SENSITIVE that can be used to switch between case-sensitive and case-insensitive modes. Defaults to case-insensitive.
  • Removed status endpoint, because the express-status-monitor package is deprecated.

Improvements & Bug Fixes

  • Updated dependencies.

0.1

0.21.0

Release date: 15.11.2023

New Features

  • Added ability to provide custom store implementation through configuration.

0.20.1

Release date: 20.10.2023

Improvements & Bug Fixes

  • Updated dependencies.

0.20.0

Release date: 09.10.2023

New Features

  • Added option for controlling audit logs.

Improvements & Bug Fixes

  • Stopped recreating controllers on every request.
  • Disabled auditing for opening sessions open and creating users.

0.19.2

Release date: 05.09.2023

Improvements & Bug Fixes

  • Fixed updating a Layout without a Layout ID.

0.19.1

Release date: 14.07.2023

Improvements & Bug Fixes

  • Moved several types from development dependencies to dependencies.

0.19.0

Release date: 14.07.2023

New Features

0.18.0

Release date: 15.06.2023

New Features

  • Added explicit Layouts support for PostgreSQL.
  • Auth0 authentication now uses permissions.

Improvements & Bug Fixes

  • Fixed rejecting hello request from io.Connect Browser.

0.17.1

Release date: 30.05.2023

Improvements & Bug Fixes

  • Moved some of the libraries into the codebase for better control over the dependencies.

0.17.0

Release date: 22.05.2023

New Features

  • Exposed APIs (e.g., for users, apps, Layouts and more) attached to the initialized server object.

0.16.0

Release date: 19.05.2023

New Features

  • Added ability to set explicit Layouts for users.

0.15.2

Release date: 18.05.2023

Improvements & Bug Fixes

  • Optimized fetching of user Layouts.

0.15.1

Release date: 11.05.2023

Improvements & Bug Fixes

  • Exposed all options for Auth0 configuration.

0.15.0

Release date: 11.05.2023

New Features

  • Restored Auth0 authentication support.

0.14.0

Release date: 11.04.2023

New Features

  • Added an extra pool setting for PostgreSQL connections.

0.13.0

Release date: 31.03.2023

Improvements & Bug Fixes

  • Updated to latest @interopio/schemas.

0.12.1

Release date: 16.03.2023

Improvements & Bug Fixes

  • Updated dependencies.

0.12.0

Release date: 26.01.2023

New Features

  • Allow a single default Layout entry in the database.

Improvements & Bug Fixes

  • Prevented users from overwriting common Layouts.

0.11.0

Release date: 25.11.2022

New Features

  • Added HTTPS support.

0.10.0

Release date: 28.10.2022

New Features

0.9.11

Release date: 12.10.2022

Improvements & Bug Fixes

0.9.10

Release date: 10.10.2022

Improvements & Bug Fixes

  • Fixed always converting the port in the server configuration to a number. Now, if a string is passed, it's treated as a path that might be a named pipe.

0.9.9

Release date: 21.09.2022

New Features

0.9.8

Release date: 19.09.2022

Improvements & Bug Fixes

0.9.7

Release date: 19.09.2022

Improvements & Bug Fixes

  • Removed sort memory limit.

0.9.6

Release date: 19.09.2022

Improvements & Bug Fixes

  • Improved the shutdown process.

0.9.5

Release date: 07.09.2022

Improvements & Bug Fixes

  • Improved Sentry monitoring routes.

0.9.4

Release date: 24.08.2022

New Features

  • Added Sentry monitoring.

0.8.4

Release date: 07.06.2022

Improvements & Bug Fixes

  • Updated to latest @interopio/server-api.

0.8.3

Release date: 07.06.2022

Improvements & Bug Fixes

  • Hashed passwords (only used in Basic authentication).
  • Updated dependencies.

0.8.2

Release date: 23.03.2022

Improvements & Bug Fixes

  • Handled schema validator errors.

0.8.1

Release date: 23.03.2022

Improvements & Bug Fixes

  • Fixed schema path.

0.8.0

Release date: 22.03.2022

New Features

  • Added a /schema endpoint.

0.7.0

Release date: 21.03.2022

New Features

  • Added a flow for Basic authentication.
  • Added a /whoami endpoint.

0.6.0

Release date: 17.03.2022

New Features

  • Added a default route.
  • Added a stop route that is registered only if an environment variable is present in the configuration.

0.5.0

Release date: 13.03.2022

New Features

  • Added a /capabilities endpoint for exposing the features of Groups.

0.4.1

Release date: 13.03.2022

Improvements & Bug Fixes

  • Included the tests as pre-publish step.

0.4.0

Release date: 13.03.2022

New Features

  • Added the option to provide a custom Groups service.