magefree / magefree/mage

Server must have web api for health, stats and other data checking

Open
#12,016 4 comments 1 reaction 1 assignee Claimed by @JayDi85 View on GitHub
enhancement server
Dominant language
Java
Stars
2.4k
Forks
940
Avg merge
2d 12h
Merged PRs (30d)
160

Description

General topic about public API and related ideas.

Server must have public web api with basic features like:
* server info and health status;
* active tables/games/users stats;
* active tables list (id, type, name, settings info, etc);
* user stats and ratings;
* other;

Api usage examples:
- web pages and bots with server status check (current workaround require telnet and show only online status, but not a real work status);
- docker health checking and auto-restarts (current auto-restart works for out of memory errors, but not for freeze/broken server);
- stats collection and monitoring for server admins (online, games amount, etc);
- discord bots and shareable game/tourney links:
* “copy and paste in app window” easy to implement;
* “open with xmage” require some research and native os implementation;

Tech details:
- rest endpoints with http/https (for https need some research for compatibility, additional libraries and certificates — but it’s not a critical feature);
- works on some configurable port;
- enabled by default, server config must be able to disable that feature and setup endpoint port;
- response in json format;
- standard rest/web server library with routing and auth/security support (for perspective api like admin tools or online chats), easy to use (like spring with controller annotations, but not a spring);
- perspective: socket.io support for realtime updates and game api;
- perspective: oauth support for cross servers authorization and stats/rating;

First steps:
- [ ] find good and active rest java library/server, implement health endpoint;

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.