* Update dependencies
* Node 22 is now the new minimum version.
* changelog.
* Begin porting eslint to new config format.
* Make linter happy.
* Update reqwest to fix SSL issue?
* Fix test types
* quick check on ubuntu LTS 24.04
* Change cache key
* update rust action
* revert mocha due to esminess
* Remove the only usage of pqueue
* Use babel for TS transformations to get around ESM import bug.
* Dependency bundle upgrade
* Drop babel, not actually used.
* lint
* lint
* update default config (mostly sections moving around)
* Deprecate legacy sled store
* Add e2ee test
* Add support for e2ee testing in e2e environment
* Tidy up redis support
* Attempt to get test working
* cleanup test
* opportunistic lint
* tiny bit of cleanup
* remove ref
* tweak to homerunner
* switch to nightly images for Synapse (to test E2EE)
* use nightly
* newsfile.
* Update bot sdk to support authenticated media (now that Synapse requires it)
* fix typings
* MatrixError
* one more
* Graduate the encryption property to stable.
* update test config
* Update encryption docs.
* fix some old config bits
* Add dynamic imports for room configs.
* Try to move code editor to imports
* Load code editor on demand to save a bundle load.
* Load fonts from npm
* changelog
* lint
* Add logic to enable generic hook expiry
* Add storage for hook expiry warnings.
* Migrate generic hooks / add expiry field
* Allow reporting a specific error and status code for generic webhooks
* Report the specific error when a message fails to send
* Refactor input class to better support datetime
* Remove single use of innerChild
* Add UI support for expiry configuration
* Add new packages
* Add warnings when the timer is about to expire.
* Add send expiry notice config option
* lint
* document new option s
* Fixup test
* Add tests for expiry
* Add textual command for setting a duration on a webhook.
* Add e2e test for inbound hooks.
* changelog
* Add a configuration option to force webhooks to expire.
* update config.sample.yml
* fix field not working
* Initial support for outbound webhooks.
* Refactor outbound into it's own connection type.
* Add support for media / encrypted media.
* Ensure we configure a sensible User Agent
* Add a test for outbound webhooks
* Checkpoint for feature completeness.
* Lint tidy
* Finish up media tests.
* changelog
* Add outbound documentation
* update default config
* fix tests
* Ensure connection state always explicitly states all keys, even if some are undefined.
* changelog
* Fix type
* fix test types
* Add support for E2E testing
* Add CI job for e2e test
* Ensure integration test only runs when regular tests complete
* Add homerunner image
* Disallow concurrent runs
* Add concurrency to other expensive steps
* changelog
* Fix mq test
* Cache rust deps
* Drop only
* Use a shared key
* Major package upgrades
* Update rust deps and fix a few things
* Drop 18 testing
* Use node 20
* lint rust
* lint
* changelog
* Drop usage of SVGs, use compound elements.
* Update widget API
* quickjs test
* Replace vm2 with quickjs
* initalise -> initialise
* Remove unused transformation timeout time
* Don't assume quickModule is set
Also use whether it's set as the indicator of whether transformation
functions are allowed, instead of checking the config
* Refactor GenericHookConnectionState validation
- Do it in the constructor instead of in callers
- Make hookId mandatory so as to not drop it on some state updates
- Conflate a state event's state key with a connection state's name,
which was already the case in practice
* Refactor validateState
* Drop explicit any
Better to infer the type instead
* Always validate transformation fn
* Fix test
* Add changelog
* Fix disposal, validation, and printing
* Fix transformation error string formatting
Also refactor similar code
* Let invalid transformations run & fail
instead of pretending that one was never set
* Restore transformation timeout time
* Don't execute transformation fn when validating it
Instead, only compile it
* Revert unrelated changes
---------
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Various smaller changes
* Drop account data entirely
* Use max feed items
* Commit known working improvements
* Better status handlingh
* changelog
* Update changelog
* Add a note on Redis.
* Add proper HTTP tests
* Linty lint
* Tweaks
* New metrics woah
* Tweaks
* Support node 20, drop node 16
* Update workflow versions
* Update backendmeta
* Use version file
* Update packages
* Yarn updates
* Changelog
* Fix glibc compatibility
* Target es2021
Without this, CI tests fail
* Drop unused metrics parameter
* Revert "Drop unused metrics parameter"
This reverts commit 4d874549bcec3dea0d6941215ac5c4f4707966ac.
* Make a note about broken support
---------
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Support atom feeds in rust parser
* Add an apply linting command
* Add changelog
* Fixup
* Add tests for atom feeds + remove redundant code
* Remove unused rss-parser
* Tests for all formats.
* Move hashing logic into rust to save cross-context calls
* lint my rust
* Use a String::from
* Ensure guids are not repeated
* Allow usage of the SQLite-based crypto store
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
* Add changelog
* Log when crypto storage is initialized
* Add yarn script for resetting crypto state
Also document its usage & when it may be necessary to use it.
* Minor style improvements
- add trailing semicolons
- remove redundant `Promise.resolve`s
* Change logging in crypto reset script
- Move error object to parameter
- Rename logger
* Add method to close the Redis store
and call it to let the process exit cleanly
* Update matrix-bot-sdk
Use release with SQLite crypto store support
---------
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
* WIP
* Update vite
* Add oauth landing page
* Add API support for GitHub oauthing
* Remove console.logs
* Add support for logging and and out of GitHub
* Add bridge API methods
* Add base link styling
* Sugar syntax main get
* Update vite
* changelog
* Review changes
* Use instance to match UI
* lint
---------
Co-authored-by: Justin Carlson <justinc@element.io>
* Implement new Dropdown component
* Apply field styling to search too
* General improvements to GitLabClient
* Add support for storing small base64 files in the storage provider
* Refactor GitLab repo to use new connection provider
* Start trying to deduplicate code
* Begin refactor to support ConnectionSearch
* Add support for GitHub searching
* Refactor GitLab/GitHub into components
* Port Jira to ConnectionSearch
* Drop unused functions
* Hide connection list if no connections are present.
* Cleanups
* Cleanup abort controller
* changelog
* Update JIRA for search powers
* Add support for native e2ee
* Various temps to coax it into working
* Formatting nitpicks
* Include stable registration config key for msc2409
* Update default config with encryption options
* Manage admin rooms with bot-sdk DMs
This also enables encryption for new admin rooms when appropriate.
* Update config comments for encryption settings
- Add comment to clarify Redis (the `queue` section) must be configured
in order for encryption to work
- Mention that the `encryption` section is optional, and omitting it
will disable encryption support
* Update docs for encryption support
* Add changelog
* Add to docs some notes about encryption state
* Move all post-join logic to onRoomJoin
* Block post-join actions on crypto setup
Requires https://github.com/turt2live/matrix-bot-sdk/pull/269
* Fix linter error
* Update encryption docs and changelog
- Mention that worker mode isn't supported with encryption yet
- Mention removal of Pantalaimon-based encryption
* Update worker docs with encryption config notice
* Share main appservice config with feed bots
This is required to safely enable encryption for the bots that post
GenericHook messages.
* Make slight clarification for queue config
* Minor fixes
* Block post-join actions on feed bot crypto setup
Same as a9e6e11d but for the sub-bots that post GenericHook messages.
* Get joined rooms from intent instead of bot
This refreshes the list of known rooms for crypto events.
* Use Element fork of bot-sdk for crypto fixes
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>