* save images as private and serve via signed url from images.info api
* download private images to directory on export
* fix lint errors
* private s3 default, AWS.s3 module level scope, default s3 url expiry
* combine regex to one, and only replace when there are matches
* fix lint
* code not needed anymore, remove
* updates after pulling master
* revert the uploadToS3FromUrl url return
* use model gettr to compact code, rename to attachments api
* basic checking of document read permission to allow attachment viewing
* fix: Continue to upload avatars as public
fix: Allow redirect for non-private attachments
* add support for publicly shared documents
* catch errors which crash the app during zip export and user creation
* add tests
* enable AWS signature v4 for s3
* switch to use factories to build models for testing
* add isDocker flag for local serving of attachment redirect url
* fix redirect tests
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* Update websockets to allow joining document-based rooms
* dynamic websocket joining
* emit user.join/leave events when entering and exiting document rooms
* presence storage
* feat: frontend presence store
* lint
* UI updates
* First pass editing state
* refactoring
* Timeout per user/doc
lint
* Document data loading refactor to keep Socket mounted
* restore: Mark as viewed functionality
Add display of 'you' to collaborators
* fix: Socket/document remount when document slug changes due to title change
* Revert unneccessary package update
* Move editing ping interval to a shared constant
* fix: Flash of sidebar when loading page directly on editing mode
* separate document and revision loading
* add comments for socket events
* fix: Socket events getting bound multiple times on reconnect
* fix: Clear client side presence state on disconnect
* fix: Don't ignore server side error
Improved documentation
* More comments / why comments
* rename Socket -> SocketPresence
* fix: Handle redis is down
remove unneccessary join
* fix: PR feedback
* add policy serialize method
* Add policies to collection responses
* wip
* test: remove .only
* refactor: Return policies with team and document requests
* store policies on the client
* refactor: drive admin UI from policies
* feat: Record events in DB
* feat: events API
* First pass, hacky activity feed
* WIP
* Reset dashboard
* feat: audit log UI
feat: store ip address
* chore: Document events.list api
* fix: command specs
* await event create
* fix: backlinks service
* tidy
* fix: Hide audit log menu item if not admin
* feat: New onboarding documents
* Images -> blocks
* Add tips
* test: removes assumptions of welcome documents
this actually results in the tests being much more understandable too
* add db flag when document was created from welcome flow
* intial commiy
* cleaning code
* added makeCredential to s3.js and removed extra module dependecy
* lint fixes
* minor fix
* minor fixes
* changed encoding type from string to any
* added new env var to env.sample
* added ability to append to documents. Added test cases for the same
* made changes required for lint test
* updated snapshot for document.test.js to reflect new test cases added
* append should not enforce newline character
* Atom / RSS meta link
* Spike
* Feeling good about this spike now
* Remove document.collection
* Remove koa.ctx from all presenters to make them portable outside requests
* Remove full serialized model from events
Move events.add to controllers for now, will eventually be in commands
* collections.create event
parentDocument -> parentDocumentId
* Fix up deprecated tests
* Fixed: Doc creation
* documents.move
* Handle collection deleted
* 💚
* Authorize room join requests
* Move starred data structure
Account for documents with no context on sockets
* Add socket.io-redis
* Add WEBSOCKETS_ENABLED env variable to disable websockets entirely for self hosted
New installations will default to true, existing installations to false
* 💚 No need for promise response here
* Reload notice
* Display who has viewed a document in the header
* Add overflow, display of WHEN last viewed
Cleanup old document attributes
Add firstViewedAt, lastViewedAt to API response
* Cleanup
* Added: API documentation for views endpoints
* Include views for deleted users