Commit Graph

385 Commits (e03c64ab632780f3c0f1c8c1af0ea6d4c5a72bb5)

Author SHA1 Message Date
yflory fe14399e67 Merge branch 'whiteboard' into soon
ansuz 2ef0af29e5 guard against index worker rpc responses for a txid with no supplied callback
ansuz ee8d5c9c36 fix the premiumUploadSize validation to check the correct attribute
yflory dc0b26da0b Merge branch 'soon' into staging
Alexander a190af079d
Add shutdown() to non-disk logger
The script `evict-inactive.js` calls `Log.shutdown()` at the end, which currently fails if logging to disk has been disabled via `logPath`.
ansuz ed63d98ab0 Merge branch 'scaling-index' into soon
ansuz 590e249500 resolve merge conflict
ansuz 31c7cecaf9 add a few checks for safety
ansuz cea9705bbe Merge branch 'aggressive-stream-closing' into staging
ansuz faa133aab8 remove an XXX
ansuz d386e223e4 simplify open/close of writeStreams
ansuz 32cd0f3c4d increase timeout value from 15s to 45. ought to be enough for anybody
ansuz 05a4e86cdb close streams whenever we finish using them. time out if necessary
ansuz 4522ffa18a compute indexes in child processes
ansuz f8ad649b45 [style] bail out early to avoid nesting
ansuz 019e5e708b wrap workers in a function scope and add a validateMessage method to HK's Env
ansuz 5467e1ffac replace ad-hoc response handler with Util.response
ansuz 9e85a1411e abstract the logic around worker choice out of message handling
ansuz 631ea54b49 lint compliance
ansuz 67dd4a608c Merge remote-tracking branch 'origin/scaling' into scaling2
ansuz b2fcde87d8 implement an admin command to update the default storage limit without a restart
yflory 923616aef0 Use each process in order instead of using a random one
ansuz f345998956 fix undefined reference
yflory fb0eb1b20c Use more subprocesses
yflory 0d636dabc9 Check signature for history keeper in a different process
ansuz 30f17040ac close streams when possible, simplify some code, enforce asynchrony
ansuz 2a9780abcf lint compliance
yflory 578042154e Better reconnect after invalid lastKnownHash
ansuz 2d47e7e2cf implement an admin rpc to fetch ulimit data
ansuz 81c7416095 lint compliance
ansuz f644c24362 add an admin-rpc to count the number of open files
ansuz 1230057970 disable IS_PAD_PINNED
ansuz e1a0daac9c possible server fixes
ansuz bc034d95a3 enforce asynchrony in 'gethistoryOffset'
ansuz d4038344ba stop iterating over tasks if you can't read the root directory
ansuz 4e8ebac3c1 guard against the possible non-existence of metadata for a channel
ansuz b32f3e34af fix local worker debugging on firefox
ansuz 6d8cdca7a3 add 'rejected' field to metadata when getMetadata requests are blocked
ansuz 9d8bb43d03 finally untangle metadata and index caches
ansuz 32d769447a begin standardizing our method of streaming lines from files
ansuz 35eca2c5d2 pull file streaming out into its own file, leave a few notes
ansuz ce6cf6f727 revert some changes that couldn't have possibly worked
ansuz b126e4456b simplify quota logic
ansuz 53ed247bc2 expose maxUploadSize and premiumUploadSize via /api/config
ansuz 170aa6d47e clean up a few tasks related to allow lists
ansuz 2f00ff3278 simplify check-in deactivation
ansuz 03ff9bd0d7 start deprecating usage of myDomain
ansuz de6b9e2228 apply some defaults when loading the config
ansuz 94d8e7f2c2 provide a consistent type for 'customLimits'
ansuz 3cf09924ae fix default CSP headers
ansuz 8d509fd6d5 Merge branch 'staging' into small-config
ansuz c26560e3f9 commit stashed admin-rpc refactor
ansuz 02fc343727 Merge branch 'staging' into small-config
ansuz 3df47a1415 continued WIP config reorganization
ansuz 294a444603 WIP removing defaults from the example config file
ansuz 59ad80d7f1 support larger upload sizes for users with premium accounts
ansuz 3f2ebb773b merge master back to staging
ansuz 542150b775 merge server components from staging
ansuz f951951077 merge communities-allow-list and lint compliance
ansuz f0e5fc7614 merge some missing code from communities-allow-list
ansuz ad08fe0c08 silence a few more routine websocket errors
ansuz 021a6b361f remove a bogus XXX note
ansuz 033bd361f9 add backwards compatibility with older servers
ansuz cac114bb52 merge staging into pending allow-list work
ansuz 386add7c58 fix an invalid use of dropChannel
ansuz 33c12c27a1 ignore successive metadata errors with the same message
ansuz 7ee8778210 kick unauthorized users from restricted channels
and update dependencies
ansuz fe0e02a421 restrict access to metadata
ansuz 791aad53f2 WIP allow list changes
ansuz 597f417ad6 WIP block history requests that bypass JOIN restriction (where appropriate)
ansuz 79bc8830ef disable access restriction if all owners are removed
ansuz f579c9b059 semi-functional allow-list implementation in historyKeeper
ansuz 0edcdcb1b8 oups! fix a missing callback that's been here for a while...
ansuz 27e57e7af0 oups! fix a missing callback that's been here for a while...
ansuz eac3e4cbcd sketch out some historyKeeper functionality related to access lists
ansuz 156c37942d implement new metadata commands related to allow lists and mailboxes
ansuz a280cc85d2 Merge branch 'staging' into communities-allow-list
ansuz 626a031115 resolve conflict with master/staging
ansuz ff73e96cb8 reimplement the trim history fix from staging
ansuz a4be6185de merge staging and do a little lint compliance
ansuz f478ae725d Merge branch 'staging' into communities-allow-list
ansuz 79f1280cf3 Merge branch 'soon' into staging
ansuz b56367414b don't overwrite cached indices when new users join a channel
ansuz 253ea0d336 Merge branch 'staging' into communities-allow-list
ansuz e8949168ec lint compliance
ansuz 5dff6535ed add a simple guard against unparsed messages when trimming history
ansuz 8694c17023 sketch out metadata commands for allow lists
ansuz f86196e40a implement shared environment between historyKeeper and RPC
ansuz 3f606d8c75 remove some duplicated code
ansuz 725d10fc60 nest storage directory inside './lib'
ansuz 38c1700173 Respond to pinning RPCs as soon as possible
(instead of waiting until you've read an unbounded number
of pin logs while queries back up in memory)

