Skip to content

v.1.1.0 Migrations, multicast, API Keys

Compare
Choose a tag to compare
@GufCab GufCab released this 23 Feb 11:10
· 138 commits to master since this release
12485b4

What's Changed

  • OS2iot now supports ChirpStacks LoRaWAN multicast functionality. Multicast groups are defined under each application.
  • Database is now bootstrapped using TypeORM Migrations instead of TypeORM Synchronization (See notes for existing migrations below)
  • It is now possible to create API keys to interact with the OS2iot backend
  • Fix roles in controllers where it was set on the whole class by @AramAlsabti in #139
  • CVE-2019-18413. Patch for potential SQL injections by @AramAlsabti in #137
  • Calls to chirpstack optimized to make the bulk creation of LoRaWAN devices faster and less error prone. Should also reduce the load on the Chirpstack API when loading long lists.
  • FIWARE datatarget by @bkdkmd in #141
  • Data Target "Marketplace" ready for adding new data target types in the future (@bkdkmd)

New Contributors

Full Changelog: v.1.0.1...v.1.1.0

Breaking changes

Migrations

TypeORM migrations are now used to synchronize the database with the typescript entities instead of TypeORM Synchronize.
Migrations are applied before starting the NestJS application and are specified in package.json as prestart commands.

Longer startup time

Applying the migrations toward the database will make the startup time longer. If deployed using Kubernetes, be aware that the watchdog does not kill the pod prematurely.

Existing installations (important!)

When updating an existing database with the new backend/migrations, the database has to be prepared. An initial migration has been created that corresponds to the database state at release v.1.0.1. This has to be entered into the database in a "migrations" table.

This can be done with the following SQL script: (Release note updated with correct name for initial migration 5/4/22, [email protected])

CREATE TABLE migrations (
   id SERIAL PRIMARY KEY,
   timestamp BIGINT NOT NULL,
   name varchar NOT NULL   
);

INSERT INTO migrations (timestamp, name)
VALUES (1, 'Initial0000000000001')