You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,17 +9,23 @@ however, insignificant breaking changes do not guarantee a major version bump, s
9
9
# [UNRELEASED]
10
10
11
11
### Breaking
12
+
12
13
- Completely rewritten blocklist system. Blocklisting now runs off its own mongoDB collection. This once again introduces backwards incompatible schema changes, so a manual migration is required. You may upgrade from both v4.0 and v4.1 using the `[p]migrate blocklist` command. This removes any need to perform the previous migration steps in v4.1.0, you may upgrade directly to this version. After running the command, blocklist functionality will return and legacy config based blocks will have been deleted. You should always back up your config before migration.
13
14
- Remove internal logviewer plugin
14
15
- Bump Python version to >= 3.12
15
16
16
17
### Deprecated
18
+
17
19
- Legacy blocklist properties are deprecated and no longer function. They now log a warning when used and provide no functionality. They have been replaced with methods in blocklist.py
18
20
19
21
### Added
22
+
20
23
- Added `content_type` to attachments stored in the database.
21
24
-`?log key <key>` to retrieve the log link and view a preview using a log key. ([PR #3196](https://github.com/modmail-dev/Modmail/pull/3196))
22
25
- Add Forced plugins. Allows auto installing un-removable plugins via `FORCED_PLUGINS` environment variable contain a comma separate list of plugins. (GH#5)
26
+
- S3 based attachment archival
27
+
28
+
23
29
Commands:
24
30
*`snooze`: Initiates a snooze action.
25
31
*`snoozed`: Displays snoozed items.
@@ -54,8 +60,8 @@ Configuration Options:
54
60
* Anonymous prompt support (`thread_creation_menu_anonymous_menu`).
55
61
56
62
57
-
58
63
### Changed
64
+
59
65
- Changing a threads title or NSFW status immediately updates the status in the database.
60
66
- Replace Pipenv with PDM
61
67
- Bump discord.py version to 2.3.2
@@ -64,13 +70,15 @@ Configuration Options:
64
70
- Upgrade dependencies for modern python
65
71
66
72
### Removed
73
+
67
74
- Remove Discord.py dependency version check
68
75
- Remove modmail telemetry
69
76
- Remove lottie sticker support
70
77
- Autoupdate system
71
78
- Autoupdating was prone to serious issues and cannot be used within container images, the only supported distribution method of OpenModmail.
72
79
73
80
### Fixed
81
+
74
82
- Persistent notes have been fixed after the previous discord.py update.
75
83
-`is_image` now is true only if the image is actually an image.
76
84
- Fix contact command reporting user was blocked when they weren't.
@@ -86,6 +94,7 @@ Configuration Options:
86
94
87
95
88
96
### Internal
97
+
89
98
- Add `update_title` and `update_nsfw` methods to `ApiClient` to update thread title and nsfw status in the database.
90
99
-`thread.set_title` now requires `channel_id` to be passed as keyword arguments.
91
100
- New `thread.set_nsfw_status` method to set nsfw status of a thread.
Copy file name to clipboardExpand all lines: core/config_help.json
+65Lines changed: 65 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1557,5 +1557,70 @@
1557
1557
"notes": [
1558
1558
"Color names map to the built-in palette (e.g., 'red', 'green', 'blurple')."
1559
1559
]
1560
+
},
1561
+
"s3_enabled": {
1562
+
"default": "No",
1563
+
"description": "Enable archival of message attachments to S3 storage. When enabled, attachments are uploaded to S3 after successful Discord transmission and logged metadata includes S3 references for resilient playback.",
1564
+
"examples": [
1565
+
"`{prefix}config set s3_enabled yes`",
1566
+
"`{prefix}config set s3_enabled no`"
1567
+
],
1568
+
"notes": [
1569
+
"Requires `s3_bucket`, `s3_region`, and `s3_access_key_id`/`s3_secret_access_key` to be configured.",
1570
+
"S3 archival applies to logged messages and thread replay scenarios. Live relay to Discord is unaffected.",
1571
+
"See also: `s3_bucket`, `s3_region`, `s3_endpoint`, `s3_key_prefix`."
1572
+
]
1573
+
},
1574
+
"s3_bucket": {
1575
+
"default": "None",
1576
+
"description": "The name of the S3 bucket where message attachments will be archived.",
1577
+
"examples": [
1578
+
"`{prefix}config set s3_bucket my-modmail-attachments`",
1579
+
"`{prefix}config set s3_bucket modmail-prod`"
1580
+
],
1581
+
"notes": [
1582
+
"This configuration can only be set through `.env` file or environment (config) variables for security.",
1583
+
"Required when `s3_enabled` is set to yes.",
1584
+
"See also: `s3_enabled`, `s3_region`, `s3_key_prefix`."
1585
+
]
1586
+
},
1587
+
"s3_region": {
1588
+
"default": "None",
1589
+
"description": "The region where the S3 bucket is located.",
1590
+
"examples": [
1591
+
"`{prefix}config set s3_region us-east-1`",
1592
+
"`{prefix}config set s3_region eu-west-1`",
1593
+
"`{prefix}config set s3_region ap-southeast-1`"
1594
+
],
1595
+
"notes": [
1596
+
"This configuration can only be set through `.env` file or environment (config) variables.",
1597
+
"See also: `s3_enabled`, `s3_bucket`, `s3_endpoint`."
1598
+
]
1599
+
},
1600
+
"s3_endpoint": {
1601
+
"default": "None (uses AWS S3)",
1602
+
"description": "Optional custom S3-compatible endpoint URL for use with MinIO, DigitalOcean Spaces, or other S3-compatible services.",
1603
+
"examples": [
1604
+
"`{prefix}config set s3_endpoint https://minio.example.com:9000`",
1605
+
"`{prefix}config set s3_endpoint https://nyc3.digitaloceanspaces.com`"
1606
+
],
1607
+
"notes": [
1608
+
"This configuration can only be set through `.env` file or environment (config) variables.",
1609
+
"Leave unset to use AWS S3 directly.",
1610
+
"See also: `s3_enabled`, `s3_region`."
1611
+
]
1612
+
},
1613
+
"s3_key_prefix": {
1614
+
"default": "modmail/attachments/",
1615
+
"description": "Prefix path within the S3 bucket where archived attachments will be stored.",
1616
+
"examples": [
1617
+
"`{prefix}config set s3_key_prefix modmail/attachments/`",
1618
+
"`{prefix}config set s3_key_prefix archive/files/`"
1619
+
],
1620
+
"notes": [
1621
+
"Should include a trailing slash.",
1622
+
"Useful for organizing archived attachments within a larger S3 bucket.",
0 commit comments