Goval Ident

This is an unofficial protocol

This protocol isn't a service on it's own, but is a modification to how gcsfiles and chat are implemented.

Changes to chat

Chat is changed based on the service name when opened. If a client opens a chat service with the name "goval-ident" the server will open a special chat service that lets the client talk to the server. The chat messages sent/received must be valid JSON. Currently the only thing that can be done with this link is request server info.

Requesting server info

For a client to request information about the server it should send the following message:

{
    "chatMessage": {
        "username": "[username goes here]",
        "text": "{\"type\":\"serverInfo\",\"ref\": \"2fizlpu92ng\"}"
    }
}

The server would then send back

{
    "chatMessage": {
        "username": "goval",
        "text": "{\"data\": {...},\"ref\": \"2fizlpu92ng\"}"
    }
}

Where the data in the {...} conforms to the JSON Schema.

Determining server support

If the server supports goval-ident over chat it'll send the following message when the channel is created:

{
    "chatMessage": {
        "username": "goval",
        "text": "{\"type\": \"notification\"}"
    }
}

Changes to gcsfiles

GCSFiles is changed to have a special non existent file give server info when read. If the client requests to read .config/goval/info, the server will send back json contents conforming to the JSON Schema.

Determining server support

If the read errors or if the contents don't conform to the JSON Schema then the server does not support goval-ident over gcsfiles