v0.15.0

ConduitPlatform/Conduitv0.15.0Oct 21, 2022by kkopanidis

AI Summary

Conduit v0.15.0 is a major release bringing significant new functionality including a new Authorization module (alpha), 2FA support with Authenticator apps, GitLab and Magic Link authentication, and streamlined Prometheus metrics. This release also includes extensive code cleanups across modules, improved GraphQL/swagger types, better cookie support, and route documentation features.

Key Highlights

  • New Authorization module (in alpha, not yet integrated with other modules)
  • 2FA support in Admin Panel and Authentication with Authenticator app compatibility
  • GitLab and Magic Link authentication methods added
  • Prometheus metrics streamlined with fixes and cleanups
  • Major code cleanup to Authentication module and refactoring across all modules

Breaking Changes

  • Port renames (refactor)
  • Removed deprecated gRPC functions (core, grpc-sdk)
  • Removed legacy environment compatibility
  • Metrics fixes, updates, and cleanups
  • Major Authentication code cleanup
  • gRPC SDK cleanups and improvements
  • Compiled schema fields as gRPC schema type fields

New Features

  • New Authorization module (alpha)
  • 2FA with Authenticator app support
  • GitLab authentication provider
  • Magic Link authentication
  • Passwordless login
  • Prometheus metrics support
  • Route documentation descriptions
  • REST/GraphQL cookies support
  • gRPC retries for unavailable services
  • Service address URL remapping for host/docker interoperability
  • Storage getFolders() with admin search query parameter
  • Admin users expansion and get admin by ID
  • OAuth2 state changes and Microsoft provider updates
  • Service discovery rework
  • Host URL initializer environment variables

Full Release Notes

Say hello to Conduit 0.15 🎉 🎉

This release brings tons of fixes, features and overall improvements!
Here's the tldr;
- Route return alignment & more route descriptions available
- Dependency updates all the way
- Prometheus metrics have been streamlined
- 2FA supported on Admin Panel along with better user management
- Huge code cleanups to Authentication module and across all modules as well
- 2FA has been streamlined in Authentication and now supports Authenticator apps too
- GitLab and Magic Link authentication methods now available
- GraphQL and swagger types have been greatly improved
- Cookies in Authentication are now better supported and can also be configured seperately
- Better metrics support with Prometheus
- So much more

Last but not least, this release includes the Authorization module, which we consider to be in alpha, and is not currently integrated with other modules. Things to look forward to in the next releases: More improvements, further API stabilisation, full support for user groups, roles and authorization rules

