Self hosting: Admin tools - SapiensAnatis/Dawnshard GitHub Wiki

The server has a number of admin backend tools to help with development and/or administration. Any requests to these endpoints must be authenticated using the developer token as a bearer token.

GraphQL

Removed in version 4.0.106. (https://github.com/SapiensAnatis/Dawnshard/pull/1376)

The server has a GraphQL endpoint at /api/savefile/graphql which exposes admin functionality for querying/mutating player savefiles.

Example queries:

This is not an exhaustive list; the schema is auto-generated so to see all possible mutations/queries please use a GraphQL client such as Postman.

Add materials to a player's gift box

mutation {
    givePresent(viewerId: 1717, entityType: Material, entityId: 201014002, entityQuantity: 5) {
        presentId
    }
}

Get a player's tutorial_flag_list

query {
    player(viewerId: 609) {
       userData {
           tutorialFlagList 
       }
    }
}

Savefile import/export

The REST endpoints GET /api/savefile/export/{viewerId} and POST /api/savefile/import/{viewerId} allow you to manually import / export saves without having to deal with the BaaS system.

User impersonation

The server offers the ability for you to log in as another user for the purpose of troubleshooting issues that prove difficult to reproduce.

This can be achieved via the website. First, set yourself up as an admin in the database. This must be done by manually connecting with a database client such as psql or PGAdmin -- there is no tool to achieve this yet for security reasons.

BEGIN;
UPDATE "Players" SET "IsAdmin" = true WHERE "ViewerId" = <your viewer id goes here>;
COMMIT;

Then on the website you will be able to see a user impersonation window:

From here you can configure the user you want to impersonate. Obviously, only one impersonation session can be active at a time. You can clear it to log in as yourself again.