Its really awesome that Guacamole can be called using REST API, this makes it 
incredibly powerful and flexible. However there some pain points and 
improvements possible


  1.  The connection and connection group response bodies are a  rather big 
JSON. They don’t use the array type and the keys contain the actual values of 
the connection identifier. Any JSON parser will panic trying to decipher them. 
Is there a reason why such JSON file is created for these two types whereas 
others respect proper JSON formatting? See below for what a better reponse body 
would look like.
  2.  I couldn’t find it but there seems to be no API endpoint for forcing a 
logout for the user. I know you can kill any or all sessions for a user and 
their connection permissions rendering them seeing an empty page. However if 
the IdP also blocks them from getting a new token this can never happen in the 
current situation as long as the user stays logged on. A logout API call would 
solve this.

I would like to add this is not complaining about Guac. I truly love this 
solution and all the people contributing to it its truly the silent MVP in the 
tech world and you guys are doing amazing work. But when you truly love 
something you also want it to become better.

Before;
{
    "11": {
        "name": "AD Jump Hosts - External Users",
        "identifier": "11",
        "parentIdentifier": "ROOT",
        "type": "ORGANIZATIONAL",
        "activeConnections": 0,
        "attributes": {
            "max-connections": null,
            "max-connections-per-user": "10",
            "enable-session-affinity": ""
        }
    },
    "1": {
        "name": "Emergency Access - AD Jump Hosts",
        "identifier": "1",
        "parentIdentifier": "ROOT",
        "type": "ORGANIZATIONAL",
        "activeConnections": 0,
        "attributes": {
            "max-connections": null,
            "max-connections-per-user": null,
            "enable-session-affinity": ""
        }
    }
}

After:
[
    {
        "name": "My connection Group A",
        "identifier": "11",
        "parentIdentifier": "ROOT",
        "type": "ORGANIZATIONAL",
        "activeConnections": 0,
        "attributes": {
            "max-connections": null,
            "max-connections-per-user": "10",
            "enable-session-affinity": ""
        }
    },
    {
        "name": "My connection Group B",
        "identifier": "1",
        "parentIdentifier": "ROOT",
        "type": "ORGANIZATIONAL",
        "activeConnections": 0,
        "attributes": {
            "max-connections": null,
            "max-connections-per-user": null,
            "enable-session-affinity": ""
        }
    }
]


Reply via email to