Files
netneutrality/docs
anthorob a8b353ea73 Add OpenAPI-based API documentation and new endpoints
Integrated OpenAPI and Swagger plugins for comprehensive API documentation. Added new routes, including settings management (`/settings/*`), guild metadata endpoints (`/guilds/*`), and detailed action status handling. Updated database schema to support guild metadata persistence, revised command subcommand handling for better modularity, and enhanced API key-based authentication for all routes.
2026-09-29 10:32:28 -04:00
..
2026-09-10 08:32:16 -04:00

Net Neutrality — Technical Documentation

This directory contains detailed technical documentation for the Net Neutrality Discord bot (me.bobert:netneutrality, version 3.0.0).

It is intended for developers working on the codebase. It documents every major system and subsystem, how they fit together, and the end-to-end flows that tie them.

Table of contents

Document Subsystem
architecture.md High-level architecture, startup/shutdown lifecycle, tech stack
events.md Event handling & routing (EventsHandler)
contexts.md Contexts — the abstraction over Discord events
commands.md Commands — message & slash commands, dispatch, options
tasks.md Tasks — button/emoji/modal/step/built-in/persistable/scheduled tasks
persistence.md Database — Hibernate/JPA, Flyway, entities, repositories, services
music.md Music — Lavalink node & client, queue, event dispatch
web-api.md HTTP Web API — internal control & introspection server
threading.md Threading & scheduling infrastructure
utilities-and-bootstrap.md Utilities, configuration, logging, exceptions

How to read this documentation

Start with architecture.md for the big picture and the startup sequence. Then read events.md and contexts.md, because almost everything else is triggered through a Context produced by the EventsHandler. From there, the two primary execution paths are commands.md and tasks.md.

Conventions

  • Class names are given fully qualified on first mention, then by simple name.
  • Database entity classes are prefixed with O (e.g. OGuild), and are documented in persistence.md.
  • Environment variables / configuration keys use the NETNEUTRALITY_* and MYSQL_* prefixes and are documented in utilities-and-bootstrap.md.