2e8107ddbddiscovered net.Pipe for testing tcp connnections which makes the previously developed ChannelReadWriter and InmemoryConnection obsolete.Erik Brakkee2024-08-20 11:28:09 +0200
d3d4c7242arestructuring test code by introducing a testsupport package Making it easy 6to start a porof server in tests.Erik Brakkee2024-08-20 09:01:46 +0200
3059a16559table testing with go routines only really works well when standard assertions are ued. With suite.Required() there are issues in getting the test results correct.Erik Brakkee2024-08-20 00:52:57 +0200
3f3635b056a lot of progress in setting up tests for the communication. Wrote ChannelReadWriter that simulates a connection inmemory. This is used by the agentserver test for testing the initialization. The first test is already working.Erik Brakkee2024-08-19 22:31:02 +0200
974b4b9ad0more symmetry. SetupHeartBeat froma agent to server now done in separate call.Erik Brakkee2024-08-19 19:46:39 +0200
9f90f9a2b8now using a testsuite for the throttler tests.Erik Brakkee2024-08-19 19:42:51 +0200
6abcf0a7afgo conventions: context should be first argument.Erik Brakkee2024-08-19 19:22:44 +0200
c1ade0408dsome moving around of files in the throttling package to make the structure more clear.Erik Brakkee2024-08-18 20:56:22 +0200
4444d6bbcdinitial state is now sent again when the websocket connection is established. Also throttling based on user input. When browser sends multiple messages per second the user will still only get one notification per second at most.Erik Brakkee2024-08-18 11:44:16 +0200
75606dfe2econsistent casing in the titles (all lower case)Erik Brakkee2024-08-18 01:19:46 +0200
00dd0d17c6hostkey is now sent from the server to the agent so that at a later stage we can make the hostkey conrfigurable at the server level instead of using a fixed hardcoded key.Erik Brakkee2024-08-17 21:35:29 +0200
3408e2893amoved all ui stuff to the ui package. The structure of converge server is now much more clear in the package // structure below pkg/server.Erik Brakkee2024-08-17 10:37:20 +0200
3e0828f1feremoved unused field LocalShells of UsageInputs.Erik Brakkee2024-08-17 10:14:22 +0200
4fbe5c7907introduced DownloadCommand and Shell types to improve type safetyErik Brakkee2024-08-17 10:12:09 +0200
6c6d396393more generalization of how time is handled in the tests. Asynchronous variant that is easier to use and multi-thread safe.Erik Brakkee2024-08-16 21:08:44 +0200
3574b64842Server side sorting for the websessions page. No longer using LinkedMap as a result.Erik Brakkee2024-08-16 00:25:17 +0200
1de3c90146Now using a map of ClientId to clientConnection which is more efficient for deleting clients.Erik Brakkee2024-08-15 22:16:20 +0200
9f12b7bea4Separated out the metadata about the agents and clients from the agentConnection and clientConnection objects. Now, the state does not need to be copied anymore when sending notifications. The matchmaker uses copy on write every time a new agent or client connects or disconnects.Erik Brakkee2024-08-15 22:08:24 +0200
c86ea894d1Now using a more efficient data structure in the prometheus code for saving the last state to improve efficiency and minimize copying even more.Erik Brakkee2024-08-14 23:38:45 +0200
ae59905329Eliminating copying of objects in the prometheus integration.Erik Brakkee2024-08-14 20:42:14 +0200
2916184661Now optionally enabling thye pprof endpoint with the --pprof flag.Erik Brakkee2024-08-14 20:41:49 +0200
eb145b2374a bit more safety by copying the state when passing it to the websessions and prometheus.Erik Brakkee2024-08-14 11:36:36 +0200
6bb75728e7eliminated unused fields in State Now preserving the lastState in prometheus.go in a State object instead of in multiple values.Erik Brakkee2024-08-14 11:26:31 +0200
2d426f8db3using unbuffered channels everywhere now. Only change required was to initialize prometeus and the websessions before the matchmaker. This is because at startup the matchmaker wants to write a notification when it starts up but then prometheus and the websessions would not be there to read them.Erik Brakkee2024-08-13 21:33:29 +0200
567d9a4031now a single websocket is opened from the webui to converge. The browser sends a hello message anytime the user switches to the sessions page, upon which the server sends the current state back. THis also improves the timeout handling of broken connecions.Erik Brakkee2024-08-12 23:44:07 +0200
1bf992d92aremoved the init method in prometheuis.goErik Brakkee2024-08-12 22:06:20 +0200
4f06fd71e0renamed modukle name so that pkgsite will work.Erik Brakkee2024-08-12 21:31:15 +0200
4aa67663canow also ignoring the .git directory when building.Erik Brakkee2024-08-12 21:03:16 +0200
3d5735a050now upgraded to go 1.22.5 and mofified coker file to use newer alpine version with GOTOOLCHAIN=auto setting to automatically download newer versions. Also added a .dockerignore file to speed up building images.Erik Brakkee2024-08-12 20:57:08 +0200
f823d4b67bfixed issues with the prometheus code with subtle errors due to the use of pointers. Now using simple value objects.Erik Brakkee2024-08-12 18:48:28 +0200
813d398ea4message now indicates what to do when using ssh and when using sftpErik Brakkee2024-08-12 16:18:27 +0200
061fabfd07Addes agent address and client address to the client and agent info.Erik Brakkee2024-08-12 15:23:07 +0200
ad72c41347ClientConnection no longer has public fields.Erik Brakkee2024-08-11 19:01:39 +0200
db1d908d06a lot of work to get prometheus monitoring better. Now the duration is updated every second to get more accurate readings. Also, the time series are now cleaned up when they no longer exists. Previously, all time series were deleted and then everything was setup from scratch.Erik Brakkee2024-08-11 17:49:52 +0200
1c92fcb03emuch more clean handling of concurrency in the converge server by separating the administration from the matchmaking by putting admin in a separate package.Erik Brakkee2024-08-11 16:17:11 +0200
b8715bcbe8eliminated the stop times. Not a good idea to have this metric because it starts becoming relevant after an agent has stopped and so it has basically unlimited lifetime which is not good.Erik Brakkee2024-08-10 20:13:58 +0200
1be96d8742Added agent_start_time, agent_stop_time, client_start_time, and client_stop_time metrics.Erik Brakkee2024-08-10 20:00:40 +0200
c2ec1ce117Added agent uid to the client info so that client and agent can be correlated in prometheus/grafana.Erik Brakkee2024-08-10 18:57:57 +0200
21ffd29ae4Now showing information superscripts to hint that there are tooltipos available.Erik Brakkee2024-08-10 17:49:41 +0200
c4bc07b0e0nov showing a message that the rendez-vous id is generated.Erik Brakkee2024-08-10 17:49:04 +0200
82a21ad4f6One additional logging so that the user's environment info is also known.Erik Brakkee2024-08-10 17:28:25 +0200
5b7d51f210Code is more robust and should now never try to send a notification to a web client that can block, using a context with cancellation.Erik Brakkee2024-08-10 17:27:50 +0200
0c18689afdGeneralized persistence of forms in separate js file. Some minor improvements to the usage instructions.Erik Brakkee2024-08-10 16:26:49 +0200
4a3448dcc3wsproxy now giving a more friendly error message when there is a protocol mismatch describing what the user should do.Erik Brakkee2024-08-10 15:07:05 +0200
128be0ebb5Added client environment info to the prometheus metrics as labels.Erik Brakkee2024-08-10 14:55:17 +0200
2fe2be0b9awith the previous fix connection loss was not detected anymore, now using the ping method based on writing data which is more robust but may take a bit longer for connection loss to be detected.Erik Brakkee2024-08-10 13:23:59 +0200
29ddb6ce00the read call to check for connectivity was doing more harm than good. Removed it. In the end there were situations where the read was blocking indefinitely, finally leading to a deadlock situation.Erik Brakkee2024-08-10 13:01:40 +0200
8b4bcde9c9prometheus scraping endpoint now on a separate port
Erik Brakkee
2024-08-08 20:31:02 +0200
b4b962d859remove some console logs in the javascript prometheus now listening on separate port fixed powershell command for setting up authorized keys.
Erik Brakkee
2024-08-08 20:28:15 +0200
85841bcb0fread of 0 bytes to detect connection loss.Erik Brakkee2024-08-08 00:09:35 +0200
d134f1e944better messages when the user modifies the .authorized_keys file from within the session.Erik Brakkee2024-08-06 22:28:34 +0200
d109c72f66removed password based access authorized keys can now be modified within the session. keep last set of keys when no valid keys were found and keys are changed during the session .
Erik Brakkee
2024-08-06 22:03:36 +0200
8d554a5ce1getting the bootstrap icons (not checking them in). Split up instructions for working with agents.Erik Brakkee2024-08-05 23:19:41 +0200
1b1f8f2167A lot of work in getting cut and paste from the UI to work properly.Erik Brakkee2024-08-05 22:51:49 +0200
51be117200Simple validation of the id and the authorized keys.Erik Brakkee2024-08-04 23:31:12 +0200
2cf73feef5More clean handling of the contextpath. Now using long option names for the options of converge to be consistent with the other components.Erik Brakkee2024-08-04 22:17:51 +0200
75e1bd77baAlternative contextpath is now supported. This will simplify hosting in cases where you have no control over DNS but only over one domain.Erik Brakkee2024-08-03 23:10:57 +0200
9456665a6fPreparation for alternative context path. The contextpath parameter in converge.go is temporary and should be removed later. What is needed is autodetectio of the context path for the usage page and passing on the context for rendering.Erik Brakkee2024-08-03 22:40:26 +0200