🎉 Daily, Weekly, and Enqueued Upload Limits
This release adds the ability to configure limits for the number of files and megabytes that can be enqueued and uploaded daily and weekly on a per user basis. Users can now prevent people on the network from clogging up queues and downloading excessive amounts of files and data.
Combined with the speed and slot limits introduced in 0.15.0 users now have full control over their shares.
Full documentation can be found here and here, but here's an example that illustrates the various options and behavior:
YAML
global: # global limits apply if group-specific overrides have not been set
limits:
queued: # files that are either in the queue, or in progress
files: 500
megabytes: 5000
daily: # files uploaded in the previous 24 hours
files: 1000
megabytes: 10000
failures: 200
weekly: # files uploaded in the previous 7 days
files: 5000
megabytes: 50000
failures: 1000
groups:
default:
limits: # limits specified here override global limits
queued:
files: 150
megabytes: 1500
daily: ~ # apply global limits (weekly still apply)
weekly:
files: 1500
megabytes: 15000
failures: 150
leechers:
limits:
queued:
files: 15
megabytes: 150
daily:
files: 30
megabytes: 300
failures: 10
weekly:
files: 150
megabytes: 1500
failures: 30
user_defined:
my_buddies:
limits:
queued:
files: 1000 # override global default
members:
- alice
- bob
What's Changed
🚨 Breaking Changes 🚨
- Raise lower limit for JWT signing key from 16 to 32 characters by @jpdillingham in #1090
Features
- Improve chat colours by @gsuberland in #1063
- Add configurable limits for number (and size) of queued files, daily and weekly completions by @jpdillingham in #1035
- Add a configurable limit for number of daily and weekly failed transfers by @jpdillingham in #1068
- Add global limits, add limits to configuration documentation by @jpdillingham in #1079
- Add a setting to re-scan shares on a regular interval (add retention limit to the cache) by @jpdillingham in #1032
- Add compliance with server code 160/ExcludedSearchPhrases by @jpdillingham in #1089
Fixes & Refactoring
- Add speed limit units to code, docs by @jpdillingham in #1082
- Return proper message when exceeding queued limits by @jpdillingham in #1071
- Re-align startup logos by @jpdillingham in #1057
- Fix crash when setting blacklist CIDRs by @jpdillingham in #1067
- Check if user's IP is blacklisted prior to sending search results by @jpdillingham in #1064
- Drop win-arm build target by @jpdillingham in #1056
- Delay start of the application's internal clock by @jpdillingham in #1030
- Remove deprecated experimental code by @jpdillingham in #1066
- Add 'NoConfigWatch' flag to suppress config file watching by @jpdillingham in #1058
Dependencies
- Upgrade to .NET 8 by @jpdillingham in #1052
- Replace deprecated versioning package by @jpdillingham in #1054
- Bump System.IdentityModel.Tokens.Jwt from 7.0.3 to 7.1.2 in /src/slskd by @dependabot in #1042
- Bump Soulseek.NET to 6.3.0 by @jpdillingham in #1049
- Bump dependencies, including Soulseek.NET to 6.4.1 by @jpdillingham in #1088
- Bump follow-redirects from 1.15.2 to 1.15.4 in /src/web by @dependabot in #1045
- Bump prometheus-net.SystemMetrics to 3.1.0 by @jpdillingham in #1061
New Contributors
- @gsuberland made their first contribution in #1063
Full Changelog: 0.19.5...0.20.0