Also replace instances of 'publicKey' with 'safeKey' or 'unsafeKey'
to clearly and correctly indicate their format.
ansuz cded52f83f replicate existing pinned.load API correctly
ansuz 65f88617cf add support for an optional handler for each pin log
great for analyzing which files are most in need of optimization
ansuz 3dc789cbca replace pinned.js with low-profile streaming implementation
ansuz 609eddc9e1 reimplement the the Pinned.load API
* recurse into directories on demand
* optimized for lower memory consumption
* less parallelism than before
ansuz 2345323f0d lint compliance
ansuz 2d6626234b yet another async scheduler, this time supporting flexible runtime control flow based on declarative priority levels
yflory 0f697ac865 Merge branch 'staging' into communities-trim
ansuz 1231cacef1 remove XXX
ansuz 57be324850 remove some XXX notes
ansuz 68a77885d4 suppress some routine server logs
ansuz 7f22da0f57 fix use of incorrect key format in admin-rpc
ansuz 7000be0e70 clean up historykeeper
ansuz 802034616c centralize historykeeper-rpc interaction in rpc methods
yflory fd095644a2 Merge branch 'staging' into communities-trim
yflory 64c0f3a90d Add missing RPC command
yflory 9a857ea058 Merge branch 'staging' into communities-trim
ansuz b4172676f3 lint compliance
ansuz f17d14fd99 simpler limit updates
ansuz bde17a62a1 continue refactoring rpc
ansuz fa525817ba fix broken removePins RPC
ansuz a00a9fd018 don't hang when reading unparseable lines from history
yflory 1d56c08700 Merge branch 'staging' into communities-trim
ansuz 3741cbcbc0 rewrite trimmed history WITH newlines
yflory 4079f1bfdb Fix RPC command
yflory 6655f493e0 Merge branch 'staging' into communities-trim
ansuz 5808c534b5 fix function signature for trimHistory RPC
yflory c9676e1c91 Merge branch 'staging' into communities-trim
ansuz 9c28941f6c lint compliance
yflory 5cb266838a Fix syntax error
ansuz 0d69620687 tweak the metadata line handler to handle an edge case in trim history
ansuz f8f3a48e8b use latest chainpad-server
ansuz 46dfa026f0 fix an API change that caused a typeError
ansuz 88be40ede3 standardize some function signatures and factor out a lot of boilerplate
ansuz 65ba85d97b clear historyKeeper cache when we trim a channel
ansuz 43307ffb1a define all server intervals in a map so we can easily clear them all
ansuz 6523974ca2 fix a WRITE_PRIVATE_MESSAGE rpc regression
ansuz 779e817443 stop relying on netflux-server internals
* create RPC module from inside historyKeeper
* stop passing around netflux-server context
  * update to use newer netflux-server's formal APIs
