Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: Release v5.39.0 #3214

Merged
merged 27 commits into from
Dec 21, 2021
Merged

build: Release v5.39.0 #3214

merged 27 commits into from
Dec 21, 2021

Conversation

karrui
Copy link
Contributor

@karrui karrui commented Dec 21, 2021

Release v5.39.0

This release, in addition to the usual dependency updates, includes a new endpoint for updating of Twilio credentials. The endpoint will be used when the client UI is complete.

Features

  • feat: add Twilio credentials to forms endpoints #3039

Dependency updates

  • feat(deps): update mongoose to v6.0.13, update mongoose dependencies likewise #3093
  • fix: upgrade date-fns from 2.23.0 to 2.26.0 #3182
  • fix: upgrade libphonenumber-js from 1.9.23 to 1.9.43 #3181
  • fix: upgrade zod from 3.7.2 to 3.11.6 #3180
  • fix(deps): bump @babel/runtime from 7.16.3 to 7.16.5 #3187
  • fix(deps): bump date-fns from 2.26.0 to 2.27.0 in /shared #3194
  • fix(deps): bump express from 4.17.1 to 4.17.2 #3205
  • fix(deps): bump libphonenumber-js from 1.9.43 to 1.9.44 in /shared #3195
  • fix(deps): bump mongodb from 4.2.1 to 4.2.2 #3186
  • fix(deps): bump twilio from 3.71.3 to 3.72.0 #3202
  • fix(deps): bump type-fest from 1.4.0 to 2.8.0 in /shared #3197

Dev dependency updates

  • chore(deps-dev): bump @babel/core from 7.16.0 to 7.16.5 #3188
  • chore(deps-dev): bump @babel/plugin-transform-runtime #3192
  • chore(deps-dev): bump @babel/preset-env from 7.16.4 to 7.16.5 #3189
  • chore(deps-dev): bump @types/lodash from 4.14.177 to 4.14.178 in /shared #3193
  • chore(deps-dev): bump @types/node from 14.18.0 to 17.0.0 #3201
  • chore(deps-dev): bump @types/node from 17.0.0 to 17.0.1 #3211
  • chore(deps-dev): bump concurrently from 6.4.0 to 6.5.1 #3204
  • chore(deps-dev): bump core-js from 3.19.3 to 3.20.0 #3203
  • chore(deps-dev): bump eslint-plugin-prettier in /shared #3196
  • chore(deps-dev): bump lint-staged from 12.1.2 to 12.1.3 #3206

Misc

  • chore: attempt adding explicit branch to run PR actions on #3198
  • chore: enable dependabot for /shared directory #3191

snyk-bot and others added 27 commits December 13, 2021 22:38
…likewise (#3093)

* fix(deps): bump mongoose from 5.13.5 to 6.0.12

Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.13.5 to 6.0.12.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](Automattic/mongoose@5.13.5...6.0.12)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix(deps): update connect-mongo to v4.6.0

* chore(dev-deps): update @types/mongodb to v4.0.7

* fix(FormModel): update schema validators to 6.x syntax

* fix(config): use ConnectOptions type declaration from mongoose@6

* fix(agency): correct types to use mongoose@6 types

* fix(config): remove unsupported options (now default)

see https://mongoosejs.com/docs/migrating_to_6.html#no-more-deprecation-warning-options

* fix: misc type errors due to mongoose@6

* chore(deps): add mongodb dependency

* fix(UserModel): update schema to fit new syntax and MongoServerError

* fix(MyInfoModel): use Mixed type instead of undocumented Object type

* fix: add typecasts to get around excessively deep TS error

* fix(FormLogicModel): add typecast for schema Schema.Types.Mixed

* fix(agency): further update types

* fix(packages): update bson-ext to v4.0.2, and mongoose to v6.0.13

* fix: update mongodb-memory-server-core to 8.0.2

required since bson-ext won't work with old memory core versions

* fix(tests): update instantiation of test db

* fix(tests): update mongoose toEqual matchers to toMatchObject matchers

somewhere along the way mongoose changed the shape of their returned objects, causing toEqual match to fail even if they serialize to the same string.

* fix(e2e): correctly return promise of mongoose.createConnection

v6 change

* fix(FormModel): move esrvcId schema prop to be above status

Mongoose now saves objects with keys in the order the keys are specified in the schema, not in the user-defined object.

* fix(spcp.service.spec): remove unused dbhandler

* feat: remove mockingoose package

was underutilitized and broke during mongoose v6 migration, so deleting it

* fix(test): fix failing tests due to immutable create field

mongoose v6 sets the createdAt value to be immutable.

See https://mongoosejs.com/docs/migrating_to_6.html#immutable-createdat

* fix(test): remaining toEqual -> toMatchObject matcher changes

* fix(test): replace esrvcId values with more obvious values

