Skip to content

v0.16.0

Compare
Choose a tag to compare
@kkopanidis kkopanidis released this 17 Feb 19:43
· 174 commits to main since this release

Say hello to Conduit 0.16 🎉 🎉

We've been working on 0.16 for a year, and it brings a ton of fixes, improvements and new features. Conduit is faster, has improved stability and can handle more cases. It's the first release where we can definitely say that the core functionality has been completed. Moving forward to 0.17 and eventually to 1.0.0, we want to stabilize the gRPC API, improve existing functionality and cleanup code, and of course improve speed and resource consumption all over the platform. We're working on shipping a brand new UI that will bring much need quality of life and DX improvements, along with CLI improvements.

You can also now use our conduit-standalone image, that packages all of the services in a single docker container, to simplify deployments for dev or smaller workloads.

While the changes are far too many to outline, here's the tldr;

  • Migrated the project to ESM, NodeJS 20 and Typescript 5.
  • Dependency updates all the way.
  • Re-wrote the SQL implementation of the database, now able to handle SQLite, PostgreSQL, and MySQL/MariaDB consistently.
  • Stabilized and improved the Authorization module, which is able to answer permission checks in less than 5ms.
  • Introduced Views for the database, to facilitate both Authorization queries and custom Views.
  • Fixed various bugs in all modules.
  • Moved a lot of logic from the grpc-sdk package to a new module-tools package, so that you can communicate with Conduit without spinning up a fully-fledged micro-service.
  • Introduce a new type of Route in Hermes both for Client and Admin routers, the Proxy route, which allows you to create routes that utilize Conduit middlewares and expose existing services throught Conduit.
  • Improved authentication redirects by allowing you to specify redirectUrls from the client, while also protecting the system from malicious redirects by using configurable whitelisting.
  • Integrated authorization features in more modules.

CHANGELOG

