@indigoai-us/hq-cloud 6.14.49 → 6.14.50
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/.github/workflows/unreleased-commits-nag.yml +256 -0
- package/dist/bin/sync-runner-watch-loop.d.ts +12 -0
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +153 -25
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner-watch-routes.d.ts +17 -0
- package/dist/bin/sync-runner-watch-routes.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-routes.js +11 -0
- package/dist/bin/sync-runner-watch-routes.js.map +1 -1
- package/dist/bin/sync-runner-watch-routes.test.d.ts +2 -0
- package/dist/bin/sync-runner-watch-routes.test.d.ts.map +1 -0
- package/dist/bin/sync-runner-watch-routes.test.js +51 -0
- package/dist/bin/sync-runner-watch-routes.test.js.map +1 -0
- package/dist/bin/sync-runner.d.ts +11 -12
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +173 -52
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/rescue-classify-ordering.test.js +8 -2
- package/dist/cli/rescue-classify-ordering.test.js.map +1 -1
- package/dist/cli/rescue-core.d.ts +85 -0
- package/dist/cli/rescue-core.d.ts.map +1 -1
- package/dist/cli/rescue-core.js +390 -1
- package/dist/cli/rescue-core.js.map +1 -1
- package/dist/cli/rescue-settings-reconcile.test.d.ts +2 -0
- package/dist/cli/rescue-settings-reconcile.test.d.ts.map +1 -0
- package/dist/cli/rescue-settings-reconcile.test.js +476 -0
- package/dist/cli/rescue-settings-reconcile.test.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +81 -51
- package/dist/journal.js.map +1 -1
- package/dist/journal.test.js +11 -19
- package/dist/journal.test.js.map +1 -1
- package/dist/sync/event-sync.d.ts +8 -25
- package/dist/sync/event-sync.d.ts.map +1 -1
- package/dist/sync/event-sync.js +23 -48
- package/dist/sync/event-sync.js.map +1 -1
- package/dist/sync/event-sync.test.js +6 -32
- package/dist/sync/event-sync.test.js.map +1 -1
- package/dist/sync/feature-flags.d.ts +20 -117
- package/dist/sync/feature-flags.d.ts.map +1 -1
- package/dist/sync/feature-flags.js +24 -147
- package/dist/sync/feature-flags.js.map +1 -1
- package/dist/sync/feature-flags.test.js +15 -61
- package/dist/sync/feature-flags.test.js.map +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/lease-client.d.ts +67 -0
- package/dist/sync/lease-client.d.ts.map +1 -0
- package/dist/sync/lease-client.js +158 -0
- package/dist/sync/lease-client.js.map +1 -0
- package/dist/sync/lease-client.test.d.ts +2 -0
- package/dist/sync/lease-client.test.d.ts.map +1 -0
- package/dist/sync/lease-client.test.js +119 -0
- package/dist/sync/lease-client.test.js.map +1 -0
- package/dist/sync/push-receiver.d.ts +8 -19
- package/dist/sync/push-receiver.d.ts.map +1 -1
- package/dist/sync/push-receiver.js +6 -50
- package/dist/sync/push-receiver.js.map +1 -1
- package/dist/sync/push-receiver.test.js +6 -57
- package/dist/sync/push-receiver.test.js.map +1 -1
- package/dist/sync/realtime-rollout.d.ts +85 -0
- package/dist/sync/realtime-rollout.d.ts.map +1 -0
- package/dist/sync/realtime-rollout.js +206 -0
- package/dist/sync/realtime-rollout.js.map +1 -0
- package/dist/sync/realtime-rollout.test.d.ts +2 -0
- package/dist/sync/realtime-rollout.test.d.ts.map +1 -0
- package/dist/sync/realtime-rollout.test.js +71 -0
- package/dist/sync/realtime-rollout.test.js.map +1 -0
- package/dist/sync/state-store.d.ts +40 -0
- package/dist/sync/state-store.d.ts.map +1 -0
- package/dist/sync/state-store.js +680 -0
- package/dist/sync/state-store.js.map +1 -0
- package/dist/sync/state-store.test.d.ts +2 -0
- package/dist/sync/state-store.test.d.ts.map +1 -0
- package/dist/sync/state-store.test.js +159 -0
- package/dist/sync/state-store.test.js.map +1 -0
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bin/sync-runner-watch-loop.ts +176 -32
- package/src/bin/sync-runner-watch-routes.test.ts +71 -0
- package/src/bin/sync-runner-watch-routes.ts +27 -0
- package/src/bin/sync-runner.test.ts +188 -53
- package/src/bin/sync-runner.ts +11 -12
- package/src/cli/rescue-classify-ordering.test.ts +9 -3
- package/src/cli/rescue-core.ts +459 -1
- package/src/cli/rescue-settings-reconcile.test.ts +583 -0
- package/src/index.ts +2 -4
- package/src/journal.test.ts +19 -21
- package/src/journal.ts +87 -54
- package/src/sync/event-sync.test.ts +9 -44
- package/src/sync/event-sync.ts +26 -52
- package/src/sync/feature-flags.test.ts +22 -72
- package/src/sync/feature-flags.ts +32 -199
- package/src/sync/index.ts +2 -4
- package/src/sync/lease-client.test.ts +128 -0
- package/src/sync/lease-client.ts +207 -0
- package/src/sync/push-receiver.test.ts +6 -58
- package/src/sync/push-receiver.ts +9 -74
- package/src/sync/realtime-rollout.test.ts +86 -0
- package/src/sync/realtime-rollout.ts +262 -0
- package/src/sync/state-store.test.ts +194 -0
- package/src/sync/state-store.ts +727 -0
- package/src/types.ts +14 -0
- package/test/e2e/sync/transient-company-leg.test.ts +8 -4
package/dist/sync/event-sync.js
CHANGED
|
@@ -5,12 +5,10 @@
|
|
|
5
5
|
* Phases 1–2 built every piece but left them unconnected: the watcher runs
|
|
6
6
|
* targeted *push passes* (S3 upload) but never publishes a PushEvent, and the
|
|
7
7
|
* runner's receiver seam defaults to {@link NoopPushReceiver}. This module is
|
|
8
|
-
* the connective tissue that turns both on
|
|
8
|
+
* the connective tissue that turns both on after a server grant:
|
|
9
9
|
*
|
|
10
|
-
* - {@link resolveEventSync} —
|
|
11
|
-
*
|
|
12
|
-
* directions. ONE gate governs publish AND receive so a device is never
|
|
13
|
-
* publish-only or receive-only in a half-rolled state.
|
|
10
|
+
* - {@link resolveEventSync} — a negative-only local kill switch. A server
|
|
11
|
+
* grant remains the only positive authority for publish and receive.
|
|
14
12
|
* - {@link subscribeSyncReceive} — `POST /v1/sync/subscribe` (US-015/US-016):
|
|
15
13
|
* mints the per-device queue and returns `{queueUrl, region, credentials}`,
|
|
16
14
|
* where `credentials` are short-lived STS creds scoped to receive/delete on
|
|
@@ -22,7 +20,7 @@
|
|
|
22
20
|
* retry on an expiry-class error. The queue URL is stable across re-vends
|
|
23
21
|
* (same device → same queue, idempotent endpoint); only creds rotate.
|
|
24
22
|
* - {@link startEventSync} — the wiring entry the runner calls from the
|
|
25
|
-
* `--event-push` watch block
|
|
23
|
+
* `--event-push` watch block unless locally disabled. Resolves tenant + device
|
|
26
24
|
* identity, builds the {@link HttpPushTransport} + {@link PushEventEmitter}
|
|
27
25
|
* (publish leg) and the {@link SqsPushReceiver} (receive leg, self-echo
|
|
28
26
|
* filtered), and returns handles. Any startup failure degrades to
|
|
@@ -37,39 +35,15 @@ import { SqsPushReceiver, } from "./push-receiver.js";
|
|
|
37
35
|
import { PushEventEmitter } from "../watcher.js";
|
|
38
36
|
import { emitCloudTelemetry, } from "../telemetry-events.js";
|
|
39
37
|
import { createSyncLatencyMetricPublisher, } from "./metrics.js";
|
|
40
|
-
|
|
38
|
+
import { isEventSyncLocallyDisabled } from "./feature-flags.js";
|
|
41
39
|
/**
|
|
42
|
-
*
|
|
40
|
+
* Decide whether the client may request event-sync authority from the server.
|
|
43
41
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* devices; `xhassaan@getindigo.ai` and `hassaan@getindigo.ai.evil.com` must
|
|
47
|
-
* never match. Broadening later is an entry here, then a domain set, then a
|
|
48
|
-
* GA default-on switch (the same rollout path the presigned-URL sync transport
|
|
49
|
-
* already took to GA).
|
|
42
|
+
* This is negative-only. An unset value or a former force-on value merely
|
|
43
|
+
* permits the authenticated server request; it cannot authorize event sync.
|
|
50
44
|
*/
|
|
51
|
-
export
|
|
52
|
-
|
|
53
|
-
]);
|
|
54
|
-
/**
|
|
55
|
-
* Decide whether this session runs event-driven sync (publish + receive).
|
|
56
|
-
*
|
|
57
|
-
* Env-override-in-both-directions precedence: `HQ_SYNC_EVENT_SYNC`
|
|
58
|
-
* overrides (`1`/`true`/`yes`/`on` → force on,
|
|
59
|
-
* `0`/`false`/`no`/`off` → force off) so unenrolled testers can exercise it
|
|
60
|
-
* and enrolled accounts can be rolled back without a release. An unset/blank
|
|
61
|
-
* override falls through to the exact-email check; an unrecognized override
|
|
62
|
-
* value is ignored (email check wins).
|
|
63
|
-
*/
|
|
64
|
-
export function resolveEventSync(email, override) {
|
|
65
|
-
const o = (override ?? "").trim().toLowerCase();
|
|
66
|
-
if (o === "1" || o === "true" || o === "yes" || o === "on")
|
|
67
|
-
return true;
|
|
68
|
-
if (o === "0" || o === "false" || o === "no" || o === "off")
|
|
69
|
-
return false;
|
|
70
|
-
if (typeof email !== "string")
|
|
71
|
-
return false;
|
|
72
|
-
return EVENT_SYNC_ROLLOUT_EMAILS.has(email.trim().toLowerCase());
|
|
45
|
+
export function resolveEventSync(override) {
|
|
46
|
+
return !isEventSyncLocallyDisabled(override);
|
|
73
47
|
}
|
|
74
48
|
function asNonEmptyString(v, field) {
|
|
75
49
|
if (typeof v !== "string" || v.length === 0) {
|
|
@@ -273,6 +247,16 @@ export async function startEventSync(opts) {
|
|
|
273
247
|
try {
|
|
274
248
|
const tenantId = await opts.resolveTenantId();
|
|
275
249
|
const deviceId = opts.deviceId;
|
|
250
|
+
// The subscription response is the authenticated legacy inventory/grant.
|
|
251
|
+
// No email, environment, tenant, or queued hint can reach the live path
|
|
252
|
+
// without this server-issued queue and credential material.
|
|
253
|
+
const subscribe = opts.subscribe ??
|
|
254
|
+
((dev) => subscribeSyncReceive({
|
|
255
|
+
apiUrl: opts.apiUrl,
|
|
256
|
+
authToken: opts.authToken,
|
|
257
|
+
deviceId: dev,
|
|
258
|
+
}));
|
|
259
|
+
const initial = await subscribe(deviceId);
|
|
276
260
|
// ── publish leg (US-017) ──
|
|
277
261
|
const transport = opts.transport ??
|
|
278
262
|
new HttpPushTransport({
|
|
@@ -285,8 +269,9 @@ export async function startEventSync(opts) {
|
|
|
285
269
|
originTenantId: tenantId,
|
|
286
270
|
originDeviceId: deviceId,
|
|
287
271
|
transport,
|
|
288
|
-
//
|
|
289
|
-
//
|
|
272
|
+
// This adapter represents the authenticated server grant above. It is
|
|
273
|
+
// created only after the grant succeeds and ignores the tenant argument;
|
|
274
|
+
// it is not a tenant-derived client selector.
|
|
290
275
|
flagProvider: { isEnabled: () => true },
|
|
291
276
|
// Wall-clock sequence numbers: monotonic per device ACROSS daemon
|
|
292
277
|
// restarts (the emitter's default in-process counter restarts at 0,
|
|
@@ -299,13 +284,6 @@ export async function startEventSync(opts) {
|
|
|
299
284
|
telemetryClaims: opts.telemetryClaims,
|
|
300
285
|
});
|
|
301
286
|
// ── receive leg (US-018) ──
|
|
302
|
-
const subscribe = opts.subscribe ??
|
|
303
|
-
((dev) => subscribeSyncReceive({
|
|
304
|
-
apiUrl: opts.apiUrl,
|
|
305
|
-
authToken: opts.authToken,
|
|
306
|
-
deviceId: dev,
|
|
307
|
-
}));
|
|
308
|
-
const initial = await subscribe(deviceId);
|
|
309
287
|
const publishMetric = initial.cloudWatch
|
|
310
288
|
? createSyncLatencyMetricPublisher(initial.cloudWatch)
|
|
311
289
|
: async () => undefined;
|
|
@@ -328,9 +306,6 @@ export async function startEventSync(opts) {
|
|
|
328
306
|
await opts.syncFn(ctx);
|
|
329
307
|
},
|
|
330
308
|
publishMetric,
|
|
331
|
-
// The client rollout gate is the authority; the env-driven per-tenant
|
|
332
|
-
// flag provider is a server-side convention not set on user machines.
|
|
333
|
-
enabled: true,
|
|
334
309
|
});
|
|
335
310
|
await receiver.start();
|
|
336
311
|
log(`event-sync: live (tenant=${tenantId} device=${deviceId} queue=${initial.queueUrl})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-sync.js","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"event-sync.js","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,7 @@
|
|
|
11
11
|
* poll-only degradation on subscribe/tenant failure.
|
|
12
12
|
*/
|
|
13
13
|
import { describe, expect, it, vi } from "vitest";
|
|
14
|
-
import {
|
|
15
|
-
const ENROLLED = "hassaan@getindigo.ai";
|
|
14
|
+
import { resolveEventSync, subscribeSyncReceive, sqsClientFromAwsSdk, createRefreshingSqsClient, startEventSync, } from "./event-sync.js";
|
|
16
15
|
function subscribeResponse(overrides = {}, queueUrl = "https://sqs.us-east-1.amazonaws.com/000000000000/sync-push-prs_t-dev1") {
|
|
17
16
|
return {
|
|
18
17
|
queueUrl,
|
|
@@ -27,34 +26,9 @@ function subscribeResponse(overrides = {}, queueUrl = "https://sqs.us-east-1.ama
|
|
|
27
26
|
};
|
|
28
27
|
}
|
|
29
28
|
// ─── resolveEventSync (US-019) ──────────────────────────────────────────────
|
|
30
|
-
describe("resolveEventSync —
|
|
31
|
-
it("
|
|
32
|
-
|
|
33
|
-
expect(resolveEventSync(ENROLLED, undefined)).toBe(true);
|
|
34
|
-
expect(resolveEventSync("HASSAAN@GetIndigo.AI", undefined)).toBe(true);
|
|
35
|
-
expect(resolveEventSync(` ${ENROLLED} `, undefined)).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
it("never matches look-alikes — exact full address, not suffix/superset", () => {
|
|
38
|
-
expect(resolveEventSync("xhassaan@getindigo.ai", undefined)).toBe(false);
|
|
39
|
-
expect(resolveEventSync("hassaan@getindigo.ai.evil.com", undefined)).toBe(false);
|
|
40
|
-
expect(resolveEventSync("hassaan@evil-getindigo.ai", undefined)).toBe(false);
|
|
41
|
-
expect(resolveEventSync("corey@getindigo.ai", undefined)).toBe(false);
|
|
42
|
-
expect(resolveEventSync(undefined, undefined)).toBe(false);
|
|
43
|
-
expect(resolveEventSync("", undefined)).toBe(false);
|
|
44
|
-
});
|
|
45
|
-
it.each(["1", "true", "yes", "on", " ON "])("override %j forces ON for unenrolled accounts", (o) => {
|
|
46
|
-
expect(resolveEventSync("nobody@example.com", o)).toBe(true);
|
|
47
|
-
expect(resolveEventSync(undefined, o)).toBe(true);
|
|
48
|
-
});
|
|
49
|
-
it.each(["0", "false", "no", "off"])("override %j forces OFF even for the enrolled account", (o) => {
|
|
50
|
-
expect(resolveEventSync(ENROLLED, o)).toBe(false);
|
|
51
|
-
});
|
|
52
|
-
it("unset/blank/garbage override falls through to the email check", () => {
|
|
53
|
-
expect(resolveEventSync(ENROLLED, undefined)).toBe(true);
|
|
54
|
-
expect(resolveEventSync(ENROLLED, "")).toBe(true);
|
|
55
|
-
expect(resolveEventSync(ENROLLED, "maybe")).toBe(true);
|
|
56
|
-
expect(resolveEventSync("nobody@example.com", "maybe")).toBe(false);
|
|
57
|
-
});
|
|
29
|
+
describe("resolveEventSync — local disable only", () => {
|
|
30
|
+
it.each(["0", "false", "no", "off"])("override %j keeps the event path dormant", (override) => expect(resolveEventSync(override)).toBe(false));
|
|
31
|
+
it.each([undefined, "", "1", "true", "yes", "on", "indigo"])("override %j cannot grant authority", (override) => expect(resolveEventSync(override)).toBe(true));
|
|
58
32
|
});
|
|
59
33
|
// ─── subscribeSyncReceive ───────────────────────────────────────────────────
|
|
60
34
|
describe("subscribeSyncReceive", () => {
|
|
@@ -472,7 +446,7 @@ describe("startEventSync", () => {
|
|
|
472
446
|
}
|
|
473
447
|
}
|
|
474
448
|
});
|
|
475
|
-
it("
|
|
449
|
+
it("does not create live handles when authenticated legacy inventory fails", async () => {
|
|
476
450
|
const logged = [];
|
|
477
451
|
const handles = await startEventSync({
|
|
478
452
|
...happyOpts([]),
|
|
@@ -485,7 +459,7 @@ describe("startEventSync", () => {
|
|
|
485
459
|
expect(logged.join("\n")).toContain("poll-only");
|
|
486
460
|
expect(logged.join("\n")).toContain("subscribe 503");
|
|
487
461
|
});
|
|
488
|
-
it("
|
|
462
|
+
it("does not create live handles when identity resolution fails", async () => {
|
|
489
463
|
const logged = [];
|
|
490
464
|
const handles = await startEventSync({
|
|
491
465
|
...happyOpts([]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-sync.test.js","sourceRoot":"","sources":["../../src/sync/event-sync.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-sync.test.js","sourceRoot":"","sources":["../../src/sync/event-sync.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,136 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Local control for the dormant event-sync wiring.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* ───────────────
|
|
9
|
-
* The event-driven push pipeline must default OFF for all tenants and be
|
|
10
|
-
* enabled per-tenant ("OFF for all tenants by default, ON for Indigo only").
|
|
11
|
-
* This module provides the read-only seam the watcher (and a later receiver)
|
|
12
|
-
* consult at start time to decide whether to emit/ship PushEvents at all:
|
|
13
|
-
* - {@link EventDrivenPushFlagProvider} — the small read-only seam every
|
|
14
|
-
* caller consults. Returns a boolean for a given tenantId.
|
|
15
|
-
* - {@link EnvTenantListFlagProvider} — production implementation. Reads
|
|
16
|
-
* a comma-separated allow-list from {@link FEATURE_FLAG_TENANTS_ENV_VAR}
|
|
17
|
-
* AND honors the legacy global `HQ_SYNC_EVENT_DRIVEN_PUSH_ENABLED=true`
|
|
18
|
-
* as a backwards-compat global override. The legacy global wins when set
|
|
19
|
-
* — it enables all tenants.
|
|
20
|
-
* - {@link StaticFlagProvider} — small test helper. Constructor takes an
|
|
21
|
-
* iterable of enabled tenant IDs. Used by watcher + feature-flag tests.
|
|
22
|
-
* - {@link defaultFlagProvider} — factory callers default to when no
|
|
23
|
-
* provider is explicitly supplied.
|
|
24
|
-
*
|
|
25
|
-
* Validation posture
|
|
26
|
-
* ──────────────────
|
|
27
|
-
* Tenant IDs from the env are trimmed, empty entries are dropped, and
|
|
28
|
-
* entries containing internal whitespace are warn-and-skipped (NOT thrown).
|
|
29
|
-
* The watcher runs inside a long-lived daemon — a malformed env var must
|
|
30
|
-
* not crash daemon startup; it must surface in logs and fall through to the
|
|
31
|
-
* default-OFF behavior for the misconfigured entry.
|
|
32
|
-
*
|
|
33
|
-
* @see src/watcher.ts — the TreeWatcher consults this seam at start time to
|
|
34
|
-
* decide whether to emit + ship PushEvents (dormant when OFF).
|
|
35
|
-
*/
|
|
36
|
-
/**
|
|
37
|
-
* Env var holding a comma-separated allow-list of tenant IDs for which the
|
|
38
|
-
* event-driven push pipeline is enabled. Empty/unset means no tenants are
|
|
39
|
-
* enabled (default OFF for all). Example: `indigo,acme`.
|
|
40
|
-
*
|
|
41
|
-
* Tenant matching is exact and case-sensitive after trimming. Whitespace
|
|
42
|
-
* around commas is tolerated; internal whitespace within a tenant ID is
|
|
43
|
-
* not (warned + skipped — see `parseTenantList` below).
|
|
4
|
+
* U15 removes client-side positive selectors. Environment values, tenant IDs,
|
|
5
|
+
* and cached identity cannot grant authority; the authenticated server
|
|
6
|
+
* inventory is the sole positive authority. This module preserves only the
|
|
7
|
+
* operator's local off-switch.
|
|
44
8
|
*/
|
|
45
|
-
|
|
9
|
+
/** A local-only kill switch. Any other value is deliberately non-authorizing. */
|
|
10
|
+
export declare const EVENT_SYNC_LOCAL_DISABLE_ENV_VAR = "HQ_SYNC_EVENT_SYNC";
|
|
46
11
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* enables ALL tenants" so a single-flag rollout (or local dev) keeps working.
|
|
50
|
-
*
|
|
51
|
-
* Operators flipping rollout via deploy-time config should prefer the
|
|
52
|
-
* per-tenant {@link FEATURE_FLAG_TENANTS_ENV_VAR} instead.
|
|
53
|
-
*/
|
|
54
|
-
export declare const FEATURE_FLAG_LEGACY_GLOBAL_ENV_VAR = "HQ_SYNC_EVENT_DRIVEN_PUSH_ENABLED";
|
|
55
|
-
/**
|
|
56
|
-
* Read-only seam for the per-tenant event-driven push feature flag.
|
|
57
|
-
*
|
|
58
|
-
* Implementations are pure / synchronous. Callers MUST treat the result as
|
|
59
|
-
* the truth at the moment of the call — a deploy-time env-var change does
|
|
60
|
-
* NOT propagate to running daemons until they restart.
|
|
12
|
+
* Compatibility seam consumed by the existing emitter. Production event-sync
|
|
13
|
+
* supplies it only after authenticated server inventory has granted access.
|
|
61
14
|
*/
|
|
62
15
|
export interface EventDrivenPushFlagProvider {
|
|
63
|
-
|
|
64
|
-
* Returns true iff the event-driven push pipeline is enabled for
|
|
65
|
-
* `tenantId`. Defaults to false. Case-sensitive exact match against the
|
|
66
|
-
* configured allow-list (or the legacy global override).
|
|
67
|
-
*/
|
|
68
|
-
isEnabled(tenantId: string): boolean;
|
|
16
|
+
isEnabled(scopeId: string): boolean;
|
|
69
17
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Optional injection seam for warnings emitted while parsing the env var
|
|
72
|
-
* (invalid entries). Defaults to `console.warn`.
|
|
73
|
-
*/
|
|
18
|
+
/** Deprecated inert compatibility shape; no environment is ever read. */
|
|
74
19
|
export type FlagProviderWarnFn = (message: string, context: Record<string, unknown>) => void;
|
|
75
|
-
/**
|
|
76
|
-
* Options for {@link EnvTenantListFlagProvider}.
|
|
77
|
-
*/
|
|
20
|
+
/** Deprecated inert compatibility shape; no environment is ever read. */
|
|
78
21
|
export interface EnvTenantListFlagProviderOptions {
|
|
79
|
-
/**
|
|
80
|
-
* Env snapshot. Defaults to `process.env`. Tests inject `{}` or a
|
|
81
|
-
* synthetic object so they don't mutate real env state.
|
|
82
|
-
*/
|
|
83
22
|
env?: Record<string, string | undefined>;
|
|
84
|
-
/**
|
|
85
|
-
* Where to send "invalid entry, skipping" warnings. Defaults to
|
|
86
|
-
* `console.warn`.
|
|
87
|
-
*/
|
|
88
23
|
warn?: FlagProviderWarnFn;
|
|
89
24
|
}
|
|
90
25
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* The legacy {@link FEATURE_FLAG_LEGACY_GLOBAL_ENV_VAR} (set to literal
|
|
95
|
-
* `"true"`) acts as a global override: when set, `isEnabled()` returns
|
|
96
|
-
* true for every tenant.
|
|
97
|
-
*
|
|
98
|
-
* Parse rules:
|
|
99
|
-
* - Empty / unset {@link FEATURE_FLAG_TENANTS_ENV_VAR} → no tenants enabled.
|
|
100
|
-
* - Whitespace around commas is tolerated and trimmed.
|
|
101
|
-
* - Empty entries (`",,foo,"`) are silently dropped.
|
|
102
|
-
* - Entries with INTERNAL whitespace (`"indigo team"`) are warn-and-skipped.
|
|
103
|
-
* - Matching is exact + case-sensitive.
|
|
104
|
-
*/
|
|
105
|
-
export declare class EnvTenantListFlagProvider implements EventDrivenPushFlagProvider {
|
|
106
|
-
private readonly tenants;
|
|
107
|
-
private readonly legacyGlobal;
|
|
108
|
-
constructor(opts?: EnvTenantListFlagProviderOptions);
|
|
109
|
-
isEnabled(tenantId: string): boolean;
|
|
110
|
-
/**
|
|
111
|
-
* Debug-only accessor — returns a defensive copy of the cached allow-list.
|
|
112
|
-
* Used by tests and the daemon's startup log line.
|
|
113
|
-
*/
|
|
114
|
-
get enabledTenants(): ReadonlySet<string>;
|
|
115
|
-
/** Debug-only accessor — true iff the legacy global override is in effect. */
|
|
116
|
-
get globalOverride(): boolean;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* In-memory provider for unit tests. The constructor takes the set of
|
|
120
|
-
* enabled tenant IDs; `isEnabled()` is a plain `Set.has` check.
|
|
121
|
-
*
|
|
122
|
-
* Production callers should NEVER construct this — use
|
|
123
|
-
* {@link EnvTenantListFlagProvider} via {@link defaultFlagProvider}.
|
|
26
|
+
* Compatibility fixture for older direct emitter tests. It represents a
|
|
27
|
+
* previously authenticated server inventory result; the supplied legacy value
|
|
28
|
+
* is deliberately ignored, so it cannot select a tenant or grant by email.
|
|
124
29
|
*/
|
|
125
30
|
export declare class StaticFlagProvider implements EventDrivenPushFlagProvider {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
isEnabled(tenantId: string): boolean;
|
|
31
|
+
constructor(_authenticatedLegacyInventory: unknown);
|
|
32
|
+
isEnabled(_scopeId: string): boolean;
|
|
129
33
|
}
|
|
130
34
|
/**
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* the implicit input.
|
|
35
|
+
* Returns true only for an explicit local disable value. Values such as
|
|
36
|
+
* `true`, `1`, a tenant list, or an unrecognized string never enable sync.
|
|
134
37
|
*/
|
|
135
|
-
export declare function
|
|
38
|
+
export declare function isEventSyncLocallyDisabled(value: string | undefined): boolean;
|
|
136
39
|
//# sourceMappingURL=feature-flags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/sync/feature-flags.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/sync/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iFAAiF;AACjF,eAAO,MAAM,gCAAgC,uBAAuB,CAAC;AAErE;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,IAAI,CAAC;AAEV,yEAAyE;AACzE,MAAM,WAAW,gCAAgC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,2BAA2B;gBACxD,6BAA6B,EAAE,OAAO;IAElD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGrC;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAUT"}
|