* manage your own cache of indexes instead of storing things in the netflux context
ansuz 06c29ef1d1 latest api changes to match the netflux-server refactor
ansuz b922860339 drop usage of historyKeeper.setConfig
ansuz 80c012f34d prepare to merge history keeper and rpc
ansuz b093d3f0d2 WIP massive rpc refactor
ansuz ceb351326c split out some more rpc functionality and fix broken module paths
ansuz c1f222dd6c move metadata commands from rpc to their own module
ansuz bb7e8e4512 move login block functionality into its own rpc module
ansuz c765362744 move more rpc functionality into modules
ansuz c93b39c094 separate more rpc functionality into pinning and core submodules
ansuz ba6e3f33bd move admin commands into their own module
ansuz 39b0785406 apply custom limits immediately at startup
ansuz 9cdf54aff2 untested implementation of trimHistory
ansuz c388641479 drop support for 'retainData' configuration
ansuz f45de2b52f move some server deps from repo root to lib/
ansuz b585dd998d throw in a little asynchrony
ansuz 7072fe4fa4 implement and test a complex constrained scheduler
Adrian Nöthlich a714e41d49
Log errors in faulty custom config file
CryptPAD now terminates and does not fallback to default config if the custom config is faulty.
The error in the custom config is logged to the terminal now.

Signed-off-by: Adrian Nöthlich <git@promasu.tech>
ansuz 1da662687f guarantee asynchronous execution for batch reads and write queues
ansuz 9b74136b66 Merge branch 'invitations' into staging
ansuz 69e61ec2f2 ignore metadata commands which add invalid owners
ansuz 069776e804 use fast implementations of tweetnacl serverside
ansuz cb6b4a8eb3 always supply a callback when writing messages
ansuz ab868237a0 replace ad hoc line stream with readline module
ansuz 73854a8b6a implement Util.both
ansuz a3eff2728e update lib/once.js to match clientside definition
ansuz 29813e485d add a little debugging info to batch-read
ansuz fe884278f4 ignore non-interesting errors when processing metadata
ansuz dc078c1ca1 test mailboxes and RPCs from the command line, fix some minor errors
ansuz d81ff791ad WIP cli tests for rpc
ansuz 9ce7cea9cc abstract historyKeeper's batched reads implementation into a library
ansuz 4902554a61 implement per-channel fifo queues for metadata and channel writes
ansuz 70161dbd73 Merge branch 'staging' of github.com:xwiki-labs/cryptpad into teams-server-features
ansuz ba18d5c79d WIP CLI client
yflory 4027672678 Store the mailbox of all the owners
yflory d52e449f87 Fix setMetadata RPC saferphore
yflory ed5671a548 Don't write metadata updates to the log if it doesn't change the value
yflory 738030e8c0 Add pending_owners commands
yflory e12e5e1f25 Allow pending_owners to claim ownership
yflory 28b2341f2c Serverside metadata update
ansuz c5ca82f0e1 throw errors if you try to update expiration times, as this isn't implemented yet
ansuz 0a0c64d240 only increment the metadata line index if you can parse the line
ansuz 1c37ec7aee prevent duplicated owners in metadata amendments
ansuz ce847700c4 expose the index of the metadata log processor
ansuz b36f50f2c9 update metadata queries to include edits
ansuz efd0efede4 implement RESET_OWNERS command for editable metadata
ansuz 7b18bf91ce implement functions for iterating over metadata logs
zimbatm 35dd3abbb5
make the config path configurable
ansuz ecd9647a2e add shutdown command for the logstore
ansuz cd793b295d provide a standard api for calculating pin data for a given public key
ansuz 5c9cd5ffc6 standardize pin calculation routine
ansuz d5a9eacef0 standardize loading of server configuration
ansuz dde28dfa02 reorder logLevel priority
ansuz f9eb1fde67 oops
ansuz 0bd14bfcbe fix logging to stdout and document logging configuration
ansuz b3e0f9e886 fix use before definition
ansuz 4e9273f35c improved logger behaviour and updated default configuration
ansuz e1e6d51038 new logging api