* fix(test): freeze date in example related tests

fixes issue where expect.anything() is not matching with whatever mongoose object is returning...

* fix(test): remove flakeyness of returned examples by sorting in result

* fix: update package-lock for snyk reported vulns

* fix(deps): update mongodb-memory-server-core to 8.0.4

* fix: ignore excessively deep type-instantiation ts type error

lots of issues on mongoose repo which seems semi related but not really related, ignoring for now till we overhaul the types mongoose uses

* fix: assign table column discrim before setting field discrim

Mongoose now saves objects with keys in the order the keys are specified in the schema, meaning the table column discriminator would not have been applied at the time the table field was assigned as a discriminator to the form's form fields.

This resulted in a bug where table columns did not have a discriminated schema causing uncaught errors to be thrown when a table field was submitted, such as

"UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'selectedValidation' of undefined" as the field did not contain the necessary discriminated column schema props due to not being assigned prior to assigning the TableFieldSchema discriminator.

See https://mongoosejs.com/docs/migrating_to_6.html#schema-defined-document-key-order

* test: add success test case for submissions containing table fields

this broke in mongoose v6 upgrade before being fixed, adding a test to ensure that this does not break in the future

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: add update twilio credentials route

* feat: add update twilio credentials controller

* feat: add update twilio credentials service

* feat: move route to v3 dir

* feat: Update environment variable for building msgSrvcName

* feat: update msgSrvcName in model layer

* chore: remove msgSrvcName from FormUpdateParams

* fix: fix unhandled promise from updateMsgSrvcName

* feat: enable secretsmanager for localstack

* feat: remove request send()

* feat: use promise for secret manager updates

* feat: add SSM_PREFIX env variable

* feat: add TwilioCredentialsData class

* fix: update services to use TwilioCredentialsData

* feat: check if msgSrvcName exists in secrets manager

* feat: remove twilio cache entry on write

* feat: add mongoose transaction wrapper

* feat: regex check for twilio credentials

* feat: make isCredentialsValid its own helper function

* fix: fix lint errors

* feat: add new jest-db helper function

* feat: add 401 unauthorized test case

* feat: add 500 database error test case

* feat: add 403 unauthorized form update

* feat: add 404 form to update not found

* feat: add 400 invalid twilio credentials test case

* fix: use mock form id constant

* feat: update routes documentation

* feat: add positive unit test cases for handleUpdateTwilio

* feat: update handleUpdateTwilio positive test cases

* fix: fix lint errors

* feat: Add MongoDB replica set

* feat: remove replica set nodes and update create credential transaction

* feat: add tests for createTwilioCredentials and udpateTwilioCredentials

* feat: update msgSrvcName in model layer

* feat: add unit testing for updateByMsgSrvcName

* feat: add logger for admin-form twilio services

* fix: MOCK_FORM_ID in admin-form service twilio tests

* feat: fix update twilio and add delete twilio route

* fix: remove console log

* feat: unit test for delete twilio routes

* feat: add unit test for delete twilio controller

* feat: add tests for delete twilio service

* feat: shell script to seed mongo replica set

* fix: Remove double comments

* fix: add rs.initiate to init-mongo.sh

* style: inline mock request body and respones

* refactor: use formId in msgSrvcName update

* refactor: use formId in req params

* feat: add new SECRET_ENV variable

* refactor: move cache del to after secrets manager update

* fix: catch fromString possible parsing error

* test: Fix updateTwilioSpy mock response

* test: Update updateTwilio service mock response

* test: switch to use MockAdminFormService

* style: change constants in tests to camel case

* feat: Add SecretsMangerEror and TwilioCacheError

* test: Update test and incorrect deleteTwilioCredential function

* test: Add test for successful delete when secret not in AWS

* feat: add joi validator for twilio credentials

* refactor: change transaction syntax

* feat: Add helper functions for transactions

* test: update mock startSession

* test: update withTransaction mock implementations

* fix: Fix deleteTwilio logic and test cases

* test: update route integration tests

* fix: Update deployment variables

* refactor: extract meta to logMeta

* refactor: Form methods to be instance methods

* docs: Add JS Docs for new Form instance methods

* test: Update iform msgSrvcName instance methods

* test: Upadte admin-form service test input

* feat: add error handling for Secret Not Found

* docs: Update deployment docs and service comments

* fix: fix lint error

* refactor: log error of secret not found

* test: Update deleteMsgSrvcName test

* refactor: update Form msgSrvcName instance methods to return updated document

* test: Update iadmin form controller test

* refactor remove unnecessary await

* feat: remove force delete

* fix: fix local mongo replica set connection

* feat: remove force delete and update schedule secrets for deletion

* docs: add comment on try catch implementation

* feat: add Description for create secret request

* feat: revert to use ForceDelete

