@betterportal/tunnels 1.0.24 → 1.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/lib/.bsb/clients/service-tunnels-client.d.ts +133 -0
  2. package/lib/.bsb/clients/service-tunnels-client.d.ts.map +1 -0
  3. package/lib/.bsb/clients/service-tunnels-client.js +102 -0
  4. package/lib/.bsb/clients/service-tunnels-client.js.map +1 -0
  5. package/lib/.bsb/clients/service-tunnels-proxy.d.ts +43 -0
  6. package/lib/.bsb/clients/service-tunnels-proxy.d.ts.map +1 -0
  7. package/lib/.bsb/clients/service-tunnels-proxy.js +47 -0
  8. package/lib/.bsb/clients/service-tunnels-proxy.js.map +1 -0
  9. package/lib/auth.d.ts +12 -0
  10. package/lib/auth.d.ts.map +1 -0
  11. package/lib/auth.js +59 -0
  12. package/lib/auth.js.map +1 -0
  13. package/lib/cli.d.ts +2 -0
  14. package/lib/cli.d.ts.map +1 -0
  15. package/lib/cli.js +406 -0
  16. package/lib/cli.js.map +1 -0
  17. package/lib/generated/prisma/client.d.ts +1 -0
  18. package/lib/generated/prisma/client.js +5 -0
  19. package/lib/generated/prisma/default.d.ts +1 -0
  20. package/lib/generated/prisma/default.js +5 -0
  21. package/lib/generated/prisma/edge.d.ts +1 -0
  22. package/lib/generated/prisma/edge.js +278 -0
  23. package/lib/generated/prisma/index-browser.js +304 -0
  24. package/lib/generated/prisma/index.d.ts +13885 -0
  25. package/lib/generated/prisma/index.js +278 -0
  26. package/lib/generated/prisma/package.json +144 -0
  27. package/lib/generated/prisma/query_compiler_fast_bg.js +2 -0
  28. package/lib/generated/prisma/query_compiler_fast_bg.wasm +0 -0
  29. package/lib/generated/prisma/query_compiler_fast_bg.wasm-base64.js +2 -0
  30. package/lib/generated/prisma/runtime/client.d.ts +3386 -0
  31. package/lib/generated/prisma/runtime/client.js +86 -0
  32. package/lib/generated/prisma/runtime/index-browser.d.ts +90 -0
  33. package/lib/generated/prisma/runtime/index-browser.js +6 -0
  34. package/lib/generated/prisma/runtime/wasm-compiler-edge.js +76 -0
  35. package/lib/generated/prisma/schema.prisma +142 -0
  36. package/lib/generated/prisma/wasm-edge-light-loader.mjs +5 -0
  37. package/lib/generated/prisma/wasm-worker-loader.mjs +5 -0
  38. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.d.ts +3 -0
  39. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.d.ts.map +1 -0
  40. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.js +152 -0
  41. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.js.map +1 -0
  42. package/lib/plugins/service-tunnels-admin/.bp-generated/route-runtime.d.ts +9 -0
  43. package/lib/plugins/service-tunnels-admin/.bp-generated/route-runtime.d.ts.map +1 -0
  44. package/lib/plugins/service-tunnels-admin/.bp-generated/route-runtime.js +6 -0
  45. package/lib/plugins/service-tunnels-admin/.bp-generated/route-runtime.js.map +1 -0
  46. package/lib/plugins/service-tunnels-admin/assets/brand/bettertunnels-horizontal-light.svg +18 -0
  47. package/lib/plugins/service-tunnels-admin/assets/brand/bettertunnels-square-dark-1024x1024.png +0 -0
  48. package/lib/plugins/service-tunnels-admin/assets/brand/favicon.svg +12 -0
  49. package/lib/plugins/service-tunnels-admin/betterportal-logo.png +0 -0
  50. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.d.ts +20 -0
  51. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.d.ts.map +1 -0
  52. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.js +51 -0
  53. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.js.map +1 -0
  54. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.d.ts +5 -0
  55. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.d.ts.map +1 -0
  56. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.js +6 -0
  57. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.js.map +1 -0
  58. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.d.ts +7 -0
  59. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.d.ts.map +1 -0
  60. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.js +12 -0
  61. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.js.map +1 -0
  62. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.d.ts +40 -0
  63. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.d.ts.map +1 -0
  64. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.js +57 -0
  65. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.js.map +1 -0
  66. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.d.ts +6 -0
  67. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.d.ts.map +1 -0
  68. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.js +30 -0
  69. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.js.map +1 -0
  70. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/index.stream.d.ts +6 -0
  71. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/index.stream.d.ts.map +1 -0
  72. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/index.stream.js +9 -0
  73. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/index.stream.js.map +1 -0
  74. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.d.ts +7 -0
  75. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.d.ts.map +1 -0
  76. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.js +14 -0
  77. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.js.map +1 -0
  78. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.d.ts +25 -0
  79. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.d.ts.map +1 -0
  80. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.js +34 -0
  81. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.js.map +1 -0
  82. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.d.ts +5 -0
  83. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.d.ts.map +1 -0
  84. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.js +5 -0
  85. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.js.map +1 -0
  86. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.d.ts +7 -0
  87. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.d.ts.map +1 -0
  88. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.js +12 -0
  89. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.js.map +1 -0
  90. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.d.ts +35 -0
  91. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.d.ts.map +1 -0
  92. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.js +52 -0
  93. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.js.map +1 -0
  94. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.d.ts +5 -0
  95. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.d.ts.map +1 -0
  96. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.js +5 -0
  97. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.js.map +1 -0
  98. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.d.ts +7 -0
  99. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.d.ts.map +1 -0
  100. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.js +12 -0
  101. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.js.map +1 -0
  102. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.d.ts +39 -0
  103. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.d.ts.map +1 -0
  104. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.js +46 -0
  105. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.js.map +1 -0
  106. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.d.ts +5 -0
  107. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.d.ts.map +1 -0
  108. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.js +5 -0
  109. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.js.map +1 -0
  110. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.d.ts +7 -0
  111. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.d.ts.map +1 -0
  112. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.js +14 -0
  113. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.js.map +1 -0
  114. package/lib/plugins/service-tunnels-admin/brand-assets.d.ts +7 -0
  115. package/lib/plugins/service-tunnels-admin/brand-assets.d.ts.map +1 -0
  116. package/lib/plugins/service-tunnels-admin/brand-assets.js +24 -0
  117. package/lib/plugins/service-tunnels-admin/brand-assets.js.map +1 -0
  118. package/lib/plugins/service-tunnels-admin/index.d.ts +64 -0
  119. package/lib/plugins/service-tunnels-admin/index.d.ts.map +1 -0
  120. package/lib/plugins/service-tunnels-admin/index.js +116 -0
  121. package/lib/plugins/service-tunnels-admin/index.js.map +1 -0
  122. package/lib/plugins/service-tunnels-client/ids.d.ts +6 -0
  123. package/lib/plugins/service-tunnels-client/ids.d.ts.map +1 -0
  124. package/lib/plugins/service-tunnels-client/ids.js +17 -0
  125. package/lib/plugins/service-tunnels-client/ids.js.map +1 -0
  126. package/lib/plugins/service-tunnels-client/index.d.ts +166 -0
  127. package/lib/plugins/service-tunnels-client/index.d.ts.map +1 -0
  128. package/lib/plugins/service-tunnels-client/index.js +733 -0
  129. package/lib/plugins/service-tunnels-client/index.js.map +1 -0
  130. package/lib/plugins/service-tunnels-client/registry.d.ts +39 -0
  131. package/lib/plugins/service-tunnels-client/registry.d.ts.map +1 -0
  132. package/lib/plugins/service-tunnels-client/registry.js +20 -0
  133. package/lib/plugins/service-tunnels-client/registry.js.map +1 -0
  134. package/lib/plugins/service-tunnels-client/schemas.d.ts +91 -0
  135. package/lib/plugins/service-tunnels-client/schemas.d.ts.map +1 -0
  136. package/lib/plugins/service-tunnels-client/schemas.js +73 -0
  137. package/lib/plugins/service-tunnels-client/schemas.js.map +1 -0
  138. package/lib/plugins/service-tunnels-proxy/http.d.ts +5 -0
  139. package/lib/plugins/service-tunnels-proxy/http.d.ts.map +1 -0
  140. package/lib/plugins/service-tunnels-proxy/http.js +125 -0
  141. package/lib/plugins/service-tunnels-proxy/http.js.map +1 -0
  142. package/lib/plugins/service-tunnels-proxy/index.d.ts +85 -0
  143. package/lib/plugins/service-tunnels-proxy/index.d.ts.map +1 -0
  144. package/lib/plugins/service-tunnels-proxy/index.js +288 -0
  145. package/lib/plugins/service-tunnels-proxy/index.js.map +1 -0
  146. package/lib/plugins/service-tunnels-proxy/verification.d.ts +31 -0
  147. package/lib/plugins/service-tunnels-proxy/verification.d.ts.map +1 -0
  148. package/lib/plugins/service-tunnels-proxy/verification.js +211 -0
  149. package/lib/plugins/service-tunnels-proxy/verification.js.map +1 -0
  150. package/lib/prisma.d.ts +7 -0
  151. package/lib/prisma.d.ts.map +1 -0
  152. package/lib/prisma.js +149 -0
  153. package/lib/prisma.js.map +1 -0
  154. package/lib/schemas/service-tunnels-admin.json +129 -0
  155. package/lib/schemas/service-tunnels-admin.plugin.json +140 -0
  156. package/lib/schemas/service-tunnels-client.json +320 -0
  157. package/lib/schemas/service-tunnels-client.plugin.json +97 -0
  158. package/lib/schemas/service-tunnels-proxy.json +160 -0
  159. package/lib/schemas/service-tunnels-proxy.plugin.json +123 -0
  160. package/package.json +1 -1
