@forwardimpact/librpc 0.1.105 → 0.1.107
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/bin/fit-unary.js +5 -15
- package/package.json +3 -1
- package/src/base.js +20 -10
- package/src/client.js +4 -2
- package/src/generated/definitions/bridge.js +260 -0
- package/src/generated/definitions/embedding.js +29 -0
- package/src/generated/definitions/exports.js +43 -0
- package/src/generated/definitions/ghserver.js +29 -0
- package/src/generated/definitions/ghuser.js +113 -0
- package/src/generated/definitions/graph.js +71 -0
- package/src/generated/definitions/map.js +92 -0
- package/src/generated/definitions/pathway.js +155 -0
- package/src/generated/definitions/tenancy.js +155 -0
- package/src/generated/definitions/trace.js +50 -0
- package/src/generated/definitions/vector.js +29 -0
- package/src/generated/services/bridge/client.js +264 -0
- package/src/generated/services/bridge/service.js +244 -0
- package/src/generated/services/embedding/client.js +44 -0
- package/src/generated/services/embedding/service.js +46 -0
- package/src/generated/services/exports.js +103 -0
- package/src/generated/services/ghserver/client.js +44 -0
- package/src/generated/services/ghserver/service.js +46 -0
- package/src/generated/services/ghuser/client.js +124 -0
- package/src/generated/services/ghuser/service.js +118 -0
- package/src/generated/services/graph/client.js +84 -0
- package/src/generated/services/graph/service.js +82 -0
- package/src/generated/services/map/client.js +104 -0
- package/src/generated/services/map/service.js +100 -0
- package/src/generated/services/pathway/client.js +164 -0
- package/src/generated/services/pathway/service.js +154 -0
- package/src/generated/services/tenancy/client.js +164 -0
- package/src/generated/services/tenancy/service.js +154 -0
- package/src/generated/services/trace/client.js +64 -0
- package/src/generated/services/trace/service.js +64 -0
- package/src/generated/services/vector/client.js +44 -0
- package/src/generated/services/vector/service.js +46 -0
- package/src/generated/types/metadata.js +994 -0
- package/src/generated/types/types.js +20852 -0
- package/src/index.js +14 -3
- package/src/server.js +20 -21
package/src/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import grpc from "@grpc/grpc-js";
|
|
|
2
2
|
|
|
3
3
|
import { createServiceConfig } from "@forwardimpact/libconfig";
|
|
4
4
|
import { Tracer } from "@forwardimpact/libtelemetry/tracer.js";
|
|
5
|
+
import { createDefaultRuntime } from "@forwardimpact/libutil/runtime";
|
|
5
6
|
|
|
6
7
|
import { capitalizeFirstLetter } from "./base.js";
|
|
7
8
|
import * as exports from "./generated/services/exports.js";
|
|
@@ -30,11 +31,17 @@ export const clients = exports.clients || {};
|
|
|
30
31
|
export async function createTracer(serviceName) {
|
|
31
32
|
const traceConfig = await createServiceConfig("trace");
|
|
32
33
|
const { TraceClient } = clients;
|
|
33
|
-
|
|
34
|
+
// createTracer is a composition-root factory; it builds the production
|
|
35
|
+
// runtime as its DI root, threads it into the TraceClient (so the client's
|
|
36
|
+
// auth reads SERVICE_SECRET off the bag) and into the Tracer (and thus every
|
|
37
|
+
// Span) via its clock.
|
|
38
|
+
const runtime = createDefaultRuntime();
|
|
39
|
+
const traceClient = new TraceClient(traceConfig, runtime);
|
|
34
40
|
return new Tracer({
|
|
35
41
|
serviceName,
|
|
36
42
|
traceClient,
|
|
37
43
|
grpcMetadata: grpc.Metadata,
|
|
44
|
+
clock: runtime.clock,
|
|
38
45
|
});
|
|
39
46
|
}
|
|
40
47
|
|
|
@@ -60,6 +67,10 @@ export async function createClient(name, logger = null, tracer = null) {
|
|
|
60
67
|
// Create config for the service
|
|
61
68
|
const config = await createServiceConfig(name);
|
|
62
69
|
|
|
63
|
-
//
|
|
64
|
-
|
|
70
|
+
// createClient is a composition-root factory; build the production runtime
|
|
71
|
+
// here and thread it so the client's auth reads SERVICE_SECRET off the bag.
|
|
72
|
+
const runtime = createDefaultRuntime();
|
|
73
|
+
|
|
74
|
+
// Create and return the client instance (runtime is the required 2nd arg)
|
|
75
|
+
return new ClientClass(config, runtime, logger, tracer);
|
|
65
76
|
}
|
package/src/server.js
CHANGED
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
capitalizeFirstLetter,
|
|
7
7
|
} from "./base.js";
|
|
8
8
|
import { healthDefinition, createHealthHandlers } from "./health.js";
|
|
9
|
-
import { createDefaultRuntime } from "@forwardimpact/libutil/runtime";
|
|
10
9
|
|
|
11
10
|
/**
|
|
12
11
|
* gRPC Server class using pre-compiled service definitions
|
|
@@ -21,29 +20,29 @@ export class Server extends Rpc {
|
|
|
21
20
|
* Creates a gRPC server for a service
|
|
22
21
|
* @param {object} service - Service instance with business logic
|
|
23
22
|
* @param {object} config - Server configuration
|
|
24
|
-
* @param {object}
|
|
25
|
-
* @param {
|
|
26
|
-
* @param {(
|
|
27
|
-
* @param {()
|
|
28
|
-
* @param {(serviceName: string) => object}
|
|
29
|
-
* @param {
|
|
30
|
-
*
|
|
23
|
+
* @param {object} options - Injected collaborators and optional factory overrides
|
|
24
|
+
* @param {object} [options.logger] - Optional logger instance
|
|
25
|
+
* @param {import("@forwardimpact/libtelemetry").Tracer} [options.tracer] - Optional tracer for distributed tracing
|
|
26
|
+
* @param {import("@forwardimpact/libutil/runtime").Runtime} options.runtime - Injected runtime bag
|
|
27
|
+
* @param {(serviceName: string, logger: object, tracer: object) => object} [options.observerFn] - Observer factory
|
|
28
|
+
* @param {() => {grpc: object}} [options.grpcFn] - gRPC factory
|
|
29
|
+
* @param {(serviceName: string) => object} [options.authFn] - Auth factory
|
|
31
30
|
*/
|
|
32
|
-
constructor(
|
|
33
|
-
service,
|
|
34
|
-
config,
|
|
35
|
-
logger = null,
|
|
36
|
-
tracer = null,
|
|
37
|
-
observerFn = createObserver,
|
|
38
|
-
grpcFn = createGrpc,
|
|
39
|
-
authFn = createAuth,
|
|
40
|
-
runtime = null,
|
|
41
|
-
) {
|
|
31
|
+
constructor(service, config, options = {}) {
|
|
42
32
|
if (!service) throw new Error("service is required");
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
const {
|
|
34
|
+
logger = null,
|
|
35
|
+
tracer = null,
|
|
36
|
+
runtime,
|
|
37
|
+
observerFn = createObserver,
|
|
38
|
+
grpcFn = createGrpc,
|
|
39
|
+
authFn = createAuth,
|
|
40
|
+
} = options;
|
|
41
|
+
if (!runtime) throw new Error("runtime is required");
|
|
42
|
+
|
|
43
|
+
super(config, runtime, logger, tracer, observerFn, grpcFn, authFn);
|
|
45
44
|
this.#service = service;
|
|
46
|
-
this.#runtime = runtime
|
|
45
|
+
this.#runtime = runtime;
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
/** Starts the gRPC server */
|