diff --git a/cmd/kvdel.go b/cmd/kvdel.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/kvdel.go @@ -0,0 +1 @@ +package cmd diff --git a/cmd/kvget.go b/cmd/kvget.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/kvget.go @@ -0,0 +1 @@ +package cmd diff --git a/cmd/kvlist.go b/cmd/kvlist.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/kvlist.go @@ -0,0 +1 @@ +package cmd diff --git a/cmd/kvset.go b/cmd/kvset.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/kvset.go @@ -0,0 +1 @@ +package cmd diff --git a/cmd/serversadd.go b/cmd/serversadd.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/serversadd.go @@ -0,0 +1 @@ +package cmd diff --git a/cmd/serverslist.go b/cmd/serverslist.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/serverslist.go @@ -0,0 +1 @@ +package cmd diff --git a/cmd/serversremove.go b/cmd/serversremove.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/serversremove.go @@ -0,0 +1 @@ +package cmd diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000..25602f5 --- /dev/null +++ b/example/README.md @@ -0,0 +1,11 @@ +# Trade Example + +- export a key `export KEY_PASSWD="blarg test"` +- spawn two servers: `./example 8080 &` `./example 8081` +- register the servers: + - `./trade servers add localhost:8080` + - `./trade servers add localhost:8081` +- visit one server: [https://localhost:8080](https://localhost:8080) +- set a value (like "hello world") +- visit the other server: [https://localhost:8081](https://localhost:8081) +- see the value set \ No newline at end of file diff --git a/example/routes.go b/example/routes.go new file mode 100644 index 0000000..2c679bf --- /dev/null +++ b/example/routes.go @@ -0,0 +1,5 @@ +package example + +func home() { + +} diff --git a/example/server.go b/example/server.go new file mode 100644 index 0000000..a6928c4 --- /dev/null +++ b/example/server.go @@ -0,0 +1,28 @@ +package example + +import ( + "fmt" + "net/http" + "os" + + "git.bivouac.wiki/use/trade" +) + +func main() { + // get key password from env variable + passwd, exist := os.LookupEnv("KEY_PASSWD") + if !exist { + fmt.Println("no KEY_PASSWD environment variable") + os.Exit(1) + } + if len(os.Args) != 1 { + fmt.Println("no key path specified") + os.Exit(1) + } + keypath := os.Args[1] + // spawn trade KV + trade.Load(passwd, keypath, GLOBAL_KV) + // load self key or generate one + // spawn server + http.Serve() +} diff --git a/example/store.go b/example/store.go new file mode 100644 index 0000000..12239ac --- /dev/null +++ b/example/store.go @@ -0,0 +1,9 @@ +package example + +import "git.bivouac.wiki/go/gobstore" + +var GLOBAL_KV gobstore.GobStore[string] + +func init() { + +} diff --git a/regdelserver.go b/regdelserver.go new file mode 100644 index 0000000..8860d56 --- /dev/null +++ b/regdelserver.go @@ -0,0 +1,6 @@ +package trade + +// RegDelServer revokes a server's trade access +func RegDelServer() { + +} diff --git a/routeget.go b/routeget.go new file mode 100644 index 0000000..93589e8 --- /dev/null +++ b/routeget.go @@ -0,0 +1,8 @@ +package trade + +// RouteGet responds to a get request after validating the remote server +func RouteGet() { + // validate message + // validate that sender is in allowed servers + // query KV and return +} diff --git a/routeset.go b/routeset.go new file mode 100644 index 0000000..88e37cc --- /dev/null +++ b/routeset.go @@ -0,0 +1,8 @@ +package trade + +// RouteSet verifies another server's set command +func RouteSet() { + // check signature validity + // check if signature is in list of allowed identities + // set local value +}