Tirith is an fullstack application which aims to provide a web-interface to access and manage skribbltypo related data.
It is split into a NEST backend which serves as API for the frontend and the skribbltypo extension, and an Angular frontend which replaces the legacy skribbltypo website.
The website features an introduction to the extension, various tools and helpers for Palantir, an user dashboard and a restricted additional admin dashboard.
The API uses rich swagger annotations to generate a meaningful openapi spec and the frontend api client from that.
There is also a swagger interface available for the public api.
Authentication is done by providing a BEARER token in the headers; each user has an individual token for use across typo and can be obtained on the /login page on the website.
The api uses the toobeeh/Valmar service, which is an internal component of the typo ecosystem, for database access and domain logic.
To implement new features, Valmar will need to support them first as well.
The Tirith api adds a "public interface" on top of Valmar, taking care of authentication, rate-limiting and caching if needed.
The frontend angular application is split into modules:
- public for static/information/tool content
- auth which features the authentication page to login with Discord
- admin containing the admin dashboard.
- user - the user dashboard, primary for server management
Additionally, there is the API service module, which is auto-generated via openapi tools based on the backend openapi specs.
The frontend is live on the www subdomain and probably also accessible via redirect from the typo TLD https://typo.rip