@ductape/sdk 0.1.132 → 0.1.134

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.
@@ -1,4 +1,4 @@
1
- import type { IPortableFunctionContext, IPortableFunctionContract, IPortableFunctionReference, PortableFunctionClient, PortableFunctionEventsInvoker, PortableJsonSchema } from './types';
1
+ import type { IPortableFunctionContext, IPortableFunctionContract, IPortableFunctionReference, PortableFunctionClient, PortableFunctionEventsInvoker, PortableFunctionGrpcInvoker, PortableJsonSchema } from './types';
2
2
  export declare class PortableFunctionError extends Error {
3
3
  readonly code: string;
4
4
  readonly retryable: boolean;
@@ -7,7 +7,11 @@ export declare class PortableFunctionError extends Error {
7
7
  }
8
8
  export declare class PortableFunctionsRegistry {
9
9
  private eventsInvoker?;
10
+ private grpcInvoker?;
11
+ private readonly resolvedTransports;
10
12
  registerEventsInvoker(invoker: PortableFunctionEventsInvoker): void;
13
+ /** Registers a pooled gRPC client/invoker. The invoker must enforce TLS and workload identity. */
14
+ registerGrpcInvoker(invoker: PortableFunctionGrpcInvoker): void;
11
15
  register<T extends IPortableFunctionContract>(contract: T): PortableFunctionClient<T>;
12
16
  use<T extends IPortableFunctionContract>(contract: T): PortableFunctionClient<T>;
13
17
  get(namespace: string, version: string): IPortableFunctionContract | undefined;
@@ -17,6 +21,7 @@ export declare class PortableFunctionsRegistry {
17
21
  operations: string[];
18
22
  }>;
19
23
  invoke(reference: IPortableFunctionReference, input: unknown, context: IPortableFunctionContext, accessKey: string): Promise<unknown>;
24
+ private invokeHttp;
20
25
  }
21
26
  export declare const portableFunctions: PortableFunctionsRegistry;
22
27
  export declare function referenceFromContract(contract: IPortableFunctionContract, operation: string): IPortableFunctionReference;
@@ -20,9 +20,14 @@ class PortableFunctionError extends Error {
20
20
  }
21
21
  exports.PortableFunctionError = PortableFunctionError;
22
22
  class PortableFunctionsRegistry {
23
+ constructor() {
24
+ this.resolvedTransports = new Map();
25
+ }
23
26
  registerEventsInvoker(invoker) {
24
27
  this.eventsInvoker = invoker;
25
28
  }
29
+ /** Registers a pooled gRPC client/invoker. The invoker must enforce TLS and workload identity. */
30
+ registerGrpcInvoker(invoker) { this.grpcInvoker = invoker; }
26
31
  register(contract) {
27
32
  assertIdentifier(contract.namespace, 'namespace');
28
33
  assertIdentifier(contract.version, 'version');
@@ -59,7 +64,7 @@ class PortableFunctionsRegistry {
59
64
  }));
60
65
  }
