I know I don’t have much skin in the game here, but I also agree with this change.
Having to convert it back into the proposed format as we speak. This would definitely change the way things are called for the better. > > On Jun 22, 2023, at 10:08 AM, Najib . <aounina...@outlook.com> wrote: > > > 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 > > 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. > 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": "" > } > } > ] > >