@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.
- package/CHANGELOG.md +33 -0
- package/LICENSE +21 -0
- package/README.md +145 -2
- package/dist/cjs/doctor/constants.d.ts +59 -0
- package/dist/cjs/doctor/constants.d.ts.map +1 -0
- package/dist/cjs/doctor/constants.js +57 -0
- package/dist/cjs/doctor/constants.js.map +1 -0
- package/dist/cjs/doctor/index.d.ts +5 -0
- package/dist/cjs/doctor/index.d.ts.map +1 -0
- package/dist/cjs/doctor/index.js +24 -0
- package/dist/cjs/doctor/index.js.map +1 -0
- package/dist/cjs/doctor/schemas.d.ts +186 -0
- package/dist/cjs/doctor/schemas.d.ts.map +1 -0
- package/dist/cjs/doctor/schemas.js +183 -0
- package/dist/cjs/doctor/schemas.js.map +1 -0
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +16 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/telemetry/assistant.d.ts +173 -0
- package/dist/cjs/telemetry/assistant.d.ts.map +1 -0
- package/dist/cjs/telemetry/assistant.js +43 -0
- package/dist/cjs/telemetry/assistant.js.map +1 -0
- package/dist/cjs/telemetry/config.d.ts +92 -0
- package/dist/cjs/telemetry/config.d.ts.map +1 -0
- package/dist/cjs/telemetry/config.js +101 -0
- package/dist/cjs/telemetry/config.js.map +1 -0
- package/dist/cjs/telemetry/connection.d.ts +355 -0
- package/dist/cjs/telemetry/connection.d.ts.map +1 -0
- package/dist/cjs/telemetry/connection.js +451 -0
- package/dist/cjs/telemetry/connection.js.map +1 -0
- package/dist/cjs/telemetry/constants.d.ts +442 -0
- package/dist/cjs/telemetry/constants.d.ts.map +1 -0
- package/dist/cjs/telemetry/constants.js +400 -0
- package/dist/cjs/telemetry/constants.js.map +1 -0
- package/dist/cjs/telemetry/dashboard.d.ts +826 -0
- package/dist/cjs/telemetry/dashboard.d.ts.map +1 -0
- package/dist/cjs/telemetry/dashboard.js +697 -0
- package/dist/cjs/telemetry/dashboard.js.map +1 -0
- package/dist/cjs/telemetry/enum.d.ts +5 -0
- package/dist/cjs/telemetry/enum.d.ts.map +1 -0
- package/dist/cjs/telemetry/enum.js +12 -0
- package/dist/cjs/telemetry/enum.js.map +1 -0
- package/dist/cjs/telemetry/index.d.ts +5 -0
- package/dist/cjs/telemetry/index.d.ts.map +1 -0
- package/dist/cjs/telemetry/index.js +128 -0
- package/dist/cjs/telemetry/index.js.map +1 -0
- package/dist/cjs/telemetry/query.d.ts +147 -0
- package/dist/cjs/telemetry/query.d.ts.map +1 -0
- package/dist/cjs/telemetry/query.js +141 -0
- package/dist/cjs/telemetry/query.js.map +1 -0
- package/dist/cjs/telemetry/schemas.d.ts +17 -0
- package/dist/cjs/telemetry/schemas.d.ts.map +1 -0
- package/dist/cjs/telemetry/schemas.js +89 -0
- package/dist/cjs/telemetry/schemas.js.map +1 -0
- package/dist/cjs/telemetry/settings.d.ts +65 -0
- package/dist/cjs/telemetry/settings.d.ts.map +1 -0
- package/dist/cjs/telemetry/settings.js +77 -0
- package/dist/cjs/telemetry/settings.js.map +1 -0
- package/dist/cjs/telemetry/stack.d.ts +87 -0
- package/dist/cjs/telemetry/stack.d.ts.map +1 -0
- package/dist/cjs/telemetry/stack.js +93 -0
- package/dist/cjs/telemetry/stack.js.map +1 -0
- package/dist/cjs/telemetry/status.d.ts +65 -0
- package/dist/cjs/telemetry/status.d.ts.map +1 -0
- package/dist/cjs/telemetry/status.js +65 -0
- package/dist/cjs/telemetry/status.js.map +1 -0
- package/dist/esm/doctor/constants.d.ts +59 -0
- package/dist/esm/doctor/constants.d.ts.map +1 -0
- package/dist/esm/doctor/constants.js +54 -0
- package/dist/esm/doctor/constants.js.map +1 -0
- package/dist/esm/doctor/index.d.ts +5 -0
- package/dist/esm/doctor/index.d.ts.map +1 -0
- package/dist/esm/doctor/index.js +10 -0
- package/dist/esm/doctor/index.js.map +1 -0
- package/dist/esm/doctor/schemas.d.ts +186 -0
- package/dist/esm/doctor/schemas.d.ts.map +1 -0
- package/dist/esm/doctor/schemas.js +180 -0
- package/dist/esm/doctor/schemas.js.map +1 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +13 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/telemetry/assistant.d.ts +173 -0
- package/dist/esm/telemetry/assistant.d.ts.map +1 -0
- package/dist/esm/telemetry/assistant.js +40 -0
- package/dist/esm/telemetry/assistant.js.map +1 -0
- package/dist/esm/telemetry/config.d.ts +92 -0
- package/dist/esm/telemetry/config.d.ts.map +1 -0
- package/dist/esm/telemetry/config.js +98 -0
- package/dist/esm/telemetry/config.js.map +1 -0
- package/dist/esm/telemetry/connection.d.ts +355 -0
- package/dist/esm/telemetry/connection.d.ts.map +1 -0
- package/dist/esm/telemetry/connection.js +447 -0
- package/dist/esm/telemetry/connection.js.map +1 -0
- package/dist/esm/telemetry/constants.d.ts +442 -0
- package/dist/esm/telemetry/constants.d.ts.map +1 -0
- package/dist/esm/telemetry/constants.js +397 -0
- package/dist/esm/telemetry/constants.js.map +1 -0
- package/dist/esm/telemetry/dashboard.d.ts +826 -0
- package/dist/esm/telemetry/dashboard.d.ts.map +1 -0
- package/dist/esm/telemetry/dashboard.js +690 -0
- package/dist/esm/telemetry/dashboard.js.map +1 -0
- package/dist/esm/telemetry/enum.d.ts +5 -0
- package/dist/esm/telemetry/enum.d.ts.map +1 -0
- package/dist/esm/telemetry/enum.js +9 -0
- package/dist/esm/telemetry/enum.js.map +1 -0
- package/dist/esm/telemetry/index.d.ts +5 -0
- package/dist/esm/telemetry/index.d.ts.map +1 -0
- package/dist/esm/telemetry/index.js +10 -0
- package/dist/esm/telemetry/index.js.map +1 -0
- package/dist/esm/telemetry/query.d.ts +147 -0
- package/dist/esm/telemetry/query.d.ts.map +1 -0
- package/dist/esm/telemetry/query.js +138 -0
- package/dist/esm/telemetry/query.js.map +1 -0
- package/dist/esm/telemetry/schemas.d.ts +17 -0
- package/dist/esm/telemetry/schemas.d.ts.map +1 -0
- package/dist/esm/telemetry/schemas.js +12 -0
- package/dist/esm/telemetry/schemas.js.map +1 -0
- package/dist/esm/telemetry/settings.d.ts +65 -0
- package/dist/esm/telemetry/settings.d.ts.map +1 -0
- package/dist/esm/telemetry/settings.js +74 -0
- package/dist/esm/telemetry/settings.js.map +1 -0
- package/dist/esm/telemetry/stack.d.ts +87 -0
- package/dist/esm/telemetry/stack.d.ts.map +1 -0
- package/dist/esm/telemetry/stack.js +90 -0
- package/dist/esm/telemetry/stack.js.map +1 -0
- package/dist/esm/telemetry/status.d.ts +65 -0
- package/dist/esm/telemetry/status.d.ts.map +1 -0
- package/dist/esm/telemetry/status.js +62 -0
- package/dist/esm/telemetry/status.js.map +1 -0
- 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.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
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
|
+
}
|