In dev we want to be able to go from a `yarn install` to
running code but we also want to keep typescript as a
devDependency for production builds where we have an
explicit build phase then --production install. To keep the
production install from failing on the postinstall we need
it to succeed even if tsc is missing, hence the `|| true`.
When a password change is required the lockedAt flag is set, currently by an external script. Until the password is changed all sessions for such an account must be verified. The 'password-change' verificationReason is returned in the response to tell the frontend to show the change password ui. The resetAccount db procedure resets the lockedAt value to null when the password is changed.
This adds a base node image and builder image so
that all our service images can share the same
common base, be smaller, and require less customization.
A full `npm ci` sometimes takes a long time for whatever
reason. Before this change it always ran, even if the
tests were going to be skipped. Now it checks whether
the tests are going to run first.