@marinoscar/platform-contract 0.0.0-stage → 0.1.0-next.3

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 (134) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/README.md +145 -2
  4. package/dist/cjs/doctor/constants.d.ts +59 -0
  5. package/dist/cjs/doctor/constants.d.ts.map +1 -0
  6. package/dist/cjs/doctor/constants.js +57 -0
  7. package/dist/cjs/doctor/constants.js.map +1 -0
  8. package/dist/cjs/doctor/index.d.ts +5 -0
  9. package/dist/cjs/doctor/index.d.ts.map +1 -0
  10. package/dist/cjs/doctor/index.js +24 -0
  11. package/dist/cjs/doctor/index.js.map +1 -0
  12. package/dist/cjs/doctor/schemas.d.ts +186 -0
  13. package/dist/cjs/doctor/schemas.d.ts.map +1 -0
  14. package/dist/cjs/doctor/schemas.js +183 -0
  15. package/dist/cjs/doctor/schemas.js.map +1 -0
  16. package/dist/cjs/index.d.ts +13 -0
  17. package/dist/cjs/index.d.ts.map +1 -0
  18. package/dist/cjs/index.js +16 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/package.json +3 -0
  21. package/dist/cjs/telemetry/assistant.d.ts +173 -0
  22. package/dist/cjs/telemetry/assistant.d.ts.map +1 -0
  23. package/dist/cjs/telemetry/assistant.js +43 -0
  24. package/dist/cjs/telemetry/assistant.js.map +1 -0
  25. package/dist/cjs/telemetry/config.d.ts +92 -0
  26. package/dist/cjs/telemetry/config.d.ts.map +1 -0
  27. package/dist/cjs/telemetry/config.js +101 -0
  28. package/dist/cjs/telemetry/config.js.map +1 -0
  29. package/dist/cjs/telemetry/connection.d.ts +355 -0
  30. package/dist/cjs/telemetry/connection.d.ts.map +1 -0
  31. package/dist/cjs/telemetry/connection.js +451 -0
  32. package/dist/cjs/telemetry/connection.js.map +1 -0
  33. package/dist/cjs/telemetry/constants.d.ts +442 -0
  34. package/dist/cjs/telemetry/constants.d.ts.map +1 -0
  35. package/dist/cjs/telemetry/constants.js +400 -0
  36. package/dist/cjs/telemetry/constants.js.map +1 -0
  37. package/dist/cjs/telemetry/dashboard.d.ts +826 -0
  38. package/dist/cjs/telemetry/dashboard.d.ts.map +1 -0
  39. package/dist/cjs/telemetry/dashboard.js +697 -0
  40. package/dist/cjs/telemetry/dashboard.js.map +1 -0
  41. package/dist/cjs/telemetry/enum.d.ts +5 -0
  42. package/dist/cjs/telemetry/enum.d.ts.map +1 -0
  43. package/dist/cjs/telemetry/enum.js +12 -0
  44. package/dist/cjs/telemetry/enum.js.map +1 -0
  45. package/dist/cjs/telemetry/index.d.ts +5 -0
  46. package/dist/cjs/telemetry/index.d.ts.map +1 -0
  47. package/dist/cjs/telemetry/index.js +128 -0
  48. package/dist/cjs/telemetry/index.js.map +1 -0
  49. package/dist/cjs/telemetry/query.d.ts +147 -0
  50. package/dist/cjs/telemetry/query.d.ts.map +1 -0
  51. package/dist/cjs/telemetry/query.js +141 -0
  52. package/dist/cjs/telemetry/query.js.map +1 -0
  53. package/dist/cjs/telemetry/schemas.d.ts +17 -0
  54. package/dist/cjs/telemetry/schemas.d.ts.map +1 -0
  55. package/dist/cjs/telemetry/schemas.js +89 -0
  56. package/dist/cjs/telemetry/schemas.js.map +1 -0
  57. package/dist/cjs/telemetry/settings.d.ts +65 -0
  58. package/dist/cjs/telemetry/settings.d.ts.map +1 -0
  59. package/dist/cjs/telemetry/settings.js +77 -0
  60. package/dist/cjs/telemetry/settings.js.map +1 -0
  61. package/dist/cjs/telemetry/stack.d.ts +87 -0
  62. package/dist/cjs/telemetry/stack.d.ts.map +1 -0
  63. package/dist/cjs/telemetry/stack.js +93 -0
  64. package/dist/cjs/telemetry/stack.js.map +1 -0
  65. package/dist/cjs/telemetry/status.d.ts +65 -0
  66. package/dist/cjs/telemetry/status.d.ts.map +1 -0
  67. package/dist/cjs/telemetry/status.js +65 -0
  68. package/dist/cjs/telemetry/status.js.map +1 -0
  69. package/dist/esm/doctor/constants.d.ts +59 -0
  70. package/dist/esm/doctor/constants.d.ts.map +1 -0
  71. package/dist/esm/doctor/constants.js +54 -0
  72. package/dist/esm/doctor/constants.js.map +1 -0
  73. package/dist/esm/doctor/index.d.ts +5 -0
  74. package/dist/esm/doctor/index.d.ts.map +1 -0
  75. package/dist/esm/doctor/index.js +10 -0
  76. package/dist/esm/doctor/index.js.map +1 -0
  77. package/dist/esm/doctor/schemas.d.ts +186 -0
  78. package/dist/esm/doctor/schemas.d.ts.map +1 -0
  79. package/dist/esm/doctor/schemas.js +180 -0
  80. package/dist/esm/doctor/schemas.js.map +1 -0
  81. package/dist/esm/index.d.ts +13 -0
  82. package/dist/esm/index.d.ts.map +1 -0
  83. package/dist/esm/index.js +13 -0
  84. package/dist/esm/index.js.map +1 -0
  85. package/dist/esm/package.json +3 -0
  86. package/dist/esm/telemetry/assistant.d.ts +173 -0
  87. package/dist/esm/telemetry/assistant.d.ts.map +1 -0
  88. package/dist/esm/telemetry/assistant.js +40 -0
  89. package/dist/esm/telemetry/assistant.js.map +1 -0
  90. package/dist/esm/telemetry/config.d.ts +92 -0
  91. package/dist/esm/telemetry/config.d.ts.map +1 -0
  92. package/dist/esm/telemetry/config.js +98 -0
  93. package/dist/esm/telemetry/config.js.map +1 -0
  94. package/dist/esm/telemetry/connection.d.ts +355 -0
  95. package/dist/esm/telemetry/connection.d.ts.map +1 -0
  96. package/dist/esm/telemetry/connection.js +447 -0
  97. package/dist/esm/telemetry/connection.js.map +1 -0
  98. package/dist/esm/telemetry/constants.d.ts +442 -0
  99. package/dist/esm/telemetry/constants.d.ts.map +1 -0
  100. package/dist/esm/telemetry/constants.js +397 -0
  101. package/dist/esm/telemetry/constants.js.map +1 -0
  102. package/dist/esm/telemetry/dashboard.d.ts +826 -0
  103. package/dist/esm/telemetry/dashboard.d.ts.map +1 -0
  104. package/dist/esm/telemetry/dashboard.js +690 -0
  105. package/dist/esm/telemetry/dashboard.js.map +1 -0
  106. package/dist/esm/telemetry/enum.d.ts +5 -0
  107. package/dist/esm/telemetry/enum.d.ts.map +1 -0
  108. package/dist/esm/telemetry/enum.js +9 -0
  109. package/dist/esm/telemetry/enum.js.map +1 -0
  110. package/dist/esm/telemetry/index.d.ts +5 -0
  111. package/dist/esm/telemetry/index.d.ts.map +1 -0
  112. package/dist/esm/telemetry/index.js +10 -0
  113. package/dist/esm/telemetry/index.js.map +1 -0
  114. package/dist/esm/telemetry/query.d.ts +147 -0
  115. package/dist/esm/telemetry/query.d.ts.map +1 -0
  116. package/dist/esm/telemetry/query.js +138 -0
  117. package/dist/esm/telemetry/query.js.map +1 -0
  118. package/dist/esm/telemetry/schemas.d.ts +17 -0
  119. package/dist/esm/telemetry/schemas.d.ts.map +1 -0
  120. package/dist/esm/telemetry/schemas.js +12 -0
  121. package/dist/esm/telemetry/schemas.js.map +1 -0
  122. package/dist/esm/telemetry/settings.d.ts +65 -0
  123. package/dist/esm/telemetry/settings.d.ts.map +1 -0
  124. package/dist/esm/telemetry/settings.js +74 -0
  125. package/dist/esm/telemetry/settings.js.map +1 -0
  126. package/dist/esm/telemetry/stack.d.ts +87 -0
  127. package/dist/esm/telemetry/stack.d.ts.map +1 -0
  128. package/dist/esm/telemetry/stack.js +90 -0
  129. package/dist/esm/telemetry/stack.js.map +1 -0
  130. package/dist/esm/telemetry/status.d.ts +65 -0
  131. package/dist/esm/telemetry/status.d.ts.map +1 -0
  132. package/dist/esm/telemetry/status.js +62 -0
  133. package/dist/esm/telemetry/status.js.map +1 -0
  134. package/package.json +78 -4
