Commit graph

1367 commits

Author SHA1 Message Date
David Mehren
5eab4f42d6 refactor: merge AuthTokenDTOs into one file
Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-06 22:24:21 +01:00
David Mehren
de952fe3b2 feat(auth-service): accept undefined validUntil param
The `validUntil` parameter for `createTokenForUser` may be undefined
in some usages.
As it is easy to add handling for that here, this commit implements it.

Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-06 22:24:21 +01:00
David Mehren
a6734cc58f test: ensure testSetup.cleanup is called
Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-06 22:24:21 +01:00
David Mehren
f0e6f6150d test: allow running e2e tests with different DBs
This commits adds infrastructure for running the E2E tests
with databases other than sqlite.

Initially, support for Postgres is added.

Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-06 22:24:21 +01:00
Philip Molares
35075bdb0b test: add unit test for noteConfig
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-03-06 21:42:19 +01:00
Philip Molares
96747b6d68 fix: use joi positive and integer validators on HD_MAX_DOCUMENT_LENGTH
validate HD_MAX_DOCUMENT_LENGTH with the positive and integer validators of Joi.

See also:
- https://joi.dev/api/#numberpositive
- https://joi.dev/api/#numberinteger

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-03-06 21:42:19 +01:00
Philip Molares
de8bad13cf test: add unit test for appConfig
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-03-06 21:35:58 +01:00
Philip Molares
029881f380 chore: add mocked-env dev dependency
This will be used to create unit test for the different config objects.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-03-06 21:35:58 +01:00
Philip Molares
45df0e6edb fix: rename parseOptionalInt to parseOptionalNumber
This allows us to handle the possible errors due to non-integer numbers with joi and return more precise error messages.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-03-06 21:35:58 +01:00
Philip Molares
151e12a8a7 fix: use joi positive, integer and max validators on PORT
validate PORT with the positive, integer and max validators of Joi.

See also:
- https://joi.dev/api/#numberpositive
- https://joi.dev/api/#numberinteger
- https://joi.dev/api/#numbermax

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-03-06 21:35:58 +01:00
Philip Molares
0a778d8a64 fix: use joi uri validator in appConfig
validate HD_DOMAIN and HD_RENDERER_ORIGIN with the uri validator of Joi. This should prevent the problem described in #2150.

Fixes #2150

See also: https://joi.dev/api/#stringurioptions

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-03-06 21:35:58 +01:00
David Mehren
7e8716ec95 fix: ensure dates are properly transformed
To correctly transform Date objects from ISO-strings in JSON
to instances, class-transformer requires the `@Type` annotation.

References:
https://github.com/typestack/class-transformer#%D1%81onverting-date-strings-into-date-objects
Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-06 20:54:46 +01:00
David Mehren
59a235ebc4 fix: ensure nested objects are properly validated & transformed
To validate nested objects, class-transformer requires
the `@ValidateNested` annotation.
For arrays, class-transfomer requires
setting `each: true`.

To correctly transform nested objects from JSON to instances,
class-transformer requires the `@Type` annotation.

References:
https://github.com/typestack/class-validator#validating-nested-objects
https://github.com/typestack/class-validator#validating-arrays
https://github.com/typestack/class-transformer#working-with-nested-objects
Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-06 20:54:46 +01:00
David Mehren
324536bc2d feat(validation): send error message to client
Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-06 20:52:52 +01:00
Renovate Bot
a31e4f4dfc chore(deps): update dependency ts-node to v10.7.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-06 17:37:40 +01:00
Renovate Bot
d5c70b0302 chore(deps): update dependency mkdocs-material to v8.2.5
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-06 17:30:01 +01:00
Renovate Bot
4817431166 chore(deps): update linters
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 10:47:14 +01:00
Renovate Bot
8aee78c78e chore(deps): update actions/checkout action to v3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 10:40:33 +01:00
Renovate Bot
a850939acb fix(deps): update nestjs packages to v8.4.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 10:39:31 +01:00
Renovate Bot
bc59085ce4 chore(deps): update dependency typescript to v4.6.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 10:36:44 +01:00
Renovate Bot
7aee869610 chore(deps): update dependency ts-node to v10.6.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 10:29:20 +01:00
Renovate Bot
4030d11840 fix(deps): update dependency typeorm to v0.2.45
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 10:28:55 +01:00
Renovate Bot
47e99816af chore(deps): update dependency tsconfig-paths to v3.13.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 10:23:21 +01:00
Renovate Bot
1514ea1646 fix(deps): update dependency raw-body to v2.5.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 09:24:01 +01:00
Renovate Bot
ddca4eaec7 chore(deps): update dependency mkdocs-material to v8.2.4
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 05:00:47 +00:00
Renovate Bot
1827b7c615 chore(deps): update dependency @nestjs/cli to v8.2.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-03-05 02:56:36 +00:00
David Mehren
0be8e4ea55 feat(api/private): add GroupsController
The GroupsController can be used to fetch information about groups.

Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-01 20:20:18 +01:00
David Mehren
0394679134 feat(user-info-dto): split email into separate DTO
The email address should only be available
in /me routes.
This commit splits the email address into a new FullUserInfoDto.

Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-01 20:20:18 +01:00
David Mehren
a7edf00ebc feat(api/private): add UsersController
The UsersController can be used to fetch information about users.

