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.
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.
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.
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\"}"
}
}
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.
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