What's Changed

  • Router proxy support by @SotiriaSte in #488
  • fix(database): admin createSchema() invalid id,createdAt,updatedAt field constraints by @kon14 in #511
  • refactor(database)!: re-work SQL support by @kkopanidis in #492
  • fix(database): relationObjects by @kkopanidis in #513
  • fix(hermes,grpc-sdk,authentication): redirect requests not setting cookies, invalid setCookies format by @kon14 in #514
  • fix(storage): public url not updating & azure Sas urls by @kkopanidis in #516
  • Codefactor duplication issues by @SotiriaSte in #515
  • fix(database): relation issues by @kkopanidis in #517
  • fix(push-notifications): expecting string instead of JSON in send adm… by @kkopanidis in #521
  • fix(authorization): missing type for delete resource/relation by @kkopanidis in #520
  • feat(database): duplication and code refactoring by @SotiriaSte in #519
  • fix(database): admin schema creation adding explicit primaryKey by @kon14 in #522
  • fix(database): ambiguous SQL like/ilike query fields by @kon14 in #518
  • refactor: add migrate calls to all schema declarations by @kkopanidis in #524
  • fix(grpc-sdk): add missing collectionName in getSchema(s) database grpc-sdk wrapper by @ChrisPdgn in #525
  • fix(push-notifications): param read in getNotifications not working w… by @kkopanidis in #526
  • Codefactor issues by @SotiriaSte in #523
  • fix(database): wrong legacyCollections comment-out by @kkopanidis in #527
  • fix(database): findByIdAndUpdate crashing when storing embedded docum… by @kkopanidis in #528
  • fix(database): fix sort query param format by @ChrisPdgn in #530
  • fix: duplication, unused vars, any types by @SotiriaSte in #531
  • refactor(database): storage and handling of embedded schemas for non-pg SQL dbs by @kkopanidis in #532
  • fix(database): sqlite and general sql recovery issues by @kkopanidis in #534
  • fix(admin, router): proxyRoutes model by @kkopanidis in #535
  • fix(hermes): GraphQL population detection by @kon14 in #536
  • feat(database): column existence operation by @ChrisPdgn in #537
  • fix(database): schemas not being stored by @kkopanidis in #538
  • build(deps): bump sequelize from 6.21.2 to 6.28.2 by @dependabot in #540
  • [Snyk] Security upgrade @aws-sdk/client-s3 from 3.121.0 to 3.276.0 by @kkopanidis in #539
  • fix(database): jsonb sql datatype by @ChrisPdgn in #541
  • fix: duplication, ts-ignore, any types by @SotiriaSte in #533
  • build(deps): bump sequelize from 6.28.2 to 6.29.0 by @dependabot in #543
  • chore: duplications , any types , complexity by @SotiriaSte in #542
  • Fix types by @SotiriaSte in #544
  • fix(database): sequelize nested populations by @kon14 in #546
  • feat: sql data types by @SotiriaSte in #547
  • fix(database): fix mongoose & sequelize parseQuery & query param types by @ChrisPdgn in #548
  • refactor(database): removal of mssql & additional parsing for json queries in sql by @ChrisPdgn in #545
  • feat(database): import & export for custom schemas & endpoints by @ChrisPdgn in #549
  • refactor(authentication,chat): improve email templates for mail clients by @kkopanidis in #551
  • feat(authentication): expand teams functionality by @kkopanidis in #554
  • build(deps): bump sqlite3 from 5.1.4 to 5.1.5 by @dependabot in #555
  • fix(database): some fixes for import & export by @ChrisPdgn in #556
  • fix(database): fix import introspected schemas by @ChrisPdgn in #557
  • fix(hermes): GraphQL not respecting cache header by @kon14 in #558
  • feat(storage): add file uploads by url instead of base64 by @kkopanidis in #550
  • refactor(hermes,router,admin): proper cors and cookie domains by @kkopanidis in #559
  • fix(authentication): module not removing deprecated config by @kkopanidis in #560
  • fix(storage): wrong return signature on upload by url by @kkopanidis in #565
  • feat(grpc-sdk): add router type to logs and separate metrics per type by @kkopanidis in #564
  • refactor(hermes,router,admin): cors settings as config and cookie default domain not set by @kkopanidis in #563
  • fix(database): relation in extensions and array handling by @kkopanidis in #566
  • refactor(authentication,authorization): expand team endpoints and findRelation functionality by @kkopanidis in #562
  • fix(database): fix sql findByIdAndUpdate associations by @ChrisPdgn in #561
  • fix(authentication): get team members admin query using wrong query by @kkopanidis in #569
  • fix(hermes): array validation for array types by @kkopanidis in #568
  • fix(database): add cnd_ prefix check for collectionName by @ChrisPdgn in #570
  • fix(database): validate extension fields & customEndpoint export output by @ChrisPdgn in #571
  • feat(authentication): add populate option in team requests by @kkopanidis in #574
  • fix(database): fix _id createdAt updatedAt format by @ChrisPdgn in #567
  • fix(database,authentication): customEndpoints and missing middleware by @kkopanidis in #575
  • fix(database): add modelOptions timestamps by @ChrisPdgn in #576
  • feat(grpc-sdk): url remap object config by @kon14 in #577
  • feat(authentication, router,forms): global captcha support from router by @kkopanidis in #580
  • feat(authentication,core): add register invitation config option & fix addFieldsToModule by @ChrisPdgn in #579
  • fix(grpc-sdk,email): result parsing & template model subject requirement by @kkopanidis in #581
  • fix(storage,grpc-sdk): fix storage rpc functions by @ChrisPdgn in #583
  • build(deps): bump vm2 from 3.9.13 to 3.9.15 by @dependabot in #585
  • fix(storage): correction of check in validation by @ChrisPdgn in #584
  • refactor(authentication): add allowEmailMismatchForInvites feature by @kkopanidis in #587
  • fix(authentication): crash on setConfig due to old properties by @kkopanidis in #588
  • feat(authentication): custom redirect uri config option by @ChrisPdgn in #589
  • build(deps): bump vm2 from 3.9.15 to 3.9.16 by @dependabot in #590
  • [Snyk] Security upgrade @azure/storage-blob from 12.10.0 to 12.13.0 by @snyk-bot in #591
  • fix(authentication): user is able to pass auth middleware when blocked by @kkopanidis in #594
  • fix(database): sql like/ilike customEndpoint queries regexp escaping by @kon14 in #596
  • refactor(grpc-sdk): remove module management specifics and keep sdk-only behaviour by @kkopanidis in #582
  • fix(database): exportCustomEndpoints() returning schema ids by @kon14 in #598
  • build(deps): bump vm2 from 3.9.16 to 3.9.17 by @dependabot in #600
  • fix(database)!: wrong foreign key names by @ChrisPdgn in #599
  • refactor: add module.proto for common module protofile by @kkopanidis in #595
  • fix(authentication): provider email/id matching not working properly by @kkopanidis in #601
  • feat(authentication): add cleanup code to delete expired refresh/access tokens by @kkopanidis in #602
  • fix(database): adding/removing object(group) fields not working by @kkopanidis in #603
  • refactor(functions): slight reworks by @kkopanidis in #604
  • feat: module-tools publishing by @kkopanidis in #606
  • fix(storage): createFileByUrl/updateFileByUrl gRPC size field types by @kon14 in #607
  • fix(database): support $in & $nin operators for all sql dialects by @ChrisPdgn in #608
  • refactor(database)!: re-work sql schema objects & relations by @kkopanidis in #573
  • feat(database): allow populate when population field is in association by @kkopanidis in #613
  • [Snyk] Security upgrade socket.io from 4.5.1 to 4.6.0 by @snyk-bot in #615
  • fix(authentication): tokens set with wrong expiry on JWT and Cookies by @kkopanidis in #616
  • fix(database): fix custom endpoints check by @ChrisPdgn in #618
  • feat(admin,router,hermes,grpc-sdk,core): middleware patch support by @ChrisPdgn in #614
  • refactor(database): rework (again) sql integration to a more reasonable compatibility by @kkopanidis in #617
  • Type rework by @kkopanidis in #619
  • chore: update all packages to latest versions by @kkopanidis in #586
  • fix(module-tools): db losing connection when restarting router by @kkopanidis in #620
  • build(deps): bump vm2 from 3.9.15 to 3.9.18 by @dependabot in #622
  • build(deps): bump json5 from 2.2.1 to 2.2.3 by @dependabot in #623
  • refactor: remove protofile generation for admin/client routers by @kkopanidis in #624
  • fix(functions,sms): admin route registration before module registration errors by @kon14 in #625
  • build(deps): bump socket.io-parser from 4.2.2 to 4.2.3 by @dependabot in #627
  • feat(storage): recursive folder creation by @kon14 in #628
  • feat(authentication,storage,module-tools,grpc-sdk): teamDelete rpc & grpcToParsedRouterRequest helper by @ChrisPdgn in #629
  • [Snyk] Security upgrade @aws-sdk/client-s3 from 3.310.0 to 3.347.1 by @snyk-bot in #634
  • [Snyk] Security upgrade dottie from 2.0.3 to 2.0.4 by @kkopanidis in #637
  • refactor(router): admin endpoints for visualization in UI by @kkopanidis in #638
  • fix(storage): build failing due to aws lib version mismatch by @kon14 in #639
  • fix(grpc-sdk): ConduitQueryParams type disallowing required object-formatted array param definition by @kon14 in #640
  • feat(functions): webhook,event,socket,middlware functions support by @kkopanidis in #609
  • feat(database): enable authorized schema support by @kkopanidis in #632
  • fix(database): correct typos by @ChrisPdgn in #641
  • build(deps): bump @apollo/server from 4.6.0 to 4.7.4 by @dependabot in #642
  • feat(sms): AWS, ClickSend, MessageBird providers by @laertis99 in #633
  • fix(authentication,sms): hash sms phone numbers & fix bugs in authenticate() by @ChrisPdgn in #644
  • feat(push-notification): support data-only silent messages by @kkopanidis in #645
  • Install the CodeSee workflow. by @codesee-maps in #646
  • fix(authentication): emails are not always converted to lowercase before storing by @kkopanidis in #648
  • fix(authentication): magic link hook verificationToken url param by @kon14 in #647
  • fix(authentication): case-sensitive User.email queries by @kon14 in #649
  • fix(authentication): refresh tokens not being deleted on logout by @kkopanidis in #650
  • fix(email): EmailTemplate model subject/body SQL field size by @kon14 in #652
  • feat(authentication): pass User object to MagicLink email template by @kon14 in #651
  • fix(database): excluded fields ignored when not using select by @ChrisPdgn in #653
  • build(deps): bump protobufjs from 7.2.3 to 7.2.4 by @dependabot in #655
  • [Snyk] Security upgrade protobufjs from 7.2.3 to 7.2.4 by @kkopanidis in #654
  • refactor(grpc-sdk,module-tools): service discovery lifecycle to improve reliability by @kkopanidis in #656
  • build(deps): bump semver from 5.7.1 to 5.7.2 by @dependabot in #658
  • feat(authentication,grpc-sdk): getTeam, createTeam gRPC methods by @kon14 in #659
  • [Snyk] Security upgrade mongoose from 7.0.3 to 7.3.4 by @kkopanidis in #660
  • fix(database): Mongoose types by @ChrisPdgn in #662
  • [Snyk] Security upgrade @aws-sdk/client-sns from 3.354.0 to 3.359.0 by @kkopanidis in #663
  • build(deps): bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #664
  • feat(storage): authorization integration by @kkopanidis in #661
  • refactor(storage): add extra rpc params for authz by @kkopanidis in #665
  • fix(authorization): Postgres access list query by @Renc17 in #666
  • [Snyk] Security upgrade winston-loki from 6.0.6 to 6.0.7 by @kkopanidis in #667
  • fix(database): authorized SQL findMany() queries by @kon14 in #668
  • fix(database): sql authorized findOne query by @Renc17 in #669
  • fix(database): sql findMany authorized pagination by @Renc17 in #670
  • fix(database): permission checks for extensions by @kkopanidis in #671
  • build(deps): bump @apollo/server from 4.7.4 to 4.9.3 by @dependabot in #673
  • [Snyk] Security upgrade mongoose from 7.3.4 to 7.5.0 by @kkopanidis in #672
  • fix(hermes): GraphQL null array responses by @kon14 in #675
  • build(deps): bump mongodb from 5.2.0 to 5.8.1 by @dependabot in #674
  • fix(database): _parseQuery() dropping query fields by @kon14 in #677
  • fix(hermes): GraphQL parser constructResolver() unpopulated relation field formatting by @kon14 in #680
  • fix(admin,authentication) Admin.hasTwoFA field defaulting to null, required User.hasTwoFA field by @kon14 in #678
  • fix(database): SQL findByIdAndReplace() setting _id, createdAt to undefined by @kon14 in #679
  • fix(database): SQL create/createMany relation parsing, group unwrapping by @kon14 in #676
  • fix(database): schema/extension creation timestamp field values mismatch by @kon14 in #682
  • feat(authorization, database): createRelations() by @Renc17 in #681
  • [Snyk] Security upgrade ali-oss from 6.17.1 to 6.18.1 by @kkopanidis in #684
  • fix(hermes): Swagger/GraphQL parsers not pulling related db schema types by @kon14 in #687
  • [Snyk] Security upgrade graphql from 16.6.0 to 16.8.1 by @kkopanidis in #686
  • fix(database): SQL createView() already exists race condition by @kon14 in #688
  • fix: gRPC await promise transpilation, bump ECMAScript target to ES2018 by @kon14 in #689
  • fix(core): config schema array field parsing by @kon14 in #691
  • feat: biometric authentication for mobile devices by @kkopanidis in #693
  • chore: update protobuf dependencies by @kkopanidis in #694
  • refactor(authorization): improve relation creation and resolve ordering issues by @kkopanidis in #685
  • fix(authentication): biometrics issues by @kkopanidis in #695
  • refactor(grpc-sdk,core): getRedisDetails() by @kon14 in #696
  • build(deps): bump actions/checkout from 3 to 4 by @dependabot in #699
  • build(deps): bump docker/login-action from 2 to 3 by @dependabot in #697
  • build(deps-dev): bump prettier from 2.8.7 to 3.0.3 by @dependabot in #701
  • fix(grpc-sdk): REDIS_PASSWORD env setting Redis username by @kon14 in #705
  • build(deps): bump pg from 8.10.0 to 8.11.3 by @dependabot in #702
  • build(deps-dev): bump @types/bluebird from 3.5.38 to 3.5.39 by @dependabot in #700
  • build(deps-dev): bump @commitlint/cli from 17.5.1 to 17.7.2 by @dependabot in #704
  • build(deps): bump jwks-rsa from 3.0.1 to 3.1.0 by @dependabot in #709
  • build(deps): bump vm2 from 3.9.18 to 3.9.19 by @dependabot in #708
  • build(deps-dev): bump ts-jest from 29.1.0 to 29.1.1 by @dependabot in #703
  • fix(database): delete permissions by @ChrisPdgn in #710
  • fix(database): update/delete operations authz checks, sql authz/dialect parsing order by @kon14 in #706
  • build(deps): bump mongodb-schema from 10.0.1 to 11.2.2 by @dependabot in #707
  • build(deps-dev): bump ts-proto from 1.159.2 to 1.160.0 by @dependabot in #715
  • build(deps): bump handlebars from 4.7.7 to 4.7.8 by @dependabot in #714
  • build(deps-dev): bump rimraf from 5.0.0 to 5.0.5 by @dependabot in #713
  • build(deps-dev): bump @commitlint/config-conventional from 17.4.4 to 17.7.0 by @dependabot in #712
  • build(deps): bump helmet from 6.1.2 to 7.0.0 by @dependabot in #711
  • fix(authentication): sendMagicLink missing redirectUri, magic link hook invalid redirectUri param type by @kon14 in #716
  • build(deps-dev): bump @types/is-natural-number from 4.0.1 to 4.0.2 by @dependabot in #720
  • build(deps-dev): bump turbo from 1.8.8 to 1.10.15 by @dependabot in #717
  • build(deps): bump @types/notp from 2.0.2 to 2.0.3 by @dependabot in #718
  • build(deps): bump graphql-tools from 8.3.19 to 9.0.0 by @dependabot in #719
  • build(deps): bump escape-string-regexp from 4.0.0 to 5.0.0 by @dependabot in #721
  • feat(authentication): configurable magicLink dispatch URI, magic token consumption endpoint by @kon14 in #722
  • fix(hermes,router,admin): Swagger missing optional authMiddleware headers, conditional security client headers by @kon14 in #728
  • feat(authentication,grpc-sdk): ValidateAccessToken gRPC method by @kon14 in #729
  • build(deps-dev): bump lerna from 6.6.1 to 7.3.1 by @dependabot in #727
  • fix(router): disable rate limiter for sockets due to IP not being available by @kkopanidis in #730
  • build(deps): bump uuid and @types/uuid by @dependabot in #723
  • build(deps-dev): bump @types/fs-extra from 11.0.1 to 11.0.2 by @dependabot in #725
  • fix(grpc-sdk): push notifications responses type mismatch by @kkopanidis in #731
  • build(deps): bump axios from 1.3.5 to 1.5.1 by @dependabot in #724
  • build(deps): bump @aws-sdk/client-s3 from 3.350.0 to 3.427.0 by @dependabot in #726
  • build(deps): bump socket.io from 4.6.1 to 4.7.2 by @dependabot in #733
  • build(deps): bump @types/lodash from 4.14.192 to 4.14.199 by @dependabot in #735
  • build(deps-dev): bump @types/validator from 13.7.14 to 13.11.2 by @dependabot in #734
  • build(deps): bump jsonwebtoken from 9.0.0 to 9.0.2 by @dependabot in #738
  • build(deps-dev): bump @types/cors from 2.8.13 to 2.8.14 by @dependabot in #739
  • build(deps): bump dottie and @types/dottie by @dependabot in #736
  • build(deps): bump ioredis and @types/ioredis by @dependabot in #737
  • build(deps): bump @grpc/grpc-js from 1.8.13 to 1.9.5 by @dependabot in #741
  • build(deps): bump rate-limiter-flexible from 2.4.1 to 3.0.1 by @dependabot in #743
  • build(deps): bump @babel/traverse from 7.19.1 to 7.23.2 by @dependabot in #745
  • build(deps): bump aws-sdk from 2.1400.0 to 2.1474.0 by @dependabot in #744
  • build(deps): bump @aws-sdk/s3-request-presigner from 3.428.0 to 3.429.0 by @dependabot in #742
  • build(deps): bump bcrypt and @types/bcrypt by @dependabot in #746
  • build(deps-dev): bump jest and @types/jest by @dependabot in #747
  • build(deps): bump aws-sdk from 2.1474.0 to 2.1475.0 by @dependabot in #748
  • build(deps-dev): bump @commitlint/cli from 17.7.2 to 17.8.0 by @dependabot in #752
  • build(deps): bump @grpc/grpc-js from 1.9.5 to 1.9.7 by @dependabot in #753
  • build(deps-dev): bump @types/validator from 13.11.2 to 13.11.5 by @dependabot in #756
  • feat(router): request rate limit configuration by @kon14 in #760
  • build(deps): bump aws-sdk from 2.1475.0 to 2.1478.0 by @dependabot in #758
  • build(deps-dev): bump @types/mandrill-api from 1.0.30 to 1.0.32 by @dependabot in #762
  • build(deps-dev): bump turbo from 1.10.15 to 1.10.16 by @dependabot in #761
  • feat(chat): add config to delete rooms when participants have left by @kkopanidis in #764
  • fix: ts-proto snake_case to camelCase, Chat.gRPC.createRoom() empty id res field by @kon14 in #770
  • build(deps): bump @aws-sdk/s3-request-presigner from 3.429.0 to 3.436.0 by @dependabot in #769
  • build(deps): bump @types/lodash from 4.14.199 to 4.14.200 by @dependabot in #765
  • build(deps): bump nice-grpc from 2.1.4 to 2.1.7 by @dependabot in #772
  • [Snyk] Security upgrade axios from 1.5.1 to 1.6.0 by @kkopanidis in #774
  • fix(hermes): cumulative middleware context by @kon14 in #771
  • build(deps-dev): bump @types/otp-generator from 4.0.0 to 4.0.1 by @dependabot in #776
  • build(deps): bump tslib from 2.5.0 to 2.6.2 by @dependabot in #777
  • build(deps): bump @apollo/server from 4.9.3 to 4.9.5 by @dependabot in #778
  • refactor(authentication): support tenant-only AD login by @kkopanidis in #780
  • fix: model controller class constructor visibility by @kon14 in #781
  • build(deps-dev): bump @types/mailgun-js from 0.22.13 to 0.22.16 by @dependabot in #782
  • build(deps-dev): bump @types/node from 18.15.11 to 20.8.10 by @dependabot in #779
  • build(deps): bump actions/setup-node from 3 to 4 by @dependabot in #775
  • chore: remove @types/ioredis since they are included with the main lib by @kkopanidis in #788
  • feat(authentication): team names no longer have to be unique in general but on parent level by @kkopanidis in #786
  • refactor(authorization): further split fields by @kkopanidis in #787
  • build(deps): bump @aws-sdk/client-sns from 3.429.0 to 3.451.0 by @dependabot in #791
  • build(deps): bump yaml from 2.1.1 to 2.3.4 by @dependabot in #784
  • build(deps-dev): bump @types/mandrill-api from 1.0.32 to 1.0.33 by @dependabot in #793
  • build(deps-dev): bump @types/convict from 6.1.1 to 6.1.6 by @dependabot in #792
  • feat(chat): introduce auditMode, room deletions on leave and remove unique name requirement from rooms by @kkopanidis in #794
  • fix(database): custom endpoint date casting conflict with mongoose casts by @kkopanidis in #795
  • build(deps-dev): bump @types/jest from 29.5.5 to 29.5.8 by @dependabot in #797
  • build(deps): bump nodemailer and @types/nodemailer by @dependabot in #796
  • fix(authentication): unconditional team admin endpoint registration by @kon14 in #800
  • build(deps-dev): bump @types/otp-generator from 4.0.1 to 4.0.2 by @dependabot in #799
  • build(deps-dev): bump @typescript-eslint/parser from 5.58.0 to 5.62.0 by @dependabot in #798
  • build(deps): bump prom-client from 14.2.0 to 15.0.0 by @dependabot in #802
  • refactor(authentication): respond earlier on local when registering by @kkopanidis in #803
  • build(deps): bump fast-jwt from 3.3.1 to 3.3.2 by @dependabot in #801
  • refactor(router): do not count OPTIONS requests towards request limit by @kkopanidis in #804
  • feat(database): add import/export extensions logic to existing endpoints by @ChrisPdgn in #683
  • fix(database): missed null parsedQuery case in mongoose findOne() by @ChrisPdgn in #805
  • fix(database): findOne() null query filters by @kon14 in #806
  • build(deps): bump sequelize from 6.31.0 to 6.35.1 by @dependabot in #809
  • build(deps-dev): bump @types/bluebird from 3.5.39 to 3.5.42 by @dependabot in #808
  • fix(database): gRPC findMany() empty sort handling by @kon14 in #810
  • build(deps-dev): bump @types/cookie-parser from 1.4.3 to 1.4.6 by @dependabot in #813
  • build(deps): bump @aws-sdk/client-s3 from 3.429.0 to 3.456.0 by @dependabot in #812
  • build(deps): bump @google-cloud/storage from 6.9.5 to 7.6.0 by @dependabot in #815
  • fix(router): route Swagger doc missing non-global security headers by @kon14 in #818
  • refactor(core): service discovery mechanism by @kkopanidis in #811
  • feat(authorization): Queue controller, construct indexes job by @Renc17 in #807
  • fix(module-tools): module name not correctly converted for subscriptions by @kkopanidis in #819
  • refactor(authorization): index controller use singleton pattern by @Renc17 in #820
  • build(deps-dev): bump @types/graphql-type-json from 0.3.2 to 0.3.5 by @dependabot in #821
  • fix(authorization): createView() sql queries failing due to unpreserved camel case column names by @kon14 in #822
  • fix(module-tools): unexpected/unhandled errors parse human readable message by @Renc17 in #824
  • fix(database): SQL createSchemaFromAdapter() drop views on schema view exists constraint by @kon14 in #823
  • build(deps-dev): bump @types/jest from 29.5.8 to 29.5.10 by @dependabot in #825
  • build(deps): bump @types/object-hash from 3.0.4 to 3.0.6 by @dependabot in #826
  • build(deps-dev): bump @types/cors from 2.8.14 to 2.8.17 by @dependabot in #828
  • [Snyk] Security upgrade twilio from 4.10.0 to 4.19.3 by @kkopanidis in #829
  • build(deps-dev): bump @types/node from 20.8.10 to 20.10.3 by @dependabot in #831
  • build(deps): bump @aws-sdk/client-sts from 3.454.0 to 3.465.0 by @dependabot in #830
  • build(deps): bump mysql2 from 3.2.0 to 3.6.5 by @dependabot in #833
  • build(deps): bump mariadb from 3.1.1 to 3.2.2 by @dependabot in #832
  • refactor(email): remove domain config from mailgun & use sendingDomain by @kkopanidis in #834
  • [Snyk] Security upgrade @sendgrid/client from 7.7.0 to 8.0.0 by @kkopanidis in #837
  • build(deps): bump @types/notp from 2.0.3 to 2.0.5 by @dependabot in #836
  • build(deps): bump @google-cloud/storage from 7.6.0 to 7.7.0 by @dependabot in #835
  • build(deps-dev): bump @types/dottie from 2.0.5 to 2.0.7 by @dependabot in #838
  • build(deps-dev): bump @types/is-natural-number from 4.0.2 to 4.0.4 by @dependabot in #840
  • fix(authorization): index building jobs initialized grpc-sdk incorrectly by @kkopanidis in #841
  • build(deps): bump fs-extra and @types/fs-extra by @dependabot in #843
  • fix(core): missing check for double removal of unresponsive module by @kkopanidis in #850
  • fix(grpc-sdk): health check middleware injection by @kkopanidis in #851
  • build(deps): bump @aws-sdk/client-iam from 3.465.0 to 3.476.0 by @dependabot in #852
  • [Snyk] Security upgrade firebase-admin from 11.11.0 to 12.0.0 by @kkopanidis in #842
  • fix(authentication): OAuth provider redirect URIs containing double query question marks by @kon14 in #855
  • refactor(push-notifications): add return statement on update provider by @kkopanidis in #853
  • fix(grpc-sdk): module connection not re-established after core shutdown by @kkopanidis in #858
  • build(deps): bump nice-grpc-client-middleware-retry from 3.1.3 to 3.1.6 by @dependabot in #860
  • build(deps): bump mariadb from 3.2.2 to 3.2.3 by @dependabot in #861
  • feat(authentication): rm oldPassword body param from /local/change-password by @kon14 in #863
  • build(deps): bump msgpackr from 1.9.9 to 1.10.1 by @dependabot in #869
  • build(deps): bump @socket.io/redis-adapter from 8.2.0 to 8.2.1 by @dependabot in #864
  • [Snyk] Security upgrade axios from 1.6.0 to 1.6.3 by @kkopanidis in #866
  • [Snyk] Security upgrade axios from 1.6.0 to 1.6.3 by @kkopanidis in #867
  • [Snyk] Security upgrade axios from 1.6.0 to 1.6.3 by @kkopanidis in #868
  • refactor(core,admin): remove catch clauses in initialization steps by @kkopanidis in #871
  • chore(hermes,admin,router): routing proto gen leftovers cleanup by @kon14 in #872
  • build(deps): bump winston-loki from 6.0.7 to 6.0.8 by @dependabot in #873
  • build(deps): bump nodemailer from 6.9.7 to 6.9.8 by @dependabot in #874
  • [Snyk] Security upgrade sqlite3 from 5.1.6 to 5.1.7 by @kkopanidis in #876
  • [Snyk] Security upgrade axios from 1.6.3 to 1.6.4 by @kkopanidis in #877
  • feat(authorization): ResourceDefinition versioning, bus event pub fixes, admin API res signature fixes by @kon14 in #881
  • feat(authentication): redirectUri overrides expansion by @kon14 in #884
  • build(deps): bump follow-redirects from 1.15.2 to 1.15.4 by @dependabot in #883
  • feat(authentication): Add/RemoveTeamMembers gRPC rpcs by @kon14 in #885
  • fix(authentication): facebook and google native login missing scopes by @kkopanidis in #887
  • fix(database): add catch to mongoose-adapter createView() by @ChrisPdgn in #890
  • fix(database): group field custom endpoints query bug by @ChrisPdgn in #893
  • fix(authentication): add/removeTeamMember rpc field mapping by @kon14 in #894
  • refactor(router): changes and fixes for high-availability improvements by @kkopanidis in #898
  • refactor(chat): split participantsLog from main ChatRoom schema due t… by @kkopanidis in #900
  • fix(database): high-availability issues especially on SQL dbs by @kkopanidis in #899
  • refactor(authorization): rework by @kkopanidis in #891
  • build(deps-dev): bump typescript from 5.0.4 to 5.2.2 by @dependabot in #749
  • fix(grpc-sdk): ConduitSchemaExtension type not exported by @kon14 in #908
  • fix(router,admin): register route crashing between database restarts, due to clients not having updated connections by @kkopanidis in #907
  • fix(authorization): checkRelations not finding resource definitions by @ChrisPdgn in #909
  • fix(database): views not being shared between instances by @kkopanidis in #910
  • build(deps): bump actions/cache from 3 to 4 by @dependabot in #911
  • build(deps-dev): bump @types/express from 4.17.17 to 4.17.21 by @dependabot in #904
  • refactor(authorization): performance improvements on background jobs/re-indexing by @kkopanidis in #906
  • build(deps-dev): bump @commitlint/config-conventional from 17.7.0 to 18.5.0 by @dependabot in #913
  • refactor(email): sender definitions in templates & requests by @kkopanidis in #914
  • feat: standalone docker image by @kkopanidis in #919
  • build(deps): bump bson from 5.2.0 to 6.2.0 by @dependabot in #773
  • fix: standalone Docker compose port mapping by @kon14 in #922
  • fix(database): mongoose parseStringToQuery EJSON -> JSON by @ChrisPdgn in #926
  • feat(hermes): add scalar to eventually replace swagger ui by @kkopanidis in #921
  • fix(database): execRawQuery check if collection exists in views by @Renc17 in #932
  • feat(hermes): add server and error details in swagger by @kkopanidis in #929
  • refactor: convert project to ESM by @kkopanidis in #927
  • build(deps-dev): bump @types/node from 20.10.3 to 20.11.13 by @dependabot in #930
  • refactor(push-notifications): remove dual initialization of firebase by @kkopanidis in #933
  • build(deps-dev): bump typescript from 5.2.2 to 5.3.3 by @dependabot in #915
  • build(deps-dev): bump eslint from 8.38.0 to 8.56.0 by @dependabot in #923
  • build(deps): bump @aws-sdk/client-s3 from 3.476.0 to 3.503.1 by @dependabot in #931
  • [Snyk] Security upgrade nodemailer from 6.9.8 to 6.9.9 by @kkopanidis in #938
  • build(deps): bump protobufjs from 7.2.5 to 7.2.6 by @dependabot in #937
  • refactor(authentication): use utc consistently in tokens & rework some error cases by @kkopanidis in #939
  • build(deps-dev): bump @types/mailgun-js from 0.22.16 to 0.22.18 by @dependabot in #934
  • build(deps): bump twilio from 4.19.3 to 4.21.0 by @dependabot in #935
  • build(deps): bump moment from 2.29.4 to 2.30.1 by @dependabot in #941
  • build(deps): bump rate-limiter-flexible from 3.0.1 to 4.0.1 by @dependabot in #936
  • refactor(core): modify HA startup function to reduce redis lock times by @kkopanidis in #942
  • build(deps): bump prom-client from 15.0.0 to 15.1.0 by @dependabot in #945
  • build(deps): bump axios from 1.6.5 to 1.6.7 by @dependabot in #944
  • build(deps-dev): bump @types/jsonwebtoken from 9.0.3 to 9.0.5 by @dependabot in #947
  • feat(authorization,grpc-sdk): CreateResourceAccessList viewName by @kon14 in #955
  • fix(authorization): createResourceAccessList API breakage by @kon14 in #956

New Contributors

  • @laertis99 made their first contribution in #633
  • @codesee-maps made their first contribution in #646
  • @Renc17 made their first contribution in #666

Full Changelog: v0.15.14...v0.16.0