openship 0.5.0 → 0.6.0

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 (103) hide show
  1. package/README.md +26 -1
  2. package/dist/bare-FSUAM5V5.js +23 -0
  3. package/dist/{bowser-O3AEA6AN.js → bowser-HNOTPGJO.js} +2 -2
  4. package/dist/{chunk-5MZ624VX.js → chunk-2GWYYHOR.js} +1 -1
  5. package/dist/chunk-3FYIXVX5.js +8051 -0
  6. package/dist/{chunk-ILFETZOM.js → chunk-3LDWWY7U.js} +21 -1
  7. package/dist/{chunk-W73X43R7.js → chunk-3NQQXMDR.js} +3 -3
  8. package/dist/{chunk-OWED2GRM.js → chunk-42WQABXM.js} +2 -2
  9. package/dist/{chunk-TYVME3XD.js → chunk-6FH4AXVY.js} +20 -3
  10. package/dist/{chunk-ZCOQJCZO.js → chunk-6ODUBKUB.js} +3 -3
  11. package/dist/{chunk-DYPH4HCI.js → chunk-AO252K7Z.js} +1 -1
  12. package/dist/{chunk-K2RPVGPN.js → chunk-B3CE2OMR.js} +14 -12
  13. package/dist/{chunk-IXCHURVK.js → chunk-DOD2BXHQ.js} +4 -4
  14. package/dist/{chunk-VWPEKOH6.js → chunk-DRK3MEDS.js} +3 -3
  15. package/dist/{chunk-V7BZMGOT.js → chunk-EMXI4UCU.js} +5 -5
  16. package/dist/{chunk-NNPEG6HM.js → chunk-EP2TNALB.js} +2 -2
  17. package/dist/{chunk-NXFIRK2Z.js → chunk-GUQ3QCJ7.js} +573 -459
  18. package/dist/chunk-I3DPMTSF.js +29 -0
  19. package/dist/{chunk-KZOBYJUW.js → chunk-IW2UKBVF.js} +3 -3
  20. package/dist/{chunk-YWMODKWL.js → chunk-IXM5245F.js} +165 -13
  21. package/dist/{chunk-KNTJ7PSF.js → chunk-JIMUYEKN.js} +4 -4
  22. package/dist/chunk-OGY63DGD.js +705 -0
  23. package/dist/{chunk-O6ZZF52V.js → chunk-ONKEYSMY.js} +2 -2
  24. package/dist/{chunk-UMQP7SYT.js → chunk-OTLSJYAC.js} +1316 -53
  25. package/dist/{chunk-EI575GHN.js → chunk-PDW4L3NV.js} +3 -3
  26. package/dist/{chunk-JLKKYUZA.js → chunk-PSZSKEPA.js} +7 -7
  27. package/dist/{chunk-KI2EY3WB.js → chunk-PXKCZB2I.js} +1 -1
  28. package/dist/{chunk-RB35YN3J.js → chunk-QEH4QUBX.js} +391 -63
  29. package/dist/{chunk-6APIPIJY.js → chunk-QWHBRY2K.js} +5 -5
  30. package/dist/{chunk-6B5YCFFV.js → chunk-RVER2EOO.js} +5 -5
  31. package/dist/{chunk-Q2CIRAOK.js → chunk-RXQBD4ZY.js} +1 -1
  32. package/dist/{chunk-6LKHXB6T.js → chunk-TWJCLD4W.js} +48 -13
  33. package/dist/{chunk-I6PSTQIR.js → chunk-VDDMADOF.js} +3 -3
  34. package/dist/{chunk-BS2AXYZX.js → chunk-VE2YOK4I.js} +626 -214
  35. package/dist/{chunk-6PIYRG5I.js → chunk-VZ2ZHPS2.js} +52 -42
  36. package/dist/{chunk-AVIB7CT7.js → chunk-WNWQBB7F.js} +2 -2
  37. package/dist/{chunk-FRNAR33O.js → chunk-XZYFZ6A5.js} +3 -3
  38. package/dist/{chunk-RPHRPFEH.js → chunk-ZCFVHA25.js} +1 -1
  39. package/dist/{chunk-FPRHYBY2.js → chunk-ZFJXPCQP.js} +1 -1
  40. package/dist/{chunk-JYGD5WSN.js → chunk-ZWLDLTJP.js} +1 -1
  41. package/dist/cloud-E5M6VMCG.js +31 -0
  42. package/dist/{cloud-7QYOGF7F.js → cloud-KRTZ2IL5.js} +3 -3
  43. package/dist/{detect-BAJMY6KM.js → detect-ALF4GXRX.js} +7 -8
  44. package/dist/{dist-IQJ6H6UZ.js → dist-BM6NPWIH.js} +3 -3
  45. package/dist/{dist-es-X3B5QYKB.js → dist-es-2YRDXMUU.js} +6 -6
  46. package/dist/{dist-es-OSNJBLXB.js → dist-es-CCVZEFRZ.js} +5 -5
  47. package/dist/{dist-es-VNKHQVIB.js → dist-es-IOH6G4GM.js} +4 -4
  48. package/dist/{dist-es-RYHIPOTN.js → dist-es-JGBPABJI.js} +14 -14
  49. package/dist/{dist-es-JSTDUS7Q.js → dist-es-KWSMDPIP.js} +6 -6
  50. package/dist/{dist-es-5DY7K32L.js → dist-es-UYDDOVZ3.js} +6 -6
  51. package/dist/{dist-es-WV4AMOII.js → dist-es-XUOR4NQN.js} +8 -8
  52. package/dist/docker-QECQJ5P4.js +32 -0
  53. package/dist/docker-edge-executor-62N64MGS.js +17 -0
  54. package/dist/edge-import-CQWHN2Q3.js +48 -0
  55. package/dist/ensure-container-edge-MJVXJQG5.js +32 -0
  56. package/dist/{event-streams-EHRAKL75.js → event-streams-TR4GAC53.js} +4 -4
  57. package/dist/{executor-LOYMPU67.js → executor-JELARVKC.js} +8 -8
  58. package/dist/index.js +1170 -459
  59. package/dist/{loadSso-46FQRIZS.js → loadSso-UGF4JMRK.js} +10 -10
  60. package/dist/{local-executor-V7U5VOZW.js → local-executor-WOFZD72X.js} +4 -4
  61. package/dist/nginx-AXGNWRKZ.js +31 -0
  62. package/dist/node-entry.js +4 -0
  63. package/dist/{noop-FMMFG2EZ.js → noop-NJ72F46T.js} +3 -3
  64. package/dist/openresty-lua-IE4P5YQX.js +81 -0
  65. package/dist/server/index.js +23172 -7994
  66. package/dist/server/lua/geo_country.lua +31 -6
  67. package/dist/server/lua/maxminddb.lua +403 -0
  68. package/dist/server/lua/mgmt_api.lua +431 -68
  69. package/dist/server/lua/pipe_log.lua +10 -4
  70. package/dist/server/lua/site_logger.lua +220 -12
  71. package/dist/server/migrations/0082_edge_target_verification.sql +39 -0
  72. package/dist/server/migrations/0083_service_incident.sql +84 -0
  73. package/dist/server/migrations/0084_analytics_daily_rollup.sql +72 -0
  74. package/dist/server/migrations/0085_resource_usage.sql +68 -0
  75. package/dist/server/migrations/0086_remote_infra_updates.sql +41 -0
  76. package/dist/server/migrations/0087_server_container_version_columns.sql +17 -0
  77. package/dist/server/migrations/0088_audit_source_and_settings.sql +27 -0
  78. package/dist/server/migrations/0089_auto_scan_infra.sql +7 -0
  79. package/dist/server/migrations/0090_project_collect_paths.sql +18 -0
  80. package/dist/server/migrations/0091_project_server_id.sql +26 -0
  81. package/dist/server/migrations/0092_project_internal_alias.sql +13 -0
  82. package/dist/server/migrations/0093_service_incident_org_index.sql +13 -0
  83. package/dist/server/migrations/0094_backup_restore_meta.sql +15 -0
  84. package/dist/server/migrations/0095_backup_restore_cancel.sql +19 -0
  85. package/dist/server/migrations/0096_backup_policy_retention_defaults.sql +20 -0
  86. package/dist/server/migrations/0097_update_status_upstream_only.sql +35 -0
  87. package/dist/server/migrations/meta/_journal.json +112 -0
  88. package/dist/setup-FA4PW4NU.js +21 -0
  89. package/dist/{signin-ITOPKKUB.js → signin-3M3UPB6K.js} +10 -10
  90. package/dist/{sso-oidc-NON2PD7Y.js → sso-oidc-3VDIYOEJ.js} +10 -10
  91. package/dist/{sts-HHFFSAY2.js → sts-B3WIYLXR.js} +9 -9
  92. package/package.json +6 -3
  93. package/dist/bare-VRGE5MXH.js +0 -23
  94. package/dist/chunk-CUJXGK7R.js +0 -3167
  95. package/dist/chunk-EAAGSQXN.js +0 -377
  96. package/dist/cloud-3M2WZ624.js +0 -30
  97. package/dist/docker-2NGBRJFJ.js +0 -18
  98. package/dist/docker-edge-executor-5I4M5QT7.js +0 -13
  99. package/dist/edge-import-RIWNEIXQ.js +0 -47
  100. package/dist/ensure-container-edge-3NSYKHRX.js +0 -31
  101. package/dist/nginx-QE4DOM5J.js +0 -24
  102. package/dist/openresty-lua-BTAKECCF.js +0 -42
  103. package/dist/setup-KELALK7H.js +0 -20
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env sh
2
- ":" //# ; exec "$(command -v bun || command -v node)" "$0" "$@"
2
+ ":" //# ; exec "$(command -v node || command -v bun)" "$0" "$@"
3
3
  import { createRequire as __ospCreateRequire } from "node:module";