Signed-off-by: David Mehren <git@herrmehren.de>
2022-03-01 20:20:18 +01:00
Renovate Bot
908f418620 chore(deps): lock file maintenance
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-28 02:23:45 +00:00
David Mehren
931a168e5d fix(session-middleware): don't hardcode database ttl
The cookie expiration is taken from the config,
but the expiration of session data in the database was hardcoded.

This removes the hardcoded value, so TypeormStore defaults
to cookie.maxAge.

References:
https://github.com/nykula/connect-typeorm#options
https://github.com/expressjs/session#cookiemaxage
Signed-off-by: David Mehren <git@herrmehren.de>
2022-02-27 20:55:13 +01:00
Philip Molares
cf5c398933 fix: openapi decorator
This now correctly returns the dto if it is provided. Previously it would return () => undefined, when the dto was not defined, which crashed some internal logic in nestjs.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-02-27 18:40:53 +01:00
Renovate Bot
bb2c248147 chore(deps): update dependency mkdocs-material to v8.2.3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-27 18:22:31 +01:00
Renovate Bot
72ef02608b chore(deps): update yarn to v3.2.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
Signed-off-by: David Mehren <git@herrmehren.de>
2022-02-26 14:07:23 +01:00
Renovate Bot
4e83c19dc7 chore(deps): update dependency mkdocs-material to v8.2.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 14:00:27 +01:00
Renovate Bot
eeb8de4f78 fix(deps): update dependency raw-body to v2.5.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 13:56:36 +01:00
Renovate Bot
a8264bdd7f chore(deps): update dependency eslint to v8.10.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 13:48:34 +01:00
Renovate Bot
b0b590757e chore(deps): update actions/setup-node action to v3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 13:43:50 +01:00
Renovate Bot
4d8682f27a fix(deps): update dependency typeorm to v0.2.44
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 11:15:16 +00:00
Renovate Bot
c97533f70f chore(deps): update linters to v5.12.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 11:07:33 +00:00
Renovate Bot
4bba9a2520 chore(deps): update dependency @types/node to v16.11.26
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 08:48:55 +00:00
Renovate Bot
0318f7ea0d chore(deps): update dependency @types/jest to v27.4.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 04:44:06 +00:00
Renovate Bot
70a26bedb0 chore(deps): update dependency @nestjs/schematics to v8.0.7
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 02:24:25 +00:00
Renovate Bot
f72c85b887 chore(deps): lock file maintenance
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2022-02-21 02:40:08 +00:00
Philip Molares
86ef8f3c7f docs: add documentation to OpenApi decorator
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-02-20 20:56:09 +01:00
Philip Molares
cae55e0baa test: fix e2e test error codes
As these were changed with the openapi decorator the test need to reflect this.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-02-20 20:56:09 +01:00
Philip Molares
89aac9d4b6 refactor: use new openapi decorator
Also remove fullapi decorator, because it's fully replaced by the openapi decorator.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-02-20 20:56:09 +01:00
Philip Molares
a283002a34 feat: create openapi decorator
This decorator gets a list of http codes and possible descriptions and adds all necessary decorator internally to the method or the class. This will prevent long OpenApi annotations and keep the controllers shorter.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-02-20 20:56:09 +01:00
Philip Molares
c6bb8f62e8 refactor: use a base dto class
This gives all dto classes a common super class for usage of the type system.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-02-20 20:56:09 +01:00
Philip Molares
0955bf048d refactor: rename markdown body decorator
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2022-02-20 20:56:09 +01:00