Coflnet.Sky.Chat.Client 2.0.1

dotnet add package Coflnet.Sky.Chat.Client --version 2.0.1
                    
NuGet\Install-Package Coflnet.Sky.Chat.Client -Version 2.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Coflnet.Sky.Chat.Client" Version="2.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Coflnet.Sky.Chat.Client" Version="2.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Coflnet.Sky.Chat.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Coflnet.Sky.Chat.Client --version 2.0.1
                    
#r "nuget: Coflnet.Sky.Chat.Client, 2.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Coflnet.Sky.Chat.Client@2.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Coflnet.Sky.Chat.Client&version=2.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Coflnet.Sky.Chat.Client&version=2.0.1
                    
Install as a Cake Tool

SkyChat

SkyChat is the moderated public Flipper Chat service. It stores message bodies, Minecraft UUIDs, sending-client identifiers and timestamps for chat operation and moderation.

DELETE /api/chat/messages/user/{uuid} removes stored messages and their dependent reports for a canonical Minecraft UUID. It is an internal endpoint: the account-facing caller must authenticate the user, resolve the linked UUID and supply X-Chat-Deletion-Token. The service fails closed when MESSAGE_DELETION_TOKEN is missing or shorter than 32 bytes. Store the token in OpenBao; do not put a live value in source or a fleet manifest.

Mute and sanction records are intentionally separate from message deletion. They may be retained only while needed for moderation, abuse prevention, legal requirements or related claims.

Sanction Message and Reason free text becomes eligible for automatic redaction at 96 hours and the running service sweeps every ten minutes. Set MODERATION_QUOTE_RETENTION_HOURS to a positive number below 96 to shorten that window; missing, invalid and larger values resolve to 96. The normalized rule remains for the existing 400-day repeat-sanction calculation. Discord mute notifications contain the normalized rule and sanction metadata, not either free-text field. Do not put unrelated details or message content in other sanction fields.

Once an expired sanction reaches the end of that 400-day window, the same ten-minute sweep deletes its standalone database row. Active and permanent sanctions are not eligible because their expiry is later than the cutoff. SkyChat currently has no explicit legal-hold mechanism; add a scoped, record-level hold before using this table for held evidence rather than retaining every sanction indefinitely or putting evidence in logs/traces.

Chat webhook forwarding requires a database client with an HTTPS webhook URL and a non-empty authentication value. Authentication is sent only in the Authorization header. Before configuring a webhook, record the recipient, purpose, data fields, location, access controls, deletion/retention behavior and contract or internal role.

POST /api/chat/internal/client additionally requires X-Chat-Admin-Token to match CLIENT_ADMIN_TOKEN. Missing secrets and values shorter than 32 bytes fail closed. Store the secret in OpenBao and never in source or a fleet manifest.

Deploying

This project should be deployed within a container.

Configuration

See appsettings.json

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.1 143 10/20/2026
2.0.0 104 10/20/2026
1.0.1 4,276 10/31/2024
1.0.0 274 10/31/2024
0.2.1 2,559 4/29/2024
0.2.0 1,300 11/6/2023
0.1.1 384 10/14/2023
0.1.0 2,075 9/22/2022
0.0.1 1,696 2/25/2022

Minor update