* test: Update delete twilio test

* feat: Update twilio delete to check msgSrvcName and remove getSecret from Twilio delete

* feat: rollback to schedule deletion and include uuid in secret key

* test: remove force delete from test

* fix: remove console log

* fix: add missing return types

* refactor: move msgSrvcName generation and validation into utils

* refactor: split error handling for MongoDB and AWS errors

* refactor: log AWS Secrets Manager request body

* fix: update secret key generation

* test: update ObjectId to use mongoose objectId

* fix: ClientSession import order
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.16.3 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [mongodb](https://github.com/mongodb/node-mongodb-native) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/mongodb/node-mongodb-native/releases)
- [Changelog](https://github.com/mongodb/node-mongodb-native/blob/main/docs/CHANGES_4.0.0.md)
- [Commits](mongodb/node-mongodb-native@v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: mongodb
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.0 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
build: merge release 5.38.0 into develop
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.4 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.16.4 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.26.0 to 2.27.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](date-fns/date-fns@v2.26.0...v2.27.0)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…red (#3193)

Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.14.177 to 4.14.178.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…3195)

Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.9.43 to 1.9.44.
- [Release notes](https://gitlab.com/catamphetamine/libphonenumber-js/tags)
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.9.43...v1.9.44)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.4.0 to 4.0.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/commits/v4.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [type-fest](https://github.com/sindresorhus/type-fest) from 1.4.0 to 2.8.0.
- [Release notes](https://github.com/sindresorhus/type-fest/releases)
- [Commits](sindresorhus/type-fest@v1.4.0...v2.8.0)

---
updated-dependencies:
- dependency-name: type-fest
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [twilio](https://github.com/twilio/twilio-node) from 3.71.3 to 3.72.0.
- [Release notes](https://github.com/twilio/twilio-node/releases)
- [Changelog](https://github.com/twilio/twilio-node/blob/main/CHANGES.md)
- [Commits](twilio/twilio-node@3.71.3...3.72.0)

---
updated-dependencies:
- dependency-name: twilio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.3 to 3.20.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](zloirock/core-js@v3.19.3...v3.20.0)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.18.0 to 17.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 12.1.2 to 12.1.3.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](lint-staged/lint-staged@v12.1.2...v12.1.3)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [express](https://github.com/expressjs/express) from 4.17.1 to 4.17.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](expressjs/express@4.17.1...4.17.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 6.4.0 to 6.5.1.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](open-cli-tools/concurrently@v6.4.0...v6.5.1)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.0 to 17.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
chore: merge hotfix release 5.38.1 back to develop
@karrui
Copy link
Contributor Author

karrui commented Dec 21, 2021

@karrui

Tests

Mongoose update

  • Can create email mode form
  • Can create storage mode form
  • Can submit storage mode form with attachment
  • Can submit email mode form with attachment
  • Can submit storage mode form with CP login
  • Can submit email mode form with MyInfo login
  • Can transfer ownership
  • Can duplicate form
  • Can add/edit logic
  • Can add/remove collaborator
  • Can edit field
  • Can download storage mode responses
  • Can view storage mode responses
  • Can create field (test all fields, including table)
  • Can retrieve SPCP login billings

@karrui
Copy link
Contributor Author

karrui commented Dec 21, 2021

@tshuli

Tests

Twilio custom credentials endpoint

Must be logged in and performed on a form you have write access to

  • New endpoints to test include:
    • PUT admin/forms/:formId/twilio
    • DELETE admin/forms/:formId/twilio
  • call PUT admin/forms/:formId/twilio with invalid twilio credentials
    • Expected: Should throw an error
  • call PUT admin/forms/:formId/twilio with valid twilio credentials
    • Expected: Should be successful
  • call DELETE admin/forms/:formId/twilio on form with stored twilio credentials
    - Expected: Should throw an error Should be successful
  • call DELETE admin/forms/:formId/twilio on form with no stored twilio credentials
    • Expected: Should be successful (idempotent)
  • call DELETE admin/forms/:formId/twilio on form with stored twilio credentials, follow by a PUT admin/forms/:formId/twilio to the same form with valid twilio credentials.
    • Expected: Should be successful
  • call PUT admin/forms/:formId/twilio with valid twilio credentials to add twilio credentials. Enter the AWS console and MongoDB (using a GUI) and change the secret name. call DELETE admin/forms/:formId/twilio on form with stored twilio credentials.
    • Expected: msgSrvcName should be removed from MongoDB while secret in AWS remains.

@karrui karrui merged commit 039be43 into release Dec 21, 2021
@karrui karrui deleted the release-v5.39.0 branch December 21, 2021 07:42
@karrui karrui restored the release-v5.39.0 branch December 22, 2021 06:06
@karrui karrui deleted the release-v5.39.0 branch October 12, 2022 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants