Commit Graph

  • 1ca7209588 tested connections through the session. Erik Brakkee 2024-08-20 12:16:02 +0200
  • b65c824ca1 now using testsuite also for linkedmap Erik Brakkee 2024-08-20 12:00:23 +0200
  • bf837d31b2 basic gobchannel tests now done. Erik Brakkee 2024-08-20 11:47:36 +0200
  • 2e8107ddbd discovered net.Pipe for testing tcp connnections which makes the previously developed ChannelReadWriter and InmemoryConnection obsolete. Erik Brakkee 2024-08-20 11:28:09 +0200
  • 3d0f343098 fix for non-deterministic test. Erik Brakkee 2024-08-20 09:46:04 +0200
  • 2153d23e2e channelreadwriter test done. Erik Brakkee 2024-08-20 09:39:22 +0200
  • d3d4c7242a restructuring test code by introducing a testsupport package Making it easy 6to start a porof server in tests. Erik Brakkee 2024-08-20 09:01:46 +0200
  • 276c2c0fa7 some more tests added. Erik Brakkee 2024-08-20 01:02:44 +0200
  • 3059a16559 table 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 Brakkee 2024-08-20 00:52:57 +0200
  • 3f3635b056 a 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 Brakkee 2024-08-19 22:31:02 +0200
  • 3776b86946 typo Erik Brakkee 2024-08-19 19:50:36 +0200
  • 974b4b9ad0 more symmetry. SetupHeartBeat froma agent to server now done in separate call. Erik Brakkee 2024-08-19 19:46:39 +0200
  • 9f90f9a2b8 now using a testsuite for the throttler tests. Erik Brakkee 2024-08-19 19:42:51 +0200
  • 6abcf0a7af go conventions: context should be first argument. Erik Brakkee 2024-08-19 19:22:44 +0200
  • c1ade0408d some moving around of files in the throttling package to make the structure more clear. Erik Brakkee 2024-08-18 20:56:22 +0200
  • 4444d6bbcd initial 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 Brakkee 2024-08-18 11:44:16 +0200
  • 75606dfe2e consistent casing in the titles (all lower case) Erik Brakkee 2024-08-18 01:19:46 +0200
  • 00dd0d17c6 hostkey 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 Brakkee 2024-08-17 21:35:29 +0200
  • 427ebb2c78 more docs. Erik Brakkee 2024-08-17 10:41:22 +0200
  • 3408e2893a moved 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 Brakkee 2024-08-17 10:37:20 +0200
  • c66be7775f renamed templates package to ui Erik Brakkee 2024-08-17 10:22:03 +0200
  • 49912e02d0 moved prometheus to its own package. Erik Brakkee 2024-08-17 10:17:47 +0200
  • 3e0828f1fe removed unused field LocalShells of UsageInputs. Erik Brakkee 2024-08-17 10:14:22 +0200
  • 4fbe5c7907 introduced DownloadCommand and Shell types to improve type safety Erik Brakkee 2024-08-17 10:12:09 +0200
  • 6c6d396393 more generalization of how time is handled in the tests. Asynchronous variant that is easier to use and multi-thread safe. Erik Brakkee 2024-08-16 21:08:44 +0200
  • 1bf559bb65 moved the throttler to its own package. Erik Brakkee 2024-08-16 19:29:50 +0200
  • 3cd2ccf25c throttling implemented for events. Erik Brakkee 2024-08-16 14:59:18 +0200
  • c13500812a about page vvarious fixes, typo's etc. Erik Brakkee 2024-08-16 08:33:32 +0200
  • 4d4a72a062 formatting Erik Brakkee 2024-08-16 00:41:04 +0200
  • 17cac3a1a2 typo Erik Brakkee 2024-08-16 00:30:28 +0200
  • 3675f0b8c4 Small comment updates. Erik Brakkee 2024-08-16 00:27:42 +0200
  • 3574b64842 Server side sorting for the websessions page. No longer using LinkedMap as a result. Erik Brakkee 2024-08-16 00:25:17 +0200
  • 1de3c90146 Now using a map of ClientId to clientConnection which is more efficient for deleting clients. Erik Brakkee 2024-08-15 22:16:20 +0200
  • 9f12b7bea4 Separated 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 Brakkee 2024-08-15 22:08:24 +0200
  • 96c62ab925 concurrency for the expiry time Erik Brakkee 2024-08-15 21:25:30 +0200
  • fc7977f7bb now using maps of Guid to Agent/Client in the state, working towards the definitive solution. Erik Brakkee 2024-08-15 21:04:31 +0200
  • 556315906d introdcution of typesafe ids. Erik Brakkee 2024-08-15 18:32:59 +0200
  • c86ea894d1 Now using a more efficient data structure in the prometheus code for saving the last state to improve efficiency and minimize copying even more. Erik Brakkee 2024-08-14 23:38:45 +0200
  • ae59905329 Eliminating copying of objects in the prometheus integration. Erik Brakkee 2024-08-14 20:42:14 +0200
  • 2916184661 Now optionally enabling thye pprof endpoint with the --pprof flag. Erik Brakkee 2024-08-14 20:41:49 +0200
  • eb145b2374 a bit more safety by copying the state when passing it to the websessions and prometheus. Erik Brakkee 2024-08-14 11:36:36 +0200
  • 6bb75728e7 eliminated unused fields in State Now preserving the lastState in prometheus.go in a State object instead of in multiple values. Erik Brakkee 2024-08-14 11:26:31 +0200
  • 6d48146e6b updated to go version 1.23 Erik Brakkee 2024-08-14 10:29:05 +0200
  • 77c27b395b removed obsolete comments. Erik Brakkee 2024-08-14 09:37:33 +0200
  • 2d426f8db3 using 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 Brakkee 2024-08-13 21:33:29 +0200
  • d3c9de628d fixed typos Erik Brakkee 2024-08-13 19:21:19 +0200
  • 3e4ad7dff6 timezone handling now moved to a separate script that does not leak any symbols. Erik Brakkee 2024-08-13 11:33:15 +0200
  • f83d7b2c83 added a utility function for logging request data. Erik Brakkee 2024-08-13 11:32:51 +0200
  • 0ac1b0e1e4 persistent forms now only leaks ther required event handler and not the functions it uses internally. Erik Brakkee 2024-08-13 11:32:26 +0200
  • 30a49217e4 Much imporoved websocket connection closure will now detect closing of websockets immediately. Erik Brakkee 2024-08-13 10:57:05 +0200
  • b1dbf9e8aa updated the about page Erik Brakkee 2024-08-13 00:50:54 +0200
  • 567d9a4031 now 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 Brakkee 2024-08-12 23:44:07 +0200
  • 1bf992d92a removed the init method in prometheuis.go Erik Brakkee 2024-08-12 22:06:20 +0200
  • a06d8b0ca6 renamed converge package to matchmaker. Erik Brakkee 2024-08-12 21:53:26 +0200
  • 4f06fd71e0 renamed modukle name so that pkgsite will work. Erik Brakkee 2024-08-12 21:31:15 +0200
  • 4aa67663ca now also ignoring the .git directory when building. Erik Brakkee 2024-08-12 21:03:16 +0200
  • 3d5735a050 now 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 Brakkee 2024-08-12 20:57:08 +0200
  • f823d4b67b fixed issues with the prometheus code with subtle errors due to the use of pointers. Now using simple value objects. Erik Brakkee 2024-08-12 18:48:28 +0200
  • 813d398ea4 message now indicates what to do when using ssh and when using sftp Erik Brakkee 2024-08-12 16:18:27 +0200
  • 061fabfd07 Addes agent address and client address to the client and agent info. Erik Brakkee 2024-08-12 15:23:07 +0200
  • ad72c41347 ClientConnection no longer has public fields. Erik Brakkee 2024-08-11 19:01:39 +0200
  • db1d908d06 a 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 Brakkee 2024-08-11 17:49:52 +0200
  • 1c92fcb03e much more clean handling of concurrency in the converge server by separating the administration from the matchmaking by putting admin in a separate package. Erik Brakkee 2024-08-11 16:17:11 +0200
  • f82b21b845 activity detection implemented for sftp. Erik Brakkee 2024-08-11 13:43:59 +0200
  • b8715bcbe8 eliminated 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 Brakkee 2024-08-10 20:13:58 +0200
  • 1be96d8742 Added agent_start_time, agent_stop_time, client_start_time, and client_stop_time metrics. Erik Brakkee 2024-08-10 20:00:40 +0200
  • c2ec1ce117 Added agent uid to the client info so that client and agent can be correlated in prometheus/grafana. Erik Brakkee 2024-08-10 18:57:57 +0200
  • 21ffd29ae4 Now showing information superscripts to hint that there are tooltipos available. Erik Brakkee 2024-08-10 17:49:41 +0200
  • c4bc07b0e0 nov showing a message that the rendez-vous id is generated. Erik Brakkee 2024-08-10 17:49:04 +0200
  • 8e131c44a3 Now also logging the user's shell. Erik Brakkee 2024-08-10 17:28:51 +0200
  • 82a21ad4f6 One additional logging so that the user's environment info is also known. Erik Brakkee 2024-08-10 17:28:25 +0200
  • 5b7d51f210 Code 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 Brakkee 2024-08-10 17:27:50 +0200
  • 0bb9812b59 added tooltips. Erik Brakkee 2024-08-10 16:53:07 +0200
  • 0c18689afd Generalized persistence of forms in separate js file. Some minor improvements to the usage instructions. Erik Brakkee 2024-08-10 16:26:49 +0200
  • 4a3448dcc3 wsproxy now giving a more friendly error message when there is a protocol mismatch describing what the user should do. Erik Brakkee 2024-08-10 15:07:05 +0200
  • 128be0ebb5 Added client environment info to the prometheus metrics as labels. Erik Brakkee 2024-08-10 14:55:17 +0200
  • 2fe2be0b9a with 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 Brakkee 2024-08-10 13:23:59 +0200
  • 29ddb6ce00 the 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 Brakkee 2024-08-10 13:01:40 +0200
  • f3d0074f17 added environment info from the client. Erik Brakkee 2024-08-10 13:00:48 +0200
  • 8b4bcde9c9 prometheus scraping endpoint now on a separate port Erik Brakkee 2024-08-08 20:31:02 +0200
  • b4b962d859 remove 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
  • 85841bcb0f read of 0 bytes to detect connection loss. Erik Brakkee 2024-08-08 00:09:35 +0200
  • 52ca0f3ecc consistent lower case on the usage page Erik Brakkee 2024-08-07 23:16:03 +0200
  • 564a8792f9 an attempt to avoid flickering of the image (not 100% successful) Erik Brakkee 2024-08-07 23:12:25 +0200
  • b0aaec03fe Added a banner and logo. Erik Brakkee 2024-08-07 23:09:40 +0200
  • f62b81cbfb cumulative counters implemented. Erik Brakkee 2024-08-07 22:22:54 +0200
  • 4746279353 prometheus monitoring now setup. Erik Brakkee 2024-08-07 22:00:41 +0200
  • 97d34424ca prometheus monitoring now more complete. Including a guid to uniquely identify agents and clients. Erik Brakkee 2024-08-07 21:16:11 +0200
  • 135fd081d8 prometheus support step 1 updates to documentation. Erik Brakkee 2024-08-07 20:50:17 +0200
  • 2366b78e95 ClientId is now a string instead of an int. Erik Brakkee 2024-08-07 21:00:41 +0200
  • ae60b77eec public id is now shown on the sessions page since authorized keys are used which is safer. Erik Brakkee 2024-08-06 22:50:24 +0200
  • cd953c5edf eliminated the username. Erik Brakkee 2024-08-06 22:38:59 +0200
  • d134f1e944 better messages when the user modifies the .authorized_keys file from within the session. Erik Brakkee 2024-08-06 22:28:34 +0200
  • d109c72f66 removed 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
  • 8d554a5ce1 getting the bootstrap icons (not checking them in). Split up instructions for working with agents. Erik Brakkee 2024-08-05 23:19:41 +0200
  • 1b1f8f2167 A lot of work in getting cut and paste from the UI to work properly. Erik Brakkee 2024-08-05 22:51:49 +0200
  • 51be117200 Simple validation of the id and the authorized keys. Erik Brakkee 2024-08-04 23:31:12 +0200
  • 2cf73feef5 More clean handling of the contextpath. Now using long option names for the options of converge to be consistent with the other components. Erik Brakkee 2024-08-04 22:17:51 +0200
  • 75e1bd77ba Alternative contextpath is now supported. This will simplify hosting in cases where you have no control over DNS but only over one domain. Erik Brakkee 2024-08-03 23:10:57 +0200
  • 9456665a6f Preparation 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 Brakkee 2024-08-03 22:40:26 +0200