Commit Graph

118 Commits (59424cecc1e813cd8df07e34513733ec69dcf54c)

Author SHA1 Message Date
noah metz f87571edcf Moved test 'WaitForX' functions to a generic function in signal.go that can be used to wait for arbitrary signals 2023-07-28 19:32:27 -06:00
noah metz 5fb1cb6d17 Changed node ids to be derived from signing keys 2023-07-28 15:07:38 -06:00
noah metz b92cebbe74 Added message buffer size to node header and NewNode 2023-07-28 13:45:14 -06:00
noah metz 98893de442 Added naive locking sequence with short test 2023-07-27 18:08:43 -06:00
noah metz 78c29d2f74 Changed context to dynamically load nodes as they're signalled 2023-07-27 16:48:39 -06:00
noah metz 9d31394707 Remvoed Node.Signal and replaced with Context.Send 2023-07-27 16:13:43 -06:00
noah metz 3ad969a5ca Switched from thread being the callback engine to node being the callback engine 2023-07-27 15:27:14 -06:00
noah metz 7a7a9c95a3 Fixed gql_test.go 2023-07-27 12:20:49 -06:00
noah metz c62ef57fe7 Removed uncessary permission from gql_test 2023-07-27 12:04:29 -06:00
noah metz 544264f06b Cleaned up gql_test by putting the listener extension on gql 2023-07-27 12:03:39 -06:00
noah metz c34d717b52 Cleaned up initialization 2023-07-27 11:33:11 -06:00
noah metz 95a2f46d28 Fixed policies in existing test 2023-07-27 10:04:39 -06:00
noah metz 70baca9e9c Added some policies back, and changed the policy check to pass errors instead of booleans 2023-07-27 09:32:33 -06:00
noah metz 4fa88dc056 Changed SendUpdate to Node.Process, and changed principal to ID to prepare for decoupling nodes 2023-07-27 01:30:32 -06:00
noah metz 81c2e11304 Renamed SendSignal to Node.Process 2023-07-27 01:15:53 -06:00
noah metz cc807b3982 Added helper function to create base gql server 2023-07-27 00:57:18 -06:00
noah metz 186123ce01 Added SimpleListenerNode to test suite 2023-07-27 00:30:24 -06:00
noah metz 294bcfb518 Re-added all files after rework, still need to add more complex tests 2023-07-26 15:52:40 -06:00
noah metz 89c8fba39b Added RequirementOfPolicy and thread extension child loading 2023-07-26 15:40:33 -06:00
noah metz d2f3daf5a6 Changed NewNode to return a pointer and add the node to the context 2023-07-26 15:08:14 -06:00
noah metz 755edf8558 Added ParentOfPolicy and ChildOfPolicy 2023-07-26 13:28:03 -06:00
noah metz fa6142d880 Started adding back gql tests 2023-07-26 11:56:10 -06:00
noah metz a72124e659 Added NodeWithUsers interface to encompass any nodes that have a Users map 2023-07-25 00:27:39 -06:00
noah metz 59df9f04d5 Added more policy types, removed tags 2023-07-24 22:52:15 -06:00
noah metz 2e77b811d5 Add policies to get tests to pass 2023-07-24 17:17:12 -06:00
noah metz 7d04923b3b Fixed interface conversion panics 2023-07-24 17:07:27 -06:00
noah metz fc2e36043f Tests compile and run 2023-07-24 16:04:56 -06:00
noah metz fa10ccd743 Attempt to fix DependencyPolicy 2023-07-24 01:41:47 -06:00
noah metz fc6c198ae3 Moved gql thread actions/handlers to module functions 2023-07-23 23:01:45 -06:00
noah metz 32ac1f618d Added fixed resource/action order in Node.Allowed, added ACL check when signaling, nodes must have signal.{type} permission to send a signal of {type} to a node 2023-07-23 21:17:31 -06:00
noah metz dfa420757b Moved status signals to StatusSignal type with status string as type, so they can be ACLd 2023-07-23 21:14:15 -06:00
noah metz 63fb5e3187 Fixed AuthHandler to not require write permission on user 2023-07-23 19:46:18 -06:00
noah metz 054fe3c0ec Fixed starting of gql server to correctly start children that should start 2023-07-23 19:04:04 -06:00
noah metz 8fb0cbc982 Reworked use/update to require a read/write context be initialized before starting, still need to figure out if brittle locking is the solution to potential deadlock, and implement if so 2023-07-23 17:57:47 -06:00
noah metz 575912d56f Fixed compile errors 2023-07-22 21:24:54 -06:00
noah metz e347a3f232 start maniacal rewrite, main goal is to combine node and lockable to remove any sync mutex deadlocks. Another goal is to make read contexts get copies of the state to ensure they don't modify and no lock is required to ensure no value changes, and write contexts use the lockable locks instead of mutex 2023-07-22 20:21:17 -06:00
noah metz d4fcd80ff8 Added Singleton and Field to simplify GQL definitions 2023-07-21 17:49:19 -06:00
noah metz 767fc0bd3c Updated test to use PerTagPolicy with default gql user tag 2023-07-21 13:56:44 -06:00
noah metz 6cf2d2d957 Added SimplePolicy 2023-07-21 13:33:04 -06:00
noah metz 230ff2b883 First implementation of policies 2023-07-21 12:09:29 -06:00
noah metz 81e49b505b Moved self-signed certificate creation to NewGQLThread 2023-07-21 01:21:53 -06:00
noah metz d4fb5a0922 Added TLS to GQLThread 2023-07-21 01:05:24 -06:00
noah metz c3058fbd3d Added more to policy, and updated lockable to use better IDs 2023-07-21 00:02:53 -06:00
noah metz 61fd7d61aa Added policy.go 2023-07-20 23:19:10 -06:00
noah metz a88c704c57 Added Users query to GQLThread 2023-07-20 22:17:45 -06:00
noah metz e50b550cd7 Renamed GQLUser to User 2023-07-20 22:03:25 -06:00
noah metz 4dc42a813e GQLUser improvement 2023-07-20 00:24:22 -06:00
noah metz 2fde6ae282 Added KDF for shared secret to shared ecdsa key, and added signature to AuthRespJSON 2023-07-19 21:28:48 -06:00
noah metz 374fd6e487 Changed NodeID from string to UUID, filled in more auth 2023-07-19 20:03:13 -06:00
noah metz 84af718071 Started to add authentication for GQL endpoint 2023-07-19 14:45:05 -06:00
noah metz f64455f8ed Moved GQL restore to ThreadRestore to be reused by other classes. And GQLThreadInfo to ParentThreadInfo 2023-07-11 16:54:09 -06:00
noah metz 743569e088 Added more doc comments 2023-07-10 22:31:43 -06:00
noah metz 14b084b081 Fixed always initializing timeout on thread load. TODO: look at why loading it on thread load was causing the aborted event to not be sent 2023-07-10 01:07:56 -06:00
noah metz 6a0a0762ad Finished rework of context 2023-07-09 20:30:19 -06:00
noah metz a9d1fe5793 moved to ThreadLoop from separate StartThread and RestoreThread functions 2023-07-06 16:57:51 -06:00
noah metz 0e2b6ccb2a enhance tests for race conditions 2023-07-05 23:54:11 -06:00
noah metz c42ca80d47 Modified SendUpdate to require it to be called from inside a UseStates context. 2023-07-04 18:45:23 -06:00
noah metz 34f8a9f009 Fixed typo in thread loading that resulted in the parent being loaded as an owner instead 2023-07-03 13:14:48 -06:00
noah metz 300e735065 Added restore actions, and gql should run them 2023-07-02 12:47:45 -06:00
noah metz c9d9b9ac03 Update a bunch of stuff 2023-07-02 12:14:04 -06:00
noah metz 9cb1d26405 Added test to display GQLThread serialized data 2023-07-01 13:06:39 -06:00
noah metz d2b32bac5e Moved GQL context information out of node runtime state and into context 2023-07-01 13:03:28 -06:00
noah metz 84a700909d Updated intances of state updating to use new API 2023-06-28 23:51:44 -06:00
noah metz a696213e38 Rework locking to hold all locks before changing any state 2023-06-28 00:48:49 -06:00
noah metz 62d56f208a Add ChildGo to conveniently start children 2023-06-26 21:20:04 -06:00
noah metz 10ab3a48cf made gql_test.go pass 2023-06-25 22:19:05 -06:00
noah metz bb3c80dbc7 Fixed internal signalling for threads, and update signal type in gql 2023-06-25 21:00:00 -06:00
noah metz a185cc3dfc Added base GQLThread 2023-06-25 20:20:59 -06:00