Releases: zekroTJA/shinpuru
1.40.3
Note
This is a hotfix patch. If you want to see the changelog for release 1.40.0, please look here.
Bug Fixes and Minor Changes
- The tag command has been improved to make use of parameter autocompletion. [#439]
- A bug has been fixed which caused shinpuru to crash on fetching the Twitch API for Twitch notifications. [#445]
- Added better state caching to the voice log listener to try to fix issue #440. This might need more investigation though.
- Fixed permission check on routes which do no contain a
guild
URL path parameter. This fixes an issue where the presence page was not able to load in the web frontend because of the failing request. - Some German translations have been improved thanks to the contributions made by @luxtracon.
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.40.3
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.40.3
1.40.2
Note
This is a hotfix patch. If you want to see the changelog for release 1.40.0, please look here.
Bug Fixes and Minor Changes
- Discriminators have been removed from the command UI as well as from the web UI in order of Discord's usernam migration.
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.40.2
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.40.2
1.40.1
Note
This is a hotfix patch. If you want to see the changelog for release 1.40.0, please look here.
Bug Fixes
- Fixed a bug which prevented login links from the
/login
command from logging in properly when the web SPA has been loaded. [#431]
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.40.1
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.40.1
1.40.0
New Features and Changes
Mod Notifications [#423]
There is a new command /modnot
which can be used to define a Mod Notification channel.
Of course, you can also define the channel in the web interface on the General Guild Settings page.
This channel is used to - as the name says - send notification important for the members moderating your guild. Currently, this only contains notifications when someone creates an unban request or an unban request has been processed. But other notifications will find their place here in the future like raid alerts or spam alerts.
German Translation
Thanks to the work of @voxain, the german translation of the web interface has improved in consistency, conciseness and understandability.
Bug Fixes
- Ban reports can now be created when the executing user has only the
sp.guild.mod.ban
permission. [#426] - Fixed the redirection to the dashboard after logging in to the web interface using the DM code.
- Fixed a bug where the unban request page (
/unbanme
) would not load and error when an unban request is still open on a guild where shinpuru has been removed from. [#427] - Bans executed with shinpuru will no more create post ban prompts. [#424]
- Removed the gradient in the feature marquee on the start page because of incompatibilities across browsers. [#421]
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.40.0
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.40.0
1.39.1
Note
This is a hotfix patch. If you want to see the changelog for release 1.39.0, please look here.
Bug Fixes
- A bug has been fixed which resulted in a faulty permission check on revoking reports in the web interface. [#418]
- When the report message can not be sent via DM to the target user, the error will no more be reported. Also, when the report fails to be sent in the mod log channel, the reported error is now more concise. [#419]
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.39.1
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.39.1
1.39.0
New Web Interface
This release finally brings a huge update to the web interface of shinpuru. Because the old web interface had no clear style concept while also growing with each new feature, it got more and more cluttered, unstructured, obscure and simply uglier. So I decided almost a year ago to rewrite the whole web interface, which has now come to the final stage. There is still a lot to do and - especially translation-wise - a lot missing, but the feature set is now 100% ported and so I decided to finally port it over.
Here you can see a very small demo of the new web interface.
firefox_GCcqUWkYER.mp4
The whole web interface is now also more optimized for mobile usage!
Screen_Recording_20230315_201935_Firefox.mp4
And because the web app is now a PWA as well, you can even install it on your device when you are using a chromium browser!
Screen_Recording_20230315_202339_Niagara_Launcher.mp4
But feel free to discover the new web interface on your own. It is still far from perfect, so if you spot an issue or have an idea for improvement, feel free to create an issue!
Also, there are still a lot of german translations missing. So if you want to contribute some translations, feel free to do so. In the Contributing document, you can find some useful information on how to work with the language files.
Unban Request Improvements
The unban request received a small "rework". First of all, special reports are created in the mod log which display if an unban request has been accepted or rejected and who has processed the unban request.
Additionally, people will not be able to re-request an unban for 14 days after being rejected. After that period has passed, the banned user can try another unban request.
Also, a bug has been fixed where people were able to request unbans for guilds where they were already unbanned from.
New Logger
To improve the logs of shinpuru both in visibility as well as in flexibility, I've created my own logging package called rogu. It allows colorful, human readable, taggable, strctured logging with a simple API to append multiple output writers.
An additional output writer has been written for pushing logs to Grafana Loki which allows central log aggregation for multiple instances of shinpuru. Simply add the following config to your logging config to enable loki log pushing.
# Logging preferences
logging:
# Set the log level of the logger
# Log levels can be found here:
# https://github.com/zekroTJA/rogu/blob/main/level/level.go
loglevel: 4
# Specify Grafana Loki configuration
# for log aggregation
loki:
# Whether to enable sending logs to loki or not
enabled: true
# The address of the loki instance
address: "https://loki.example.com"
# The basic auth user name (leave empty if not used)
username: "username"
# The basic auth password (leave empty if not used)
password: "2374n8er7nt8034675782345"
# Additional labels set to all log entries.
labels:
# Some examples ...
app: "shinpuru"
instance: "main"
The provided example Grafana Dashboard shows how aggregated logs can be visualized in Grafana.
PushCode Login
Because there is a potential risk that the pushcode login system could be abused by attackers to phish login sessions, a confirmation promt has been added with a warning that you should never enter a login code to shinpuru's DMs which you have received from someone else (see issue #412).
API Changes
- New API Endpoint
GET /allpermissions
which returns a list of all available permissions. - New API Endpoint
GET /healthcheck
which can be requested to get the health state of shinpuru services. - New API Endpoint
GET /guilds/{id}/starboard/count
to retrieve the total count of starboard entries for a given guild. - New API Endpoint
GET /guilds/{id}/unbanrequests/count
to retrieve the total count of unbanrequests for a given guild. - Update API Endpoint
POST /guilds/{id}/permissions
which now returns the resulting updated permissions map.
Docker Image
The docker image now includes a healthcheck which shows and monitors the state of the shinpuru instance using the GET /healthcheck
API endpoint.
Other Stuff
- The state cache duration for users and members has now be increased from 30 days to 90 days for better performance.
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.39.0
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.39.0
1.38.0
Changes
Most of the slash commands are now empehmeral. That means, that only you will see the response and call of the command in the chat.
Therefore, also the /login
command has been updated so that the response is directly sent to the chat. That is possible because only the sender can see the response. That makes the command available also to people who have disabled DMs from guild members.
Bug Fixes
- Fixed a bug where the guild API token is reset when saving the guild API settings without a new token.
- Fixed misrepresentation of absolute sub command permissions in the
permissions/allowed
endpoint. [#398] - Fixed some typos (and added some more).
Beta Web Interface
- Added verification route.
- Guild Settings: Added guild data removal route.
- Guild Settings: Added guild API route.
- Added some more (english) explanation texts.
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.38.0
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.38.0
1.37.1
Bug Fixes
- Fixed the endlessly loading account verification captcha. [#392]
- Fixed a crash when shinpuru has no access on the guild audit log after detecting a ban (postban system).
- Fixed a crash when shinpuru has no access on the guild mod log channel after detecting a ban (postban system).
- Fixed a bug that not postban message is sent when no reason is specified to the ban.
Beta Web Interface
- Guild Settings: Guild Log implemented
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.37.1
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.37.1
1.37.0
Role Selection [#363]
Added a new command /roleselect
which you can use to create a role selection message. Alternatively, you can also attach role selection to a message which has been sent by shinpuru (for example using /say
).
Discord_Jg0ZLo3WNM.mp4
Discord OAuth Handling
The login to shinpuru using the Discord OAuth2 flow is now taking advantage of passing a state
parameter to the authentication redirect. This state is a JWT signed with a token randomly generated on startup. This secures the login-process against any type of cross-site request forgery attacks.
Also, this allows to pass additional information through the login process like redirection targets. Therefore, when you log in to the beta web interface, you are now also redirected back to the beta interface after the login instead of being redirected to the main interface.
Bug Fixes
- When you go to
shnp.de/beta
, you will now be redirected to the login page if not logged in. [#388] - Fixed a typo in the anti-raid notification message. [#389]
- Fixed command manual generation. [#391]
Beta Web Interface
- Guild Settings: Verification Route implemented
- Guild Settings: Code Execution Route implemented
- Guild Settings: Karma Route implemented
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.37.0
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.37.0
1.36.0
Message Components [#320]
With release v0.17.0 and v0.17.1, message components have now been added to shinpuru.
The acceptmsg
package now uses message components to accept and decline the message.
Step by step, more commands and services will be adapted to message components and modals. One of the first commands using message components and modals is the /backup
slash command.
"Postban" System [#383]
A new "postban" system has been implemented which detects when a user has been banned manually (directly using the Discord utilities) and sends a notice message into the mod log channel afterwards. Then, you are able to import the ban into the shinpuru report system. You are also able to edit the reason specified in the ban and also add an attachment via an URL.
Minor Changes
- The mime fix utility has now been removed because the issue has been fixed in the go language.
- Add code execution guild settings to the new beta web interface.
Code Base
The Makefile
in this repository - which is primarily there to simplify common prep, build, test and deploy tasks - will be swaped out in favor of Taskfile
which has a lot of advantages over make - especially in this environment.
If you don't have taskfile installed, please head to taskfile.dev/installation to find out how to install taskfile on your system.
Currently, the Makefile
will be kept in the repository for compatibility reasons but will be removed in upcoming updates.
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.36.0
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.36.0