@inkbox/sdk 0.3.2 → 0.4.1

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 (78) hide show
  1. package/README.md +71 -31
  2. package/dist/agent_identity.d.ts +28 -31
  3. package/dist/agent_identity.d.ts.map +1 -1
  4. package/dist/agent_identity.js +34 -58
  5. package/dist/agent_identity.js.map +1 -1
  6. package/dist/identities/exceptions.d.ts +35 -0
  7. package/dist/identities/exceptions.d.ts.map +1 -0
  8. package/dist/identities/exceptions.js +49 -0
  9. package/dist/identities/exceptions.js.map +1 -0
  10. package/dist/identities/resources/identities.d.ts +36 -25
  11. package/dist/identities/resources/identities.d.ts.map +1 -1
  12. package/dist/identities/resources/identities.js +61 -31
  13. package/dist/identities/resources/identities.js.map +1 -1
  14. package/dist/identities/types.d.ts +38 -12
  15. package/dist/identities/types.d.ts.map +1 -1
  16. package/dist/identities/types.js +13 -3
  17. package/dist/identities/types.js.map +1 -1
  18. package/dist/index.d.ts +8 -6
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/inkbox.d.ts +26 -9
  23. package/dist/inkbox.d.ts.map +1 -1
  24. package/dist/inkbox.js +42 -27
  25. package/dist/inkbox.js.map +1 -1
  26. package/dist/mail/resources/mailboxes.d.ts +4 -28
  27. package/dist/mail/resources/mailboxes.d.ts.map +1 -1
  28. package/dist/mail/resources/mailboxes.js +4 -37
  29. package/dist/mail/resources/mailboxes.js.map +1 -1
  30. package/dist/mail/types.d.ts +4 -7
  31. package/dist/mail/types.d.ts.map +1 -1
  32. package/dist/mail/types.js +0 -1
  33. package/dist/mail/types.js.map +1 -1
  34. package/dist/phone/resources/smsOptIns.d.ts +37 -0
  35. package/dist/phone/resources/smsOptIns.d.ts.map +1 -0
  36. package/dist/phone/resources/smsOptIns.js +60 -0
  37. package/dist/phone/resources/smsOptIns.js.map +1 -0
  38. package/dist/phone/types.d.ts +47 -0
  39. package/dist/phone/types.d.ts.map +1 -1
  40. package/dist/phone/types.js +31 -0
  41. package/dist/phone/types.js.map +1 -1
  42. package/dist/tunnels/_reserved_names.d.ts +22 -0
  43. package/dist/tunnels/_reserved_names.d.ts.map +1 -0
  44. package/dist/tunnels/_reserved_names.js +149 -0
  45. package/dist/tunnels/_reserved_names.js.map +1 -0
  46. package/dist/tunnels/_validation.d.ts +16 -1
  47. package/dist/tunnels/_validation.d.ts.map +1 -1
  48. package/dist/tunnels/_validation.js +33 -8
  49. package/dist/tunnels/_validation.js.map +1 -1
  50. package/dist/tunnels/client/_protocol.d.ts +1 -1
  51. package/dist/tunnels/client/_protocol.js +1 -1
  52. package/dist/tunnels/client/_protocol.js.map +1 -1
  53. package/dist/tunnels/client/_runtime.d.ts +3 -2
  54. package/dist/tunnels/client/_runtime.d.ts.map +1 -1
  55. package/dist/tunnels/client/_runtime.js +7 -7
  56. package/dist/tunnels/client/_runtime.js.map +1 -1
  57. package/dist/tunnels/client/_state.d.ts +0 -13
  58. package/dist/tunnels/client/_state.d.ts.map +1 -1
  59. package/dist/tunnels/client/_state.js +0 -27
  60. package/dist/tunnels/client/_state.js.map +1 -1
  61. package/dist/tunnels/client/index.d.ts +13 -13
  62. package/dist/tunnels/client/index.d.ts.map +1 -1
  63. package/dist/tunnels/client/index.js +20 -65
  64. package/dist/tunnels/client/index.js.map +1 -1
  65. package/dist/tunnels/exceptions.d.ts +8 -6
  66. package/dist/tunnels/exceptions.d.ts.map +1 -1
  67. package/dist/tunnels/exceptions.js +12 -26
  68. package/dist/tunnels/exceptions.js.map +1 -1
  69. package/dist/tunnels/resources/tunnels.d.ts +9 -38
  70. package/dist/tunnels/resources/tunnels.d.ts.map +1 -1
  71. package/dist/tunnels/resources/tunnels.js +10 -92
  72. package/dist/tunnels/resources/tunnels.js.map +1 -1
  73. package/dist/tunnels/types.d.ts +17 -33
  74. package/dist/tunnels/types.d.ts.map +1 -1
  75. package/dist/tunnels/types.js +13 -23
  76. package/dist/tunnels/types.js.map +1 -1
  77. package/package.json +1 -1
  78. package/protocol/tunnel_protocol_constants.json +1 -1