@@ -0,0 +1,320 @@
1
+ {
2
+ "pluginName": "service-tunnels-client",
3
+ "events": {
4
+ "ws.toOrigin": {
5
+ "type": "fire-and-forget",
6
+ "category": "onEvents",
7
+ "description": "Relay a public websocket frame to the connected tunnel client",
8
+ "inputSchema": {
9
+ "anyvaliVersion": "1.0",
10
+ "schemaVersion": "1.1",
11
+ "root": {
12
+ "kind": "object",
13
+ "properties": {
14
+ "publicServerId": {
15
+ "kind": "string"
16
+ },
17
+ "publicSocketId": {
18
+ "kind": "string"
19
+ },
20
+ "hostname": {
21
+ "kind": "string"
22
+ },
23
+ "path": {
24
+ "kind": "string"
25
+ },
26
+ "frameType": {
27
+ "kind": "string"
28
+ },
29
+ "event": {
30
+ "kind": "optional",
31
+ "inner": {
32
+ "kind": "string"
33
+ }
34
+ },
35
+ "body": {
36
+ "kind": "optional",
37
+ "inner": {
38
+ "kind": "string"
39
+ }
40
+ }
41
+ },
42
+ "required": [
43
+ "publicServerId",
44
+ "publicSocketId",
45
+ "hostname",
46
+ "path",
47
+ "frameType"
48
+ ],
49
+ "unknownKeys": "strip"
50
+ },
51
+ "definitions": {},
52
+ "extensions": {
53
+ "bsb": {
54
+ "description": "Public websocket frame to origin"
55
+ }
56
+ }
57
+ },
58
+ "outputSchema": null
59
+ },
60
+ "proxy.metrics": {
61
+ "type": "fire-and-forget",
62
+ "category": "onEvents",
63
+ "description": "Send final proxy request timings to the connected tunnel client",
64
+ "inputSchema": {
65
+ "anyvaliVersion": "1.0",
66
+ "schemaVersion": "1.1",
67
+ "root": {
68
+ "kind": "object",
69
+ "properties": {
70
+ "hostname": {
71
+ "kind": "string"
72
+ },
73
+ "requestId": {
74
+ "kind": "string"
75
+ },
76
+ "totalMs": {
77
+ "kind": "number"
78
+ },
79
+ "clientApiRoundtripMs": {
80
+ "kind": "optional",
81
+ "inner": {
82
+ "kind": "number"
83
+ }
84
+ },
85
+ "cliOverheadMs": {
86
+ "kind": "optional",
87
+ "inner": {
88
+ "kind": "number"
89
+ }
90
+ },
91
+ "originMs": {
92
+ "kind": "optional",
93
+ "inner": {
94
+ "kind": "number"
95
+ }
96
+ },
97
+ "internalServerMs": {
98
+ "kind": "optional",
99
+ "inner": {
100
+ "kind": "number"
101
+ }
102
+ }
103
+ },
104
+ "required": [
105
+ "hostname",
106
+ "requestId",
107
+ "totalMs"
108
+ ],
109
+ "unknownKeys": "strip"
110
+ },
111
+ "definitions": {},
112
+ "extensions": {
113
+ "bsb": {
114
+ "description": "Proxy request metrics"
115
+ }
116
+ }
117
+ },
118
+ "outputSchema": null
119
+ },
120
+ "proxy.request": {
121
+ "type": "returnable",
122
+ "category": "onReturnableEvents",
123
+ "description": "Proxy an HTTP request through a connected tunnel client",
124
+ "defaultTimeout": 60,
125
+ "inputSchema": {
126
+ "anyvaliVersion": "1.0",
127
+ "schemaVersion": "1.1",
128
+ "root": {
129
+ "kind": "object",
130
+ "properties": {
131
+ "hostname": {
132
+ "kind": "string"
133
+ },
134
+ "method": {
135
+ "kind": "string"
136
+ },
137
+ "path": {
138
+ "kind": "string"
139
+ },
140
+ "headers": {
141
+ "kind": "record",
142
+ "valueSchema": {
143
+ "kind": "string"
144
+ }
145
+ },
146
+ "body": {
147
+ "kind": "optional",
148
+ "inner": {
149
+ "kind": "string"
150
+ }
151
+ },
152
+ "webStartedAt": {
153
+ "kind": "number"
154
+ }
155
+ },
156
+ "required": [
157
+ "hostname",
158
+ "method",
159
+ "path",
160
+ "headers",
161
+ "webStartedAt"
162
+ ],
163
+ "unknownKeys": "strip"
164
+ },
165
+ "definitions": {},
166
+ "extensions": {
167
+ "bsb": {
168
+ "description": "Proxy request"
169
+ }
170
+ }
171
+ },
172
+ "outputSchema": {
173
+ "anyvaliVersion": "1.0",
174
+ "schemaVersion": "1.1",
175
+ "root": {
176
+ "kind": "object",
177
+ "properties": {
178
+ "requestId": {
179
+ "kind": "string"
180
+ },
181
+ "ownerServerId": {
182
+ "kind": "string"
183
+ },
184
+ "status": {
185
+ "kind": "number"
186
+ },
187
+ "headers": {
188
+ "kind": "record",
189
+ "valueSchema": {
190
+ "kind": "string"
191
+ }
192
+ },
193
+ "body": {
194
+ "kind": "string"
195
+ },
196
+ "webStartedAt": {
197
+ "kind": "number"
198
+ },
199
+ "clientApiRoundtripMs": {
200
+ "kind": "number"
201
+ },
202
+ "cliOverheadMs": {
203
+ "kind": "optional",
204
+ "inner": {
205
+ "kind": "number"
206
+ }
207
+ },
208
+ "originMs": {
209
+ "kind": "optional",
210
+ "inner": {
211
+ "kind": "number"
212
+ }
213
+ }
214
+ },
215
+ "required": [
216
+ "requestId",
217
+ "ownerServerId",
218
+ "status",
219
+ "headers",
220
+ "body",
221
+ "webStartedAt",
222
+ "clientApiRoundtripMs"
223
+ ],
224
+ "unknownKeys": "strip"
225
+ },
226
+ "definitions": {},
227
+ "extensions": {
228
+ "bsb": {
229
+ "description": "Proxy response"
230
+ }
231
+ }
232
+ }
233
+ }
234
+ },
235
+ "version": "1.0.26",
236
+ "configSchema": {
237
+ "anyvaliVersion": "1.0",
238
+ "schemaVersion": "1.1",
239
+ "root": {
240
+ "kind": "object",
241
+ "properties": {
242
+ "database": {
243
+ "kind": "object",
244
+ "properties": {
245
+ "connectionString": {
246
+ "kind": "string",
247
+ "minLength": 1,
248
+ "metadata": {
249
+ "description": "PostgreSQL connection string"
250
+ }
251
+ }
252
+ },
253
+ "required": [
254
+ "connectionString"
255
+ ],
256
+ "unknownKeys": "strip",
257
+ "metadata": {
258
+ "description": "Database configuration"
259
+ }
260
+ },
261
+ "port": {
262
+ "kind": "number",
263
+ "default": 8081,
264
+ "metadata": {
265
+ "description": "Client API listener port"
266
+ }
267
+ },
268
+ "domain": {
269
+ "kind": "string",
270
+ "default": "tunnels.betterportal.dev",
271
+ "metadata": {
272
+ "description": "Default public tunnel domain"
273
+ }
274
+ },
275
+ "publicUrl": {
276
+ "kind": "string",
277
+ "default": "https://tunnels.betterportal.dev",
278
+ "metadata": {
279
+ "description": "Public base URL"
280
+ }
281
+ },
282
+ "authAppBaseUrl": {
283
+ "kind": "string",
284
+ "default": "https://betterportal.cloud",
285
+ "metadata": {
286
+ "description": "BetterPortal app URL used for CLI auth"
287
+ }
288
+ },
289
+ "authVerifyPath": {
290
+ "kind": "string",
291
+ "default": "/cli-auth/verify",
292
+ "metadata": {
293
+ "description": "BetterPortal CLI auth verify route"
294
+ }
295
+ }
296
+ },
297
+ "required": [
298
+ "database",
299
+ "port",
300
+ "domain",
301
+ "publicUrl",
302
+ "authAppBaseUrl",
303
+ "authVerifyPath"
304
+ ],
305
+ "unknownKeys": "strip",
306
+ "metadata": {
307
+ "description": "service-tunnels-client config"
308
+ }
309
+ },
310
+ "definitions": {},
311
+ "extensions": {}
312
+ },
313
+ "pluginType": "service",
314
+ "dependencies": [
315
+ {
316
+ "id": "betterportal/service-tunnels-proxy.js",
317
+ "version": "1.0.26"
318
+ }
319
+ ]
320
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "id": "service-tunnels-client",
3
+ "name": "service-tunnels-client",
4
+ "version": "1.0.26",
5
+ "description": "Client websocket/API service",
6
+ "category": "service",
7
+ "tags": [
8
+ "service",
9
+ "websocket",
10
+ "tunnel"
11
+ ],
12
+ "documentation": [],
13
+ "dependencies": [
14
+ {
15
+ "id": "betterportal/service-tunnels-proxy.js",
16
+ "version": "1.0.26"
17
+ }
18
+ ],
19
+ "license": "(AGPL-3.0-only OR Commercial)",
20
+ "configSchema": {
21
+ "anyvaliVersion": "1.0",
22
+ "schemaVersion": "1.1",
23
+ "root": {
24
+ "kind": "object",
25
+ "properties": {
26
+ "database": {
27
+ "kind": "object",
28
+ "properties": {
29
+ "connectionString": {
30
+ "kind": "string",
31
+ "minLength": 1,
32
+ "metadata": {
33
+ "description": "PostgreSQL connection string"
34
+ }
35
+ }
36
+ },
37
+ "required": [
38
+ "connectionString"
39
+ ],
40
+ "unknownKeys": "strip",
41
+ "metadata": {
42
+ "description": "Database configuration"
43
+ }
44
+ },
45
+ "port": {
46
+ "kind": "number",
47
+ "default": 8081,
48
+ "metadata": {
49
+ "description": "Client API listener port"
50
+ }
51
+ },
52
+ "domain": {
53
+ "kind": "string",
54
+ "default": "tunnels.betterportal.dev",
55
+ "metadata": {
56
+ "description": "Default public tunnel domain"
57
+ }
58
+ },
59
+ "publicUrl": {
60
+ "kind": "string",
61
+ "default": "https://tunnels.betterportal.dev",
62
+ "metadata": {
63
+ "description": "Public base URL"
64
+ }
65
+ },
66
+ "authAppBaseUrl": {
67
+ "kind": "string",
68
+ "default": "https://betterportal.cloud",
69
+ "metadata": {
70
+ "description": "BetterPortal app URL used for CLI auth"
71
+ }
72
+ },
73
+ "authVerifyPath": {
74
+ "kind": "string",
75
+ "default": "/cli-auth/verify",
76
+ "metadata": {
77
+ "description": "BetterPortal CLI auth verify route"
78
+ }
79
+ }
80
+ },
81
+ "required": [
82
+ "database",
83
+ "port",
84
+ "domain",
85
+ "publicUrl",
86
+ "authAppBaseUrl",
87
+ "authVerifyPath"
88
+ ],
89
+ "unknownKeys": "strip",
90
+ "metadata": {
91
+ "description": "service-tunnels-client config"
92
+ }
93
+ },
94
+ "definitions": {},
95
+ "extensions": {}
96
+ }
97
+ }
@@ -0,0 +1,160 @@
1
+ {
2
+ "pluginName": "service-tunnels-proxy",
3
+ "events": {
4
+ "ws.fromOrigin": {
5
+ "type": "fire-and-forget",
6
+ "category": "onEvents",
7
+ "description": "Relay an origin websocket frame to the public websocket",
8
+ "inputSchema": {
9
+ "anyvaliVersion": "1.0",
10
+ "schemaVersion": "1.1",
11
+ "root": {
12
+ "kind": "object",
13
+ "properties": {
14
+ "publicSocketId": {
15
+ "kind": "string"
16
+ },
17
+ "frameType": {
18
+ "kind": "string"
19
+ },
20
+ "event": {
21
+ "kind": "optional",
22
+ "inner": {
23
+ "kind": "string"
24
+ }
25
+ },
26
+ "body": {
27
+ "kind": "optional",
28
+ "inner": {
29
+ "kind": "string"
30
+ }
31
+ }
32
+ },
33
+ "required": [
34
+ "publicSocketId",
35
+ "frameType"
36
+ ],
37
+ "unknownKeys": "strip"
38
+ },
39
+ "definitions": {},
40
+ "extensions": {
41
+ "bsb": {
42
+ "description": "Origin websocket frame to public client"
43
+ }
44
+ }
45
+ },
46
+ "outputSchema": null
47
+ }
48
+ },
49
+ "version": "1.0.26",
50
+ "configSchema": {
51
+ "anyvaliVersion": "1.0",
52
+ "schemaVersion": "1.1",
53
+ "root": {
54
+ "kind": "object",
55
+ "properties": {
56
+ "database": {
57
+ "kind": "object",
58
+ "properties": {
59
+ "connectionString": {
60
+ "kind": "string",
61
+ "minLength": 1,
62
+ "metadata": {
63
+ "description": "PostgreSQL connection string"
64
+ }
65
+ }
66
+ },
67
+ "required": [
68
+ "connectionString"
69
+ ],
70
+ "unknownKeys": "strip",
71
+ "metadata": {
72
+ "description": "Database configuration"
73
+ }
74
+ },
75
+ "port": {
76
+ "kind": "number",
77
+ "default": 8080,
78
+ "metadata": {
79
+ "description": "Public web listener port"
80
+ }
81
+ },
82
+ "domain": {
83
+ "kind": "string",
84
+ "default": "tunnels.betterportal.dev",
85
+ "metadata": {
86
+ "description": "Tunnel root domain"
87
+ }
88
+ },
89
+ "verificationHost": {
90
+ "kind": "string",
91
+ "default": "verify.tunnels.betterportal.dev",
92
+ "metadata": {
93
+ "description": "Verification host"
94
+ }
95
+ },
96
+ "cookieSecret": {
97
+ "kind": "string",
98
+ "default": "dev-cookie-secret",
99
+ "metadata": {
100
+ "description": "Signed verification cookie secret"
101
+ }
102
+ },
103
+ "turnstileSiteKey": {
104
+ "kind": "optional",
105
+ "inner": {
106
+ "kind": "string"
107
+ },
108
+ "metadata": {
109
+ "description": "Cloudflare Turnstile site key"
110
+ }
111
+ },
112
+ "turnstileSecretKey": {
113
+ "kind": "optional",
114
+ "inner": {
115
+ "kind": "string"
116
+ },
117
+ "metadata": {
118
+ "description": "Cloudflare Turnstile secret key"
119
+ }
120
+ },
121
+ "maxHeaderBytes": {
122
+ "kind": "number",
123
+ "default": 32768,
124
+ "metadata": {
125
+ "description": "Maximum accepted request header bytes"
126
+ }
127
+ },
128
+ "maxBodyBytes": {
129
+ "kind": "number",
130
+ "default": 2097152,
131
+ "metadata": {
132
+ "description": "Maximum accepted request body bytes"
133
+ }
134
+ }
135
+ },
136
+ "required": [
137
+ "database",
138
+ "port",
139
+ "domain",
140
+ "verificationHost",
141
+ "cookieSecret",
142
+ "maxHeaderBytes",
143
+ "maxBodyBytes"
144
+ ],
145
+ "unknownKeys": "strip",
146
+ "metadata": {
147
+ "description": "service-tunnels-proxy config"
148
+ }
149
+ },
150
+ "definitions": {},
151
+ "extensions": {}
152
+ },
153
+ "pluginType": "service",
154
+ "dependencies": [
155
+ {
156
+ "id": "betterportal/service-tunnels-client.js",
157
+ "version": "1.0.26"
158
+ }
159
+ ]
160
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "id": "service-tunnels-proxy",
3
+ "name": "service-tunnels-proxy",
4
+ "version": "1.0.26",
5
+ "description": "Front-facing H3 tunnel service",
6
+ "category": "service",
7
+ "tags": [
8
+ "service",
9
+ "h3",
10
+ "tunnel"
11
+ ],
12
+ "documentation": [],
13
+ "dependencies": [
14
+ {
15
+ "id": "betterportal/service-tunnels-client.js",
16
+ "version": "1.0.26"
17
+ }
18
+ ],
19
+ "license": "(AGPL-3.0-only OR Commercial)",
20
+ "configSchema": {
21
+ "anyvaliVersion": "1.0",
22
+ "schemaVersion": "1.1",
23
+ "root": {
24
+ "kind": "object",
25
+ "properties": {
26
+ "database": {
27
+ "kind": "object",
28
+ "properties": {
29
+ "connectionString": {
30
+ "kind": "string",
31
+ "minLength": 1,
32
+ "metadata": {
33
+ "description": "PostgreSQL connection string"
34
+ }
35
+ }
36
+ },
37
+ "required": [
38
+ "connectionString"
39
+ ],
40
+ "unknownKeys": "strip",
41
+ "metadata": {
42
+ "description": "Database configuration"
43
+ }
44
+ },
45
+ "port": {
46
+ "kind": "number",
47
+ "default": 8080,
48
+ "metadata": {
49
+ "description": "Public web listener port"
50
+ }
51
+ },
52
+ "domain": {
53
+ "kind": "string",
54
+ "default": "tunnels.betterportal.dev",
55
+ "metadata": {
56
+ "description": "Tunnel root domain"
57
+ }
58
+ },
59
+ "verificationHost": {
60
+ "kind": "string",
61
+ "default": "verify.tunnels.betterportal.dev",
62
+ "metadata": {
63
+ "description": "Verification host"
64
+ }
65
+ },
66
+ "cookieSecret": {
67
+ "kind": "string",
68
+ "default": "dev-cookie-secret",
69
+ "metadata": {
70
+ "description": "Signed verification cookie secret"
71
+ }
72
+ },
73
+ "turnstileSiteKey": {
74
+ "kind": "optional",
75
+ "inner": {
76
+ "kind": "string"
77
+ },
78
+ "metadata": {
79
+ "description": "Cloudflare Turnstile site key"
80
+ }
81
+ },
82
+ "turnstileSecretKey": {
83
+ "kind": "optional",
84
+ "inner": {
85
+ "kind": "string"
86
+ },
87
+ "metadata": {
88
+ "description": "Cloudflare Turnstile secret key"
89
+ }
90
+ },
91
+ "maxHeaderBytes": {
92
+ "kind": "number",
93
+ "default": 32768,
94
+ "metadata": {
95
+ "description": "Maximum accepted request header bytes"
96
+ }
97
+ },
98
+ "maxBodyBytes": {
99
+ "kind": "number",
100
+ "default": 2097152,
101
+ "metadata": {
102
+ "description": "Maximum accepted request body bytes"
103
+ }
104
+ }
105
+ },
106
+ "required": [
107
+ "database",
108
+ "port",
109
+ "domain",
110
+ "verificationHost",
111
+ "cookieSecret",
112
+ "maxHeaderBytes",
113
+ "maxBodyBytes"
114
+ ],
115
+ "unknownKeys": "strip",
116
+ "metadata": {
117
+ "description": "service-tunnels-proxy config"
118
+ }
119
+ },
120
+ "definitions": {},
121
+ "extensions": {}
122
+ }
123
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterportal/tunnels",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "type": "module",
5
5
  "license": "(AGPL-3.0-only OR Commercial)",
6
6
  "repository": {