4
4
  const require = __ospCreateRequire(import.meta.url);
5
5
  import {
6
6
  SerdeContextConfig,
7
7
  SignatureV4,
8
8
  UnionSerde
9
- } from "./chunk-IXCHURVK.js";
9
+ } from "./chunk-DOD2BXHQ.js";
10
10
  import {
11
11
  getValueFromTextNode
12
- } from "./chunk-VWPEKOH6.js";
12
+ } from "./chunk-DRK3MEDS.js";
13
13
  import {
14
14
  FromStringShapeDeserializer,
15
15
  NormalizedSchema
16
- } from "./chunk-W73X43R7.js";
16
+ } from "./chunk-3NQQXMDR.js";
17
17
  import {
18
18
  toUtf8
19
- } from "./chunk-JYGD5WSN.js";
19
+ } from "./chunk-ZWLDLTJP.js";
20
20
 
21
21
  // ../../node_modules/@smithy/signature-v4/dist-es/signature-v4a-container.js
22
22
  var signatureV4aContainer = {
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env sh
2
- ":" //# ; exec "$(command -v bun || command -v node)" "$0" "$@"
2
+ ":" //# ; exec "$(command -v node || command -v bun)" "$0" "$@"
3
3
  import { createRequire as __ospCreateRequire } from "node:module";
4
4
  const require = __ospCreateRequire(import.meta.url);
5
5
  import {
6
6
  collectBodyString
7
- } from "./chunk-EI575GHN.js";
7
+ } from "./chunk-PDW4L3NV.js";
8
8
  import {
9
9
  ProtocolLib,
10
10
  SerdeContextConfig,
11
11
  UnionSerde
12
- } from "./chunk-IXCHURVK.js";
12
+ } from "./chunk-DOD2BXHQ.js";
13
13
  import {
14
14
  HttpBindingProtocol,
15
15
  HttpInterceptingShapeDeserializer,
16
16
  HttpInterceptingShapeSerializer,
17
17
  NormalizedSchema,
18
18
  determineTimestampFormat
19
- } from "./chunk-W73X43R7.js";
19
+ } from "./chunk-3NQQXMDR.js";
20
20
  import {
21
21
  LazyJsonString,
22
22
  NumericValue,
@@ -27,7 +27,7 @@ import {
27
27
  parseRfc3339DateTimeWithOffset,
28
28
  parseRfc7231DateTime,
29
29
  toBase64
30
- } from "./chunk-JYGD5WSN.js";
30
+ } from "./chunk-ZWLDLTJP.js";
31
31
 