@@ -12,11 +12,11 @@
12
12
  * (`@inkbox/sdk`) stays browser-safe; only this subpath gates on Node.
13
13
  */
14
14
  import { POOL_SIZE_MAX, POOL_SIZE_MIN } from "../resources/tunnels.js";
15
- import { TunnelRemoved, TunnelSecretUnavailable, TunnelStateConflict, } from "../exceptions.js";
15
+ import { TunnelNotProvisioned, TunnelRemoved, TunnelStateConflict, } from "../exceptions.js";
16
16
  import { validateTunnelName } from "../_validation.js";
17
- import { TLSMode, TunnelStatus } from "../types.js";
17
+ import { TLSMode } from "../types.js";
18
18
  import { validateForwardTarget, } from "./_validation.js";
19
- import { defaultStateDir, ensurePrivateStateDir, loadState, printSecretOnce, saveState, } from "./_state.js";
19
+ import { defaultStateDir, ensurePrivateStateDir, loadState, saveState, } from "./_state.js";
20
20
  import { TunnelListenerImpl, } from "./_listener.js";
21
21
  import { DEFAULT_INBOUND_BODY_BYTES, DEFAULT_OUTBOUND_BODY_BYTES, TunnelRuntime, } from "./_runtime.js";
22
22
  export { ForwardTargetRefused, validateEnvelopePath, validateForwardTarget, } from "./_validation.js";
@@ -30,7 +30,7 @@ export const PROD_ZONE = "inkboxwire.com";
30
30
  * `wsHandler` set without an HTTP path.
31
31
  *
32
32
  * Validation runs synchronously before any control-plane writes: a
33
- * tunnel is never created or restored for an invalid configuration.
33
+ * tunnel is never opened for an invalid configuration.
34
34
  */
35
35
  export class InvalidConnectOptions extends Error {
36
36
  constructor(message) {
@@ -38,6 +38,7 @@ export class InvalidConnectOptions extends Error {
38
38
  this.name = "InvalidConnectOptions";
39
39
  }
40
40
  }
41
+ export { TunnelNotProvisioned } from "../exceptions.js";
41
42
  function validatePoolSize(poolSize) {
42
43
  if (poolSize === undefined)
43
44
  return;
@@ -67,15 +68,17 @@ function validateDispatchOptions(opts) {
67
68
  }
68
69
  }
69
70
  function resolveZoneAndHost(opts) {
70
- const publicHost = opts.serverPublicHost ?? opts.state?.publicHost ?? `${opts.name}.${PROD_ZONE}`;
71
- const zone = opts.dataPlaneZoneOverride ??
72
- opts.serverZone ??
73
- opts.state?.zone ??
74
- PROD_ZONE;
75
- return { zone, publicHost };
71
+ const zone = opts.dataPlaneZoneOverride ?? opts.serverZone;
72
+ return { zone, publicHost: opts.serverPublicHost };
76
73
  }
77
74
  /**
78
75
  * Bring a tunnel online from this Node process.
76
+ *
77
+ * The tunnel must already exist in the calling org (provisioned by
78
+ * `inkbox.createIdentity(...)`). Data-plane authentication uses the
79
+ * same API key the `inkbox` client was constructed with — an
80
+ * identity-scoped key must match the tunnel's identity, or an
81
+ * admin-scoped key in the same org.
79
82
  */
80
83
  export async function connect(inkbox, options) {
81
84
  // --- Synchronous validation (cheap; runs before any disk or server I/O) ---
@@ -87,17 +90,9 @@ export async function connect(inkbox, options) {
87
90
  allowRemoteForwarding: options.allowRemoteForwarding,
88
91
  });
89
92
  }
