dmg 8731548d5a
Release / release (push) Successful in 1m58s
CI / build (push) Successful in 1m11s
feat(sentinel): persist alerts as CloudEvent JSONL
Merge PR #6 for Kaneo SM-349 after exact-candidate checks 3833 and 3834 passed.
2026-10-29 21:57:14 +00:00

Purpur Sentinel

Passive, explainable movement-pattern observation for Purpur servers.

Sentinel gives permitted operators bounded evidence of suspicious on-foot speed, unauthorized unsupported flight, unsupported boat travel, source-less elytra propulsion, and statistically implausible elytra wear. Elytra analysis correlates server-recognized gliding, equipped-item identity, observed rocket use, external propulsion, altitude conversion, wear opportunities, Unbreaking, Mending/XP repair, and unbreakable items; high speed alone is never evidence. Sentinel does not cancel movement, alter vehicles or items, consume rockets, change flight permissions, or punish players.

Each generated alert is also appended asynchronously as a CloudEvents 1.0 JSON object to plugins/PurpurSentinel/events/YYYY-MM-DD.jsonl. Dates and timestamps use UTC, files retain 30 UTC days, and durable events identify the subject by UUID without display names, coordinates, raw trajectories, inventory contents, IP addresses, or permission state. Queue or disk failures never interrupt detection or gameplay.

Development

Requires Java 25 and Node.js 20.

./gradlew clean check jar

The output JAR is written to build/libs/. Production installation and deployment are separately gated operations.

S
Description
Passive, explainable movement-pattern observation for Purpur
Readme
330 KiB
0 Stars 1 Watchers 0 Forks
v1.5.0
Latest
2026-10-29 23:02:43 +00:00
Languages
Java 89.8%
TypeScript 10%
Shell 0.2%