32
32
  // ../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/jsonReviver.js
33
33
  function jsonReviver(key, value, context) {
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env sh
2
- ":" //# ; exec "$(command -v bun || command -v node)" "$0" "$@"
2
+ ":" //# ; exec "$(command -v node || command -v bun)" "$0" "$@"
3
3
  import { createRequire as __ospCreateRequire } from "node:module";
4
4
  const require = __ospCreateRequire(import.meta.url);
5
5
 
@@ -1,28 +1,26 @@
1
1
  #!/usr/bin/env sh
2
- ":" //# ; exec "$(command -v bun || command -v node)" "$0" "$@"
2
+ ":" //# ; exec "$(command -v node || command -v bun)" "$0" "$@"
3
3
  import { createRequire as __ospCreateRequire } from "node:module";
4
4
  const require = __ospCreateRequire(import.meta.url);
5
5
  import {
6
6
  LocalExecutor
7
- } from "./chunk-TYVME3XD.js";
7
+ } from "./chunk-6FH4AXVY.js";
8
+ import {
9
+ explainEdgeDown,
10
+ isEdgeDownFailure
11
+ } from "./chunk-I3DPMTSF.js";
12
+ import {
13
+ edgeFailureReason
14
+ } from "./chunk-VZ2ZHPS2.js";
8
15
  import {
9
16
  logEntry,
10
17
  sq
11
- } from "./chunk-FPRHYBY2.js";
18
+ } from "./chunk-ZFJXPCQP.js";
12
19
 
