* Improve types
* More types, fix default permission for viewers added to collection
* fix change of default role for CollectionGroup
* Restore policy
* test
* tests
* wip
* stash
* fix: make authenticationId nullable fk
* fix: apply generics to resolve compile time type errors
* fix: loosen integration settings
* chore: refactor into functional component
* feat: pass integrations all the way to embeds
* perf: avoid re-fetching integrations
* fix: change attr name to avoid type overlap
* feat: use hostname from embed settings in matcher
* Revert "feat: use hostname from embed settings in matcher"
This reverts commit e7485d9cda4dcf45104e460465ca104a56c67ddc.
* feat: refactor into a class
* chore: refactor url regex formation as a util
* fix: escape regex special chars
* fix: remove in-house escapeRegExp in favor of lodash's
* fix: sanitize url
* perf: memoize embeds
* fix: rename hostname to url and allow spreading entire settings instead of just url
* fix: replace diagrams with drawio
* fix: rename
* fix: support self-hosted and saas both
* fix: assert on settings url
* fix: move embed integrations loading to hook
* fix: address review comments
* fix: use observer in favor of explicit state setters
* fix: refactor useEmbedIntegrations into useEmbeds
* fix: use translations for toasts
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* chore: Adds name to Redis connections for debugging, minor associated refactoring
* Upgrade bull, ioredis
* Add pid to redis connection name in development
* chore: refactor server test setup
* Close dangling redis connections instead of mocking rate limiter
specific modules
* Segregate pre and post env test setup
* fix: remove mock file
* Add `emails.export_completed` notification to settings menu
Signed-off-by: AKP <tom@tdpain.net>
* Don't send email when export_completed notifications are disabled
Signed-off-by: AKP <tom@tdpain.net>
* Automatically subscribe new users to `export_completed` notifications
Signed-off-by: AKP <tom@tdpain.net>
* Alter secondary text on export page to mention optional notifications
Signed-off-by: AKP <tom@tdpain.net>
* Alter toast text on collection export for optional notifications
Signed-off-by: AKP <tom@tdpain.net>
* Only subscribe new admins to export notifs
Signed-off-by: AKP <tom@tdpain.net>
* Move `export_completed` notification decision into `beforeSend`
Signed-off-by: AKP <tom@tdpain.net>
* Update server/emails/templates/ExportFailureEmail.tsx
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* Update server/emails/templates/ExportSuccessEmail.tsx
Co-authored-by: Tom Moor <tom.moor@gmail.com>
Signed-off-by: AKP <tom@tdpain.net>
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* feat: Put request rate limit at application server
This PR contains implementation for a blanket rate limiter at
application server level. Currently the allowed throughput is set high
only to be changed later as per the actual data gathered.
* Simplify implementation
1. Remove shutdown handler to purge rate limiter keys
2. Have separate keys for default and custom(route-based) rate limiters
3. Do not kill default rate limiter because it is not needed anymore due
to (2) above
* Set 60s as default for rate limiting window
* Fix env types