Skip to content

Commit

Permalink
feat(core): add relay:share command to share relay instances via ngrok
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Faust committed Aug 22, 2019
1 parent fc15799 commit 42b0805
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 10 deletions.
10 changes: 5 additions & 5 deletions packages/core/bin/config/testnet/packages.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ module.exports = {
minimumNetworkReach: 5,
},
"@arkecosystem/core-blockchain": {},
// "@arkecosystem/core-api": {
// enabled: !process.env.CORE_API_DISABLED,
// host: process.env.CORE_API_HOST || "0.0.0.0",
// port: process.env.CORE_API_PORT || 4003,
// },
"@arkecosystem/core-api": {
enabled: !process.env.CORE_API_DISABLED,
host: process.env.CORE_API_HOST || "0.0.0.0",
port: process.env.CORE_API_PORT || 4003,
},
// "@arkecosystem/core-wallet-api": {},
// "@arkecosystem/core-webhooks": {
// enabled: process.env.CORE_WEBHOOKS_ENABLED,
Expand Down
1 change: 1 addition & 0 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
"latest-version": "^5.1.0",
"listr": "^0.14.3",
"lodash.minby": "^4.6.0",
"ngrok": "^3.2.5",
"nodejs-tail": "^1.1.0",
"pretty-bytes": "^5.2.0",
"pretty-ms": "^5.0.0",
Expand Down
40 changes: 40 additions & 0 deletions packages/core/src/commands/relay/share.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { flags } from "@oclif/command";
import { connect } from "ngrok";
import { CommandFlags } from "../../types";
import { BaseCommand } from "../command";

export class ShareCommand extends BaseCommand {
public static description: string = "Share the instance via ngrok";

public static flags: CommandFlags = {
proto: flags.string({
description: "http|tcp|tls",
default: "http",
}),
addr: flags.integer({
description: "port or network address",
default: 4003,
}),
auth: flags.string({
description: "http basic authentication for tunnel",
}),
subdomain: flags.string({
description: "reserved tunnel name https://core.ngrok.io",
}),
authtoken: flags.string({
description: "your authtoken from ngrok.com",
}),
region: flags.string({
description: "one of ngrok regions (us, eu, au, ap)",
default: "eu",
}),
};

public async run(): Promise<void> {
const { flags } = this.parse(ShareCommand);

const url: string = await connect(flags);

this.log(`Public access to your API: ${url}`);
}
}
99 changes: 94 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2411,6 +2411,11 @@
"@types/long" "*"
"@types/node" "*"

"@types/caseless@*":
version "0.12.2"
resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8"
integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==

"@types/catbox@*":
version "10.0.6"
resolved "https://registry.yarnpkg.com/@types/catbox/-/catbox-10.0.6.tgz#8a4c91261cf0afca03351bb82a95b2d6cf43a5d0"
Expand Down Expand Up @@ -2916,6 +2921,11 @@
version "8.10.46"
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.46.tgz#12161db48a775e8c69c1cfff2be545610381056f"

"@types/node@^8.10.50":
version "8.10.52"
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.52.tgz#ef0ca1809994e20186090408b8cb7f2a6877d5f9"
integrity sha512-2RbW7WXeLex6RI+kQSxq6Ym0GiVcODeQ4Km7MnnTX5BHdOGQnqVa+s6AUmAW+OFYAJ8wv9QxvNZXm7/kBdGTVw==

"@types/normalize-package-data@^2.4.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
Expand Down Expand Up @@ -3007,6 +3017,16 @@
"@types/node" "*"
safe-buffer "*"

"@types/request@^2.48.2":
version "2.48.2"
resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.2.tgz#936374cbe1179d7ed529fc02543deb4597450fed"
integrity sha512-gP+PSFXAXMrd5PcD7SqHeUjdGshAI8vKQ3+AvpQr3ht9iQea+59LOKvKITcQI+Lg+1EIkDP6AFSBUJPWG8GDyA==
dependencies:
"@types/caseless" "*"
"@types/node" "*"
"@types/tough-cookie" "*"
form-data "^2.5.0"

"@types/resolve@0.0.8":
version "0.0.8"
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
Expand Down Expand Up @@ -3708,6 +3728,14 @@ binary-extensions@^1.0.0:
version "1.13.1"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"