13
20
  // ../../packages/adapters/src/system/docker-edge-executor.ts
14
21
  import Dockerode from "dockerode";
15
22
  import { PassThrough } from "stream";
16
23
  var DEFAULT_SOCKET = "/var/run/docker.sock";
17
- function explainEdgeExecError(err, containerName) {
18
- const msg = err?.message ?? String(err);
19
- if (/is not running|not running|409/i.test(msg)) {
20
- return new Error(
21
- `edge container "${containerName}" is not running yet (still starting, or stopped) \u2014 wait for it to be up (docker start ${containerName}) and retry.`
22
- );
23
- }
24
- return err instanceof Error ? err : new Error(msg);
25
- }
26
24
  var WRITE_CHUNK = 6e4;
27
25
  var DockerEdgeExecutor = class {
28
26
  docker;
@@ -36,6 +34,34 @@ var DockerEdgeExecutor = class {
36
34
  this.docker = opts.docker ?? new Dockerode({ socketPath: opts.socketPath ?? DEFAULT_SOCKET });
37
35
  this.fileMode = opts.fileMode ?? "mounted";
38
36
  }
37
+ /**
38
+ * Why the edge refused (or couldn't answer) a command, in one operator-facing
39
+ * line — the dockerode counterpart of `edgeContainerExecutor`'s host-shell probe.
40
+ *
41
+ * Reads the state and the log through the daemon API rather than a shell, which is
42
+ * the whole reason `edgeFailureReason` is a pure parser: the two transports agree
43
+ * on what counts as the cause without sharing a channel. Best-effort — a probe
44
+ * that fails must not replace the real failure with an error about diagnosing it.
45
+ *
46
+ * The condition this exists for used to be reported as `(HTTP code 409) … container
47
+ * <64-hex-id> is not running`: the RESOLVED id, no name, no cause. During `openship
48
+ * up` migration that surfaced as six identical 409s against the edge's own id while
49
+ * it was still starting, and from the cert flow it surfaced as a container the
50
+ * operator had no reason to think was involved at all.
51
+ */
52
+ async explainDown(err) {
53
+ const message = err?.message ?? String(err);
54
+ const container = this.docker.getContainer(this.containerName);
55
+ const status = await container.inspect().then((info) => info.State?.Status ?? null).catch(() => null);
56
+ const logs = await container.logs({ stdout: true, stderr: true, tail: 40, follow: false }).then((out) => Buffer.isBuffer(out) ? out.toString("utf8") : String(out)).catch(() => null);
57
+ const explanation = explainEdgeDown({
58
+ container: this.containerName,
59
+ status,
60
+ reason: logs ? edgeFailureReason(logs) : null
61
+ });
62
+ return new Error(`${explanation}
63
+ ${message}`);
64
+ }
39
65
  /** Run one command inside the edge container, capturing stdout/stderr + exit. */
40
66
  async run(command) {
41
67
  const container = this.docker.getContainer(this.containerName);
@@ -50,7 +76,9 @@ var DockerEdgeExecutor = class {
50
76
  });
51
77
  stream = await exec.start({ stdin: false });
52
78
  } catch (err) {
53
- throw explainEdgeExecError(err, this.containerName);
79
+ const message = err?.message ?? String(err);
80
+ if (isEdgeDownFailure(message) || /\b409\b/.test(message)) throw await this.explainDown(err);
81
+ throw err instanceof Error ? err : new Error(message);
54
82
  }
