* fix: rename to group_permissions
* fix: delete null collectionId records before setting non null constraint
* fix: use scope with collectionId not null
* fix: update model with documentId
* fix: rename to GroupPermission
* fix: rename collection_users to user_permissions
* fix: teamPermanentDeleter test
* fix: use scope with collectionId not null
* fix: update model with documentId
* fix: rename to UserPermission
* fix: create views upon table rename for zero downtime
* fix: remove comments
* helper
* Add script to move notification settings
* wip, removal of NotificationSettings
* event name
* iteration
* test
* test
* Remove last of NotificationSettings model
* refactor
* More fixes
* snapshots
* Change emails to class instances for type safety
* test
* docs
* Update migration for self-hosted
* tsc
* Comment model
* Framework, model, policy, presenter, api endpoint etc
* Iteration, first pass of UI
* fixes, refactors
* Comment commands
* comment socket support
* typing indicators
* comment component, styling
* wip
* right sidebar resize
* fix: CMD+Enter submit
* Add usePersistedState
fix: Main page scrolling on comment highlight
* drafts
* Typing indicator
* refactor
* policies
* Click thread to highlight
Improve comment timestamps
* padding
* Comment menu v1
* Change comments to use editor
* Basic comment editing
* fix: Hide commenting button when disabled at team level
* Enable opening sidebar without mark
* Move selected comment to location state
* Add comment delete confirmation
* Add comment count to document meta
* fix: Comment sidebar togglable
Add copy link to comment
* stash
* Restore History changes
* Refactor right sidebar to allow for comment animation
* Update to new router best practices
* stash
* Various improvements
* stash
* Handle click outside
* Fix incorrect placeholder in input
fix: Input box appearing on other sessions erroneously
* stash
* fix: Don't leave orphaned child comments
* styling
* stash
* Enable comment toggling again
* Edit styling, merge conflicts
* fix: Cannot navigate from insights to comments
* Remove draft comment mark on click outside
* Fix: Empty comment sidebar, tsc
* Remove public toggle
* fix: All comments are recessed
fix: Comments should not be printed
* fix: Associated mark should be removed on comment delete
* Revert unused changes
* Empty state, basic RTL support
* Create dont toggle comment mark
* Make it feel more snappy
* Highlight active comment in text
* fix animation
* RTL support
* Add reply CTA
* Translations
* Webhooks (#3607)
* Get the migration and the model setup. Also make the sample env file a bit easier to use. Now just requires setting a SECRET_KEY and besides that will boot up from the sample
* WIP: Start getting a Webhook page created. Just the skeleton state right now
* WIP: Getting a form created to create webhooks, need to bring in react-hook-forms now
* WIP: Get library installed and make TS happy
* Get a few checkboxes ready to go
* Get creating and destroying working with a decent start to a frontend
* Didn't mean to enable this
* Remove eslint and fix other random typescript issue
* Rename some events to be more realistic
* Revert these changes
* PR review comments around policies. Also make sure this inherits from IdModel so it actually gets an id
* Allow any admin on the team to edit webhooks
* Start sending some webhooks for some User events
* Make sure the URL is valid
* Start recording webhook deliveries
* Make sure to verify if the subscription is for the type of event we are looking at
* Refactor sending Webhooks and follow better webhook schema
This creates a presenter to unify the format of webhooks. We also
extract the sending of webhooks and recording their deliveries to a
method than can be used by each of the different event type methods
We also add a status to WebhookDelivery since we need to save the record
before we make the HTTP request to get its id. Then once we make the
request and get a response we can update the delivery with the HTTP info
* Turn off a subscription that has failed for the last 25 deliveries
* Get a first spec passing. Found a bug in my returning of promises so good to patch that up now
* This looks nicer
* Get some tests added for the processor
* Add cron task to delete older webhooks
* Add Document Events to the Processor
* Revisions, FileOperations and Collections
* Get all the server side events added to the processor and make Typescript make sure they are all accounted for
* Get all the events added to the Frontend and work on styling them a bit, still needs some love though
* Get UI styled up a bit
* Get events wired up for webhook subscriptions
* Get delete events working and test at least one variant of them
* Get deletes working and actually make sure to send the model id in the webhook
* Remove webhook secrets from this slice
* Add disabled label for subscriptions that are disabled
* Make sure to cascade the delete
* Reorg this file a bit
* Fix association
* I removed secret for the moment
* Apply Copy changes from PR Review
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* Actually apply the copy changes
TIL that if you Resolve a conversation it _also_ removes the 'staged suggestion' from your list on Github
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* Update app/scenes/Settings/Webhooks.tsx
Missed this copy change before
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* Add disabled as yellow badge
* Resolve frontend comments
* Fixup Schema a bit and remove the dependency on the subscription
* Add test to make sure we don't disable until there are enough failures, and fix code to actually do that. Also some test fixes from the json response shape changes
* Fix WebhookDeliveries to store the responses as Text instead of blobs
* Switch to text better for response bodies, this is using the helpers better and makes the code read better
* Move the logic to a task but run in through the processor cause the tests expect that right now, moving the tests over next
* Split up the tests and actually enqueue the events from the WebhookProcessor instead of doing them inline
* Allow any team admin to see any webhook subscription for the team
* Add the indexes based on our lookup patterns
* Run eslint --fix to fix auto correct issues from when I tried to use Github to merge copy changes
* Allow subscriptions to be edited after creation
* Types caught that I didn't add the new event to the webhook processor, also added it to the frontend here
* I think this will get these into the translations file
* Catch a few more translations, use styled components better and remove usage of webhook subscription in the copy
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* fix: tsc
fix: Document model payload empty
* fix: Revision webhook payload
Add custom UA for hooks
* Add webhooks icon, move under Integrations settings
Some spacing fixes
* Add actorId to webhook payloads
* Add View and ApiKey event types
* Spacing tweaks, fix team payload
* fix: Webhook not disabled after 25 failures
* fix: Enable webhook when editing if previously disabled
* fix: Correctly store response headers
* fix: Error in json/parsing/presentation results in hanging 'pending' webhook delivery
* fix: Awkward payload for users.invite webhook
* Add BaseEvent, ShareEvent
* fix: Add share events to form
* fix: Move webhook delivery cleanup to single DB call
Remove some unused abstraction
* Add user, collection, group context to membership webhook events
Some associated refactoring
Co-authored-by: Corey Alexander <coreyja@gmail.com>
Fixes#3412
Previously the only way to restrict the domains for a Team were with the ALLOWED_DOMAINS environment variable for self hosted instances.
This PR migrates this to be a database backed setting on the Team object. This is done through the creation of a TeamDomain model that is associated with the Team and contains the domain name
This settings is updated on the Security Tab. Here domains can be added or removed from the Team.
On the server side, we take the code paths that previously were using ALLOWED_DOMAINS and switched them to use the Team allowed domains instead
This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously.
closes#1282