Implement Telodendria admin API
This commit is contained in:
@@ -10,8 +10,10 @@ custom = Blueprint("custom", __name__)
|
||||
|
||||
from .conduwuit import conduwuit
|
||||
from .dendrite import dendrite
|
||||
from .telodendria import telo
|
||||
from .synapse import synapse
|
||||
|
||||
custom.register_blueprint(conduwuit)
|
||||
custom.register_blueprint(dendrite)
|
||||
custom.register_blueprint(synapse)
|
||||
custom.register_blueprint(telo)
|
||||
|
||||
86
vona/custom/telodendria.py
Normal file
86
vona/custom/telodendria.py
Normal file
@@ -0,0 +1,86 @@
|
||||
from flask import Blueprint, request, jsonify
|
||||
from vona.globals import version
|
||||
import vona.config as config
|
||||
|
||||
telo = Blueprint("telodendria", __name__)
|
||||
|
||||
# The telodendria admin API as specified by
|
||||
# https://git.telodendria.org/Telodendria/Telodendria/src/branch/master/docs/user/admin/README.md
|
||||
|
||||
|
||||
@telo.route("/_telodendria/admin/v1/restart", methods=["POST"])
|
||||
@telo.route("/_telodendria/admin/v1/shutdown", methods=["POST"])
|
||||
async def process_management(**kwargs):
|
||||
return jsonify({})
|
||||
|
||||
|
||||
|
||||
@telo.route("/_telodendria/admin/v1/privileges/<lp>", methods=["GET", "PUT", "POST", "DELETE"])
|
||||
@telo.route("/_telodendria/admin/v1/privileges/", methods=["GET", "POST"])
|
||||
async def privileges(lp=None):
|
||||
return jsonify({
|
||||
"privileges": [
|
||||
"GRANT_PRIVILEGES",
|
||||
"PROC_CONTROL",
|
||||
"ISSUE_TOKENS",
|
||||
"DEACTIVATE",
|
||||
"CONFIG",
|
||||
"ALIAS",
|
||||
"ALL"
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
@telo.route("/_telodendria/admin/v1/config", methods=["GET", "PUT", "POST"])
|
||||
async def configuration():
|
||||
if request.method == "GET":
|
||||
return jsonify({
|
||||
"listen": [
|
||||
{
|
||||
"tls": None,
|
||||
"port": config.port,
|
||||
"threads": 1,
|
||||
"maxConnections": 32
|
||||
}
|
||||
],
|
||||
"serverName": config.server_name,
|
||||
"pid": "/dev/null",
|
||||
"baseUrl": f"https://{config.server_name}/",
|
||||
"identityServer": f"https://{config.server_name}/",
|
||||
"runAs": None,
|
||||
"federation": True,
|
||||
"registration": config.users_can_register,
|
||||
"log": {
|
||||
"output": "stdout",
|
||||
"level": "message",
|
||||
"timestampFormat": "default",
|
||||
"color": True
|
||||
},
|
||||
"maxCache": config.the_funny_number
|
||||
})
|
||||
|
||||
return jsonify({"restart_required": True})
|
||||
|
||||
|
||||
@telo.route("/_telodendria/admin/v1/stats")
|
||||
async def stats():
|
||||
return jsonify({
|
||||
"memory_allocated": config.the_funny_number,
|
||||
"version": version
|
||||
})
|
||||
|
||||
|
||||
@telo.route("/_telodendria/admin/v1/tokens/<name>", methods=["GET", "DELETE"])
|
||||
@telo.route("/_telodendria/admin/v1/tokens", methods=["GET", "POST"])
|
||||
async def tokens(name=None):
|
||||
if request.method == "DELETE":
|
||||
return jsonify({})
|
||||
|
||||
return jsonify({
|
||||
"name": "vona",
|
||||
"created_by": "vona",
|
||||
"created_on": config.the_funny_number,
|
||||
"expires_on": config.the_funny_number,
|
||||
"used": config.the_funny_number,
|
||||
"uses": config.the_funny_number
|
||||
})
|
||||
Reference in New Issue
Block a user