55
83
  const outStream = new PassThrough();
56
84
  const errStream = new PassThrough();
@@ -76,6 +104,7 @@ var DockerEdgeExecutor = class {
76
104
  const { code, stdout, stderr } = await this.run(command);
77
105
  if (code !== 0) {
78
106
  const detail = [stderr.trim(), stdout.trim()].filter(Boolean).join("\n");
107
+ if (isEdgeDownFailure(detail)) throw await this.explainDown(new Error(detail));
79
108
  throw new Error(
80
109
  detail || `command exited ${code} in edge container ${this.containerName}`
81
110
  );
@@ -86,6 +115,12 @@ var DockerEdgeExecutor = class {
86
115
  const { code, stdout, stderr } = await this.run(command);
87
116
  const output = [stdout, stderr].filter(Boolean).join("");
88
117
  if (output) onLog(logEntry(output, code === 0 ? "info" : "error"));
118
+ if (code !== 0 && isEdgeDownFailure(output)) {
119
+ const explanation = (await this.explainDown(new Error(output))).message.split("\n")[0];
120
+ onLog(logEntry(explanation, "error"));
121
+ return { code, output: `${explanation}
122
+ ${output}` };
123
+ }
89
124
  return { code, output };
90
125
  }
91
126
  // ── File ops ─────────────────────────────────────────────────────────────
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env sh
2
- ":" //# ; exec "$(command -v bun || command -v node)" "$0" "$@"
2
+ ":" //# ; exec "$(command -v node || command -v bun)" "$0" "$@"
3
3
  import { createRequire as __ospCreateRequire } from "node:module";
4
4
  const require = __ospCreateRequire(import.meta.url);
5
5
  import {
6
6
  getTarCreateEnv,
7
7
  prepareSourceTarArgs
8
- } from "./chunk-ZCOQJCZO.js";
8
+ } from "./chunk-6ODUBKUB.js";
9
9
  import {
10
10
  TRANSFER_EXCLUDES,
11
11
  packageManagerEnsureCommand,
12
12
  safeErrorMessage
13
- } from "./chunk-UMQP7SYT.js";
13
+ } from "./chunk-OTLSJYAC.js";
14
14
 
15
15
  // ../../packages/adapters/src/runtime/git-clone.ts
16
16
  function sq(value) {