[CHANGELOG](https://github.com/ConduitPlatform/Conduit/blob/v0.15.0-rc.0/CHANGELOG.md)

## What's Changed
* fix(database): admin create schema return type regression by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/289
* Prometheus Metrics Support by @Michael-Vol in https://github.com/ConduitPlatform/Conduit/pull/282
* fix(database): DeclaredSchema compiledFields extension field and custom endpoint generation by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/290
* refactor(grpc-sdk): add prefix to metric names by @Michael-Vol in https://github.com/ConduitPlatform/Conduit/pull/291
* chore(deps): bump mongoose from 6.4.3 to 6.4.6 by @dependabot in https://github.com/ConduitPlatform/Conduit/pull/292
* fix(sms): not starting up with invalid config by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/294
* fix(database): gRPC schema registration removing schema extensions from adapter models by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/293
* fix(grpc-sdk,database): crash on unconditional Sequelize metrics by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/295
* chore(deps): bump moment-timezone from 0.5.34 to 0.5.37 by @dependabot in https://github.com/ConduitPlatform/Conduit/pull/297
* feat(grpc-sdk): try/catch in wrapGrpcFunctions to wrap function calls by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/300
* Code factor refactors by @sdimitris in https://github.com/ConduitPlatform/Conduit/pull/298
* chore(email): remove duplicate file by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/302
* refactor(database): admin custom endpoints methods rework for code factor by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/296
* refactor: rename schemaOptions, modelSchema to modelOptions, fields by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/299
* Release fix by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/303
* fix(database): modelOptions cms validation, unrebased modelSchema reference by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/305
* fix(hermes): not throwing an error on unavaibable route middlewares by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/308
* chore(core,admin,router,authentication): deprecate legacy compat options by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/306
* refactor database cms handler by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/301
* chore(email): forgotten removal of file in #302 by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/310
* chore(grpc-sdk,hermes,authentication,database,email,admin,core): set const instead of let by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/309
* fix(database): schema types, stitching, custom endpoints by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/311
* feat(database,grpc-sdk)!: compiled schema fields as gRPC schema type fields by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/313
* fix(forms): getForms count not using search query by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/314
* fix(database): createSchemaFromAdapter() crashing for non-registered schemas by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/315
* refactor(storage): storage handler complexity rework by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/316
* refactor(database): customEdpoints.admin.ts complexity by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/312
* refactor(email): sendEmail complexity by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/318
* refactor(forms): duplicate code rework by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/319
* fix(authentication):  twoFaMethod missing param by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/321
* refactor(grpc-sdk): routing manager duplicate code rework by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/320
* fix(core): module exist grpc function return type fixed by @sdimitris in https://github.com/ConduitPlatform/Conduit/pull/324
* Fix(authentication): get to post request in verify-qr-code endpoint by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/325
* refactor!: Port renames by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/326
* refactor(core,grpc-sdk)!: remove deprecated gRPC functions by @sdimitris in https://github.com/ConduitPlatform/Conduit/pull/328
* feat: route doc descriptions by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/322
* feat(hermes,grpc-sdk,database): db model router type registration by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/286
* chore!: update Readmes, remove legacy env compat by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/329
* chore(deps): bump jose from 2.0.5 to 2.0.6 by @dependabot in https://github.com/ConduitPlatform/Conduit/pull/330
* fix(hermes): named route response types handled as string responses by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/331
* feat(admin): admin users expansion by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/327
* fix(database): startup model recovery, deleteSchema admin route by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/332
* fix(admin): add package node2fa by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/333
* fix(admin): super admin migration by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/334
* refactor(admin): merge enable and disable twofa endpoints by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/335
* fix(authentication): add token to qr 2fa verification by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/336
* feat(authentication): change verification time window for qr tokens by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/337
* fix!: metrics fixes, updates, cleanups by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/338
* fix(admin): token in verify2fa by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/340
* fix(admin): crashing on disabled metrics by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/339
* feat(admin): get admin by id, unselect admin password field by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/341
* fix(admin): verifyTwoFactorToken missing window param by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/343
* fix(admin): temporary token expiration time by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/344
* fix(hermes): GraphQL mutation result nesting by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/342
* fix(database): initial db schema registration by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/345
* build: compose fixes for node v16.17 by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/348
* feat: add node-2fa library by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/347
* fix(storage): initialize metrics assuming files exist by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/349
* fix(authentication): simplify monitors by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/351
* refactor(authentication): 2fa handler implementation by @ChrisPdgn in https://github.com/ConduitPlatform/Conduit/pull/352
* chore(deps): bump vm2 from 3.9.9 to 3.9.11 by @dependabot in https://github.com/ConduitPlatform/Conduit/pull/353
* build: docker compose env for ui v0.14.2 by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/355
* feat(grpc-sdk,hermes): rest/graphql cookies support by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/358
* refactor(authentication)!: major code cleanup by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/354
* refactor(authentication): route return alignments,  phone login fix by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/361
* refactor(grpc-sdk)!: cleanups & improvements by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/362
* fix(authentication,database): admin route definition handler binds by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/363
* feat(authentication): passwordless login by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/346
* chore(email): subject field required by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/366
* fix(database): cms fixes, refactors, cleanups by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/365
* chore(database): improve schema operation details admin route response signature by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/367
* feat(authorization): new authorization module by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/350
* fix(database): getSchemas filters, declared schema collectionName uniqueness constraint by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/368
* feat(authentication): gitlab provider by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/369
* fix(authentication): accidental startup errors by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/370
* build: docker compose v0.15 by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/371
* fix(grpc-sdk): admin_grpc_requests_total metric by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/372
* feat(admin,router): host url initializer envs by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/373
* fix(admin): generated config values reset on partial config update by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/375
* fix(grpc-sdk): server restart race conditions by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/376
* feat(grpc-sdk): gRPC retries for unavailable services by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/377
* build: remove docker compose container name version suffixes by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/378
* feat(grpc-sdk): client connection logs by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/379
* fix(grpc-sdk): gRPC request retries for cancelled/aborted requests by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/380
* feat(authentication): microsoft provider changes by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/381
* feat(authentication): oAuth2 state changes by @SotiriaSte in https://github.com/ConduitPlatform/Conduit/pull/382
* feat(core,grpc-sdk): rework service discovery by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/383
* fix(authentication): TokenProvider singleton init Router dependency by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/385
* fix(core): module config patch by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/388
* fix(push-notifications,sms): health status by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/387
* fix(authentication): drop Kakao login leftovers by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/386
* refactor(grpc-sdk,hermes): move ConduitParser into Hermes by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/384
* fix(email,forms): replace Forms event-based Email health sync by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/390
* fix(core): service discovery not emitting update events on module health updates by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/389
* fix(database): schema field validation by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/391
* fix(grpc-sdk): gRPC function wrapper async error catches by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/392
* feat(storage): getFolders() admin search query param by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/393
* fix(storage): getFolders() admin route crash on undefined search query param by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/394
* feat(grpc-sdk): service address url remapping for host/docker interoperability by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/396
* fix(authentication): redirectUrl from router only set once by @kkopanidis in https://github.com/ConduitPlatform/Conduit/pull/397
* fix(grpc-sdk): loki availability checks by @kon14 in https://github.com/ConduitPlatform/Conduit/pull/402


**Full Changelog**: https://github.com/ConduitPlatform/Conduit/compare/v0.14.6...v0.15.0