Commit Graph

52 Commits

Author SHA1 Message Date
Alessandro Magionami a9e6dc5834 feat(user-emails): create user emails table and type (#2470)
* feat(user-emails): create user emails table and type

* chore(user-emails): add delete cascade

* chore(user-emails): fix tests

* chore(user-emails): add unique constraint for email and userId

* chore(user-emails): use random email in tests

* chore(user-emails): add todo to remove user-email in test

* chore(user-emails): code review changes

* chore(user-emails): use random passwords for tests

* chore(user-emails): fix test and code review changes
2024-07-08 17:27:59 +02:00
Iain Sproat 694d770bf4 fix(email): fatally exit if email is enabled but cannot be initialized (#2204) 2024-06-18 10:36:21 +01:00
Kristaps Fabians Geikins 83d8035dc2 chore: upgrade to eslint 9 (#2348)
* root + server

* frontend

* frontend-2

* dui3

* dui3

* tailwind theme

* ui-components

* preview service

* viewer

* viewer-sandbox

* fileimport-service

* webhook service

* objectloader

* shared

* ui-components-nuxt

* WIP full config

* WIP full linter

* eslint projectwide util

* minor fix

* removing redundant ci

* clean up test errors

* fixed prettier formatting

* CI improvements

* TSC lint fix

* 'buildBatch' needs to be async since some batch types (like Text) require it. Removed a disabled liniting rule from ObjLoader

* removed unnecessary void

---------

Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
2024-06-12 14:38:02 +03:00
Kristaps Fabians Geikins c67f6d9c92 feat: clearer email verification flow & related error messages (#1904)
* fix: fe2 auth error page + various minor UI bugs

* clean up & reporting failing email to fe

* new mutation to resend verification as guest

* email text updates

* fixing issues brought up by agi

* more text fixes

* swapping out space-XXX for gap-XXX
2023-12-15 13:09:26 +02:00
Gergő Jedlicska ad0228c434 fix(monorepo): make sure to use 127.0.0.1 instead of localhost 2023-08-03 10:28:57 +02:00
Iain Sproat f568f54266 **Breaking Change**: fix(email): from address must be provided by operator if email is enabled (#1743) (#1745)
This reverts commit 0a795c51f2.
2023-08-01 11:49:08 +01:00
Iain Sproat 0a795c51f2 Revert "**Breaking Change**: fix(email): from address must be provided by operator if email is enabled (#1743)" (#1744)
This reverts commit 3f9dd5f914.
2023-08-01 10:13:54 +01:00
Iain Sproat 3f9dd5f914 **Breaking Change**: fix(email): from address must be provided by operator if email is enabled (#1743)
* fix(email): from address should be an example to be configured by operator

* fix(environment variable): should be 'EMAIL_FROM'
- also uses docker_image_tag of '2', which should be latest in '2' tags

* No sensible defaults, instead validate that it is configured
2023-07-31 17:37:06 +01:00
Kristaps Fabians Geikins b02a07e2b6 feat: Frontend 2.0 MVP 2023-05-08 10:47:01 +03:00
Gergő Jedlicska c4454c2ede refactor(server email templates): use the mjml ejs rendering for all emails (#1448)
* refactor(server email templates): use the mjml ejs rendering for all emails

* fix(server access request): await the server info pls
2023-03-13 15:07:13 +01:00
Iain Sproat 7e89950358 feat(logging): log all http requests and responses (#1416)
- feat(logging): log all http requests and responses
- the auto logger does not log the body, to ensure sensitive payloads are not logged. Unfortunately this means that error messages are not logged either, so need to be manually logged.
- fix(logging): 400 errors should be info not error severity logging
2023-02-27 15:14:56 +00:00
Iain Sproat 4b1969c804 chore(server): improve logging of REST API endpoints (#1414)
- chore(server): adds endpoint parameter to some log messages
- and any other relevant parameters we have to hand (streamId, userId etc..)
- logging severity is info for `400` status codes, error for `500` status codes or equivalent.
2023-02-24 11:22:21 +00:00
Iain Sproat 96bed71022 fix(logging): Improves error logging and pretty-prints logs during dev & test (#1255)
* Improves error logging
- use pino error logger correctly by passing in error as first argument

* monitor deployment: Filter logging at INFO level and above
* Use structured logging to create parameters for monitoring results
* Add structured logging to obj fileimport service
* Fileimport service, fix and improve logging
    - use child logger with additional context where possible
    - select appropriate logging level
- fix duplicated context in log statement
* REST endpoints, add context to structured logging and remove same context from message
* Webhook service provides context to bound logger to properly use structured logging
    - Pass bound logger containing context to `makeNetworkRequest`
    - do not log url, as it may contain a secret (like Discord's webhook urls), instead log the webhook Id
     - log error message when network call fails
* upload: make better use of structured logging when recording data
* pino-pretty when in dev or test mode
    - pino-pretty configured to send to stderr
* LOG_PRETTY env var
* Silence structured logging during testing
     - can not rely on determining the port number by reading from stdout/stderr
     - instead we determine which port is free, then create our server on that port
     - we then poll that port until the server is ready before commencing tests
* Allow puppeteer to install chromium
* Do not need to install chromium separately
2022-12-13 09:18:28 +00:00
Iain Sproat 4d01e13a84 feat(structured logging) (#1242)
* Revert "Revert structured logging 2 (#1240)"
This reverts commit 78ecaeffcb.
* Logging should not be bundled into core shared directory
* making sure observability stuff isnt bundled into frontend


Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2022-12-06 11:51:18 +00:00
Iain Sproat 78ecaeffcb Revert structured logging 2 (#1240)
* Revert "'@' shortcut must come after it is configured in bootstrap (#1239)"

This reverts commit 967329473f.

* Revert "Structured logging (attempt 2) (#1234)"

This reverts commit 444d2ca7dd.
2022-12-05 15:46:09 +00:00
Iain Sproat 444d2ca7dd Structured logging (attempt 2) (#1234)
* Revert "Revert "feat(structured logging): implements structured logging for backend (#1217)" (#1227)"

This reverts commit 63e6581162.

* Use pino-http instead of express pino logger
* Use correct reference to knex and do not instantiate HttpLogger prematurely
* Adds missing dependency for pino to webhook-service
* Do not instantiate middleware when passed to express
* Refactor to move logging into shared
* Copy shared packages into dockerfiles
* Build shared workspace in docker build-stage for fileimport & webhook
2022-12-05 14:49:52 +00:00
Iain Sproat 63e6581162 Revert "feat(structured logging): implements structured logging for backend (#1217)" (#1227)
This reverts commit 84cb74e8b3.
2022-11-25 16:57:28 +00:00
Iain Sproat 84cb74e8b3 feat(structured logging): implements structured logging for backend (#1217)
* each log line is a json object
* structured logging allows logs to be ingested by machines and the logs to be indexed and queried addresses #1105
* structured logging allows arbitrary properties to be appended to each log line, and ingestion of logs to remain robust
* Structured logging provided by `pino` library
* Add `express-pino-logger` dependency
* Remove `debug`, `morgan`, and `morgan-debug` and replace with structured logging
* `console.log` & `console.error` replaced with structured logging in backend
* Remove `DEBUG` environment variable and replace with `LOG_LEVEL`
- Note that there is a test which reads from a logged line on `stdout`. This is not robust, it would be better to use the childProcess.pid to look up the port number.
* Log errors at points we explicitly send error to Sentry
* Amend indentation of a couple of log messages to align indentation with others
2022-11-25 16:05:05 +00:00
Kristaps Fabians Geikins db6a3e9367 refactor(server): apollo server v2 -> v3 migration (#1071) 2022-10-06 11:12:16 +03:00
Gergő Jedlicska d1d5984e30 gergo/summaryEmails (#979)
* refactor(server emails): email transports module refactor to TypeScript

* refactor(docker-compose deps): move local email server to common dev compose file

* chore(server launch.json): add ts-node script running example

* chore(server deps): add nodemailer types package

* refactor(server activitystream): add strongly typed activity definitions

* feat(server activitystream): add activity repository

* feat(server info): add canonical url on the service level

* feat(server): add static file serving route to server core

* feat(server): add dependencies for periodical email digests

* feat(server activity stream): call the initialization step from the activity stream module

* feat(server activity digest): add WIP weekly email digest implementation

* feat(server digest email): smul upgrades and fixes to the email template and its contents

* just for Fabs to test

* chore(root package.json): remove deleted docker-compose references

* feat(frontend profile): add notification preferences panel

* feat(server digest emails): set prod ready cron tab and timespan

* refactor(server email digest): move templates into the email module

* refactor(server activity digests): refactor to use notifications infrastructure

* test(server activities): add tests and some refactor to activities and notification preferences

* refactor(notification preferences): fix minor issues

* test(server notification preferences test): fix describe nesting

* fix(server activities): add missing action types

* fix(server activities): fix errors after merging main

* test(server activity notifications): add test coverage for activity notifications service

* refactor(server activities): fixing tests and some cleanup

* feat(server cli): add summary notification command to cli

* chore(dev env db versions): upgrade local dev env versions

* chore(server deps): upgrade local dev db to pg 14

* fix(docker-compose): bind maildev to localhost

* process-scoped notifications test queues

* test(activity tests): add  sleep to fix flaky CI

* feat(activity digests): add demo date for digest trigger

* feat(activity digest): add UK timezone trigger date

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: Fabians <fabis94@live.com>
2022-09-09 12:46:57 +02:00
Kristaps Fabians Geikins ecb9f825bb refactor: email verification flow & email template (#967) 2022-08-31 17:11:19 +03:00
Kristaps Fabians Geikins 774176246e feat: pretty password reset email + bugfixes (#939) 2022-08-24 11:59:30 +03:00
Kristaps Fabians Geikins af45fc2742 feat(server): notify on comment mention + notifications API (#933) 2022-08-19 10:27:48 +03:00
Kristaps Fabians Geikins 7aa21e88bd chore: cleaning up suuid usages (#943) 2022-08-18 15:29:05 +03:00
Kristaps Fabians Geikins 0427f5cfd1 feat(server): new base email template + implementation for invites emails (#903)
Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
2022-08-11 11:00:01 +03:00
Gergő Jedlicska 0ac118e05c (refactor) server for less app-root-path 2022-05-03 13:10:00 +02:00
Dimitrie Stefanescu e830e6a5e5 fix(frontend): displays toast post email verification, closes #672 2022-04-08 21:14:38 +01:00
Gergő Jedlicska 1355ddab6f style(all): some extra formatting fixes 2022-04-01 09:40:47 +02:00
Gergő Jedlicska d53df11f77 style(server): fix all eslint errors and break the tests 2022-03-31 14:18:44 +02:00
Gergő Jedlicska 569b4688fa style(all): reformat with print width 88 2022-03-29 19:46:49 +02:00
Fabians aa5e94d640 chore: reformatting everything with prettier 2022-03-29 17:12:31 +03:00
Kristaps Fabians Geikins 5a26f1f819 fix(server): removed unnecessary bootstrap invocation 2022-03-16 18:16:20 +02:00
Kristaps Fabians Geikins b157a98901 feat(server): simplified test running & IDE integrations 2022-03-16 17:31:53 +02:00
Gergő Jedlicska 68a4a95d90 refactor(server): rework test hooks
drop db migration before and after hooks, add helpers and root hooks

fix #531
2022-02-05 15:05:17 +01:00
Gergő Jedlicska 71c52d99e4 test(server): test email verification rate limiting 2022-01-27 12:05:15 +01:00
Gergő Jedlicska 3191bc4e71 feat(server): add email verification sending rate limiting 2022-01-27 12:04:42 +01:00
Dimitrie Stefanescu 1ee7bb4ed6 style: autofix all the things 2022-01-26 11:29:23 +00:00
Gergő Jedlicska 34181fe2e7 style(server): fix verification formatting 2022-01-20 19:26:53 +01:00
Gergő Jedlicska efec3d1b81 test(server): test use email verification endpoint 2022-01-20 19:12:35 +01:00
Gergő Jedlicska 1ea8995e84 feat(server): add use verification rest endpoint 2022-01-20 19:12:05 +01:00
Gergő Jedlicska 87caee94a0 feat(server): add rest endpoint to initiate email verification 2022-01-20 17:53:21 +01:00
Gergő Jedlicska 2dc184a070 test(server): update tests for email verification 2022-01-20 17:52:53 +01:00
Gergő Jedlicska 8bdb3062f4 rename the new discord bot 2022-01-20 11:37:10 +01:00
Gergő Jedlicska 6ab8f34a84 test(server): add email verification send and creation test 2022-01-19 22:04:02 +01:00
Gergő Jedlicska afceeae48a refactor(server): refactor email sending service, fix small race condition 2022-01-19 22:03:32 +01:00
Gergő Jedlicska c5c2b5471d feat(server): add email verification service 2022-01-19 22:02:45 +01:00
Gergő Jedlicska 8050c30d6d test((server) archival tests): add archived user scope tests
also i'm trying to fix flaky tests
2021-11-04 13:33:22 +01:00
Cristian Balas 164fb01d50 added EMAIL_FROM environment variable (#207) 2021-05-03 13:13:02 +03:00
Dimitrie Stefanescu 3ed4729c94 feat(server/invites): fixes a bug in 3rd party strategies & invites, and other changes
changes sender to no-reply@speckle.systems; updates invite email subject based on wether it's a
generic invite or a server invite, etc.
2021-03-22 18:44:58 +00:00
Dimitrie Stefanescu 18c94613c5 feat(server): emails now use env vars to create transport
if not provided, the module will log an error. in testing env, uses a temp etherealmail account &
logs message urls.
2021-03-07 13:08:42 +00:00