binary@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=
dependencies:
buffers "~0.1.1"
chainsaw "~0.1.0"

bindings@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
Expand Down Expand Up @@ -3958,6 +3986,11 @@ buffer@^5.2.1:
base64-js "^1.0.2"
ieee754 "^1.1.4"

buffers@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s=

bufio@~1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/bufio/-/bufio-1.0.6.tgz#e0eb6d70b2efcc997b6f8872173540967f90fa4d"
Expand Down Expand Up @@ -4158,6 +4191,13 @@ chai@^4.1.2:
pathval "^1.1.0"
type-detect "^4.0.5"

chainsaw@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=
dependencies:
traverse ">=0.3.0 <0.4"

chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
Expand Down Expand Up @@ -5029,6 +5069,19 @@ decompress-response@^4.2.0:
dependencies:
mimic-response "^2.0.0"

decompress-zip@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/decompress-zip/-/decompress-zip-0.3.2.tgz#f3fa2841666abce394604f4a9e8a7085c202d464"
integrity sha512-Ab1QY4LrWMrUuo53lLnmGOby7v8ryqxJ+bKibKSiPisx+25mhut1dScVBXAYx14i/PqSrFZvR2FRRazhLbvL+g==
dependencies:
binary "^0.3.0"
graceful-fs "^4.1.3"
mkpath "^0.1.0"
nopt "^3.0.1"
q "^1.1.2"
readable-stream "^1.1.8"
touch "0.0.3"

dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
Expand Down Expand Up @@ -8502,6 +8555,11 @@ mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
dependencies:
minimist "0.0.8"

mkpath@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91"
integrity sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=

modify-values@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
Expand Down Expand Up @@ -8674,6 +8732,18 @@ newrelic@^5.10.0:
optionalDependencies:
"@newrelic/native-metrics" "^4.0.0"

ngrok@^3.2.5:
version "3.2.5"
resolved "https://registry.yarnpkg.com/ngrok/-/ngrok-3.2.5.tgz#db2153e7dc4827aeafcc13b187aec331516403d9"
integrity sha512-FWWQJSg8A1L6prZmT53onZMiFiaY+CfDgS9YStKjbE3qf2WDmRdi6kNBFvQKD2ARSv/te+rqeizAOGSUH5X56w==
dependencies:
"@types/node" "^8.10.50"
"@types/request" "^2.48.2"
decompress-zip "^0.3.2"
request "^2.88.0"
request-promise-native "^1.0.7"
uuid "^3.3.2"

nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
Expand Down Expand Up @@ -8812,7 +8882,7 @@ nodejs-tail@^1.1.0:
dependencies:
chokidar "2.1.2"

"nopt@2 || 3":
"nopt@2 || 3", nopt@^3.0.1:
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
dependencies:
Expand All @@ -8825,6 +8895,13 @@ nopt@^4.0.1:
abbrev "1"
osenv "^0.1.4"

nopt@~1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
dependencies:
abbrev "1"

normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
Expand Down Expand Up @@ -9882,7 +9959,7 @@ punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"

q@^1.5.1:
q@^1.1.2, q@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"

Expand Down Expand Up @@ -10087,7 +10164,7 @@ read@1, read@~1.0.1:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"

readable-stream@1.1.x:
readable-stream@1.1.x, readable-stream@^1.1.8:
version "1.1.14"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
dependencies:
Expand Down Expand Up @@ -10252,15 +10329,15 @@ request-promise-core@1.1.2:
dependencies:
lodash "^4.17.11"

request-promise-native@^1.0.5:
request-promise-native@^1.0.5, request-promise-native@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59"
dependencies:
request-promise-core "1.1.2"
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"

request@^2.87.0:
request@^2.87.0, request@^2.88.0:
version "2.88.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
dependencies:
Expand Down Expand Up @@ -11725,6 +11802,13 @@ topo@3.x.x:
dependencies:
hoek "6.x.x"

touch@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d"
integrity sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=
dependencies:
nopt "~1.0.10"

tough-cookie@^2.3.3, tough-cookie@^2.3.4:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
Expand All @@ -11749,6 +11833,11 @@ traverse-chain@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1"

"traverse@>=0.3.0 <0.4":
version "0.3.9"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=

tree-kill@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz#5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a"
Expand Down

0 comments on commit 42b0805

Please sign in to comment.