@blokjs/runner 0.2.2 → 0.6.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/dist/Blok.js +32 -3
- package/dist/Blok.js.map +1 -1
- package/dist/Configuration.d.ts +59 -5
- package/dist/Configuration.js +366 -96
- package/dist/Configuration.js.map +1 -1
- package/dist/ForEachNode.d.ts +59 -0
- package/dist/ForEachNode.js +522 -0
- package/dist/ForEachNode.js.map +1 -0
- package/dist/LoopMaxIterationsError.d.ts +11 -0
- package/dist/LoopMaxIterationsError.js +18 -0
- package/dist/LoopMaxIterationsError.js.map +1 -0
- package/dist/LoopNode.d.ts +36 -0
- package/dist/LoopNode.js +182 -0
- package/dist/LoopNode.js.map +1 -0
- package/dist/PayloadTooLargeError.d.ts +19 -0
- package/dist/PayloadTooLargeError.js +29 -0
- package/dist/PayloadTooLargeError.js.map +1 -0
- package/dist/RunCancelledError.d.ts +17 -0
- package/dist/RunCancelledError.js +25 -0
- package/dist/RunCancelledError.js.map +1 -0
- package/dist/Runner.d.ts +11 -1
- package/dist/Runner.js +9 -2
- package/dist/Runner.js.map +1 -1
- package/dist/RunnerSteps.js +648 -44
- package/dist/RunnerSteps.js.map +1 -1
- package/dist/RuntimeAdapterNode.d.ts +2 -1
- package/dist/RuntimeAdapterNode.js +2 -2
- package/dist/RuntimeAdapterNode.js.map +1 -1
- package/dist/RuntimeRegistry.d.ts +23 -2
- package/dist/RuntimeRegistry.js +31 -2
- package/dist/RuntimeRegistry.js.map +1 -1
- package/dist/SubworkflowNode.d.ts +181 -0
- package/dist/SubworkflowNode.js +479 -0
- package/dist/SubworkflowNode.js.map +1 -0
- package/dist/SwitchNode.d.ts +37 -0
- package/dist/SwitchNode.js +153 -0
- package/dist/SwitchNode.js.map +1 -0
- package/dist/TriggerBase.d.ts +178 -0
- package/dist/TriggerBase.js +1032 -5
- package/dist/TriggerBase.js.map +1 -1
- package/dist/TryCatchNode.d.ts +32 -0
- package/dist/TryCatchNode.js +207 -0
- package/dist/TryCatchNode.js.map +1 -0
- package/dist/WaitDispatchRequest.d.ts +38 -0
- package/dist/WaitDispatchRequest.js +13 -0
- package/dist/WaitDispatchRequest.js.map +1 -0
- package/dist/WaitNode.d.ts +23 -0
- package/dist/WaitNode.js +26 -0
- package/dist/WaitNode.js.map +1 -0
- package/dist/adapters/grpc/GrpcCodec.js +2 -2
- package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +6 -4
- package/dist/adapters/grpc/GrpcRuntimeAdapter.js +6 -4
- package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
- package/dist/adapters/grpc/types.d.ts +7 -5
- package/dist/adapters/grpc/types.js.map +1 -1
- package/dist/adapters/transport.d.ts +12 -41
- package/dist/adapters/transport.js +21 -70
- package/dist/adapters/transport.js.map +1 -1
- package/dist/cache/NodeResultCache.js +7 -0
- package/dist/cache/NodeResultCache.js.map +1 -1
- package/dist/concurrency/ConcurrencyBackend.d.ts +61 -0
- package/dist/concurrency/ConcurrencyBackend.js +20 -0
- package/dist/concurrency/ConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/ConcurrencyLimitError.d.ts +37 -0
- package/dist/concurrency/ConcurrencyLimitError.js +16 -0
- package/dist/concurrency/ConcurrencyLimitError.js.map +1 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +64 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.js +310 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/QueueExpiredError.d.ts +40 -0
- package/dist/concurrency/QueueExpiredError.js +15 -0
- package/dist/concurrency/QueueExpiredError.js.map +1 -0
- package/dist/concurrency/RedisConcurrencyBackend.d.ts +64 -0
- package/dist/concurrency/RedisConcurrencyBackend.js +374 -0
- package/dist/concurrency/RedisConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/createConcurrencyBackend.d.ts +24 -0
- package/dist/concurrency/createConcurrencyBackend.js +38 -0
- package/dist/concurrency/createConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/readConcurrencyConfig.d.ts +60 -0
- package/dist/concurrency/readConcurrencyConfig.js +60 -0
- package/dist/concurrency/readConcurrencyConfig.js.map +1 -0
- package/dist/defineNode.d.ts +8 -0
- package/dist/defineNode.js +25 -5
- package/dist/defineNode.js.map +1 -1
- package/dist/graphql/GraphQLSchemaGenerator.js +1 -1
- package/dist/graphql/GraphQLSchemaGenerator.js.map +1 -1
- package/dist/idempotency/resolveIdempotencyKey.d.ts +20 -0
- package/dist/idempotency/resolveIdempotencyKey.js +37 -0
- package/dist/idempotency/resolveIdempotencyKey.js.map +1 -0
- package/dist/index.d.ts +30 -6
- package/dist/index.js +55 -6
- package/dist/index.js.map +1 -1
- package/dist/marketplace/RuntimeCatalog.d.ts +6 -0
- package/dist/marketplace/RuntimeCatalog.js.map +1 -1
- package/dist/marketplace/RuntimeDiscovery.d.ts +2 -2
- package/dist/marketplace/RuntimeDiscovery.js +18 -6
- package/dist/marketplace/RuntimeDiscovery.js.map +1 -1
- package/dist/monitoring/ConcurrencyMetrics.d.ts +82 -0
- package/dist/monitoring/ConcurrencyMetrics.js +139 -0
- package/dist/monitoring/ConcurrencyMetrics.js.map +1 -0
- package/dist/monitoring/ForEachWaitMetrics.d.ts +22 -0
- package/dist/monitoring/ForEachWaitMetrics.js +36 -0
- package/dist/monitoring/ForEachWaitMetrics.js.map +1 -0
- package/dist/monitoring/JanitorMetrics.d.ts +27 -0
- package/dist/monitoring/JanitorMetrics.js +48 -0
- package/dist/monitoring/JanitorMetrics.js.map +1 -0
- package/dist/openapi/OpenAPIGenerator.js +7 -2
- package/dist/openapi/OpenAPIGenerator.js.map +1 -1
- package/dist/runtime/PrimitiveStack.d.ts +64 -0
- package/dist/runtime/PrimitiveStack.js +92 -0
- package/dist/runtime/PrimitiveStack.js.map +1 -0
- package/dist/scheduling/DebounceBackend.d.ts +108 -0
- package/dist/scheduling/DebounceBackend.js +23 -0
- package/dist/scheduling/DebounceBackend.js.map +1 -0
- package/dist/scheduling/DebounceCoordinator.d.ts +141 -0
- package/dist/scheduling/DebounceCoordinator.js +362 -0
- package/dist/scheduling/DebounceCoordinator.js.map +1 -0
- package/dist/scheduling/DeferredDispatchSignal.d.ts +50 -0
- package/dist/scheduling/DeferredDispatchSignal.js +14 -0
- package/dist/scheduling/DeferredDispatchSignal.js.map +1 -0
- package/dist/scheduling/DeferredRunScheduler.d.ts +96 -0
- package/dist/scheduling/DeferredRunScheduler.js +256 -0
- package/dist/scheduling/DeferredRunScheduler.js.map +1 -0
- package/dist/scheduling/NatsKvDebounceBackend.d.ts +53 -0
- package/dist/scheduling/NatsKvDebounceBackend.js +334 -0
- package/dist/scheduling/NatsKvDebounceBackend.js.map +1 -0
- package/dist/scheduling/RedisDebounceBackend.d.ts +49 -0
- package/dist/scheduling/RedisDebounceBackend.js +356 -0
- package/dist/scheduling/RedisDebounceBackend.js.map +1 -0
- package/dist/scheduling/createDebounceBackend.d.ts +25 -0
- package/dist/scheduling/createDebounceBackend.js +39 -0
- package/dist/scheduling/createDebounceBackend.js.map +1 -0
- package/dist/scheduling/readSchedulingConfig.d.ts +24 -0
- package/dist/scheduling/readSchedulingConfig.js +52 -0
- package/dist/scheduling/readSchedulingConfig.js.map +1 -0
- package/dist/security/AuditLogger.js +1 -1
- package/dist/security/AuditLogger.js.map +1 -1
- package/dist/security/AuthMiddleware.d.ts +19 -20
- package/dist/security/AuthMiddleware.js +35 -20
- package/dist/security/AuthMiddleware.js.map +1 -1
- package/dist/security/OAuthProvider.js +2 -2
- package/dist/security/OAuthProvider.js.map +1 -1
- package/dist/security/SecretManager.js +14 -13
- package/dist/security/SecretManager.js.map +1 -1
- package/dist/security/index.d.ts +3 -1
- package/dist/security/index.js +3 -1
- package/dist/security/index.js.map +1 -1
- package/dist/testing/TestHarness.d.ts +27 -12
- package/dist/testing/TestHarness.js +19 -3
- package/dist/testing/TestHarness.js.map +1 -1
- package/dist/testing/WorkflowTestRunner.js +0 -7
- package/dist/testing/WorkflowTestRunner.js.map +1 -1
- package/dist/timeouts/StepTimeoutError.d.ts +22 -0
- package/dist/timeouts/StepTimeoutError.js +31 -0
- package/dist/timeouts/StepTimeoutError.js.map +1 -0
- package/dist/tracing/InMemoryRunStore.d.ts +41 -1
- package/dist/tracing/InMemoryRunStore.js +239 -0
- package/dist/tracing/InMemoryRunStore.js.map +1 -1
- package/dist/tracing/Janitor.d.ts +70 -0
- package/dist/tracing/Janitor.js +150 -0
- package/dist/tracing/Janitor.js.map +1 -0
- package/dist/tracing/PostgresRunStore.d.ts +57 -1
- package/dist/tracing/PostgresRunStore.js +711 -6
- package/dist/tracing/PostgresRunStore.js.map +1 -1
- package/dist/tracing/RoutingDiagnostics.d.ts +55 -0
- package/dist/tracing/RoutingDiagnostics.js +50 -0
- package/dist/tracing/RoutingDiagnostics.js.map +1 -0
- package/dist/tracing/RunStore.d.ts +181 -1
- package/dist/tracing/RunTracker.d.ts +244 -9
- package/dist/tracing/RunTracker.js +594 -1
- package/dist/tracing/RunTracker.js.map +1 -1
- package/dist/tracing/SqliteRunStore.d.ts +79 -2
- package/dist/tracing/SqliteRunStore.js +775 -16
- package/dist/tracing/SqliteRunStore.js.map +1 -1
- package/dist/tracing/TraceRouter.d.ts +20 -2
- package/dist/tracing/TraceRouter.js +612 -6
- package/dist/tracing/TraceRouter.js.map +1 -1
- package/dist/tracing/createStore.js +14 -3
- package/dist/tracing/createStore.js.map +1 -1
- package/dist/tracing/metadataFilter.d.ts +63 -0
- package/dist/tracing/metadataFilter.js +224 -0
- package/dist/tracing/metadataFilter.js.map +1 -0
- package/dist/tracing/sanitize.d.ts +11 -0
- package/dist/tracing/sanitize.js +29 -0
- package/dist/tracing/sanitize.js.map +1 -1
- package/dist/tracing/types.d.ts +672 -2
- package/dist/utils/createChildContext.d.ts +32 -0
- package/dist/utils/createChildContext.js +113 -0
- package/dist/utils/createChildContext.js.map +1 -0
- package/dist/utils/envAllowlist.d.ts +35 -0
- package/dist/utils/envAllowlist.js +113 -0
- package/dist/utils/envAllowlist.js.map +1 -0
- package/dist/version/RuntimeVersionValidator.d.ts +38 -0
- package/dist/version/RuntimeVersionValidator.js +121 -0
- package/dist/version/RuntimeVersionValidator.js.map +1 -0
- package/dist/visualization/WorkflowVisualizer.js +4 -4
- package/dist/visualization/WorkflowVisualizer.js.map +1 -1
- package/dist/workflow/PersistenceHelper.d.ts +18 -10
- package/dist/workflow/PersistenceHelper.js +35 -9
- package/dist/workflow/PersistenceHelper.js.map +1 -1
- package/dist/workflow/WorkflowNormalizer.d.ts +48 -42
- package/dist/workflow/WorkflowNormalizer.js +650 -18
- package/dist/workflow/WorkflowNormalizer.js.map +1 -1
- package/dist/workflow/WorkflowRegistry.d.ts +186 -0
- package/dist/workflow/WorkflowRegistry.js +202 -0
- package/dist/workflow/WorkflowRegistry.js.map +1 -0
- package/dist/workflow/sampleBody.d.ts +54 -0
- package/dist/workflow/sampleBody.js +320 -0
- package/dist/workflow/sampleBody.js.map +1 -0
- package/package.json +3 -8
- package/dist/adapters/HttpRuntimeAdapter.d.ts +0 -79
- package/dist/adapters/HttpRuntimeAdapter.js +0 -233
- package/dist/adapters/HttpRuntimeAdapter.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/grpc/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/grpc/types.ts"],"names":[],"mappings":"AA4EA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,qFAAqF;IACrF,mBAAmB,EAAE,MAAM;IAC3B,oGAAoG;IACpG,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,uCAAuC;IACvC,iBAAiB,EAAE,MAAM;IACzB,qCAAqC;IACrC,oBAAoB,EAAE,KAAK;IAC3B,6EAA6E;IAC7E,8BAA8B,EAAE,IAAI;IACpC,6BAA6B;IAC7B,kBAAkB,EAAE,MAAM;IAC1B,iEAAiE;IACjE,wBAAwB,EAAE,CAAC;CAClB,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA0C;IACxE,MAAM,EAAE,CAAC,EAAE,sBAAsB;IACjC,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACP,CAAC"}
|
|
@@ -1,46 +1,17 @@
|
|
|
1
1
|
import type { RuntimeKind } from "./RuntimeAdapter";
|
|
2
|
-
import type { TlsConfig
|
|
2
|
+
import type { TlsConfig } from "./grpc/types";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Reject any leftover `RUNTIME_TRANSPORT=http` (global) or
|
|
5
|
+
* `RUNTIME_<KIND>_TRANSPORT=http` (per-kind) at startup. gRPC has been the
|
|
6
|
+
* sole runtime transport since v0.5; the HTTP adapter and its env-var
|
|
7
|
+
* escape hatch were removed at the same time. Silent fallback would mask
|
|
8
|
+
* stale operator config, so we throw with the exact env-var the operator
|
|
9
|
+
* still has set and a one-line migration hint.
|
|
5
10
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* e.g. `RUNTIME_PYTHON3_TRANSPORT=http` to opt one SDK out of gRPC.
|
|
9
|
-
* 2. `RUNTIME_TRANSPORT` — global override
|
|
10
|
-
* e.g. `RUNTIME_TRANSPORT=http` to roll back the whole runner.
|
|
11
|
-
* 3. The hard-coded default — **`grpc`** as of Phase 6 (master plan §11).
|
|
12
|
-
* Flipped from `http` to `grpc` after the cross-language parity matrix
|
|
13
|
-
* (`bun run test:parity`, 33 tests across 6 SDKs × 5 workflows) and
|
|
14
|
-
* the per-SDK §17 BlokError E2E suites stayed green for the full
|
|
15
|
-
* Phase 5 observation window.
|
|
16
|
-
*
|
|
17
|
-
* Pure function — reads `process.env` once per call so tests can override.
|
|
18
|
-
*
|
|
19
|
-
* # Why the default flip is safe
|
|
20
|
-
*
|
|
21
|
-
* - HTTP transport remains available behind `RUNTIME_TRANSPORT=http` for at
|
|
22
|
-
* least two minor versions (master plan §11 commitment).
|
|
23
|
-
* - PHP without RoadRunner (Path B from §16) sets
|
|
24
|
-
* `RUNTIME_PHP_TRANSPORT=http` per host. The forever-supported escape
|
|
25
|
-
* hatch is unaffected.
|
|
26
|
-
* - SDKs that fail to bind their gRPC listener fall through the
|
|
27
|
-
* {@link GrpcHealthChecker} circuit-breaker and surface a typed
|
|
28
|
-
* `BlokError(category=DEPENDENCY)` per §9 — no silent failure.
|
|
29
|
-
*
|
|
30
|
-
* @param kind The runtime kind (e.g. "python3").
|
|
31
|
-
* @param env Optional env source (defaults to `process.env`). Tests can
|
|
32
|
-
* pass a stub map.
|
|
33
|
-
* @returns Either `"http"` or `"grpc"`. Invalid values fall back to the
|
|
34
|
-
* Phase 6 default (`grpc`).
|
|
35
|
-
*/
|
|
36
|
-
export declare function resolveTransportForKind(kind: RuntimeKind, env?: NodeJS.ProcessEnv): Transport;
|
|
37
|
-
/**
|
|
38
|
-
* Test-only — reset the per-process HTTP-transport deprecation cache so a
|
|
39
|
-
* test that flips `RUNTIME_TRANSPORT=http` can re-assert the warning fires.
|
|
40
|
-
*
|
|
41
|
-
* @internal
|
|
11
|
+
* Throws on first offending env var found (the order is global first,
|
|
12
|
+
* then per-kind so operators see the broadest mistake first).
|
|
42
13
|
*/
|
|
43
|
-
export declare function
|
|
14
|
+
export declare function assertGrpcOnlyTransport(env?: NodeJS.ProcessEnv): void;
|
|
44
15
|
/**
|
|
45
16
|
* Whether log streaming is enabled for runtime nodes. When true, the runner
|
|
46
17
|
* routes runtime nodes through `GrpcRuntimeAdapter.executeStream` instead of
|
|
@@ -49,8 +20,8 @@ export declare function _resetHttpDeprecationCache(): void;
|
|
|
49
20
|
*
|
|
50
21
|
* Streaming is a pure additive capability: when the env var is unset, the
|
|
51
22
|
* legacy unary path runs unchanged. When enabled but the adapter doesn't
|
|
52
|
-
* support streaming
|
|
53
|
-
*
|
|
23
|
+
* support streaming, `RuntimeAdapterNode` falls back to unary so
|
|
24
|
+
* misconfiguration never blocks execution.
|
|
54
25
|
*
|
|
55
26
|
* Recognized as truthy: `1`, `true`, `yes`, `on` (case-insensitive). Anything
|
|
56
27
|
* else (including unset, empty, `0`, `false`) returns false.
|
|
@@ -1,76 +1,27 @@
|
|
|
1
|
+
const SUPPORTED_KINDS = ["go", "rust", "java", "csharp", "php", "ruby", "python3"];
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* Reject any leftover `RUNTIME_TRANSPORT=http` (global) or
|
|
4
|
+
* `RUNTIME_<KIND>_TRANSPORT=http` (per-kind) at startup. gRPC has been the
|
|
5
|
+
* sole runtime transport since v0.5; the HTTP adapter and its env-var
|
|
6
|
+
* escape hatch were removed at the same time. Silent fallback would mask
|
|
7
|
+
* stale operator config, so we throw with the exact env-var the operator
|
|
8
|
+
* still has set and a one-line migration hint.
|
|
3
9
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* e.g. `RUNTIME_PYTHON3_TRANSPORT=http` to opt one SDK out of gRPC.
|
|
7
|
-
* 2. `RUNTIME_TRANSPORT` — global override
|
|
8
|
-
* e.g. `RUNTIME_TRANSPORT=http` to roll back the whole runner.
|
|
9
|
-
* 3. The hard-coded default — **`grpc`** as of Phase 6 (master plan §11).
|
|
10
|
-
* Flipped from `http` to `grpc` after the cross-language parity matrix
|
|
11
|
-
* (`bun run test:parity`, 33 tests across 6 SDKs × 5 workflows) and
|
|
12
|
-
* the per-SDK §17 BlokError E2E suites stayed green for the full
|
|
13
|
-
* Phase 5 observation window.
|
|
14
|
-
*
|
|
15
|
-
* Pure function — reads `process.env` once per call so tests can override.
|
|
16
|
-
*
|
|
17
|
-
* # Why the default flip is safe
|
|
18
|
-
*
|
|
19
|
-
* - HTTP transport remains available behind `RUNTIME_TRANSPORT=http` for at
|
|
20
|
-
* least two minor versions (master plan §11 commitment).
|
|
21
|
-
* - PHP without RoadRunner (Path B from §16) sets
|
|
22
|
-
* `RUNTIME_PHP_TRANSPORT=http` per host. The forever-supported escape
|
|
23
|
-
* hatch is unaffected.
|
|
24
|
-
* - SDKs that fail to bind their gRPC listener fall through the
|
|
25
|
-
* {@link GrpcHealthChecker} circuit-breaker and surface a typed
|
|
26
|
-
* `BlokError(category=DEPENDENCY)` per §9 — no silent failure.
|
|
27
|
-
*
|
|
28
|
-
* @param kind The runtime kind (e.g. "python3").
|
|
29
|
-
* @param env Optional env source (defaults to `process.env`). Tests can
|
|
30
|
-
* pass a stub map.
|
|
31
|
-
* @returns Either `"http"` or `"grpc"`. Invalid values fall back to the
|
|
32
|
-
* Phase 6 default (`grpc`).
|
|
10
|
+
* Throws on first offending env var found (the order is global first,
|
|
11
|
+
* then per-kind so operators see the broadest mistake first).
|
|
33
12
|
*/
|
|
34
|
-
export function
|
|
35
|
-
const perKindKey = `RUNTIME_${kind.toUpperCase()}_TRANSPORT`;
|
|
36
|
-
const perKind = env[perKindKey];
|
|
37
|
-
if (perKind === "grpc" || perKind === "http") {
|
|
38
|
-
if (perKind === "http")
|
|
39
|
-
warnDeprecatedHttpTransport(perKindKey);
|
|
40
|
-
return perKind;
|
|
41
|
-
}
|
|
13
|
+
export function assertGrpcOnlyTransport(env = process.env) {
|
|
42
14
|
const global = env.RUNTIME_TRANSPORT;
|
|
43
|
-
if (global
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
15
|
+
if (global !== undefined && global !== "" && global !== "grpc") {
|
|
16
|
+
throw new Error(`[blok] RUNTIME_TRANSPORT=${global} is no longer supported (HttpRuntimeAdapter was removed in v0.5). Drop the env var; gRPC is the only runtime transport. SDK processes should boot with BLOK_TRANSPORT=grpc.`);
|
|
17
|
+
}
|
|
18
|
+
for (const kind of SUPPORTED_KINDS) {
|
|
19
|
+
const key = `RUNTIME_${kind.toUpperCase()}_TRANSPORT`;
|
|
20
|
+
const value = env[key];
|
|
21
|
+
if (value !== undefined && value !== "" && value !== "grpc") {
|
|
22
|
+
throw new Error(`[blok] ${key}=${value} is no longer supported (HttpRuntimeAdapter was removed in v0.5). Drop the env var; gRPC is the only runtime transport.`);
|
|
23
|
+
}
|
|
47
24
|
}
|
|
48
|
-
// Phase 6 default: gRPC. The flip from HTTP landed once the parity
|
|
49
|
-
// matrix had been green for the observation window.
|
|
50
|
-
return "grpc";
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Set of env-var names that have already triggered the deprecation warning
|
|
54
|
-
* in this process. Prevents log spam when many runtime kinds resolve through
|
|
55
|
-
* the same global override on each request.
|
|
56
|
-
*
|
|
57
|
-
* Exported as a reset hook for tests — production code never touches it.
|
|
58
|
-
*/
|
|
59
|
-
const _httpDeprecationWarned = new Set();
|
|
60
|
-
function warnDeprecatedHttpTransport(envKey) {
|
|
61
|
-
if (_httpDeprecationWarned.has(envKey))
|
|
62
|
-
return;
|
|
63
|
-
_httpDeprecationWarned.add(envKey);
|
|
64
|
-
console.warn(`[blok] ${envKey}=http is deprecated and will be removed in v0.4.0. Migrate to gRPC by dropping the env var (gRPC is the default since Phase 6) and ensuring your SDK process boots with BLOK_TRANSPORT=grpc.`);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Test-only — reset the per-process HTTP-transport deprecation cache so a
|
|
68
|
-
* test that flips `RUNTIME_TRANSPORT=http` can re-assert the warning fires.
|
|
69
|
-
*
|
|
70
|
-
* @internal
|
|
71
|
-
*/
|
|
72
|
-
export function _resetHttpDeprecationCache() {
|
|
73
|
-
_httpDeprecationWarned.clear();
|
|
74
25
|
}
|
|
75
26
|
/**
|
|
76
27
|
* Whether log streaming is enabled for runtime nodes. When true, the runner
|
|
@@ -80,8 +31,8 @@ export function _resetHttpDeprecationCache() {
|
|
|
80
31
|
*
|
|
81
32
|
* Streaming is a pure additive capability: when the env var is unset, the
|
|
82
33
|
* legacy unary path runs unchanged. When enabled but the adapter doesn't
|
|
83
|
-
* support streaming
|
|
84
|
-
*
|
|
34
|
+
* support streaming, `RuntimeAdapterNode` falls back to unary so
|
|
35
|
+
* misconfiguration never blocks execution.
|
|
85
36
|
*
|
|
86
37
|
* Recognized as truthy: `1`, `true`, `yes`, `on` (case-insensitive). Anything
|
|
87
38
|
* else (including unset, empty, `0`, `false`) returns false.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/adapters/transport.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/adapters/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -490,6 +490,13 @@ export class NodeResultCache {
|
|
|
490
490
|
case "node-input":
|
|
491
491
|
return `node:${nodeName}:${sha256(nodeName + JSON.stringify(input))}`;
|
|
492
492
|
case "custom":
|
|
493
|
+
// Constructor (line ~484) throws when strategy === "custom" but
|
|
494
|
+
// customKeyFn is missing, so by the time we get here the fn is
|
|
495
|
+
// guaranteed defined. Defensive runtime check keeps TS happy
|
|
496
|
+
// without `!`.
|
|
497
|
+
if (!this.customKeyFn) {
|
|
498
|
+
throw new Error('NodeResultCache: "custom" key strategy requires a customKeyFn to be provided.');
|
|
499
|
+
}
|
|
493
500
|
return this.customKeyFn(nodeName, input);
|
|
494
501
|
default:
|
|
495
502
|
return `node:${nodeName}:${sha256(nodeName + JSON.stringify(input))}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeResultCache.js","sourceRoot":"","sources":["../../src/cache/NodeResultCache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NodeResultCache.js","sourceRoot":"","sources":["../../src/cache/NodeResultCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 2 #6 follow-up · cross-process concurrency backend.
|
|
3
|
+
*
|
|
4
|
+
* Optional capability layer that lets `RunTracker.acquireConcurrencySlot`
|
|
5
|
+
* delegate to a backend with cross-process semantics (NATS KV, future
|
|
6
|
+
* Redis) instead of the local sync `RunStore` impl.
|
|
7
|
+
*
|
|
8
|
+
* Default behavior is unchanged — when no backend is set, the tracker
|
|
9
|
+
* uses the existing `store.acquireConcurrencySlot` (single-process via
|
|
10
|
+
* SQLite locks or in-memory Map). The backend is opt-in via
|
|
11
|
+
* `BLOK_CONCURRENCY_BACKEND=nats-kv` and installed by trigger packages
|
|
12
|
+
* during `listen()`.
|
|
13
|
+
*
|
|
14
|
+
* Async-only — NATS KV operations require network round-trips. The
|
|
15
|
+
* sync `RunStore` interface remains untouched (no breaking change to
|
|
16
|
+
* existing extension points); the tracker bridges async + sync via
|
|
17
|
+
* `Promise.resolve()` when no backend is set.
|
|
18
|
+
*/
|
|
19
|
+
import type { ConcurrencySlotResult } from "../tracing/types";
|
|
20
|
+
export interface ConcurrencyBackend {
|
|
21
|
+
/**
|
|
22
|
+
* Identifying string for logs/metrics. e.g. `"nats-kv"`, `"redis"`.
|
|
23
|
+
*/
|
|
24
|
+
readonly name: string;
|
|
25
|
+
/**
|
|
26
|
+
* Lifecycle — open the underlying connection. Idempotent. Called
|
|
27
|
+
* once when the trigger installs the backend during `listen()`.
|
|
28
|
+
*/
|
|
29
|
+
connect(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Lifecycle — close the underlying connection. Idempotent. Called
|
|
32
|
+
* on graceful process shutdown (when wired).
|
|
33
|
+
*/
|
|
34
|
+
disconnect(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Atomically attempt to acquire a slot for the
|
|
37
|
+
* `(workflowName, concurrencyKey)` bucket against the given limit.
|
|
38
|
+
*
|
|
39
|
+
* Contract — must match {@link RunStore.acquireConcurrencySlot}:
|
|
40
|
+
* - Lazy-purge expired leases on the bucket before counting.
|
|
41
|
+
* - Idempotent re-acquire: same `runId` refreshes the lease,
|
|
42
|
+
* does NOT grow the count.
|
|
43
|
+
* - On count >= limit: return `{acquired: false, currentInFlight}`
|
|
44
|
+
* without inserting.
|
|
45
|
+
* - On grant: return `{acquired: true, currentInFlight}` where
|
|
46
|
+
* `currentInFlight` includes the just-acquired slot.
|
|
47
|
+
*/
|
|
48
|
+
acquireSlot(workflowName: string, concurrencyKey: string, concurrencyLimit: number, runId: string, leaseExpiresAt: number): Promise<ConcurrencySlotResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Release a slot. Idempotent. Safe to call on `runId`s that don't
|
|
51
|
+
* hold a slot (e.g. crash + restart releases via lease expiry).
|
|
52
|
+
*/
|
|
53
|
+
releaseSlot(workflowName: string, concurrencyKey: string, runId: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Janitor sweep — purge every lease whose `expiresAt <= now` across
|
|
56
|
+
* all buckets. Returns the count of purged leases. Cheap per-bucket
|
|
57
|
+
* lazy-purge happens on every acquire; this method is for global
|
|
58
|
+
* cleanup (e.g., periodic background task).
|
|
59
|
+
*/
|
|
60
|
+
purgeExpired(now: number): Promise<number>;
|
|
61
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 2 #6 follow-up · cross-process concurrency backend.
|
|
3
|
+
*
|
|
4
|
+
* Optional capability layer that lets `RunTracker.acquireConcurrencySlot`
|
|
5
|
+
* delegate to a backend with cross-process semantics (NATS KV, future
|
|
6
|
+
* Redis) instead of the local sync `RunStore` impl.
|
|
7
|
+
*
|
|
8
|
+
* Default behavior is unchanged — when no backend is set, the tracker
|
|
9
|
+
* uses the existing `store.acquireConcurrencySlot` (single-process via
|
|
10
|
+
* SQLite locks or in-memory Map). The backend is opt-in via
|
|
11
|
+
* `BLOK_CONCURRENCY_BACKEND=nats-kv` and installed by trigger packages
|
|
12
|
+
* during `listen()`.
|
|
13
|
+
*
|
|
14
|
+
* Async-only — NATS KV operations require network round-trips. The
|
|
15
|
+
* sync `RunStore` interface remains untouched (no breaking change to
|
|
16
|
+
* existing extension points); the tracker bridges async + sync via
|
|
17
|
+
* `Promise.resolve()` when no backend is set.
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=ConcurrencyBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConcurrencyBackend.js","sourceRoot":"","sources":["../../src/concurrency/ConcurrencyBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 2 #6 — thrown by `TriggerBase.run()` when a workflow's concurrency
|
|
3
|
+
* gate denies a run because the in-flight count for the resolved
|
|
4
|
+
* `concurrencyKey` has reached `concurrencyLimit`.
|
|
5
|
+
*
|
|
6
|
+
* Triggers catch this and translate it into the appropriate transport-level
|
|
7
|
+
* response:
|
|
8
|
+
* - HTTP trigger → `429 Too Many Requests` with `Retry-After` header.
|
|
9
|
+
* - Worker trigger → NACK with redelivery (existing job-queue retry handles
|
|
10
|
+
* spacing).
|
|
11
|
+
*
|
|
12
|
+
* Carries enough context for both observability (logs / Studio events) and
|
|
13
|
+
* client-facing error payloads.
|
|
14
|
+
*/
|
|
15
|
+
export interface ConcurrencyLimitInfo {
|
|
16
|
+
/** Workflow name whose gate fired. */
|
|
17
|
+
workflowName: string;
|
|
18
|
+
/** Resolved key value (after evaluating the `concurrencyKey` expression). */
|
|
19
|
+
concurrencyKey: string;
|
|
20
|
+
/** Per-key limit from the trigger config. */
|
|
21
|
+
concurrencyLimit: number;
|
|
22
|
+
/** Number of in-flight runs observed at the moment of denial. */
|
|
23
|
+
currentInFlight: number;
|
|
24
|
+
/**
|
|
25
|
+
* Suggested back-off in milliseconds before retrying. A heuristic — the
|
|
26
|
+
* gate doesn't observe a queue, so we recommend a minimum (the default
|
|
27
|
+
* matches the smallest meaningful HTTP `Retry-After` precision = 1s).
|
|
28
|
+
*/
|
|
29
|
+
retryAfterMs: number;
|
|
30
|
+
/** Run id allocated by the tracer for this denied attempt. */
|
|
31
|
+
runId: string;
|
|
32
|
+
}
|
|
33
|
+
export declare class ConcurrencyLimitError extends Error {
|
|
34
|
+
readonly info: ConcurrencyLimitInfo;
|
|
35
|
+
constructor(info: ConcurrencyLimitInfo);
|
|
36
|
+
}
|
|
37
|
+
export declare function isConcurrencyLimitError(err: unknown): err is ConcurrencyLimitError;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class ConcurrencyLimitError extends Error {
|
|
2
|
+
info;
|
|
3
|
+
constructor(info) {
|
|
4
|
+
super(`Concurrency limit reached for workflow '${info.workflowName}' (key='${info.concurrencyKey}', ` +
|
|
5
|
+
`limit=${info.concurrencyLimit}, currentInFlight=${info.currentInFlight}). ` +
|
|
6
|
+
`Retry after ~${info.retryAfterMs}ms.`);
|
|
7
|
+
this.name = "ConcurrencyLimitError";
|
|
8
|
+
this.info = info;
|
|
9
|
+
// Restore prototype chain when extending Error in transpiled code.
|
|
10
|
+
Object.setPrototypeOf(this, ConcurrencyLimitError.prototype);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function isConcurrencyLimitError(err) {
|
|
14
|
+
return err instanceof ConcurrencyLimitError;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ConcurrencyLimitError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConcurrencyLimitError.js","sourceRoot":"","sources":["../../src/concurrency/ConcurrencyLimitError.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC/B,IAAI,CAAuB;IAE3C,YAAY,IAA0B;QACrC,KAAK,CACJ,2CAA2C,IAAI,CAAC,YAAY,WAAW,IAAI,CAAC,cAAc,KAAK;YAC9F,SAAS,IAAI,CAAC,gBAAgB,qBAAqB,IAAI,CAAC,eAAe,KAAK;YAC5E,gBAAgB,IAAI,CAAC,YAAY,KAAK,CACvC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,mEAAmE;QACnE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACD;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAY;IACnD,OAAO,GAAG,YAAY,qBAAqB,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 2 #6 follow-up · NATS KV-backed concurrency backend.
|
|
3
|
+
*
|
|
4
|
+
* Coordinates per-(workflow, concurrencyKey) lease state across processes
|
|
5
|
+
* via a single NATS JetStream KV value per bucket using revision-based
|
|
6
|
+
* compare-and-swap (OCC).
|
|
7
|
+
*
|
|
8
|
+
* Storage model: one KV key per `(workflowName, concurrencyKey)` pair.
|
|
9
|
+
* Value is a JSON `{leases: [{runId, expiresAt}]}` document. Bounded
|
|
10
|
+
* cardinality assumption — typical concurrency keys hold 1-50 active
|
|
11
|
+
* leases (per-tenant rate limits). For higher cardinality, a per-lease
|
|
12
|
+
* key model would scale better; revisit when needed.
|
|
13
|
+
*
|
|
14
|
+
* Atomicity: NATS KV's only guarantee is `kv.create(key, value)` (fails
|
|
15
|
+
* on conflict) and `kv.update(key, value, expectedRevision)` (fails on
|
|
16
|
+
* concurrent modification). The acquire loop reads → filters → checks
|
|
17
|
+
* limit → CAS update. On CAS failure, retry up to 10 times then
|
|
18
|
+
* fail-closed (deny the slot).
|
|
19
|
+
*
|
|
20
|
+
* Lease leak: each lease carries an `expiresAt`. Expired leases are
|
|
21
|
+
* lazy-purged inside the same `acquireSlot` call that observes them;
|
|
22
|
+
* an explicit `purgeExpired` sweep is also exposed for janitor use.
|
|
23
|
+
*/
|
|
24
|
+
import type { ConcurrencySlotResult } from "../tracing/types";
|
|
25
|
+
import type { ConcurrencyBackend } from "./ConcurrencyBackend";
|
|
26
|
+
export interface NatsKvConcurrencyConfig {
|
|
27
|
+
servers: string[];
|
|
28
|
+
token?: string;
|
|
29
|
+
user?: string;
|
|
30
|
+
pass?: string;
|
|
31
|
+
bucketName: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Read configuration from environment variables. Used by
|
|
35
|
+
* {@link createConcurrencyBackend} when the user opts into NATS KV.
|
|
36
|
+
*/
|
|
37
|
+
export declare function readNatsKvConfigFromEnv(): NatsKvConcurrencyConfig;
|
|
38
|
+
export declare class NatsKvConcurrencyBackend implements ConcurrencyBackend {
|
|
39
|
+
readonly name = "nats-kv";
|
|
40
|
+
private nc;
|
|
41
|
+
private kv;
|
|
42
|
+
private readonly config;
|
|
43
|
+
private connected;
|
|
44
|
+
constructor(config?: Partial<NatsKvConcurrencyConfig>);
|
|
45
|
+
connect(): Promise<void>;
|
|
46
|
+
disconnect(): Promise<void>;
|
|
47
|
+
private bucketKey;
|
|
48
|
+
private encodeSegment;
|
|
49
|
+
private requireKv;
|
|
50
|
+
acquireSlot(workflowName: string, concurrencyKey: string, concurrencyLimit: number, runId: string, leaseExpiresAt: number): Promise<ConcurrencySlotResult>;
|
|
51
|
+
releaseSlot(workflowName: string, concurrencyKey: string, runId: string): Promise<void>;
|
|
52
|
+
purgeExpired(now: number): Promise<number>;
|
|
53
|
+
/**
|
|
54
|
+
* PR 2 A6 — distinguishes legitimate "key not found" from "broker
|
|
55
|
+
* unreachable / non-NotFound error". Returns:
|
|
56
|
+
* - `NatsKvEntry` on a successful fetch.
|
|
57
|
+
* - `null` when the key doesn't exist (NotFound code or null entry).
|
|
58
|
+
* - `"fetch-failed"` for any other error (transient broker outage,
|
|
59
|
+
* auth failure, network blip, etc.) so the OCC loop can fail-fast
|
|
60
|
+
* instead of spinning 10× before fail-closing.
|
|
61
|
+
*/
|
|
62
|
+
private safeGet;
|
|
63
|
+
private parseBucket;
|
|
64
|
+
}
|