Commit Graph

198 Commits (6850031e80f0d0ae3cb49bcbb601a0a3c16ccea2)

Author SHA1 Message Date
noah metz 4daec4d601 Cleanup and move away from capnp to custom TLV serialization 2023-08-31 19:50:32 -06:00
noah metz 98c0b7e807 Fixed lockable to properly fail 2023-08-15 18:23:06 -06:00
noah metz d663314def Test updates 2023-08-11 16:00:36 -06:00
noah metz e26ddcae37 Moved listener to listener.go and user.go to group.go. Fixed some GQL resolving 2023-08-11 13:01:32 -06:00
noah metz 20c7a38044 Policy fun 2023-08-10 23:43:10 -06:00
noah metz f31beade29 Added signature to all signals(signature of serialized signal + source + dest so technically vulnerable to replay) to use for ACL 2023-08-08 14:00:17 -06:00
noah metz 96e842decf Fixed some of the issues with GQL tests, still need to fix ACL 2023-08-07 20:44:56 -06:00
noah metz 8770d6f433 Moved policies to node instead of an extension, need to fix gql tests 2023-08-07 20:26:02 -06:00
noah metz 1d91854f6f Moved to x25519 for EC operations 2023-08-06 12:47:47 -06:00
noah metz 147f44e5ff hehe 2023-08-01 20:55:15 -06:00
noah metz 42cd8f4188 Added AuthorizedSignal wrapper to wrap a signal with an ecdsa signature to prove it originated from a different node 2023-08-01 14:09:29 -06:00
noah metz b9a2cceaf1 Moved gql response channel interaction into methods 2023-07-31 21:03:48 -06:00
noah metz df09433b88 Changed resolves to map back to request channel specifically instead of to the context 2023-07-31 20:53:56 -06:00
noah metz 6895aa7c8e gql fix :) 2023-07-31 18:49:56 -06:00
noah metz 0cc7174667 gql fix 2023-07-31 18:47:58 -06:00
noah metz 059c36663b GQL fix 2023-07-31 18:43:17 -06:00
noah metz b06c741ee3 GQL fix 2023-07-31 18:38:40 -06:00
noah metz 09c25b1e48 Moved UUID field to all signals to nodes can wait for responses to specific signals 2023-07-31 18:29:26 -06:00
noah metz e7d94414d5 Added stopServer gql mutation 2023-07-31 17:27:54 -06:00
noah metz d8355ab786 Added Self query to gql 2023-07-31 17:15:52 -06:00
noah metz 771bf53356 Added logging to gql process 2023-07-31 16:32:57 -06:00
noah metz 0313d6a33f Added start signal, and used it to restore gql server if was previously running 2023-07-31 16:25:18 -06:00
noah metz 064dc72820 Added State to GQLExt, TODO: add a start signal that gets sent to a node when it's loop is started so it's extensions can perform activation sequences 2023-07-30 23:59:04 -06:00
noah metz fde2f3ddd4 Renamed signals and added ErrorSignal 2023-07-30 23:42:47 -06:00
noah metz 96c2b84b6f * 2023-07-30 10:09:04 -06:00
noah metz f56f92a58b Updated test with group ext gql 2023-07-29 23:24:48 -06:00
noah metz e92b2e508d Added tests for lockable gql fields 2023-07-29 22:16:54 -06:00
noah metz dca4de183e Think I got the interface registering figured out, need to test it out with self-referrential fields(list and single) from LockableExt 2023-07-29 19:16:33 -06:00
noah metz fad8d8123c Did most of the work to move node interface creation to GQLExtContext 2023-07-29 18:27:52 -06:00
noah metz 891e69c775 Added more sane methods to register GQL fields, need to do the same for itnerfaces and their defaults 2023-07-29 17:23:25 -06:00
noah metz d6a35247b0 Add tests for gql server type in gql 2023-07-29 16:34:21 -06:00
noah metz 1a3a07336a Added back GQL functionality, TODO pool channels for resolve executions instead of creating new ones and GCing them every time 2023-07-29 16:00:01 -06:00
noah metz 2dfa10b1f6 Renamed GQL functions to remove GQL 2023-07-29 11:03:41 -06:00
noah metz c60393d390 gql changes 2023-07-29 00:40:18 -06:00
noah metz 641bd8febe Moved ecdh to it's own extension 2023-07-29 00:28:44 -06:00
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 08288f88af Added basic test for read result with ACL 2023-07-28 11:59:01 -06:00
noah metz fc69bc3d0d Added read signal, and modified policies to use non-pointer receivers 2023-07-28 11:21:18 -06:00
noah metz fb7e6d02f4 Fixed json parsing, not sure if it broke or just wasn't running before 2023-07-28 00:04:18 -06:00
noah metz d40e561728 Moved Hash function to single implementation 2023-07-27 23:26:58 -06:00
noah metz 027c3d4c96 Moved ExtType and PolicyType definitions to one block 2023-07-27 23:15:58 -06:00
noah metz 7965f8fbe6 Moved signal function to context 2023-07-27 15:49:21 -06:00
noah metz d729698523 Removed commented out code 2023-07-27 15:29:56 -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 c34d717b52 Cleaned up initialization 2023-07-27 11:33:11 -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 494d212051 Simplified gql node/interface creation with helper functions 2023-07-26 23:57:50 -06:00
noah metz 34082630b2 Added default schema back without crashing 2023-07-26 20:26:41 -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 fa6142d880 Started adding back gql tests 2023-07-26 11:56:10 -06:00
noah metz f1c0f1e7de Added gql to the rework 2023-07-26 00:18:11 -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 a2395189a8 Added LoadJSONNode to abstract out repeated json unmarshaling 2023-07-25 00:19:39 -06:00
noah metz 59df9f04d5 Added more policy types, removed tags 2023-07-24 22:52:15 -06:00
noah metz 264f31ad9a fix 2023-07-24 20:34:29 -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 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 97815c86ff Added GetResolveContext 2023-07-21 18:51:42 -06:00
noah metz 0428645be3 Added ExtractParam and ExtractID 2023-07-21 14:28:53 -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 2c1c75572e Added save/load to tls state 2023-07-21 01:11:59 -06:00
noah metz cf248ee5b0 Add write to user when updating server 2023-07-21 01:06:38 -06:00
noah metz d4fb5a0922 Added TLS to GQLThread 2023-07-21 01:05:24 -06:00
noah metz 99d4f18daf Moved user to user.go 2023-07-20 22:08:28 -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 6d0925f20f Added signature to auth response 2023-07-19 14:50:42 -06:00
noah metz 84af718071 Started to add authentication for GQL endpoint 2023-07-19 14:45:05 -06:00
noah metz d227331fe8 Return error for no auth 2023-07-13 18:28:02 -06:00
noah metz 372c465472 gql.go 2023-07-13 18:23:57 -06:00
noah metz 893fb8c4c4 require auth for gql 2023-07-13 18:21:33 -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 6a0a0762ad Finished rework of context 2023-07-09 20:30:19 -06:00
noah metz 7aedf553ee Updated gql.go 2023-07-09 19:33:18 -06:00
noah metz a9d1fe5793 moved to ThreadLoop from separate StartThread and RestoreThread functions 2023-07-06 16:57:51 -06:00
noah metz ff46af585d Added fixes to pass go vet 2023-07-05 14:50:21 -06:00
noah metz f44752d988 GQLWS Logging 2023-07-03 19:13:29 -06:00
noah metz 5bdc06bf0f Added UnlinkLockables and UnlinkThreads 2023-07-03 16:37:54 -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 a05d847863 test 2023-07-02 12:54:29 -06:00
noah metz 8a5de1b0de fix 2023-07-02 12:51:22 -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 06a6b0f09a Name json fields for gql thread info 2023-07-02 10:49:42 -06:00
noah metz 1585034777 Fixed gql threadstate 2023-07-02 10:46:53 -06:00
noah metz 9cb1d26405 Added test to display GQLThread serialized data 2023-07-01 13:06:39 -06:00