61
66
  async invoke(reference, input, context, accessKey) {
62
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
67
+ var _a, _b, _c;
63
68
  validatePortableValue(reference.input_schema, input, 'input');
64
69
  const local = (_a = this.get(reference.namespace, reference.version)) === null || _a === void 0 ? void 0 : _a.operations[reference.operation];
65
70
  let output;
@@ -90,73 +95,95 @@ class PortableFunctionsRegistry {
90
95
  output = await (0, context_1.runWithExecutionContext)(functionContext, () => withDeadline(Promise.resolve(local.handler(input, context)), reference.timeout_ms, reference));
91
96
  }
92
97
  else {
93
- const http = reference.transports.find(transport => transport.type === 'http');
94
- const events = reference.transports.find(transport => transport.type === 'events');
95
- if ((!http || http.type !== 'http') && (events === null || events === void 0 ? void 0 : events.type) === 'events' && this.eventsInvoker) {
96
- const response = await withDeadline(this.eventsInvoker(events, {
97
- function: { namespace: reference.namespace, operation: reference.operation, version: reference.version },
98
- input: input, context,
99
- }), (_b = events.timeout_ms) !== null && _b !== void 0 ? _b : reference.timeout_ms, reference);
100
- if (response.invocation_id !== context.invocation_id)
101
- throw new PortableFunctionError('FUNCTION_CORRELATION_MISMATCH', 'Function Event response invocation_id does not match the request.');
102
- if (response.error)
103
- throw new PortableFunctionError(response.error.code, response.error.message, response.error.retryable, response.error.details);
104
- output = response.output;
105
- }
106
- else if (!http || http.type !== 'http') {
107
- throw new PortableFunctionError('FUNCTION_UNAVAILABLE', `No local handler, configured Events invoker, or HTTP transport is available for ${reference.namespace}.${reference.operation}@${reference.version}.`, true);
108
- }
109
- else {
110
- if (!accessKey)
111
- throw new PortableFunctionError('FUNCTION_AUTH_UNAVAILABLE', 'An access key is required for signed HTTP function invocation.');
112
- const invocation = {
113
- function: { namespace: reference.namespace, operation: reference.operation, version: reference.version },
114
- input: input, context,
115
- };
116
- const body = JSON.stringify(invocation);
117
- const timestamp = Date.now().toString();
118
- const signature = signInvocation(accessKey, timestamp, body);
119
- const controller = new AbortController();
120
- const timeout = setTimeout(() => controller.abort(), (_d = (_c = http.timeout_ms) !== null && _c !== void 0 ? _c : reference.timeout_ms) !== null && _d !== void 0 ? _d : 15000);
98
+ const invocation = {
99
+ function: { namespace: reference.namespace, operation: reference.operation, version: reference.version },
100
+ input: input, context,
101
+ };
102
+ const cacheKey = `${reference.namespace}.${reference.operation}@${reference.version}`;
103
+ const cached = this.resolvedTransports.get(cacheKey);
104
+ const priority = { grpc: 0, events: 1, http: 2 };
105
+ const transports = reference.transports
106
+ .filter((transport) => transport.type !== 'local')
107
+ .sort((a, b) => cached && cached.expiresAt > Date.now() && a.type === cached.type ? -1 : cached && cached.expiresAt > Date.now() && b.type === cached.type ? 1 : priority[a.type] - priority[b.type]);
108
+ let lastUnavailable;
109
+ for (const transport of transports) {
121
110
  try {
122
- const response = await fetch(http.url, {
123
- method: 'POST', body, signal: controller.signal,
124
- headers: {
125
- 'content-type': 'application/json',
126
- 'x-ductape-invocation-id': context.invocation_id,
127
- 'x-ductape-timestamp': timestamp,
128
- 'x-ductape-signature': signature,
129
- 'x-ductape-function': `${reference.namespace}.${reference.operation}@${reference.version}`,
130
- },
131
- });
132
- const responseBody = await response.json();
133
- if (!response.ok || responseBody.error) {
134
- throw new PortableFunctionError((_f = (_e = responseBody.error) === null || _e === void 0 ? void 0 : _e.code) !== null && _f !== void 0 ? _f : 'FUNCTION_HTTP_ERROR', (_h = (_g = responseBody.error) === null || _g === void 0 ? void 0 : _g.message) !== null && _h !== void 0 ? _h : `Function endpoint returned HTTP ${response.status}.`, (_k = (_j = responseBody.error) === null || _j === void 0 ? void 0 : _j.retryable) !== null && _k !== void 0 ? _k : response.status >= 500, (_l = responseBody.error) === null || _l === void 0 ? void 0 : _l.details);
111
+ let response;
112
+ if (transport.type === 'grpc') {
113
+ if (!this.grpcInvoker)
114
+ continue;
115
+ assertSecureGrpcTransport(transport);
116
+ response = await withDeadline(this.grpcInvoker(transport, invocation), (_b = transport.timeout_ms) !== null && _b !== void 0 ? _b : reference.timeout_ms, reference);
135
117
  }
136
- if (responseBody.invocation_id !== context.invocation_id) {
137
- throw new PortableFunctionError('FUNCTION_CORRELATION_MISMATCH', 'Function response invocation_id does not match the request.');
118
+ else if (transport.type === 'events') {
119
+ if (!this.eventsInvoker)
120
+ continue;
121
+ response = await withDeadline(this.eventsInvoker(transport, invocation), (_c = transport.timeout_ms) !== null && _c !== void 0 ? _c : reference.timeout_ms, reference);
122
+ }
123
+ else {
124
+ response = await this.invokeHttp(transport, invocation, reference, accessKey);
138
125
  }
139
- output = responseBody.output;
126
+ if (response.invocation_id !== context.invocation_id)
127
+ throw new PortableFunctionError('FUNCTION_CORRELATION_MISMATCH', 'Function response invocation_id does not match the request.');
128
+ if (response.error)
129
+ throw new PortableFunctionError(response.error.code, response.error.message, response.error.retryable, response.error.details);
130
+ this.resolvedTransports.set(cacheKey, { type: transport.type, expiresAt: Date.now() + 300000 });
131
+ output = response.output;
132
+ break;
140
133
  }
141
- finally {
142
- clearTimeout(timeout);
134
+ catch (error) {
135
+ if (!isTransportUnavailable(error) || (transport.type === 'grpc' && transport.allow_fallback === false))
136
+ throw error;
137
+ lastUnavailable = error;
138
+ this.resolvedTransports.delete(cacheKey);
143
139
  }
144
140
  }
141
+ if (output === undefined && reference.output_schema.type !== 'null') {
142
+ if (lastUnavailable)
143
+ throw lastUnavailable;
144
+ throw new PortableFunctionError('FUNCTION_UNAVAILABLE', `No local handler, pooled gRPC invoker, Events invoker, or signed HTTP transport is available for ${cacheKey}.`, true);
145
+ }
145
146
  }
146
147
  validatePortableValue(reference.output_schema, output, 'output');
147
148
  return output;
148
149
  }
150
+ async invokeHttp(http, invocation, reference, accessKey) {
151
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
152
+ assertSecureFunctionUrl(http.url);
153
+ if (!accessKey)
154
+ throw new PortableFunctionError('FUNCTION_AUTH_UNAVAILABLE', 'An access key is required for signed HTTP function invocation.');
155
+ const body = JSON.stringify(invocation), timestamp = Date.now().toString(), controller = new AbortController();
156
+ const timeout = setTimeout(() => controller.abort(), (_b = (_a = http.timeout_ms) !== null && _a !== void 0 ? _a : reference.timeout_ms) !== null && _b !== void 0 ? _b : 15000);
157
+ try {
158
+ const response = await fetch(http.url, { method: 'POST', body, signal: controller.signal, headers: { 'content-type': 'application/json', 'x-ductape-invocation-id': invocation.context.invocation_id, 'x-ductape-timestamp': timestamp, 'x-ductape-signature': signInvocation(accessKey, timestamp, body), 'x-ductape-function': `${reference.namespace}.${reference.operation}@${reference.version}` } });
159
+ const responseBody = await response.json();
160
+ if (!response.ok || responseBody.error)
161
+ throw new PortableFunctionError((_d = (_c = responseBody.error) === null || _c === void 0 ? void 0 : _c.code) !== null && _d !== void 0 ? _d : 'FUNCTION_HTTP_ERROR', (_f = (_e = responseBody.error) === null || _e === void 0 ? void 0 : _e.message) !== null && _f !== void 0 ? _f : `Function endpoint returned HTTP ${response.status}.`, (_h = (_g = responseBody.error) === null || _g === void 0 ? void 0 : _g.retryable) !== null && _h !== void 0 ? _h : response.status >= 500, (_j = responseBody.error) === null || _j === void 0 ? void 0 : _j.details);
162
+ return responseBody;
163
+ }
164
+ catch (error) {
165
+ if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError')
166
+ throw new PortableFunctionError('FUNCTION_TIMEOUT', 'HTTP function invocation timed out.', true);
167
+ throw error;
168
+ }
169
+ finally {
170
+ clearTimeout(timeout);
171
+ }
172
+ }
149
173
  }
150
174
  exports.PortableFunctionsRegistry = PortableFunctionsRegistry;
151
175
  exports.portableFunctions = new PortableFunctionsRegistry();
152
176
  function referenceFromContract(contract, operation) {
153
- var _a, _b, _c;
177
+ var _a, _b, _c, _d;
154
178
  const definition = contract.operations[operation];
155
179
  if (!definition)
156
180
  throw new PortableFunctionError('FUNCTION_OPERATION_NOT_FOUND', `${contract.namespace}.${operation}@${contract.version} is not declared.`);
157
181
  const declared = (_a = definition.transports) !== null && _a !== void 0 ? _a : [{ type: 'local' }];
158
182
  const baseUrl = typeof process !== 'undefined' ? (_c = (_b = process.env) === null || _b === void 0 ? void 0 : _b.DUCTAPE_FUNCTION_BASE_URL) === null || _c === void 0 ? void 0 : _c.replace(/\/$/, '') : undefined;
183
+ const grpcEndpoint = typeof process !== 'undefined' ? (_d = process.env) === null || _d === void 0 ? void 0 : _d.DUCTAPE_FUNCTION_GRPC_ENDPOINT : undefined;
159
184
  const transports = [...declared];
185
+ if (grpcEndpoint && !transports.some(transport => transport.type === 'grpc'))
186
+ transports.push({ type: 'grpc', endpoint: grpcEndpoint, authentication: 'mtls', tls: { ca_env: 'DUCTAPE_FUNCTION_GRPC_CA', cert_env: 'DUCTAPE_FUNCTION_GRPC_CERT', key_env: 'DUCTAPE_FUNCTION_GRPC_KEY' }, timeout_ms: definition.timeout_ms });
160
187
  if (baseUrl && !transports.some(transport => transport.type === 'http')) {
161
188
  assertSecureFunctionUrl(baseUrl);
162
189
  transports.push({
@@ -173,6 +200,10 @@ function referenceFromContract(contract, operation) {
173
200
  timeout_ms: definition.timeout_ms, idempotent: definition.idempotent,
174
201
  };
175
202
  }
203
+ function assertSecureGrpcTransport(transport) { if (transport.authentication !== 'mtls')
204
+ throw new PortableFunctionError('FUNCTION_INSECURE_TRANSPORT', 'Remote gRPC portable functions require mTLS.'); if (!/^[A-Za-z0-9._-]+:\d{1,5}$/.test(transport.endpoint))
205
+ throw new PortableFunctionError('FUNCTION_CONTRACT_INVALID', 'gRPC endpoint must be host:port.'); }
206
+ function isTransportUnavailable(error) { var _a; const code = error instanceof PortableFunctionError ? error.code : String((_a = error === null || error === void 0 ? void 0 : error.code) !== null && _a !== void 0 ? _a : ''); return ['FUNCTION_UNAVAILABLE', 'FUNCTION_TIMEOUT', 'UNAVAILABLE', 'DEADLINE_EXCEEDED', '14', '4'].includes(code); }
176
207
  function assertSecureFunctionUrl(url) {
177
208
  let parsed;
178
209
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"functions.runtime.js","sourceRoot":"","sources":["../../src/functions/functions.runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.runtime.js","sourceRoot":"","sources":["../../src/functions/functions.runtime.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,28 @@ export interface IPortableFunctionHttpTransport {
40
40
  export interface IPortableFunctionLocalTransport {
41
41
  type: 'local';
42
42
  }
43
+ export interface IPortableFunctionGrpcTransport {
44
+ type: 'grpc';
45
+ /** Host and port only; grpc:// URLs are deliberately rejected. */
46
+ endpoint: string;
47
+ /** Defaults to ductape.functions.v1.PortableFunctions. */
48
+ service?: string;
49
+ /** Defaults to Invoke. */
50
+ method?: string;
51
+ timeout_ms?: number;
52
+ /** Production gRPC requires mutually authenticated TLS. */
53
+ authentication: 'mtls';
54
+ /** Optional TLS server name override used for certificate verification. */
55
+ server_name?: string;
56
+ /** Environment-variable names containing PEM material; never put PEM/secrets in a contract. */
57
+ tls?: {
58
+ ca_env?: string;
59
+ cert_env?: string;
60
+ key_env?: string;
61
+ };
62
+ /** Permit fallback after UNAVAILABLE/deadline failures. Defaults to true. Auth/schema errors never fall back. */
63
+ allow_fallback?: boolean;
64
+ }
43
65
  export interface IPortableFunctionEventsTransport {
44
66
  type: 'events';
45
67
  /** Full broker/topic event names. */
@@ -47,7 +69,8 @@ export interface IPortableFunctionEventsTransport {
47
69
  response_event: string;
48
70
  timeout_ms?: number;
49
71
  }
50
- export type PortableFunctionTransport = IPortableFunctionLocalTransport | IPortableFunctionHttpTransport | IPortableFunctionEventsTransport;
72
+ export type PortableFunctionTransport = IPortableFunctionLocalTransport | IPortableFunctionGrpcTransport | IPortableFunctionHttpTransport | IPortableFunctionEventsTransport;
73
+ export type PortableFunctionGrpcInvoker = (transport: IPortableFunctionGrpcTransport, invocation: IPortableFunctionInvocation) => Promise<IPortableFunctionInvocationResponse>;
51
74
  export type PortableFunctionEventsInvoker = (transport: IPortableFunctionEventsTransport, invocation: IPortableFunctionInvocation) => Promise<IPortableFunctionInvocationResponse>;
52
75
  export interface IPortableFunctionOperationContract<TInput = Record<string, unknown>, TOutput = unknown> {
53
76
  input: PortableJsonSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/functions/types.ts"],"names":[],"mappings":";;AA2GA,0CAEC;AAMD,wCAIC;AAZD,SAAgB,eAAe,CAAsC,QAAW;IAC9E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,SAA8D;IAE9D,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/functions/types.ts"],"names":[],"mappings":";;AAmIA,0CAEC;AAMD,wCAIC;AAZD,SAAgB,eAAe,CAAsC,QAAW;IAC9E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,SAA8D;IAE9D,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -316,6 +316,7 @@ export default class Ductape implements IDuctape {
316
316
  version: string;
317
317
  operations: string[];
318
318
  }[];
319
+ registerGrpcInvoker: (invoker: import("./functions").PortableFunctionGrpcInvoker) => void;
319
320
  registerEventsInvoker: (invoker: import("./functions").PortableFunctionEventsInvoker) => void;
320
321
  };
321
322
  /** Atomic keyed request enforcement; distinct from weighted provider quotas. */
package/dist/index.js CHANGED
@@ -523,6 +523,7 @@ class Ductape {
523
523
  register: (contract) => functions_1.portableFunctions.register(contract),
524
524
  use: (contract) => functions_1.portableFunctions.use(contract),
525
525
  list: () => functions_1.portableFunctions.list(),
526
+ registerGrpcInvoker: (invoker) => functions_1.portableFunctions.registerGrpcInvoker(invoker),
526
527
  registerEventsInvoker: (invoker) => functions_1.portableFunctions.registerEventsInvoker(invoker),
527
528
  };
528
529
  /** Atomic keyed request enforcement; distinct from weighted provider quotas. */