Dashboard-V2
ProfanityBlocker Release Notes |
Hello there,
We are glad to inform you that the latest version Dashboard-V2 of ProfanityBlocker is out. Below is the list of JIRA issues that were part of this upgrade.
Summary -
Project - ProfanityBlocker
Version - Dashboard-V2
Planned Release Date -
New Feature
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-171 | Request History csv export (non-discord view) | Allows to download 1K entries from request history against the service licence | Done | Dashboard | |
PB-89 | Overhaul Profanity Training and False Positive Reporting System | Implement false positive reporting for request history. We no longer store false positives and profanity training data in .csv files in the dashboard filesystem. | Done | Dashboard | |
PB-51 | DeepSense class thresholds, probability tuning for clients | Interpret probabilities from the class result, and allow users to set sensitivity thresholds for how confident and strict the DeepSense filter is, that the content is bad. | Done | Dashboard, DeepSense, Filter |
Improvements
Celery, Dashboard, Discord Bot
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-186 | Instantly create licences for new bot users | Improved onboarding by creating a service licence on the spot, bypassing our background job which can take a few minutes - our analytics found users adding the bot, immediately sending content into their channel (presumably to test) and removing it when nothing happened (because licence setup in the background hadn't finished/ran yet. | In Review | Celery, Dashboard, Discord Bot |
Dashboard
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-167 | Create placeholder users, licences and transaction for guilds and link them - transfer ownership when owner logs in | This further simplifies onboarding as we create a placeholder user, licence and transaction for the guild the bot is in so users can use the free plan without additional action (no need to visit dashboard). When logging in via Discord, we check owned guilds for matching placeholder licences, create the new discord account and transfer ownership. | Done | Dashboard | |
PB-146 | Display request usage/limit like Discord view for non-discord filter option | Brings the view in-line with the Discord version. | Done | Dashboard | |
PB-129 | Dashboard filter Options for non-discord users | Add licence filter options to non-Discord dashboard. | Done | Dashboard | |
PB-109 | If Discord serverlist is empty we should try the login again | This also fixes a keyerror when serverlist is empty | Done | Dashboard | |
PB-91 | Separated OAuth and Django Authentication | . Refactored User and Password Generation Functions: We updated the MakeDiscordOTPUser and MakeDiscordOTPPass functions to ensure they are used correctly for generating random usernames and passwords when creating new user accounts. These functions are not used for authentication purposes.
2. Updated User Authentication Logic: We modified the authenticateuser function to handle the Discord OAuth login flow properly. The function now: - Checks if a user with the provided Discord email already exists in the database. - If the user exists, it logs them in without checking the password, as the OAuth process handles authentication. - If the user does not exist, it creates a new user with a random username and password. The password is not used for login purposes since Discord OAuth is used for authentication. 3. Separated OAuth and Django Authentication: We ensured that the Discord OAuth login flow is separate from the Django login flow. The OAuth process does not rely on the user's Django password for authentication, and the user's session is managed independently of the Django password. 5. Session Management: After a successful OAuth login, the user's session is created or updated in a way that is recognized by the Django application, regardless of the user's password in Django. These changes aim to provide a seamless login experience for users who choose to log in via Discord OAuth and to ensure that the application's internal authentication mechanisms (such as password changes through the Django admin) do not interfere with the OAuth login process. |
Done | Dashboard |
Dashboard, Discord Bot
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-145 | Simplify onboarding for discord |
|
Done | Dashboard, Discord Bot |
Dashboard, Filter
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-137 | Redis, celery and Kafka - Database optimisations | With the use of the Chrome extension, we have observed a significant increase in the number of requests made to the filter, often reaching a thousand within a 30-minute span.
Improvements:
|
Done | Dashboard, Filter |
DeepSense, Filter
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-131 | DeepSense class thresholds needs request history to store thresholds for request history | Since clients can set probabilities for the class result, reproducing results from false positives will require us to know the class thresholds for the request at the time it was made. Save in request history table (DB). Request history is only kept for 30 days. | Done | DeepSense, Filter |
Discord Bot, Filter
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-90 | Better align filter and bot request history recording | Improve synchronization between the filter service and the Discord bot for recording request history. Previously, both the filter service and the Discord bot were independently creating request history entries, resulting in duplicate entries. Furthermore, the fields in these entries did not match, leading to inconsistencies in the displayed data in the request history views. To address this issue, we have implemented a solution. The filter service now includes the request ID it generates, and the Discord bot reads this ID to update the corresponding record with additional information, rather than creating a new entry in the database. This ensures better alignment between the filter service and the Discord bot in recording request history, eliminating duplicate entries and ensuring consistent data in the request history views. | Done | Discord Bot, Filter |
Tasks
Dashboard
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-142 | Delete request history data after 30 days where there is no linked custom datasets | Reduce clutter by removing request history entries older than 30 days. Dataset entries created from request history stays intact for tracing/integrity - migration required if we want to delete the original request history entry linked to custom datasets, out of scope of this task. | Done | Dashboard |
Dashboard, Discord Premium, Filter, Hybrid, InsightGuard
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-81 | PoC: custom model criteria | At a high level: Implement custom model training per client. TL;DR you can add custom data per licence and we train to block that type of content. It should be noted that training requires premium as you would need to select data from discord server logs to add to to the clients' custom training data As per |
Done | Dashboard, Discord Premium, Filter, Hybrid, InsightGuard |
Subtasks
Dashboard
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-93 | False Positive Validation | *Enhancements to False Positive Reports Management*
|
Done | Dashboard | |
PB-92 | Train for duplicates in Profanity Training dataset |
|
Done | Dashboard |
Billing, Dashboard, Discord Bot
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-72 | Implement Pro PLUS and Ultimate price plans in Dashboard, inc dynamic pricing and plan selection |
|
Done | Billing, Dashboard, Discord Bot |
Bugs
Dashboard, DeepSense, Hybrid, InsightGuard
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-170 | Dashboard: address request history train and false positive conditions inconsistencies | Problems:
Corrected logic:
|
Done | Dashboard, DeepSense, Hybrid, InsightGuard |
Billing, Dashboard, Discord Premium, Filter
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-135 | maxrequests not updated upon plan change | maxrequests for a licence is not updated dynamically when a licence plan is updated. This means until the application nodes are restarted, request limits are kept at initialisation values. | Done | Billing, Dashboard, Discord Premium, Filter |
Dashboard, Filter
Priority | Key | Summary | Description | Status | Component/s |
---|---|---|---|---|---|
PB-45 | Data too long for request history (request_string, returned_string) | Migrate these columns to a larger type to allow more text for the fields to fix the error with filter service. | Done | Dashboard, Filter |
Looking for more nitty gritty details? Take a look:
Number of issues resolved: 55 (including private issues)
Looking forward to hear your feedback.
Thanks,
Team ProfanityBlocker