diff --git a/mplexer/mgmt-ping.sh b/mplexer/mgmt-ping.sh new file mode 100644 index 0000000..0dde3ca --- /dev/null +++ b/mplexer/mgmt-ping.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -e +set -u + +# 1. (srv) create a new shared key for a given slug +# 2. (dev) try to update via ping +# 3. (dev) use key to exchange machine id +# 4. (dev) use key to connect to remote +# 5. (dev) ping occasionally + +TOKEN=$(go run cmd/signjwt/*.go) +echo "TOKEN: $TOKEN" + +my_shared="ZR2rxYmcKJcmtKgmH9D5Qw" +my_parts=$(go run cmd/signjwt/*.go $my_shared machineid) +my_ppid=$(echo $my_parts | cut -d' ' -f1) +my_keyid=$(echo $my_parts | cut -d' ' -f2) +echo "PPID: $my_ppid KeyID: $my_keyid" + +TOKEN=$(go run cmd/signjwt/*.go $my_ppid) +curl -X POST http://localhost:3000/api/ping -H "Authorization: Bearer ${TOKEN}" diff --git a/mplexer/mgmt.sh b/mplexer/mgmt.sh new file mode 100644 index 0000000..c33ae83 --- /dev/null +++ b/mplexer/mgmt.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +set -e +set -u + +# 1. (srv) create a new shared key for a given slug +# 2. (dev) try to update via ping +# 3. (dev) use key to exchange machine id +# 4. (dev) use key to connect to remote +# 5. (dev) ping occasionally + +TOKEN=$(go run cmd/signjwt/*.go) +echo "TOKEN: $TOKEN" + +my_shared="ZR2rxYmcKJcmtKgmH9D5Qw" +my_domain="example.com" +my_client="1-client-slug" +TOK=$(curl -X POST http://localhost:3000/api/devices -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" -d '{ "slug": "'$my_client'", "shared_key": "'$my_shared'" }') +echo Response: $TOK + +SHARED=$(echo "$TOK" | sed 's/.*shared_key":"//g' | sed 's/".*//') +echo Shared Key: $SHARED +my_parts=$(go run cmd/signjwt/*.go $SHARED machineid) +my_ppid=$(echo $my_parts | cut -d' ' -f1) +my_keyid=$(echo $my_parts | cut -d' ' -f2) +echo "PPID: $my_ppid KeyID: $my_keyid" + +TOKEN=$(go run cmd/signjwt/*.go $my_ppid) +echo "PING 1 (should fail)" +curl -X POST http://localhost:3000/api/ping -H "Authorization: Bearer ${TOKEN}" +echo "" + +curl -X POST http://localhost:3000/api/register-device/$SHARED -H "Content-Type: application/json" -d '{ "machine_ppid": "'$my_ppid'", "public_key": "'$my_keyid'" }' +echo '' + +echo "PING 2 (should work)" +curl -X POST http://localhost:3000/api/ping -H "Authorization: Bearer ${TOKEN}" +echo "" + +curl -X POST http://localhost:3000/api/dns/"${my_client}.${my_domain}" \ + -H "Authorization: Bearer ${TOKEN}" \ + -H "Content-Type: application/json" \ + -d '{ "token": "xxxx", "key_authorization": "yyyy" }'