* Support 1 blockchain only
* auth check based on single chain
* use config to set the blockchain provider URL
* fix config to read from env variable
* handle 31337 in addition to 1337
* pass in roomserver API so that we have access to the db
* interface to get db info for spaceid and channelid
* determine space or channel by querying the room db
* Add authorization check to the JOIN endpoint
* fix lint errors
* merge latest changes from dendrite main
* fix go formatting
Co-authored-by: John Terzis <john@hntlabs.com>
Co-authored-by: Tak Wai Wong <64229756+tak-hntlabs@users.noreply.github.com>
* import new versions of the zion contracts
* bootstrap zion authz
* define interface for space manager contract
* instantiate spacemanager interface
* load goerli and localhost
* embed json
* remove zion interface. Use contracts directly
* split user identifiter into address and chain id
* isAllowed in routing.go
* remove permission.go
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
* add config yaml for enable_auth
* zion_space_manager_localhost.go
* Placeholders for authorization
* rename func and type
* re-run go mod tidy
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
I was not seeing unread notifications in sync, even if they were written to the db
Notifications are in their own stream, but the code was trying to tack them onto the join room stream. If the offsets “happened” to line up, you might get a count here or there, but they would be totally wrong (jump from 1 to 0 to 2, etc)
To fix, put them in their own top level object, handle them on the client.
Signed-off-by: Austin Ellis <austin@hntlabs.com>
* Blacklist some sytest tests that are failing in our environment
* Commenting out test that isn't reliably passing or failing, probably a race
* refresh latest dendrite main
* refresh latest dendrite main
* dendrite implementation of eip-4361
* simplify nonce generation
Co-authored-by: Brian Meek <brian@hntlabs.com>
Co-authored-by: Tak Wai Wong <takwaiw@gmail.com>
* Blacklist some sytest tests that are failing in our environment
* Commenting out test that isn't reliably passing or failing, probably a race
* refresh latest dendrite main
* refresh latest dendrite main
* dendrite implementation of eip-4361
* simplify nonce generation
Co-authored-by: Brian Meek <brian@hntlabs.com>
Co-authored-by: Tak Wai Wong <takwaiw@gmail.com>
Latest dendrite main has changes for knockable rooms, and the fix for login crash. Pulled into dendrite fork. Rebased dendrite fork from dendrite main.
Co-authored-by: Till <2353100+S7evinK@users.noreply.github.com>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Co-authored-by: kegsay <kegan@matrix.org>
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
Co-authored-by: texuf <texuf.eth@gmail.com>
Co-authored-by: Brian Meek <brian@hntlabs.com>
Co-authored-by: Tak Wai Wong <takwaiw@gmail.com>
* Fix issues with migrations not getting executed (#2628)
* Fix issues with migrations not getting executed
* Check actual postgres error
* Return error if it's not "column does not exist"
* Send-to-device/sync tweaks (#2630)
* Always delete send to device messages
* Omit empty to_device
* Tweak /sync response to omit empty values
* Add housekeeping function to delete old/expired EDUs (#2399)
* Add housekeeping function to delete old/expired EDUs
* Add migrations
* Evict EDUs from cache
* Fix queries
* Fix upgrade
* Use map[string]time.Duration to specify different expiry times
* Fix copy & paste mistake
* Set expires_at to tomorrow
* Don't allow NULL
* Add comment
* Add tests
* Use new testrig package
* Fix migrations
* Never expire m.direct_to_device
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Co-authored-by: kegsay <kegan@matrix.org>
* Remove nonce generation for eip4361 signin (#25)
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
* Fix user_interactive crash when multiple clients try to log in (#26)
* add rw locks
* lock / unlock protect other fields
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
Co-authored-by: Till <2353100+S7evinK@users.noreply.github.com>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Co-authored-by: kegsay <kegan@matrix.org>
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
Co-authored-by: Tak Wai Wong <takwaiw@gmail.com>
* Fix issues with migrations not getting executed (#2628)
* Fix issues with migrations not getting executed
* Check actual postgres error
* Return error if it's not "column does not exist"
* Remove nonce generation for eip4361 signin (#25)
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
* TestLoginPublicKeyNewSession
* use asserts
* setup, test, asserts
* TestLoginPublicKeyValidAuthTypeMissingSession
* invalid session id test
* create a helper newSession function
* TestLoginPublicKeyEthereumMissingUserId
* TestLoginPublicKeyEthereumAccountNotAvailable
* TestLoginPublicKeyEthereumInvalidUserId
* createEip4361TestMessage
* TestLoginPublicKeyEthereumMissingSignature
* TestLoginPublicKeyEthereum
* re-enable all publickey signin tests
* move common publickey test util to its own file
* register_public_key.go stub
* refactored common ethereum test helpers to its own folder
* refactor test helpers
* return error in test helpers
* fix regressions with ServerName
* TestRegistrationUnimplementedAlgo
* TestNewRegistration
* TestNewRegistrationSession
* verify new login session
* remove assert
* perform account creation
* TestRegisterEthereum
* Enable all tests
* move helper functions into test file
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>