90
- const tlsMode = (typeof options.tlsMode === "string"
91
- ? options.tlsMode
92
- : options.tlsMode) ?? TLSMode.EDGE;
93
- // Passthrough accepts both http:// and https:// forwardTo URLs.
94
- // UpstreamUrlDispatch builds undici's tls.connect options from
95
- // forwardToVerifyTls / forwardToCaBundle for https:// upstreams.
96
- const onPendingRemoval = options.onPendingRemoval ?? "auto_restore";
97
93
  const stateDirPath = options.stateDir ?? defaultStateDir(options.name);
98
94
  ensurePrivateStateDir(stateDirPath);
99
95
  const state = loadState(stateDirPath);
100
- let secret = options.secret ?? state?.secret ?? null;
101
96
  let tunnel = null;
102
97
  if (state?.tunnelId) {
103
98
  try {
@@ -107,7 +102,7 @@ export async function connect(inkbox, options) {
107
102
  const apiErr = err;
108
103
  if (apiErr?.statusCode === 404) {
109
104
  throw new TunnelRemoved(`tunnel ${options.name} (id=${state.tunnelId}) has been removed; ` +
110
- `clear ${stateDirPath} and call inkbox.tunnels.create() to start fresh`);
105
+ `clear ${stateDirPath} and call inkbox.createIdentity(${JSON.stringify(options.name)}) to start fresh`);
111
106
  }
112
107
  throw err;
113
108
  }
@@ -117,47 +112,9 @@ export async function connect(inkbox, options) {
117
112
  tunnel = list.find((t) => t.tunnelName === options.name) ?? null;
118
113
  }
119
114
  if (!tunnel) {
120
- const created = await inkbox.tunnels.create({
121
- tunnelName: options.name,
122
- tlsMode,
123
- description: options.description,
124
- });
125
- tunnel = created.tunnel;
126
- secret = created.connectSecret;
127
- saveState(stateDirPath, {
128
- tunnelId: tunnel.id,
129
- name: options.name,
130
- secret,
131
- mode: tlsMode,
132
- zone: tunnel.zone,
133
- publicHost: tunnel.publicHost,
134
- });
135
- printSecretOnce({
136
- secret,
137
- statePath: `${stateDirPath}/state.json`,
138
- printToStderr: options.printSecretToStderr ?? null,
139
- });
140
- }
141
- else {
142
- if (tunnel.tlsMode !== tlsMode) {
143
- throw new TunnelStateConflict(409, `tls_mode mismatch: requested ${tlsMode} but tunnel reports ${tunnel.tlsMode}. ` +
144
- "tls_mode is fixed at creation; delete the tunnel and recreate to change it.");
145
- }
146
- if (tunnel.status === TunnelStatus.PENDING_REMOVAL) {
147
- if (onPendingRemoval === "error") {
148
- throw new TunnelStateConflict(409, `tunnel ${options.name} is in pending_removal; pass ` +
149
- "onPendingRemoval: 'auto_restore' to bring it back");
150
- }
151
- if (!secret) {
152
- throw new TunnelSecretUnavailable(`connect_secret not available locally for tunnel ${options.name}; ` +
153
- "pass secret explicitly, or rotate via inkbox.tunnels.rotateSecret(id) first.");
154
- }
155
- tunnel = await inkbox.tunnels.restore(tunnel.id);
156
- }
157
- if (!secret) {
158
- throw new TunnelSecretUnavailable(`connect_secret not available locally for tunnel ${options.name}; ` +
159
- "pass secret explicitly, or rotate via inkbox.tunnels.rotateSecret(id) first.");
160
- }
115
+ throw new TunnelNotProvisioned(`no tunnel named ${JSON.stringify(options.name)} exists in this org. ` +
116
+ "Tunnels are provisioned atomically by inkbox.createIdentity(<handle>); " +
117
+ `call inkbox.createIdentity(${JSON.stringify(options.name)}) first.`);
161
118
  }
162
119
  // For passthrough, lazy-load _cert.ts so the edge-mode bundle stays
163
120
  // clean of @peculiar/x509. The dynamic import keeps the dep out of
@@ -171,9 +128,8 @@ export async function connect(inkbox, options) {
171
128
  const cert = await import("./_cert.js");
172
129
  const tls = await import("./_tls.js");
173
130
  const keypair = await cert.loadOrCreateKeypair(stateDirPath);
174
- const tunnelPublicHost = tunnel.publicHost ?? `${options.name}.${PROD_ZONE}`;
175
131
  if (await cert.certNeedsSign(stateDirPath, keypair)) {
176
- const csrPem = await cert.buildCsr(keypair, tunnelPublicHost);
132
+ const csrPem = await cert.buildCsr(keypair, tunnel.publicHost);
177
133
  const signed = await inkbox.tunnels.signCsr(tunnel.id, { csrPem });
178
134
  cert.writeCertChain(stateDirPath, signed.certPem, signed.chainPem);
179
135
  }
@@ -199,20 +155,18 @@ export async function connect(inkbox, options) {
199
155
  name: options.name,
200
156
  serverZone: tunnel.zone,
201
157
  serverPublicHost: tunnel.publicHost,
202
- state,
203
158
  dataPlaneZoneOverride: options.dataPlaneZone ?? null,
204
159
  });
205
160
  saveState(stateDirPath, {
206
161
  tunnelId: tunnel.id,
207
162
  name: options.name,
208
- secret,
209
163
  mode: tunnel.tlsMode,
210
164
  zone,
211
165
  publicHost,
212
166
  });
213
167
  const runtime = new TunnelRuntime({
214
168
  tunnelId: tunnel.id,
215
- secret,
169
+ apiKey: inkbox._apiKey,
216
170
  zone,
217
171
  publicHost,
218
172
  poolSize: options.poolSize ?? null,
@@ -239,4 +193,5 @@ export async function connect(inkbox, options) {
239
193
  listenerOpts,
240
194
  });
241
195
  }
196
+ void TunnelStateConflict; // retained for re-export breadth on the surviving surface
242
197
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tunnels/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tunnels/client/index.ts"],"names":[],"mappings":"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"}
@@ -10,22 +10,24 @@ export declare class TunnelError extends InkboxError {
10
10
  export declare class TunnelNameInvalid extends TunnelError {
11
11
  constructor(message: string);
12
12
  }
13
- export declare class TunnelSecretUnavailable extends TunnelError {
14
- constructor(message: string);
15
- }
16
13
  export declare class TunnelRemoved extends TunnelError {
17
14
  constructor(message: string);
18
15
  }
19
16
  export declare class TunnelStateConflict extends InkboxAPIError {
20
17
  constructor(statusCode: number, detail: InkboxAPIErrorDetail);
21
18
  }
22
- export declare class TunnelNameUnavailable extends InkboxAPIError {
23
- constructor(statusCode: number, detail: InkboxAPIErrorDetail);
24
- }
25
19
  export declare class TunnelTLSModeMismatch extends InkboxAPIError {
26
20
  constructor(statusCode: number, detail: InkboxAPIErrorDetail);
27
21
  }
28
22
  export declare class TunnelCSRStateConflict extends TunnelStateConflict {
29
23
  constructor(statusCode: number, detail: InkboxAPIErrorDetail);
30
24
  }
25
+ /**
26
+ * Raised by `connect()` when no tunnel exists for the supplied name in
27
+ * the calling org. Tunnels are provisioned atomically as part of
28
+ * `inkbox.createIdentity(...)`; they have no standalone create surface.
29
+ */
30
+ export declare class TunnelNotProvisioned extends TunnelError {
31
+ constructor(message: string);
32
+ }
31
33
  //# sourceMappingURL=exceptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,qBAAa,WAAY,SAAQ,WAAW;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,uBAAwB,SAAQ,WAAW;gBAC1C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,WAAW;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAgBD,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED,qBAAa,sBAAuB,SAAQ,mBAAmB;gBACjD,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D"}
1
+ {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,qBAAa,WAAY,SAAQ,WAAW;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,WAAW;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED,qBAAa,sBAAuB,SAAQ,mBAAmB;gBACjD,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;gBACvC,OAAO,EAAE,MAAM;CAI5B"}
@@ -16,41 +16,16 @@ export class TunnelNameInvalid extends TunnelError {
16
16
  this.name = "TunnelNameInvalid";
17
17
  }
18
18
  }
19
- export class TunnelSecretUnavailable extends TunnelError {
20
- constructor(message) {
21
- super(message);
22
- this.name = "TunnelSecretUnavailable";
23
- }
24
- }
25
19
  export class TunnelRemoved extends TunnelError {
26
20
  constructor(message) {
27
21
  super(message);
28
22
  this.name = "TunnelRemoved";
29
23
  }
30
24
  }
31
- function sanitizeDetail(detail) {
32
- const sanitizeStr = (s) => s.replace(/delete_pending/g, "pending_removal").replace(/deleted/g, "removed");
33
- if (typeof detail === "string")
34
- return sanitizeStr(detail);
35
- if (detail && typeof detail === "object") {
36
- const out = {};
37
- for (const [k, v] of Object.entries(detail)) {
38
- out[k] = typeof v === "string" ? sanitizeStr(v) : v;
39
- }
40
- return out;
41
- }
42
- return detail;
43
- }
44
25
  export class TunnelStateConflict extends InkboxAPIError {
45
- constructor(statusCode, detail) {
46
- super(statusCode, sanitizeDetail(detail));
47
- this.name = "TunnelStateConflict";
48
- }
49
- }
50
- export class TunnelNameUnavailable extends InkboxAPIError {
51
26
  constructor(statusCode, detail) {
52
27
  super(statusCode, detail);
53
- this.name = "TunnelNameUnavailable";
28
+ this.name = "TunnelStateConflict";
54
29
  }
55
30
  }
56
31
  export class TunnelTLSModeMismatch extends InkboxAPIError {
@@ -65,4 +40,15 @@ export class TunnelCSRStateConflict extends TunnelStateConflict {
65
40
  this.name = "TunnelCSRStateConflict";
66
41
  }
67
42
  }
43
+ /**
44
+ * Raised by `connect()` when no tunnel exists for the supplied name in
45
+ * the calling org. Tunnels are provisioned atomically as part of
46
+ * `inkbox.createIdentity(...)`; they have no standalone create surface.
47
+ */
48
+ export class TunnelNotProvisioned extends TunnelError {
49
+ constructor(message) {
50
+ super(message);
51
+ this.name = "TunnelNotProvisioned";
52
+ }
53
+ }
68
54
  //# sourceMappingURL=exceptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,GAEZ,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,SAAS,cAAc,CAAC,MAA4B;IAClD,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CACxC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjF,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACvD,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACvD,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7D,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,GAEZ,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACvD,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7D,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
@@ -1,20 +1,16 @@
1
1
  /**
2
2
  * inkbox-tunnels/resources/tunnels.ts
3
3
  *
4
- * Control-plane CRUD for tunnels. Wraps `/api/v1/tunnels/*`.
4
+ * Control-plane reads + update + sign-csr for tunnels. Tunnels are
5
+ * created and deleted exclusively via identity-create / identity-delete
6
+ * cascades; there is no standalone create / delete / restore /
7
+ * force-delete / rotate-secret surface.
5
8
  */
6
9
  import { HttpTransport } from "../../_http.js";
7
- import { CreatedTunnel, RotatedSecret, SignedCert, TLSMode, Tunnel } from "../types.js";
10
+ import { SignedCert, Tunnel } from "../types.js";
8
11
  export declare const POOL_SIZE_MIN = 1;
9
12
  export declare const POOL_SIZE_MAX = 32;
10
- export interface CreateTunnelOptions {
11
- tunnelName: string;
12
- tlsMode?: TLSMode | "edge" | "passthrough";
13
- description?: string | null;
14
- }
15
13
  export interface UpdateTunnelOptions {
16
- /** Pass `null` to clear; omit to leave unchanged. */
17
- description?: string | null;
18
14
  /**
19
15
  * Pass `{}` or `null` to clear (the server's column is non-nullable
20
16
  * and collapses both forms to `{}`); omit to leave unchanged.
@@ -27,38 +23,13 @@ export declare class TunnelsResource {
27
23
  list(): Promise<Tunnel[]>;
28
24
  get(tunnelId: string): Promise<Tunnel>;
29
25
  /**
30
- * Create a new tunnel. Persist the returned `connectSecret` immediately —
31
- * it is shown ONCE.
32
- */
33
- create(options: CreateTunnelOptions): Promise<CreatedTunnel>;
34
- /**
35
- * Update a tunnel. Pass only the fields you want to change.
26
+ * Update a tunnel's metadata. `metadata` is the only mutable field;
27
+ * other tunnel attributes are derived from the owning identity.
36
28
  *
37
- * - `description: null` clears the description.
38
- * - `metadata: {}` clears metadata. `metadata` cannot be `null`
39
- * (rejected client-side); pass `{}` to clear.
29
+ * - `metadata: {}` (or `null`) clears the metadata bag. The server
30
+ * column is non-nullable and collapses both forms to `{}`.
40
31
  */
41
32
  update(tunnelId: string, options: UpdateTunnelOptions): Promise<Tunnel>;
42
- /**
43
- * Schedule a tunnel for removal. The name is held for 24 hours, during
44
- * which `restore` brings it back online.
45
- */
46
- delete(tunnelId: string): Promise<Tunnel>;
47
- /** Bring a scheduled-for-removal tunnel back online. */
48
- restore(tunnelId: string): Promise<Tunnel>;
49
- /**
50
- * Remove a scheduled-for-removal tunnel immediately, skipping the 24-hour
51
- * window. Requires an admin-scoped API key.
52
- */
53
- forceDelete(tunnelId: string): Promise<Tunnel>;
54
- /**
55
- * Rotate the per-tunnel connect secret.
56
- *
57
- * The new secret takes effect on the next agent reconnect; existing live
58
- * connections continue serving traffic with the old secret until they
59
- * reconnect.
60
- */
61
- rotateSecret(tunnelId: string): Promise<RotatedSecret>;
62
33
  /**
63
34
  * Sign a CSR for a passthrough tunnel.
64
35
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tunnels.d.ts","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAQ/D,OAAO,EACL,aAAa,EAKb,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAM,EAKP,MAAM,aAAa,CAAC;AAMrB,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,KAAK,CAAC;AAkChC,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAI1C,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQzB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5C;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBlE;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB7E;;;OAGG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/C,wDAAwD;IAClD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD;;;OAGG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYpD;;;;;;OAMG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAO5D;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CAalF"}
1
+ {"version":3,"file":"tunnels.d.ts","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAK/D,OAAO,EAGL,UAAU,EACV,MAAM,EAGP,MAAM,aAAa,CAAC;AAMrB,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,KAAK,CAAC;AAoBhC,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAI1C,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQzB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5C;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAe7E;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CAalF"}
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * inkbox-tunnels/resources/tunnels.ts
3
3
  *
4
- * Control-plane CRUD for tunnels. Wraps `/api/v1/tunnels/*`.
4
+ * Control-plane reads + update + sign-csr for tunnels. Tunnels are
5
+ * created and deleted exclusively via identity-create / identity-delete
6
+ * cascades; there is no standalone create / delete / restore /
7
+ * force-delete / rotate-secret surface.
5
8
  */
6
9
  import { InkboxAPIError } from "../../_http.js";
7
- import { validateTunnelName } from "../_validation.js";
8
- import { TunnelCSRStateConflict, TunnelNameUnavailable, TunnelStateConflict, TunnelTLSModeMismatch, } from "../exceptions.js";
9
- import { TLSMode, parseCreatedTunnel, parseRotatedSecret, parseSignedCert, parseTunnel, } from "../types.js";
10
+ import { TunnelCSRStateConflict, TunnelTLSModeMismatch, } from "../exceptions.js";
11
+ import { parseSignedCert, parseTunnel, } from "../types.js";
10
12
  const BASE = "/tunnels";
11
13
  const SIGN_CSR_TIMEOUT_MS = 180_000;
12
14
  export const POOL_SIZE_MIN = 1;
@@ -21,18 +23,6 @@ function detailText(detail) {
21
23
  }
22
24
  return String(detail);
23
25
  }
24
- function mapCreateError(err) {
25
- if (err.statusCode === 409) {
26
- return new TunnelNameUnavailable(err.statusCode, err.detail);
27
- }
28
- return err;
29
- }
30
- function mapStateError(err) {
31
- if (err.statusCode === 409) {
32
- return new TunnelStateConflict(err.statusCode, err.detail);
33
- }
34
- return err;
35
- }
36
26
  function mapSignCsrError(err) {
37
27
  if (err.statusCode !== 409)
38
28
  return err;
@@ -59,40 +49,14 @@ export class TunnelsResource {
59
49
  }
60
50
  // --- Writes ----------------------------------------------------------
61
51
  /**
62
- * Create a new tunnel. Persist the returned `connectSecret` immediately —
63
- * it is shown ONCE.
64
- */
65
- async create(options) {
66
- validateTunnelName(options.tunnelName);
67
- const body = {
68
- tunnel_name: options.tunnelName,
69
- tls_mode: options.tlsMode ?? TLSMode.EDGE,
70
- };
71
- if (options.description !== undefined && options.description !== null) {
72
- body.description = options.description;
73
- }
74
- try {
75
- const data = await this.http.post(`${BASE}/`, body);
76
- return parseCreatedTunnel(data);
77
- }
78
- catch (err) {
79
- if (err instanceof InkboxAPIError)
80
- throw mapCreateError(err);
81
- throw err;
82
- }
83
- }
84
- /**
85
- * Update a tunnel. Pass only the fields you want to change.
52
+ * Update a tunnel's metadata. `metadata` is the only mutable field;
53
+ * other tunnel attributes are derived from the owning identity.
86
54
  *
87
- * - `description: null` clears the description.
88
- * - `metadata: {}` clears metadata. `metadata` cannot be `null`
89
- * (rejected client-side); pass `{}` to clear.
55
+ * - `metadata: {}` (or `null`) clears the metadata bag. The server
56
+ * column is non-nullable and collapses both forms to `{}`.
90
57
  */
91
58
  async update(tunnelId, options) {
92
59
  const body = {};
93
- if ("description" in options) {
94
- body.description = options.description;
95
- }
96
60
  if ("metadata" in options) {
97
61
  const m = options.metadata;
98
62
  if (m !== null && m !== undefined) {
@@ -105,52 +69,6 @@ export class TunnelsResource {
105
69
  const data = await this.http.patch(`${BASE}/${tunnelId}`, body);
106
70
  return parseTunnel(data);
107
71
  }
108
- /**
109
- * Schedule a tunnel for removal. The name is held for 24 hours, during
110
- * which `restore` brings it back online.
111
- */
112
- async delete(tunnelId) {
113
- const data = await this.http.deleteWithResponse(`${BASE}/${tunnelId}`);
114
- return parseTunnel(data);
115
- }
116
- /** Bring a scheduled-for-removal tunnel back online. */
117
- async restore(tunnelId) {
118
- try {
119
- const data = await this.http.post(`${BASE}/${tunnelId}/restore`);
120
- return parseTunnel(data);
121
- }
122
- catch (err) {
123
- if (err instanceof InkboxAPIError)
124
- throw mapStateError(err);
125
- throw err;
126
- }
127
- }
128
- /**
129
- * Remove a scheduled-for-removal tunnel immediately, skipping the 24-hour
130
- * window. Requires an admin-scoped API key.
131
- */
132
- async forceDelete(tunnelId) {
133
- try {
134
- const data = await this.http.deleteWithResponse(`${BASE}/${tunnelId}/force`);
135
- return parseTunnel(data);
136
- }
137
- catch (err) {
138
- if (err instanceof InkboxAPIError)
139
- throw mapStateError(err);
140
- throw err;
141
- }
142
- }
143
- /**
144
- * Rotate the per-tunnel connect secret.
145
- *
146
- * The new secret takes effect on the next agent reconnect; existing live
147
- * connections continue serving traffic with the old secret until they
148
- * reconnect.
149
- */
150
- async rotateSecret(tunnelId) {
151
- const data = await this.http.post(`${BASE}/${tunnelId}/rotate-secret`);
152
- return parseRotatedSecret(data);
153
- }
154
72
  /**
155
73
  * Sign a CSR for a passthrough tunnel.
156
74
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tunnels.js","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnels.js","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"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"}
@@ -13,46 +13,41 @@ export declare enum TLSMode {
13
13
  * - `awaiting_cert`: passthrough-only intermediate state. Inbound TLS
14
14
  * will fail until you call `tunnels.signCsr(...)`.
15
15
  * - `active`: routable end-to-end.
16
- * - `pending_removal`: `delete` was called; the name is held for 24h
17
- * during which `tunnels.restore(id)` brings it back. After 24h the
18
- * tunnel is permanently removed and its name is released. Past that
19
- * point a `GET` for the tunnel id returns 404; `TunnelRemoved`
20
- * surfaces that condition for clients holding stale state.
16
+ * - `deleted`: terminal. The tunnel is offline. Tunnels are deleted
17
+ * exclusively via the identity-delete cascade there is no direct
18
+ * tunnel-delete surface.
21
19
  */
22
20
  export declare enum TunnelStatus {
23
21
  AWAITING_CERT = "awaiting_cert",
24
22
  ACTIVE = "active",
25
- PENDING_REMOVAL = "pending_removal"
23
+ DELETED = "deleted"
26
24
  }
27
25
  export interface Tunnel {
28
26
  id: string;
29
27
  organizationId: string;
30
28
  tunnelName: string;
31
- description: string | null;
32
29
  tlsMode: TLSMode;
33
30
  certPem: string | null;
34
31
  certFingerprintSha256: string | null;
35
32
  certExpiresAt: Date | null;
36
- status: TunnelStatus;
33
+ /**
34
+ * One of the known {@link TunnelStatus} values, or — if the server
35
+ * returns a status the SDK doesn't recognize — the raw string. Future
36
+ * statuses survive parsing without fail-open coercion; callers should
37
+ * handle a `string` default branch alongside the enum cases.
38
+ */
39
+ status: TunnelStatus | string;
37
40
  lastConnectedAt: Date | null;
38
41
  lastConnectedIpAddr: string | null;
39
- restoreDeadlineAt: Date | null;
40
42
  currentlyConnected: boolean;
41
- publicHost: string | null;
42
- zone: string | null;
43
+ /** Customer-facing hostname — e.g. `my-agent.inkboxwire.com` in production. Lower environments use a different tunnel zone. Non-null for live tunnels. */
44
+ publicHost: string;
45
+ /** Zone endpoint for the data-plane. Agents connect to `https://{zone}/_system/connect`. In production this is `inkboxwire.com`; lower environments use a different zone. Non-null for live tunnels. */
46
+ zone: string;
43
47
  metadata: Record<string, unknown>;
44
48
  createdAt: Date;
45
49
  updatedAt: Date;
46
50
  }
47
- export interface CreatedTunnel {
48
- tunnel: Tunnel;
49
- /** Shown ONCE — persist immediately. */
50
- connectSecret: string;
51
- }
52
- export interface RotatedSecret {
53
- /** New secret. Takes effect on the next agent reconnect. */
54
- connectSecret: string;
55
- }
56
51
  export interface SignedCert {
57
52
  certPem: string;
58
53
  chainPem: string;
@@ -63,7 +58,6 @@ export interface RawTunnel {
63
58
  id: string;
64
59
  organization_id: string;
65
60
  tunnel_name: string;
66
- description: string | null;
67
61
  tls_mode: string;
68
62
  cert_pem: string | null;
69
63
  cert_fingerprint_sha256: string | null;
@@ -71,21 +65,13 @@ export interface RawTunnel {
71
65
  status: string;
72
66
  last_connected_at: string | null;
73
67
  last_connected_ip_addr: string | null;
74
- restore_deadline_at: string | null;
75
68
  currently_connected: boolean;
76
- public_host?: string | null;
77
- zone?: string | null;
69
+ public_host: string;
70
+ zone: string;
78
71
  metadata?: Record<string, unknown> | null;
79
72
  created_at: string;
80
73
  updated_at: string;
81
74
  }
82
- export interface RawCreatedTunnel {
83
- tunnel: RawTunnel;
84
- connect_secret: string;
85
- }
86
- export interface RawRotatedSecret {
87
- connect_secret: string;
88
- }
89
75
  export interface RawSignedCert {
90
76
  cert_pem: string;
91
77
  chain_pem: string;
@@ -93,7 +79,5 @@ export interface RawSignedCert {
93
79
  cert_expires_at: string;
94
80
  }
95
81
  export declare function parseTunnel(raw: RawTunnel): Tunnel;
96
- export declare function parseCreatedTunnel(raw: RawCreatedTunnel): CreatedTunnel;
97
- export declare function parseRotatedSecret(raw: RawRotatedSecret): RotatedSecret;
98
82
  export declare function parseSignedCert(raw: RawSignedCert): SignedCert;
99
83
  //# sourceMappingURL=types.d.ts.map