Highlights:
- soju now stores messages in the database by default.
- Channels and users can be marked as pinned/muted via the metadata-2 IRC
extension and synchronized across devices. - PostgreSQL and SQLite optimizations.
- File uploads can be forwarded to an external HTTP server.
- Username/password authentication can be delegated to an external HTTP server.
- New utilities for administrators:
- Users can be impersonated via SASL.
- A per-user maximum number of networks can be configured.
- Debug logs can be toggled via a BouncerServ command.
- Local listeners can now use the "irc://" scheme instead of "irc+insecure://".
Full changelog
Calvin Lee (1):
doc/ext/bouncer-networks: fix typo in ADDNETWORK example
Conrad Hoffmann (1):
user: fix goroutine leak on upstream error
John Regan (3):
postgres: optimize queries for large message stores
postgres: simplify nested queries
postgres: remove some uneeded table aliases
Kirill Primak (1):
Add support for irc://, ws://, and http:// listening URIs
Shivaram Lingamneni (1):
downstream: use Dialer to block Web push to internal IPs
Simon Ser (32):
downstream: add ACCOUNTEXTBAN to ISUPPORT passthrough list
Remove remaining comments about multi-upstream mode
Upgrade dependencies
downstream: sanity check Web push endpoint
downstream: set LINELEN for bouncer connections
downstream: fix missing client arg in two JOIN errors
cmd/sojudb: add note about interactions with soju daemon
downstream: send extended-join params for self-JOIN messages
downstream: handle ircError in downstreamConn.register
Upgrade dependencies
database/sqlite: enable foreign keys
database: enable WAL for SQLite
config: bail out if a source is given when a driver doesn't need it
database/sqlite: set options for modernc build
doc: document HTTP endpoints
doc/file-uploads: new article
upstream: don't send push notifications for TAGMSG
cmd/soju: close HTTP servers on shutdown
Use HTTPS URL for Web Push subscriber
Switch to new go-scfg upstream
doc/ext/webpush: add examples
Upgrade dependencies
cmd/sojuctl: don't print timestamp in log messages
service: drop some angle-brackets for fixed choice options help
service: print less confusing error when -h/-help is used
service: print full help command when handling -h/-help
config: set default message-store to db
doc: mention manual reconnection after certfp/sasl service commands
db: create indexes for foreign keys
database: move migrations to a separate file
contrib: print network address when name is unset
doc/ext/filehost: add examples
alexpdp7 (1):
Update Gamja and Goguma links
delthas (24):
Make max-user-networks a limit of enabled networks
Add per-user max-networks limit
fileupload: Fail early on file too large
Enable user impersonation with SASL
Run user run commands as an admin
Enable using unix://drive:/path on Windows
fileupload: Allow previewing uploaded media files
fileupload: Allow previewing PDFs without downloading them
Prevent non-admin users from adding Unix socket networks
service: Fix race condition on user run
Add an auth HTTP backend
Fix creating users with 0 max networks by default
fileupload: Add an http backend
Support soju.im/SAFERATE ISUPPORT
database: Do not index ANSI colors in the message text
service: Add channel create
Enable using both a plain & an oauth auth backend at once
fileupload: Forward HTTP store response on error
Fix attempting to store last message ID with no backlog clients
service: add server debug
downstream: Fix connecting with explicit network on non-admin users
Add support for channel pinned/muted status through METADATA
Fix build error when disabling SQLite
Fix panic on pin/mute of service on downstream without network
hexadecimalDinosaur (1):
Add Halloy client
pips (1):
docs(contrib): Add relayd tls configuration