@@ -0,0 +1,87 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * One telemetry service's container: `name` (`greptimedb`,
4
+ * `otel-collector`), `state` and `health` (or `null`).
5
+ *
6
+ * @extensionPoint schema
7
+ * @stability stable
8
+ */
9
+ export declare const telemetryStackServiceSchema: z.ZodObject<{
10
+ name: z.ZodString;
11
+ state: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"running" | "restarting" | "exited" | "created" | "paused" | "dead" | "missing">>;
12
+ health: z.ZodNullable<z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"healthy" | "unhealthy" | "starting">>>;
13
+ }, z.core.$strip>;
14
+ /**
15
+ * One telemetry service's container.
16
+ *
17
+ * @stability stable
18
+ */
19
+ export type TelemetryStackService = z.infer<typeof telemetryStackServiceSchema>;
20
+ /**
21
+ * The most recent `telemetry.stack.deploy` job: `jobId`, `status`,
22
+ * `createdAt`, `finishedAt`, `error` and `output` (a tail of at most 4 KB).
23
+ *
24
+ * @extensionPoint schema
25
+ * @stability stable
26
+ */
27
+ export declare const telemetryStackDeploySchema: z.ZodObject<{
28
+ jobId: z.ZodString;
29
+ status: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"running" | "pending" | "succeeded" | "failed">>;
30
+ createdAt: z.ZodISODateTime;
31
+ finishedAt: z.ZodNullable<z.ZodISODateTime>;
32
+ error: z.ZodNullable<z.ZodString>;
33
+ output: z.ZodNullable<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ /**
36
+ * The most recent stack deploy job.
37
+ *
38
+ * @stability stable
39
+ */
40
+ export type TelemetryStackDeploy = z.infer<typeof telemetryStackDeploySchema>;
41
+ /**
42
+ * `GET /api/admin/telemetry/stack`: `agent`, `agentError`, `services` and
43
+ * the latest `deploy`.
44
+ *
45
+ * @extensionPoint schema
46
+ * @stability stable
47
+ */
48
+ export declare const telemetryStackStatusSchema: z.ZodObject<{
49
+ agent: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"available" | "unavailable" | "unauthorized" | "not_configured">>;
50
+ agentError: z.ZodNullable<z.ZodString>;
51
+ services: z.ZodArray<z.ZodObject<{
52
+ name: z.ZodString;
53
+ state: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"running" | "restarting" | "exited" | "created" | "paused" | "dead" | "missing">>;
54
+ health: z.ZodNullable<z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"healthy" | "unhealthy" | "starting">>>;
55
+ }, z.core.$strip>>;
56
+ deploy: z.ZodNullable<z.ZodObject<{
57
+ jobId: z.ZodString;
58
+ status: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"running" | "pending" | "succeeded" | "failed">>;
59
+ createdAt: z.ZodISODateTime;
60
+ finishedAt: z.ZodNullable<z.ZodISODateTime>;
61
+ error: z.ZodNullable<z.ZodString>;
62
+ output: z.ZodNullable<z.ZodString>;
63
+ }, z.core.$strip>>;
64
+ }, z.core.$strip>;
65
+ /**
66
+ * `GET /api/admin/telemetry/stack`.
67
+ *
68
+ * @stability stable
69
+ */
70
+ export type TelemetryStackStatus = z.infer<typeof telemetryStackStatusSchema>;
71
+ /**
72
+ * `POST /api/admin/telemetry/stack/deploy` response (202): the deploy
73
+ * `jobId`, a new one or the one already pending or running.
74
+ *
75
+ * @extensionPoint schema
76
+ * @stability stable
77
+ */
78
+ export declare const telemetryStackDeployStartedSchema: z.ZodObject<{
79
+ jobId: z.ZodString;
80
+ }, z.core.$strip>;
81
+ /**
82
+ * `POST /api/admin/telemetry/stack/deploy` response.
83
+ *
84
+ * @stability stable
85
+ */
86
+ export type TelemetryStackDeployStarted = z.infer<typeof telemetryStackDeployStartedSchema>;
87
+ //# sourceMappingURL=stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../src/telemetry/stack.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;iBAOtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;iBAarC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;iBAwBrC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;iBAG5C,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
@@ -0,0 +1,90 @@
1
+ // =============================================================================
2
+ // /api/admin/telemetry/stack (issue #567; moved here from the API's
3
+ // `telemetry/stack/dto/telemetry-stack.dto.ts` by #702)
4
+ // =============================================================================
5
+ //
6
+ // A diagnosis, never an error: a deployment without a stack-agent (every
7
+ // development machine) is `agent: 'not_configured'` with a 200, so the admin
8
+ // page can say so instead of rendering a failure.
9
+ // =============================================================================
10
+ import { z } from 'zod';
11
+ import { TELEMETRY_STACK_AGENT_STATES, TELEMETRY_STACK_DEPLOY_STATUSES, TELEMETRY_STACK_SERVICE_HEALTH, TELEMETRY_STACK_SERVICE_STATES, } from './constants.js';
12
+ import { wireEnum } from './enum.js';
13
+ /**
14
+ * One telemetry service's container: `name` (`greptimedb`,
15
+ * `otel-collector`), `state` and `health` (or `null`).
16
+ *
17
+ * @extensionPoint schema
18
+ * @stability stable
19
+ */
20
+ export const telemetryStackServiceSchema = z.object({
21
+ /** The compose service, e.g. `greptimedb` or `otel-collector`. */
22
+ name: z.string(),
23
+ /** The container's state; `missing` when it has never been created. */
24
+ state: wireEnum(TELEMETRY_STACK_SERVICE_STATES),
25
+ /** The container's health check, or null when it has none (or is not running). */
26
+ health: wireEnum(TELEMETRY_STACK_SERVICE_HEALTH).nullable(),
27
+ });
28
+ /**
29
+ * The most recent `telemetry.stack.deploy` job: `jobId`, `status`,
30
+ * `createdAt`, `finishedAt`, `error` and `output` (a tail of at most 4 KB).
31
+ *
32
+ * @extensionPoint schema
33
+ * @stability stable
34
+ */
35
+ export const telemetryStackDeploySchema = z.object({
36
+ /** The job's id. */
37
+ jobId: z.string(),
38
+ /** The job's queue status. */
39
+ status: wireEnum(TELEMETRY_STACK_DEPLOY_STATUSES),
40
+ /** When the job was enqueued. */
41
+ createdAt: z.iso.datetime(),
42
+ /** When it settled, or `null` while it runs. */
43
+ finishedAt: z.iso.datetime().nullable(),
44
+ /** Why the deploy failed (`Job.lastError`), or null. */
45
+ error: z.string().nullable(),
46
+ /** The agent's command output (tail, at most 4 KB), or null before it answered. */
47
+ output: z.string().nullable(),
48
+ });
49
+ /**
50
+ * `GET /api/admin/telemetry/stack`: `agent`, `agentError`, `services` and
51
+ * the latest `deploy`.
52
+ *
53
+ * @extensionPoint schema
54
+ * @stability stable
55
+ */
56
+ export const telemetryStackStatusSchema = z.object({
57
+ /**
58
+ * `available` — the stack-agent answered; `unavailable` — it is configured but
59
+ * could not be reached (or answered unexpectedly); `unauthorized` — it refused
60
+ * the API's token; `not_configured` — this deployment has no stack-agent.
61
+ */
62
+ agent: wireEnum(TELEMETRY_STACK_AGENT_STATES),
63
+ /**
64
+ * Why the stack-agent is `unavailable` or `unauthorized`: the client's
65
+ * message (the agent's origin and the failure, never the token). Null when
66
+ * `agent` is `available` or `not_configured`.
67
+ */
68
+ agentError: z
69
+ .string()
70
+ .nullable()
71
+ .describe('Why the stack agent is `unavailable` or `unauthorized`: the agent origin and the failure ' +
72
+ '(for example a timeout, a connection error or the HTTP status). Never carries the token. ' +
73
+ 'Null when `agent` is `available` or `not_configured`.'),
74
+ /** Each telemetry service's container. Empty unless `agent` is `available`. */
75
+ services: z.array(telemetryStackServiceSchema),
76
+ /** The most recent `telemetry.stack.deploy` job, or null when there has never been one. */
77
+ deploy: telemetryStackDeploySchema.nullable(),
78
+ });
79
+ /**
80
+ * `POST /api/admin/telemetry/stack/deploy` response (202): the deploy
81
+ * `jobId`, a new one or the one already pending or running.
82
+ *
83
+ * @extensionPoint schema
84
+ * @stability stable
85
+ */
86
+ export const telemetryStackDeployStartedSchema = z.object({
87
+ /** The deploy job — a new one, or the one already pending/running. */
88
+ jobId: z.string(),
89
+ });
90
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../src/telemetry/stack.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,oEAAoE;AACpE,wDAAwD;AACxD,gFAAgF;AAChF,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,kDAAkD;AAClD,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,kEAAkE;IAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,uEAAuE;IACvE,KAAK,EAAE,QAAQ,CAAC,8BAA8B,CAAC;IAC/C,kFAAkF;IAClF,MAAM,EAAE,QAAQ,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;CAC5D,CAAC,CAAC;AASH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,oBAAoB;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,8BAA8B;IAC9B,MAAM,EAAE,QAAQ,CAAC,+BAA+B,CAAC;IACjD,iCAAiC;IACjC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC3B,gDAAgD;IAChD,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,wDAAwD;IACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,mFAAmF;IACnF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AASH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD;;;;OAIG;IACH,KAAK,EAAE,QAAQ,CAAC,4BAA4B,CAAC;IAC7C;;;;OAIG;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,2FAA2F;QACzF,2FAA2F;QAC3F,uDAAuD,CAC1D;IACH,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;IAC9C,2FAA2F;IAC3F,MAAM,EAAE,0BAA0B,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AASH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,sEAAsE;IACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * The database-level TTL in force: `raw` (as `SHOW CREATE DATABASE` prints
4
+ * it) and `days` (whole days, or `null` for `forever` or an unparseable value).
5
+ *
6
+ * @extensionPoint schema
7
+ * @stability stable
8
+ */
9
+ export declare const telemetryTtlSchema: z.ZodObject<{
10
+ raw: z.ZodString;
11
+ days: z.ZodNullable<z.ZodNumber>;
12
+ }, z.core.$strip>;
13
+ /**
14
+ * One table of the telemetry database: `name` and `rows` (GreptimeDB's
15
+ * estimate, or `null`).
16
+ *
17
+ * @extensionPoint schema
18
+ * @stability stable
19
+ */
20
+ export declare const telemetryTableSchema: z.ZodObject<{
21
+ name: z.ZodString;
22
+ rows: z.ZodNullable<z.ZodNumber>;
23
+ }, z.core.$strip>;
24
+ /**
25
+ * `GET /api/admin/telemetry/status`: `configured`, `reachable`, `version`,
26
+ * `database`, `ttl`, `retentionDays`, `tables` and `error`.
27
+ *
28
+ * @extensionPoint schema
29
+ * @stability stable
30
+ */
31
+ export declare const telemetryStatusSchema: z.ZodObject<{
32
+ configured: z.ZodBoolean;
33
+ reachable: z.ZodBoolean;
34
+ version: z.ZodNullable<z.ZodString>;
35
+ database: z.ZodString;
36
+ ttl: z.ZodNullable<z.ZodObject<{
37
+ raw: z.ZodString;
38
+ days: z.ZodNullable<z.ZodNumber>;
39
+ }, z.core.$strip>>;
40
+ retentionDays: z.ZodNumber;
41
+ tables: z.ZodArray<z.ZodObject<{
42
+ name: z.ZodString;
43
+ rows: z.ZodNullable<z.ZodNumber>;
44
+ }, z.core.$strip>>;
45
+ error: z.ZodNullable<z.ZodString>;
46
+ }, z.core.$strip>;
47
+ /**
48
+ * `GET /api/admin/telemetry/status`.
49
+ *
50
+ * @stability stable
51
+ */
52
+ export type TelemetryStatus = z.infer<typeof telemetryStatusSchema>;
53
+ /**
54
+ * The database-level TTL in force.
55
+ *
56
+ * @stability stable
57
+ */
58
+ export type TelemetryTtl = z.infer<typeof telemetryTtlSchema>;
59
+ /**
60
+ * One table of the telemetry database.
61
+ *
62
+ * @stability stable
63
+ */
64
+ export type TelemetryTable = z.infer<typeof telemetryTableSchema>;
65
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/telemetry/status.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;iBAK7B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;iBAK/B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAiBhC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,62 @@
1
+ // =============================================================================
2
+ // GET /api/admin/telemetry/status (issue #534; moved here from the API's
3
+ // `telemetry/dto/telemetry-status.dto.ts` by #702)
4
+ // =============================================================================
5
+ //
6
+ // A diagnosis, never an error: an unconfigured or unreachable store is
7
+ // reported in these fields with a 200, so the admin page can say what is
8
+ // wrong instead of rendering a failure.
9
+ // =============================================================================
10
+ import { z } from 'zod';
11
+ /**
12
+ * The database-level TTL in force: `raw` (as `SHOW CREATE DATABASE` prints
13
+ * it) and `days` (whole days, or `null` for `forever` or an unparseable value).
14
+ *
15
+ * @extensionPoint schema
16
+ * @stability stable
17
+ */
18
+ export const telemetryTtlSchema = z.object({
19
+ /** The TTL exactly as `SHOW CREATE DATABASE` prints it, e.g. `7days` or `1month 13h 26m 24s`. */
20
+ raw: z.string(),
21
+ /** `raw` in whole days (rounded), or null for `forever` / an unparseable value. */
22
+ days: z.number().int().nullable(),
23
+ });
24
+ /**
25
+ * One table of the telemetry database: `name` and `rows` (GreptimeDB's
26
+ * estimate, or `null`).
27
+ *
28
+ * @extensionPoint schema
29
+ * @stability stable
30
+ */
31
+ export const telemetryTableSchema = z.object({
32
+ /** The table name. */
33
+ name: z.string(),
34
+ /** GreptimeDB's row estimate from `information_schema.tables`, or null when not reported. */
35
+ rows: z.number().nullable(),
36
+ });
37
+ /**
38
+ * `GET /api/admin/telemetry/status`: `configured`, `reachable`, `version`,
39
+ * `database`, `ttl`, `retentionDays`, `tables` and `error`.
40
+ *
41
+ * @extensionPoint schema
42
+ * @stability stable
43
+ */
44
+ export const telemetryStatusSchema = z.object({
45
+ /** GreptimeDB is configured (admin UI or deployment default) — see `GET /api/admin/telemetry/connection`. */
46
+ configured: z.boolean(),
47
+ /** A `SELECT version()` round trip succeeded just now. */
48
+ reachable: z.boolean(),
49
+ /** e.g. `PostgreSQL 16.3 GreptimeDB 1.2.1`, or null when unreachable. */
50
+ version: z.string().nullable(),
51
+ /** The GreptimeDB database telemetry is written to. */
52
+ database: z.string(),
53
+ /** The database-level TTL currently in force, or null when none is set or it could not be read. */
54
+ ttl: telemetryTtlSchema.nullable(),
55
+ /** `telemetry.retentionDays` — what the TTL should be. */
56
+ retentionDays: z.number().int(),
57
+ /** Every table in the database, by name. Empty when unreachable. */
58
+ tables: z.array(telemetryTableSchema),
59
+ /** Why `reachable` is false, or a partial failure (the TTL or table list could not be read). */
60
+ error: z.string().nullable(),
61
+ });
62
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/telemetry/status.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yEAAyE;AACzE,mDAAmD;AACnD,gFAAgF;AAChF,EAAE;AACF,uEAAuE;AACvE,yEAAyE;AACzE,wCAAwC;AACxC,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,iGAAiG;IACjG,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,mFAAmF;IACnF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,sBAAsB;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,6FAA6F;IAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,6GAA6G;IAC7G,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,0DAA0D;IAC1D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,yEAAyE;IACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,uDAAuD;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,mGAAmG;IACnG,GAAG,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAClC,0DAA0D;IAC1D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC/B,oEAAoE;IACpE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACrC,gGAAgG;IAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,80 @@
1
1
  {
2
2
  "name": "@marinoscar/platform-contract",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0-next.3",
4
+ "description": "Zod DTOs and types shared by the platform API and web packages. Dual CommonJS + ESM.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "engines": {
9
+ "node": ">=24"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/marinoscar/EnterpriseAppBase.git",
14
+ "directory": "packages/platform-contract"
15
+ },
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "main": "./dist/cjs/index.js",
20
+ "module": "./dist/esm/index.js",
21
+ "types": "./dist/cjs/index.d.ts",
22
+ "exports": {
23
+ ".": {
24
+ "import": {
25
+ "types": "./dist/esm/index.d.ts",
26
+ "default": "./dist/esm/index.js"
27
+ },
28
+ "require": {
29
+ "types": "./dist/cjs/index.d.ts",
30
+ "default": "./dist/cjs/index.js"
31
+ }
32
+ },
33
+ "./doctor": {
34
+ "import": {
35
+ "types": "./dist/esm/doctor/index.d.ts",
36
+ "default": "./dist/esm/doctor/index.js"
37
+ },
38
+ "require": {
39
+ "types": "./dist/cjs/doctor/index.d.ts",
40
+ "default": "./dist/cjs/doctor/index.js"
41
+ }
42
+ },
43
+ "./telemetry": {
44
+ "import": {
45
+ "types": "./dist/esm/telemetry/index.d.ts",
46
+ "default": "./dist/esm/telemetry/index.js"
47
+ },
48
+ "require": {
49
+ "types": "./dist/cjs/telemetry/index.d.ts",
50
+ "default": "./dist/cjs/telemetry/index.js"
51
+ }
52
+ },
53
+ "./package.json": "./package.json"
54
+ },
55
+ "files": [
56
+ "dist",
57
+ "README.md",
58
+ "CHANGELOG.md",
59
+ "LICENSE"
60
+ ],
61
+ "scripts": {
62
+ "prebuild": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
63
+ "prepack": "node ../../scripts/copy-license.mjs",
64
+ "build": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node scripts/write-dist-stubs.mjs",
65
+ "dev": "node scripts/dev.mjs",
66
+ "typecheck": "tsc --noEmit",
67
+ "docs": "typedoc --options typedoc.json",
68
+ "test": "vitest",
69
+ "test:run": "vitest run"
70
+ },
71
+ "peerDependencies": {
72
+ "zod": "^4.4.3"
73
+ },
74
+ "devDependencies": {
75
+ "@types/node": "^22.15.32",
76
+ "typescript": "^6.0.3",
77
+ "vitest": "^4.1.8",
78
+ "zod": "^4.4.3"
79
+ }
80
+ }