* Add collaboratorIds support to revision events
- Add database migration to add collaboratorIds column to revisions table
- Update server Revision model to include collaboratorIds field
- Update client Revision model to include collaboratorIds field
- Modify Revision.buildFromDocument to capture document collaborators
- Update revisionCreator to include collaboratorIds in event data
Fixes#6975
* fix to actually work
* test: Add missing methods to mock
* Return collaborators to client and display
---------
Co-authored-by: codegen-sh[bot] <131295404+codegen-sh[bot]@users.noreply.github.com>
Co-authored-by: Tom Moor <tom@getoutline.com>
* Migrate Backlink model to generic Relationship model
- Create new Relationship model with type field to support different relationship types
- Add database migration to create relationships table and migrate existing backlinks
- Update Backlink model to delegate to Relationship model for backward compatibility
- Update BacklinksProcessor to use Relationship model with backlink type
- Update API routes to use new Relationship model
- Update test files to use Relationship model
- Maintain backward compatibility through database view and model delegation
Fixes#9366
* Update migration to rename table instead of creating new one
- Rename existing backlinks table to relationships instead of creating new table
- Add type column with default value to existing table
- Update existing rows to have type='backlink'
- Avoid expensive data migration by keeping existing data in place
- Maintain backward compatibility with database view
- Update rollback to reverse table rename and column addition
This approach is much more efficient for large datasets as it avoids copying millions of rows.
* Remove unnecessary UPDATE statement from migration
The UPDATE statement is not needed since defaultValue automatically
applies to existing rows when adding a column with a default value.
Thanks @tommoor for catching this!
* Wrap up migration in transaction
- Wrap all migration operations in a transaction for atomicity
- Add transaction parameter to all queryInterface calls
- Follow the same pattern as other migrations in the codebase
- Ensures all operations succeed or fail together
* Remove Backlink class entirely and use Relationship everywhere
- Delete server/models/Backlink.ts
- Remove Backlink export from server/models/index.ts
- Remove Backlink import and association from Document model
- All functionality now uses Relationship model with RelationshipType.Backlink
- Maintains same API through Relationship model methods
- Cleaner architecture with single relationship model
* Update documents.test.ts to use RelationshipType enum instead of string
- Import RelationshipType from Relationship model
- Replace type: "backlink" with type: RelationshipType.Backlink
- Improves type safety and consistency with enum usage
* Address code review feedback
- Add transaction wrapper to migration down method for safer rollback
- Remove unused findByTypeForUser method from Relationship model
- Method wasn't used and won't work for all relationship types (e.g., user mentions)
- Clean up code structure and improve safety
* Restore imports
---------
Co-authored-by: codegen-sh[bot] <131295404+codegen-sh[bot]@users.noreply.github.com>
Co-authored-by: Tom Moor <tom@getoutline.com>
* Fix document URL generation for titles with only special characters
* Refactor: Update instance path method to use static getPath method
---------
Co-authored-by: codegen-sh[bot] <131295404+codegen-sh[bot]@users.noreply.github.com>
* perf: Move text serialization to task runner
* tsc
* test
* refactor
* fix: Restore previous default of toMarkdown behavior
* Stop writing text to revisions
* fix: show all document backlinks for a user
* add findByIds method to Document model
* default options param
* move filter to Document model
* docs
* fix: Backlinks from collections without direct membership not returned
---------
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* chore: Remove emoji column from documents and revisions
* fix: Incorrect icon color on collections in share menu
* Update types.ts
---------
Co-authored-by: Tom Moor <tom.moor@gmail.com>
Co-authored-by: Tom Moor <tom@getoutline.com>
* Handle new Notion export format
Clear data on file operation delete
* fix: Don't restart development server on html upload
* fix: Do not send collection created notifications on bulk import
* fix: Avoid parellelizing all uploads at once
Move import into one transaction per-collection