Please see the main repo for more information on the FredBoat project: https://github.com/Frederikam/FredBoat
This repository is home to FredBoat's internal database backend. At this point, this is not a public API of any sorts. Any documentation found here is aimed at FreBoat developers. Future development of the API might include additional, semi-public services.
The API is currently versioned as v0, which is a straight port of the existing database operations.
The endpoints are split up by existing entities.
The plans for v1 and future versions include:
- proper usage of http verbs (GET, DELETE, PATCH, etc)
- decoupling from the internal entity model, instead granular calls
- a success/error layer
- end-user access and authorization
The v1 Quarterdeck docs can be found here.
It includes running test queries in the browser against a live testing deployment of Quarterdeck.
If you are a developer who wants to build apps based on FredBoat's backend, please read the document
linked below to learn how to join our community, where you can request credentials to access
our testing environment.
The existing entity endpoints are:
- /blacklist
- /guildconfig
- /guilddata
- /guildmodules
- /guildperms
- /prefix
- /searchresult
Each entity endpoint supports the following operations:
- POST /fetch
- POST /merge
- POST /delete
fetch
and delete
require the id to be sent, merge
the entity itself.
Some entity endpoints have additional calls:
-
Blacklist:
- GET /loadall
-
Prefix:
- POST /getraw
-
Search result:
- POST /getmaxaged
The entity endpoints are reachable behind the version path, for example:
GET http[s]://backend.url[:port]/v0/blacklist/loadall
There is an additional endpoint, that will return the supported versions of the API:
- GET /info/api/versions
Authentication happens via Basic access authentication.
No kind of authorization is existent, you either have access, or you don't. In terms of security, treat this the same way you would treat a redis instance.
To make a build, including running tests, do:
./gradlew build
To run tests against our postgres database, Quarterdeck requires docker and docker-compose installed, as well an
unoccupied port 5433
.
When running tests repeatedly on a development machine you can shave off some time by passing a property to keep the postgres container alive between tests:
./gradlew test -DkeepPostgresContainer=true
or setting it via IntelliJ IDEA's run/debug config as a VM option: []
Keep in mind that in that case you will have to manually shut down the container to get rid of it:
docker stop quarterdecktest_db_1
docker rm quarterdecktest_db_1
If you are interested, you can read about contributing to this project here.
The code of conduct for this project can be found here.