@graphoria/server 0.3.0 → 0.5.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.
- package/README.md +28 -20
- package/dist/src/ai/mcp/index.d.ts +9 -2
- package/dist/src/ai/mcp/index.d.ts.map +1 -1
- package/dist/src/analyzeQuery/analyzers/selectionAnalyzer.d.ts.map +1 -1
- package/dist/src/analyzeQuery/depthLimit.d.ts +1 -13
- package/dist/src/analyzeQuery/depthLimit.d.ts.map +1 -1
- package/dist/src/authentication/capabilities.d.ts +18 -0
- package/dist/src/authentication/capabilities.d.ts.map +1 -0
- package/dist/src/authentication/capabilities.test.d.ts +2 -0
- package/dist/src/authentication/capabilities.test.d.ts.map +1 -0
- package/dist/src/authentication/jwt.d.ts.map +1 -1
- package/dist/src/authentication/paseto.d.ts.map +1 -1
- package/dist/src/authentication/secrets.d.ts +9 -0
- package/dist/src/authentication/secrets.d.ts.map +1 -0
- package/dist/src/authentication/secrets.test.d.ts +2 -0
- package/dist/src/authentication/secrets.test.d.ts.map +1 -0
- package/dist/src/authentication/tokenRepository.d.ts.map +1 -1
- package/dist/src/config/types/db.d.ts +25 -0
- package/dist/src/config/types/db.d.ts.map +1 -1
- package/dist/src/configuration/getSchemas/index.d.ts +40 -2
- package/dist/src/configuration/getSchemas/index.d.ts.map +1 -1
- package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +20 -1
- package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -1
- package/dist/src/configuration/gql/gqlAuthOperations.d.ts.map +1 -1
- package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts.map +1 -1
- package/dist/src/configuration/gql/handleGraphQLSubscriptionFactory.d.ts.map +1 -1
- package/dist/src/configuration/index.d.ts +30 -1
- package/dist/src/configuration/index.d.ts.map +1 -1
- package/dist/src/configuration/rest/generateOpenAPI.d.ts.map +1 -1
- package/dist/src/configuration/rest/generateOpenAPI.test.d.ts +2 -0
- package/dist/src/configuration/rest/generateOpenAPI.test.d.ts.map +1 -0
- package/dist/src/configuration/rest/handleRESTRequestFactory.d.ts.map +1 -1
- package/dist/src/console/api.d.ts.map +1 -1
- package/dist/src/console/session.d.ts +12 -4
- package/dist/src/console/session.d.ts.map +1 -1
- package/dist/src/cron/index.d.ts.map +1 -1
- package/dist/src/databases/common.d.ts +20 -6
- package/dist/src/databases/common.d.ts.map +1 -1
- package/dist/src/databases/core/executor.d.ts +4 -6
- package/dist/src/databases/core/executor.d.ts.map +1 -1
- package/dist/src/databases/core/function-mapping.d.ts +2 -3
- package/dist/src/databases/core/function-mapping.d.ts.map +1 -1
- package/dist/src/databases/core/procedure-arguments.d.ts +17 -0
- package/dist/src/databases/core/procedure-arguments.d.ts.map +1 -0
- package/dist/src/databases/core/procedure-arguments.test.d.ts +2 -0
- package/dist/src/databases/core/procedure-arguments.test.d.ts.map +1 -0
- package/dist/src/databases/core/query-builder.d.ts +5 -0
- package/dist/src/databases/core/query-builder.d.ts.map +1 -1
- package/dist/src/databases/engines/mssql/connection.d.ts +1 -1
- package/dist/src/databases/engines/mssql/connection.d.ts.map +1 -1
- package/dist/src/databases/engines/mssql/getStructure.d.ts +5 -0
- package/dist/src/databases/engines/mssql/getStructure.d.ts.map +1 -1
- package/dist/src/databases/engines/mssql/query/index.d.ts +2 -2
- package/dist/src/databases/engines/mssql/query/index.d.ts.map +1 -1
- package/dist/src/databases/engines/mysql/connection.d.ts +1 -1
- package/dist/src/databases/engines/mysql/connection.d.ts.map +1 -1
- package/dist/src/databases/engines/mysql/getStructure.d.ts +5 -0
- package/dist/src/databases/engines/mysql/getStructure.d.ts.map +1 -1
- package/dist/src/databases/engines/mysql/query/index.d.ts +2 -2
- package/dist/src/databases/engines/mysql/query/index.d.ts.map +1 -1
- package/dist/src/databases/engines/postgresql/connection.d.ts +1 -1
- package/dist/src/databases/engines/postgresql/connection.d.ts.map +1 -1
- package/dist/src/databases/engines/postgresql/getStructure.d.ts +5 -0
- package/dist/src/databases/engines/postgresql/getStructure.d.ts.map +1 -1
- package/dist/src/databases/engines/postgresql/query/index.d.ts +2 -2
- package/dist/src/databases/engines/postgresql/query/index.d.ts.map +1 -1
- package/dist/src/databases/high-level-operations.d.ts +5 -0
- package/dist/src/databases/high-level-operations.d.ts.map +1 -1
- package/dist/src/databases/metadata/structure.d.ts +5 -0
- package/dist/src/databases/metadata/structure.d.ts.map +1 -1
- package/dist/src/databases/transformers/data-transformers.d.ts +30 -0
- package/dist/src/databases/transformers/data-transformers.d.ts.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/logging/audit.d.ts +27 -0
- package/dist/src/logging/audit.d.ts.map +1 -0
- package/dist/src/logging/audit.test.d.ts +2 -0
- package/dist/src/logging/audit.test.d.ts.map +1 -0
- package/dist/src/logging/slowQuery.d.ts +29 -0
- package/dist/src/logging/slowQuery.d.ts.map +1 -0
- package/dist/src/logging/slowQuery.test.d.ts +2 -0
- package/dist/src/logging/slowQuery.test.d.ts.map +1 -0
- package/dist/src/observability/health.d.ts +23 -0
- package/dist/src/observability/health.d.ts.map +1 -0
- package/dist/src/observability/health.test.d.ts +2 -0
- package/dist/src/observability/health.test.d.ts.map +1 -0
- package/dist/src/observability/httpMetrics.d.ts +7 -0
- package/dist/src/observability/httpMetrics.d.ts.map +1 -0
- package/dist/src/observability/httpMetrics.test.d.ts +2 -0
- package/dist/src/observability/httpMetrics.test.d.ts.map +1 -0
- package/dist/src/observability/httpTracing.d.ts +11 -0
- package/dist/src/observability/httpTracing.d.ts.map +1 -0
- package/dist/src/observability/httpTracing.test.d.ts +2 -0
- package/dist/src/observability/httpTracing.test.d.ts.map +1 -0
- package/dist/src/observability/metrics.d.ts +81 -0
- package/dist/src/observability/metrics.d.ts.map +1 -0
- package/dist/src/observability/metrics.perf.test.d.ts +2 -0
- package/dist/src/observability/metrics.perf.test.d.ts.map +1 -0
- package/dist/src/observability/metrics.test.d.ts +2 -0
- package/dist/src/observability/metrics.test.d.ts.map +1 -0
- package/dist/src/observability/metricsRoute.d.ts +19 -0
- package/dist/src/observability/metricsRoute.d.ts.map +1 -0
- package/dist/src/observability/metricsRoute.test.d.ts +2 -0
- package/dist/src/observability/metricsRoute.test.d.ts.map +1 -0
- package/dist/src/observability/tracing.d.ts +92 -0
- package/dist/src/observability/tracing.d.ts.map +1 -0
- package/dist/src/observability/tracing.perf.test.d.ts +2 -0
- package/dist/src/observability/tracing.perf.test.d.ts.map +1 -0
- package/dist/src/observability/tracing.test.d.ts +2 -0
- package/dist/src/observability/tracing.test.d.ts.map +1 -0
- package/dist/src/queues/kafka.d.ts +6 -0
- package/dist/src/queues/kafka.d.ts.map +1 -1
- package/dist/src/queues/kafka.test.d.ts +2 -0
- package/dist/src/queues/kafka.test.d.ts.map +1 -0
- package/dist/src/queues/rabbitmq.d.ts.map +1 -1
- package/dist/src/remoteREST/proxy.d.ts.map +1 -1
- package/dist/src/remoteSchemas/proxy.d.ts.map +1 -1
- package/dist/src/singletons/cache/redisClient.d.ts +2 -2
- package/dist/src/singletons/cache/redisClient.d.ts.map +1 -1
- package/dist/src/singletons/databases.d.ts +1 -0
- package/dist/src/singletons/databases.d.ts.map +1 -1
- package/dist/src/singletons/env.d.ts +37 -4
- package/dist/src/singletons/env.d.ts.map +1 -1
- package/dist/src/singletons/queues.d.ts +1 -0
- package/dist/src/singletons/queues.d.ts.map +1 -1
- package/dist/src/subscriptions/strategies/database.d.ts.map +1 -1
- package/dist/src/subscriptions/utils/polling.d.ts +1 -0
- package/dist/src/subscriptions/utils/polling.d.ts.map +1 -1
- package/dist/src/subscriptions/utils/polling.test.d.ts +2 -0
- package/dist/src/subscriptions/utils/polling.test.d.ts.map +1 -0
- package/dist/src/types/env.d.ts +113 -12
- package/dist/src/types/env.d.ts.map +1 -1
- package/dist/src/types/zod/configuration.d.ts +25 -0
- package/dist/src/types/zod/configuration.d.ts.map +1 -1
- package/dist/src/types/zod/db.d.ts +85 -0
- package/dist/src/types/zod/db.d.ts.map +1 -1
- package/dist/src/utils/rateLimit.d.ts.map +1 -1
- package/dist/src/utils/redis.d.ts +17 -0
- package/dist/src/utils/redis.d.ts.map +1 -0
- package/dist/src/utils/redis.test.d.ts +2 -0
- package/dist/src/utils/redis.test.d.ts.map +1 -0
- package/dist/src/utils/responses.d.ts +6 -0
- package/dist/src/utils/responses.d.ts.map +1 -1
- package/dist/src/utils/sessionVariables.d.ts +2 -0
- package/dist/src/utils/sessionVariables.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -5
- package/playgrounds/console/index.html +9 -9
- package/playgrounds/graphiql/index.html +549 -686
- package/playgrounds/scalar/index.html +1 -1
- package/src/ai/mcp/index.ts +19 -14
- package/src/analyzeQuery/analyzers/selectionAnalyzer.ts +2 -1
- package/src/analyzeQuery/depthLimit.ts +15 -5
- package/src/authentication/capabilities.ts +56 -0
- package/src/authentication/index.ts +3 -3
- package/src/authentication/jwt.ts +30 -25
- package/src/authentication/paseto.ts +36 -26
- package/src/authentication/secrets.ts +30 -0
- package/src/authentication/tokenRepository.ts +2 -3
- package/src/config/types/db.ts +16 -2
- package/src/configuration/getSchemas/mergeEntities/index.ts +0 -26
- package/src/configuration/gql/gqlAuthOperations.ts +26 -0
- package/src/configuration/gql/handleGraphQLRequestFactory.ts +241 -148
- package/src/configuration/gql/handleGraphQLSubscriptionFactory.ts +9 -0
- package/src/configuration/rest/generateOpenAPI.ts +61 -11
- package/src/configuration/rest/handleRESTRequestFactory.ts +26 -0
- package/src/console/api.ts +64 -24
- package/src/console/session.ts +30 -26
- package/src/cron/index.ts +59 -36
- package/src/databases/common.ts +109 -10
- package/src/databases/core/executor.ts +97 -20
- package/src/databases/core/function-mapping.ts +1 -2
- package/src/databases/core/procedure-arguments.ts +25 -0
- package/src/databases/engines/mssql/connection.ts +0 -3
- package/src/databases/engines/mssql/query/index.ts +4 -1
- package/src/databases/engines/mysql/connection.ts +10 -7
- package/src/databases/engines/mysql/query/index.ts +5 -2
- package/src/databases/engines/postgresql/connection.ts +10 -7
- package/src/databases/engines/postgresql/query/index.ts +5 -2
- package/src/databases/high-level-operations.ts +44 -2
- package/src/index.ts +200 -76
- package/src/logging/audit.ts +86 -0
- package/src/logging/slowQuery.ts +59 -0
- package/src/observability/health.ts +67 -0
- package/src/observability/httpMetrics.ts +37 -0
- package/src/observability/httpTracing.ts +48 -0
- package/src/observability/metrics.ts +243 -0
- package/src/observability/metricsRoute.ts +33 -0
- package/src/observability/tracing.ts +421 -0
- package/src/queues/kafka.ts +45 -2
- package/src/queues/rabbitmq.ts +37 -1
- package/src/remoteREST/proxy.ts +17 -0
- package/src/remoteSchemas/proxy.ts +17 -0
- package/src/singletons/cache/redisClient.ts +4 -5
- package/src/singletons/databases.ts +5 -0
- package/src/singletons/queues.ts +9 -3
- package/src/subscriptions/strategies/database.ts +2 -0
- package/src/subscriptions/utils/polling.ts +80 -21
- package/src/types/env.ts +53 -8
- package/src/utils/rateLimit.ts +6 -1
- package/src/utils/redis.ts +71 -0
- package/src/utils/responses.ts +12 -0
- package/src/utils/sessionVariables.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.test.d.ts","sourceRoot":"","sources":["../../../src/logging/audit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Logger } from "pino";
|
|
2
|
+
/** The GraphQL operation a statement was generated for. Names only, never values. */
|
|
3
|
+
export type QuerySource = {
|
|
4
|
+
operation: {
|
|
5
|
+
type: "query" | "mutation" | "subscription";
|
|
6
|
+
name: string | null;
|
|
7
|
+
fields: string[];
|
|
8
|
+
};
|
|
9
|
+
role?: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
export type SlowQueryRecord = {
|
|
12
|
+
durationMs: number;
|
|
13
|
+
dbType: string;
|
|
14
|
+
dbName: string;
|
|
15
|
+
sql?: string;
|
|
16
|
+
procedure?: string;
|
|
17
|
+
outcome: "success" | "error";
|
|
18
|
+
} & Partial<QuerySource>;
|
|
19
|
+
export type SlowQueryLog = {
|
|
20
|
+
emit(record: SlowQueryRecord & {
|
|
21
|
+
thresholdMs: number;
|
|
22
|
+
}): void;
|
|
23
|
+
};
|
|
24
|
+
export declare const setSlowQueryMs: (ms: number) => void;
|
|
25
|
+
export declare const createSlowQueryLog: (base: Logger) => SlowQueryLog;
|
|
26
|
+
/** Test seam: pass `null` to restore the default log. */
|
|
27
|
+
export declare const setSlowQueryLog: (log: SlowQueryLog | null) => void;
|
|
28
|
+
export declare const reportQueryDuration: (record: SlowQueryRecord) => void;
|
|
29
|
+
//# sourceMappingURL=slowQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slowQuery.d.ts","sourceRoot":"","sources":["../../../src/logging/slowQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,qFAAqF;AACrF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;QAC5C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;CAC9B,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEzB,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D,CAAC;AAQF,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,IAE3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,YAEhD,CAAC;AAKH,yDAAyD;AACzD,eAAO,MAAM,eAAe,QAAS,YAAY,GAAG,IAAI,KAAG,IAE1D,CAAC;AAQF,eAAO,MAAM,mBAAmB,WAAY,eAAe,KAAG,IAG7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slowQuery.test.d.ts","sourceRoot":"","sources":["../../../src/logging/slowQuery.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { S200, S503 } from "../utils/responses";
|
|
2
|
+
export type HealthCheck = {
|
|
3
|
+
kind: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
probe: () => Promise<boolean> | boolean;
|
|
6
|
+
};
|
|
7
|
+
export type HealthRoutesOptions = {
|
|
8
|
+
basePath: string;
|
|
9
|
+
/** Read on every readiness request, so a check can follow state that changes after boot. */
|
|
10
|
+
checks: () => HealthCheck[];
|
|
11
|
+
timeoutMs: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Unauthenticated probes for an orchestrator. Liveness touches nothing, so a
|
|
15
|
+
* dependency outage never gets the process restarted; readiness pings every
|
|
16
|
+
* dependency and answers 503 while one is down. The body names each check and
|
|
17
|
+
* whether it passed — the reason stays in the log, because a driver error can
|
|
18
|
+
* carry a host and port.
|
|
19
|
+
*/
|
|
20
|
+
export declare const createHealthRoutes: ({ basePath, checks, timeoutMs }: HealthRoutesOptions) => {
|
|
21
|
+
[x: string]: (() => S200) | (() => Promise<S200 | S503>);
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/observability/health.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,MAAM,EAAE,MAAM,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAgBF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,oCAAqC,mBAAmB;;CA6BtF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.test.d.ts","sourceRoot":"","sources":["../../../src/observability/health.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a route handler so the request is counted and timed. The route label is
|
|
3
|
+
* the name of the mounted route, never the URL: a path carries identifiers, and
|
|
4
|
+
* one series per identifier is a cardinality leak.
|
|
5
|
+
*/
|
|
6
|
+
export declare const withHttpMetrics: <Req extends Request, Args extends unknown[]>(route: string, handler: (req: Req, ...args: Args) => Response | undefined | Promise<Response | undefined>) => (req: Req, ...args: Args) => Promise<Response | undefined>;
|
|
7
|
+
//# sourceMappingURL=httpMetrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpMetrics.d.ts","sourceRoot":"","sources":["../../../src/observability/httpMetrics.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACzB,GAAG,SAAS,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,SACnC,MAAM,WACJ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,WAEhF,GAAG,WAAW,IAAI,KAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAwB5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpMetrics.test.d.ts","sourceRoot":"","sources":["../../../src/observability/httpMetrics.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a route handler so the request roots a trace. The span is named for the
|
|
3
|
+
* mounted route, never the URL: a path carries identifiers and a query string
|
|
4
|
+
* carries caller data, and a span name is exported verbatim.
|
|
5
|
+
*
|
|
6
|
+
* An inbound `traceparent` is continued, so a gateway's span and this one join
|
|
7
|
+
* up. `parent: null` is deliberate — a request is a root, never a child of
|
|
8
|
+
* whatever context the server happened to be in.
|
|
9
|
+
*/
|
|
10
|
+
export declare const withHttpTracing: <Req extends Request, Args extends unknown[]>(route: string, handler: (req: Req, ...args: Args) => Response | undefined | Promise<Response | undefined>) => (req: Req, ...args: Args) => Promise<Response | undefined>;
|
|
11
|
+
//# sourceMappingURL=httpTracing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpTracing.d.ts","sourceRoot":"","sources":["../../../src/observability/httpTracing.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GACzB,GAAG,SAAS,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,SACnC,MAAM,WACJ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,WAEhF,GAAG,WAAW,IAAI,KAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CA+B5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpTracing.test.d.ts","sourceRoot":"","sources":["../../../src/observability/httpTracing.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
declare const METRICS: {
|
|
2
|
+
readonly graphoria_graphql_operations_total: {
|
|
3
|
+
readonly type: "counter";
|
|
4
|
+
readonly help: "GraphQL operations executed, by outcome.";
|
|
5
|
+
readonly labelNames: readonly ["operation", "outcome", "role", "type"];
|
|
6
|
+
};
|
|
7
|
+
readonly graphoria_graphql_operation_duration_seconds: {
|
|
8
|
+
readonly type: "histogram";
|
|
9
|
+
readonly help: "Time spent handling a GraphQL operation, in seconds.";
|
|
10
|
+
readonly labelNames: readonly ["operation", "role", "type"];
|
|
11
|
+
};
|
|
12
|
+
readonly graphoria_http_requests_total: {
|
|
13
|
+
readonly type: "counter";
|
|
14
|
+
readonly help: "HTTP requests answered by the GraphQL and REST routes, by status.";
|
|
15
|
+
readonly labelNames: readonly ["method", "route", "status"];
|
|
16
|
+
};
|
|
17
|
+
readonly graphoria_http_request_duration_seconds: {
|
|
18
|
+
readonly type: "histogram";
|
|
19
|
+
readonly help: "Time spent answering an HTTP request, in seconds.";
|
|
20
|
+
readonly labelNames: readonly ["method", "route"];
|
|
21
|
+
};
|
|
22
|
+
readonly graphoria_cron_runs_total: {
|
|
23
|
+
readonly type: "counter";
|
|
24
|
+
readonly help: "Cron ticks that ran to completion or threw, by job.";
|
|
25
|
+
readonly labelNames: readonly ["job", "outcome"];
|
|
26
|
+
};
|
|
27
|
+
readonly graphoria_cron_run_duration_seconds: {
|
|
28
|
+
readonly type: "histogram";
|
|
29
|
+
readonly help: "Time spent in a cron tick, in seconds.";
|
|
30
|
+
readonly labelNames: readonly ["job"];
|
|
31
|
+
};
|
|
32
|
+
readonly graphoria_queue_messages_published_total: {
|
|
33
|
+
readonly type: "counter";
|
|
34
|
+
readonly help: "Messages handed to a broker, by publisher and outcome.";
|
|
35
|
+
readonly labelNames: readonly ["broker", "outcome", "publisher"];
|
|
36
|
+
};
|
|
37
|
+
readonly graphoria_queue_messages_consumed_total: {
|
|
38
|
+
readonly type: "counter";
|
|
39
|
+
readonly help: "Messages taken from a broker, by consumer and outcome.";
|
|
40
|
+
readonly labelNames: readonly ["broker", "consumer", "outcome", "queue"];
|
|
41
|
+
};
|
|
42
|
+
readonly graphoria_rate_limit_rejections_total: {
|
|
43
|
+
readonly type: "counter";
|
|
44
|
+
readonly help: "Requests refused by the rate limiter, by the role the ceiling was read from.";
|
|
45
|
+
readonly labelNames: readonly ["role"];
|
|
46
|
+
};
|
|
47
|
+
readonly graphoria_graphql_rejections_total: {
|
|
48
|
+
readonly type: "counter";
|
|
49
|
+
readonly help: "GraphQL operations rejected before execution.";
|
|
50
|
+
readonly labelNames: readonly ["reason"];
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export type MetricName = keyof typeof METRICS;
|
|
54
|
+
export type Labels = Record<string, string>;
|
|
55
|
+
export type Registry = {
|
|
56
|
+
inc(metric: MetricName, labels: Labels, value?: number): void;
|
|
57
|
+
observe(metric: MetricName, labels: Labels, seconds: number): void;
|
|
58
|
+
render(): string;
|
|
59
|
+
};
|
|
60
|
+
export type RegistryOptions = {
|
|
61
|
+
/** Distinct values the caller-supplied `operation` label may take, per metric. */
|
|
62
|
+
maxOperationLabels?: number;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* A metric store with no dependencies. The `operation` label is the only one a
|
|
66
|
+
* caller controls, so it is the only one capped: past the cap every new name
|
|
67
|
+
* collapses into `other` rather than minting a series the scrape has to carry
|
|
68
|
+
* forever.
|
|
69
|
+
*/
|
|
70
|
+
export declare const createRegistry: ({ maxOperationLabels, }?: RegistryOptions) => Registry;
|
|
71
|
+
export declare const configureMetrics: (settings: {
|
|
72
|
+
enabled: boolean;
|
|
73
|
+
} & RegistryOptions) => void;
|
|
74
|
+
/** Test seam: pass `null` to drop the process registry and its recorded series. */
|
|
75
|
+
export declare const setMetricsRegistry: (registry: Registry | null) => void;
|
|
76
|
+
export declare const isMetricsEnabled: () => boolean;
|
|
77
|
+
export declare const incMetric: (metric: MetricName, labels: Labels, value?: number) => void;
|
|
78
|
+
export declare const observeMetric: (metric: MetricName, labels: Labels, seconds: number) => void;
|
|
79
|
+
export declare const renderMetrics: () => string;
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/observability/metrics.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,OAAO;;iBAET,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,0CAA0C;iBAChD,UAAU;;;iBAGV,IAAI,EAAE,WAAW;iBACjB,IAAI,EAAE,sDAAsD;iBAC5D,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,mEAAmE;iBACzE,UAAU;;;iBAGV,IAAI,EAAE,WAAW;iBACjB,IAAI,EAAE,mDAAmD;iBACzD,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,qDAAqD;iBAC3D,UAAU;;;iBAGV,IAAI,EAAE,WAAW;iBACjB,IAAI,EAAE,wCAAwC;iBAC9C,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,wDAAwD;iBAC9D,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,wDAAwD;iBAC9D,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,8EAA8E;iBACpF,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,+CAA+C;iBACrD,UAAU;;CAEuC,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC;AAE9C,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,MAAM,IAAI,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAeF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6BAExB,eAAe,KAAQ,QAqGzB,CAAC;AAeF,eAAO,MAAM,gBAAgB,aAAc;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,eAAe,KAAG,IAInF,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,aAAc,QAAQ,GAAG,IAAI,KAAG,IAG9D,CAAC;AAQF,eAAO,MAAM,gBAAgB,QAAO,OAAkB,CAAC;AAEvD,eAAO,MAAM,SAAS,WAAY,UAAU,UAAU,MAAM,qBAAc,IAGzE,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,UAAU,UAAU,MAAM,WAAW,MAAM,KAAG,IAGnF,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,MAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.perf.test.d.ts","sourceRoot":"","sources":["../../../src/observability/metrics.perf.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.test.d.ts","sourceRoot":"","sources":["../../../src/observability/metrics.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CapabilityGrant } from "../authentication/capabilities";
|
|
2
|
+
export type MetricsRouteOptions = {
|
|
3
|
+
path: string;
|
|
4
|
+
/** The header a scoped credential rides in — the admin-secret header. */
|
|
5
|
+
secretHeader: string;
|
|
6
|
+
authorize: (candidate: string | null) => CapabilityGrant | null;
|
|
7
|
+
render: () => string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* A scrape is gated because the exposition names operations, roles and
|
|
11
|
+
* databases. It is deliberately not rate limited: a scrape interval is fixed
|
|
12
|
+
* and counting it against a caller ceiling would drop samples.
|
|
13
|
+
*/
|
|
14
|
+
export declare const createMetricsRoute: ({ path, secretHeader, authorize, render, }: MetricsRouteOptions) => {
|
|
15
|
+
[x: string]: {
|
|
16
|
+
GET: (req: Request) => Response;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=metricsRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metricsRoute.d.ts","sourceRoot":"","sources":["../../../src/observability/metricsRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,eAAe,GAAG,IAAI,CAAC;IAChE,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,+CAK5B,mBAAmB;;mBAEP,OAAO;;CAMpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metricsRoute.test.d.ts","sourceRoot":"","sources":["../../../src/observability/metricsRoute.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { Logger } from "pino";
|
|
2
|
+
export type SpanKind = "internal" | "server" | "client" | "producer" | "consumer";
|
|
3
|
+
export type SpanStatus = "unset" | "ok" | "error";
|
|
4
|
+
export type AttributeValue = string | number | boolean;
|
|
5
|
+
export type Attributes = Record<string, AttributeValue | undefined>;
|
|
6
|
+
/** What rides in the async context: three scalars, never the span itself. */
|
|
7
|
+
export type SpanContext = {
|
|
8
|
+
traceId: string;
|
|
9
|
+
spanId: string;
|
|
10
|
+
sampled: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type SpanOptions = {
|
|
13
|
+
kind?: SpanKind;
|
|
14
|
+
attributes?: Attributes;
|
|
15
|
+
/** Overrides the active context — the inbound `traceparent`, or a deliberate root. */
|
|
16
|
+
parent?: SpanContext | null;
|
|
17
|
+
};
|
|
18
|
+
export type Span = {
|
|
19
|
+
readonly context: SpanContext;
|
|
20
|
+
setAttribute(key: string, value: AttributeValue | undefined): void;
|
|
21
|
+
setStatus(status: SpanStatus, message?: string): void;
|
|
22
|
+
recordError(error: unknown): void;
|
|
23
|
+
end(): void;
|
|
24
|
+
};
|
|
25
|
+
export type FinishedSpan = {
|
|
26
|
+
traceId: string;
|
|
27
|
+
spanId: string;
|
|
28
|
+
parentSpanId?: string;
|
|
29
|
+
name: string;
|
|
30
|
+
kind: SpanKind;
|
|
31
|
+
startTimeUnixNano: string;
|
|
32
|
+
endTimeUnixNano: string;
|
|
33
|
+
attributes: Attributes;
|
|
34
|
+
status: SpanStatus;
|
|
35
|
+
statusMessage?: string;
|
|
36
|
+
};
|
|
37
|
+
export type Tracer = {
|
|
38
|
+
startSpan(name: string, options?: SpanOptions): Span;
|
|
39
|
+
/** Runs `fn` with `span` active, ends it, and marks it errored if `fn` throws. */
|
|
40
|
+
withSpan<T>(name: string, options: SpanOptions, fn: (span: Span) => T | Promise<T>): Promise<T>;
|
|
41
|
+
active(): SpanContext | undefined;
|
|
42
|
+
flush(): Promise<void>;
|
|
43
|
+
};
|
|
44
|
+
export type TracerOptions = {
|
|
45
|
+
endpoint: string;
|
|
46
|
+
/** `k=v,k2=v2`, sent on every export — an API key for a hosted collector. */
|
|
47
|
+
headers?: string;
|
|
48
|
+
serviceName: string;
|
|
49
|
+
serviceVersion: string;
|
|
50
|
+
sampleRatio?: number;
|
|
51
|
+
maxBatch?: number;
|
|
52
|
+
maxQueue?: number;
|
|
53
|
+
/** `0` starts no timer, which is how a test drives the exporter by hand. */
|
|
54
|
+
exportIntervalMs?: number;
|
|
55
|
+
/** Test seam: where an export failure and a queue overflow are reported. */
|
|
56
|
+
log?: Pick<Logger, "warn">;
|
|
57
|
+
/** Test seam: the transport. Production POSTs with `fetch`. */
|
|
58
|
+
send?: (url: string, init: {
|
|
59
|
+
method: string;
|
|
60
|
+
headers: Record<string, string>;
|
|
61
|
+
body: string;
|
|
62
|
+
}) => Promise<void>;
|
|
63
|
+
};
|
|
64
|
+
export declare const parseTraceparent: (header: string | null | undefined) => SpanContext | undefined;
|
|
65
|
+
export declare const formatTraceparent: (context: SpanContext) => string;
|
|
66
|
+
/**
|
|
67
|
+
* A tracer with no dependencies: W3C ids, OTLP/HTTP JSON, and a bounded export
|
|
68
|
+
* queue. Nothing here reads process state — everything it needs is closed over,
|
|
69
|
+
* so it is unit-testable without booting a server.
|
|
70
|
+
*/
|
|
71
|
+
export declare const createTracer: ({ endpoint, headers, serviceName, serviceVersion, sampleRatio, maxBatch, maxQueue, exportIntervalMs, send, log, }: TracerOptions) => Tracer;
|
|
72
|
+
export declare const configureTracing: (next: {
|
|
73
|
+
enabled: boolean;
|
|
74
|
+
endpoint: string;
|
|
75
|
+
headers: string;
|
|
76
|
+
serviceName: string;
|
|
77
|
+
sampleRatio: number;
|
|
78
|
+
}) => void;
|
|
79
|
+
/** Test seam: pass `null` to drop the process tracer and its queued spans. */
|
|
80
|
+
export declare const setTracer: (tracer: Tracer | null) => void;
|
|
81
|
+
export declare const isTracingEnabled: () => boolean;
|
|
82
|
+
export declare const startSpan: (name: string, options?: SpanOptions) => Span | undefined;
|
|
83
|
+
export declare const withSpan: <T>(name: string, options: SpanOptions, fn: (span: Span | undefined) => T | Promise<T>) => Promise<T>;
|
|
84
|
+
/**
|
|
85
|
+
* Runs `fn` with `span` active, leaving its lifetime to the caller. A span that
|
|
86
|
+
* is never ended is never exported, which is how a websocket upgrade — a
|
|
87
|
+
* request that is never answered — produces no span at all.
|
|
88
|
+
*/
|
|
89
|
+
export declare const withActiveSpan: <T>(span: Span | undefined, fn: () => T) => T;
|
|
90
|
+
export declare const activeSpanContext: () => SpanContext | undefined;
|
|
91
|
+
export declare const flushSpans: () => Promise<void>;
|
|
92
|
+
//# sourceMappingURL=tracing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/observability/tracing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.perf.test.d.ts","sourceRoot":"","sources":["../../../src/observability/tracing.perf.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.test.d.ts","sourceRoot":"","sources":["../../../src/observability/tracing.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Kafka } from "kafkajs";
|
|
1
2
|
import type { Consumer } from "kafkajs";
|
|
2
3
|
import type { KafkaConfig } from "../types/zod/queue";
|
|
3
4
|
export declare const startConsumer: (connectionName: string, name: string, topic: string, consumer: Consumer, _consumerGroup: string) => Promise<void>;
|
|
@@ -13,6 +14,11 @@ export type KafkaConnectionManager = {
|
|
|
13
14
|
cleanup: () => Promise<void>;
|
|
14
15
|
onPublishersChanged: (callback: () => void) => void;
|
|
15
16
|
};
|
|
17
|
+
export type KafkaDependencies = {
|
|
18
|
+
/** Test seam: the manager builds its client through this. */
|
|
19
|
+
createKafka?: (config: ConstructorParameters<typeof Kafka>[0]) => Kafka;
|
|
20
|
+
};
|
|
21
|
+
export declare const createKafkaConnectionManager: (queueConfig: KafkaConfig, { createKafka }?: KafkaDependencies) => KafkaConnectionManager;
|
|
16
22
|
export declare const startKafkaConnections: (queues: KafkaConfig[]) => Promise<{
|
|
17
23
|
managers: KafkaConnectionManager[];
|
|
18
24
|
publisherMap: () => Record<string, KafkaPublisher>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.d.ts","sourceRoot":"","sources":["../../../src/queues/kafka.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kafka.d.ts","sourceRoot":"","sources":["../../../src/queues/kafka.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAA6C,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA6CtD,eAAO,MAAM,aAAa,mBACR,MAAM,QAChB,MAAM,SACL,MAAM,YACH,QAAQ,kBACF,MAAM,kBA2BvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE,CAAC;AAcF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACrD,CAAC;AAcF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;CACzE,CAAC;AAEF,eAAO,MAAM,4BAA4B,gBAC1B,WAAW,oBACyB,iBAAiB,KACjE,sBAyPF,CAAC;AAMF,eAAO,MAAM,qBAAqB,WAAkB,WAAW,EAAE;;;iCAsCrB,MAAM,WAAW,MAAM,GAAG,MAAM,QAAQ,MAAM;;EA6BzF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kafka.test.d.ts","sourceRoot":"","sources":["../../../src/queues/kafka.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq.d.ts","sourceRoot":"","sources":["../../../src/queues/rabbitmq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"rabbitmq.d.ts","sourceRoot":"","sources":["../../../src/queues/rabbitmq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAyBzD,eAAO,MAAM,aAAa,mBACR,MAAM,QAChB,MAAM,aACD,MAAM,WACR,OAAO,YACN,CACR,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IACP,KAAK,EAAE;QACL,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC5F,CAAC;CACH,KACE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,kBAsC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAa3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,+BAA+B,gBAC7B,aAAa,YACjB,gCAAgC,KACxC,yBAgLF,CAAC;AAMF,eAAO,MAAM,wBAAwB,WAAkB,aAAa,EAAE;;;iCAsChC,MAAM,WAAW,MAAM,GAAG,MAAM,SAAS,MAAM;;EA6BpF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteREST/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteREST/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0CnE;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAC1B,eAAe,YACZ,kBAAkB,iBACb,OAAO,cACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eACrB,MAAM,KAClB,OAAO,CAAC,QAAQ,CAyDlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteSchemas/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteSchemas/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA6FpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,UACpB,iBAAiB,gBACV,oBAAoB,qBACf,MAAM,aACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACnB,OAAO,GAAG,UAAU,kBACnB,OAAO,KACtB,OAAO,CAAC,OAAO,CA0DjB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const getCacheRedisClient: () =>
|
|
1
|
+
import { createRedisClient } from "../../utils/redis";
|
|
2
|
+
export declare const getCacheRedisClient: () => ReturnType<typeof createRedisClient>;
|
|
3
3
|
//# sourceMappingURL=redisClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisClient.d.ts","sourceRoot":"","sources":["../../../../src/singletons/cache/redisClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redisClient.d.ts","sourceRoot":"","sources":["../../../../src/singletons/cache/redisClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,mBAAmB,QAAO,UAAU,CAAC,OAAO,iBAAiB,CAKzE,CAAC"}
|
|
@@ -17,6 +17,7 @@ export declare const instantiateDatabasesConnections: (databases: Database[]) =>
|
|
|
17
17
|
databasesConnections: DatabasesConnections;
|
|
18
18
|
repositoryMap: RepositoryMap<unknown>;
|
|
19
19
|
}>;
|
|
20
|
+
export declare const pingConnection: (connection: SQL | ConnectionPool, type: string) => Promise<import("mssql").IResult<any>> | SQL.Query<any>;
|
|
20
21
|
/**
|
|
21
22
|
* Close every open database connection and clear the singleton maps. Bun's `SQL`
|
|
22
23
|
* and mssql's `ConnectionPool` both expose `close()`. Used by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../src/singletons/databases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAM1D;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,WAAW,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/E,eAAO,MAAM,oBAAoB,EAAE,oBAAyB,CAAC;AAC7D,eAAO,MAAM,aAAa,EAAE,aAAkB,CAAC;AAE/C,eAAO,MAAM,+BAA+B,cAAqB,QAAQ,EAAE;;;EA0B1E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qBAS/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../src/singletons/databases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAM1D;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,WAAW,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/E,eAAO,MAAM,oBAAoB,EAAE,oBAAyB,CAAC;AAC7D,eAAO,MAAM,aAAa,EAAE,aAAkB,CAAC;AAE/C,eAAO,MAAM,+BAA+B,cAAqB,QAAQ,EAAE;;;EA0B1E,CAAC;AAEF,eAAO,MAAM,cAAc,eAAgB,GAAG,GAAG,cAAc,QAAQ,MAAM,2DAGjC,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qBAS/B,CAAC"}
|
|
@@ -44,6 +44,11 @@ export declare const env: {
|
|
|
44
44
|
target?: string | undefined;
|
|
45
45
|
operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
|
|
46
46
|
value?: string | number | boolean | undefined;
|
|
47
|
+
ancestor?: {
|
|
48
|
+
schema: string;
|
|
49
|
+
name: string;
|
|
50
|
+
column: string;
|
|
51
|
+
} | undefined;
|
|
47
52
|
}[] | undefined;
|
|
48
53
|
}[];
|
|
49
54
|
description?: string | undefined;
|
|
@@ -337,6 +342,11 @@ export declare const env: {
|
|
|
337
342
|
target?: string | undefined;
|
|
338
343
|
operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
|
|
339
344
|
value?: string | number | boolean | undefined;
|
|
345
|
+
ancestor?: {
|
|
346
|
+
schema: string;
|
|
347
|
+
name: string;
|
|
348
|
+
column: string;
|
|
349
|
+
} | undefined;
|
|
340
350
|
}[] | undefined;
|
|
341
351
|
}[];
|
|
342
352
|
description?: string | undefined;
|
|
@@ -429,6 +439,11 @@ export declare const env: {
|
|
|
429
439
|
target?: string | undefined;
|
|
430
440
|
operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
|
|
431
441
|
value?: string | number | boolean | undefined;
|
|
442
|
+
ancestor?: {
|
|
443
|
+
schema: string;
|
|
444
|
+
name: string;
|
|
445
|
+
column: string;
|
|
446
|
+
} | undefined;
|
|
432
447
|
}[] | undefined;
|
|
433
448
|
}[];
|
|
434
449
|
description?: string | undefined;
|
|
@@ -477,20 +492,21 @@ export declare const env: {
|
|
|
477
492
|
defaultPageSize: number;
|
|
478
493
|
maxPageSize: number;
|
|
479
494
|
queryTimeoutMs: number;
|
|
495
|
+
slowQueryMs: number;
|
|
480
496
|
maxQueryCost: number;
|
|
481
497
|
admin: {
|
|
482
|
-
|
|
498
|
+
secrets: string[];
|
|
483
499
|
header: string;
|
|
484
500
|
};
|
|
485
501
|
jwt: {
|
|
486
|
-
|
|
502
|
+
secrets: string[];
|
|
487
503
|
expiresIn: string;
|
|
488
504
|
rtExpiresIn: string;
|
|
489
505
|
};
|
|
490
506
|
paseto: {
|
|
491
|
-
|
|
507
|
+
localKeys: string[];
|
|
492
508
|
secretKey: string;
|
|
493
|
-
|
|
509
|
+
publicKeys: string[];
|
|
494
510
|
};
|
|
495
511
|
rateLimit: {
|
|
496
512
|
max: number;
|
|
@@ -509,19 +525,36 @@ export declare const env: {
|
|
|
509
525
|
superadmin: {
|
|
510
526
|
role: string;
|
|
511
527
|
};
|
|
528
|
+
metrics: {
|
|
529
|
+
enabled: boolean;
|
|
530
|
+
endpoint: string;
|
|
531
|
+
secrets: string[];
|
|
532
|
+
maxOperationLabels: number;
|
|
533
|
+
};
|
|
534
|
+
tracing: {
|
|
535
|
+
enabled: boolean;
|
|
536
|
+
endpoint: string;
|
|
537
|
+
headers: string;
|
|
538
|
+
serviceName: string;
|
|
539
|
+
sampleRatio: number;
|
|
540
|
+
};
|
|
512
541
|
console: {
|
|
513
542
|
enabled: boolean;
|
|
514
543
|
endpoint: string;
|
|
515
544
|
sessionExpiresIn: string;
|
|
545
|
+
readSecrets: string[];
|
|
546
|
+
writeSecrets: string[];
|
|
516
547
|
};
|
|
517
548
|
ai: {
|
|
518
549
|
enabled: boolean | undefined;
|
|
519
550
|
graphqlEnabled: boolean;
|
|
520
551
|
restEnabled: boolean;
|
|
552
|
+
secrets: string[];
|
|
521
553
|
mcp: {
|
|
522
554
|
enabled: boolean | undefined;
|
|
523
555
|
endpoint: string;
|
|
524
556
|
requireAdminSecret: boolean;
|
|
557
|
+
secrets: string[];
|
|
525
558
|
maxQueryDepth: number | undefined;
|
|
526
559
|
disabledTools: string[];
|
|
527
560
|
disabledResources: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queues.d.ts","sourceRoot":"","sources":["../../../src/singletons/queues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,MAAM,qBAAqB,GAAG;
|
|
1
|
+
{"version":3,"file":"queues.d.ts","sourceRoot":"","sources":["../../../src/singletons/queues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAAC,CAAC;IACvE,WAAW,EAAE,CACX,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,CAAC,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,qBAAqB,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,eAAO,IAAI,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;AAElD,eAAO,MAAM,eAAe,YAAa,YAAY,GAAG,SAAS,SAEhE,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAkB,WAAW,EAAE,kBA2E5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/strategies/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI9F;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,QAAO,
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/strategies/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI9F;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,QAAO,oBAwEpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/utils/polling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/utils/polling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,eAAe,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AA8BD;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CA6HxB,CAAC"}
|