emberflow 2.0.9 → 2.0.11

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 CHANGED
@@ -296,6 +296,14 @@ with its fields (keeping the full locking / progress / path-hydration behaviour)
296
296
  | `patchType` | yes | `"back-fill"` or `"patch-logics"`. |
297
297
  | `backFillPatchName` | for back-fills | The `BackFillPatchConfig` name, e.g. `"ancestor-ids"`. |
298
298
  | `appVersion` | for patch-logics | Target `appVersion` for the `"patch-logics"` run. |
299
+ | `resetStatus` | no | When `true` (boolean) or `"true"` (string), all status docs for this `patchType`/`backFillPatchName` are stamped to `"reset"` (clearing `error`/`count`/`lastPatchedId`) **before** the run, so a settled (`completed`/`error`) patch restarts from scratch. |
300
+
301
+ > **Restarting a settled run (`resetStatus`)**: A `"completed"`/`"error"` patch is otherwise treated
302
+ > as done and won't re-run. Setting `resetStatus: true` locates the matching status doc(s) via a
303
+ > field query on `patchType` + `backFillPatchName` and stamps them to `"reset"`, which the normal
304
+ > queueing flow then restarts. All anti-runaway guards (circuit breaker, cursor hard-stop) stay in
305
+ > place. A patch that is still **in flight** (`queued`/`running`/`hydrating`) is never restarted, so
306
+ > a re-trigger cannot spawn an overlapping chain.
299
307
 
300
308
  For example, from the command line:
301
309
 
@@ -335,6 +343,12 @@ running against the same collection never clobber each other's status. The statu
335
343
  `@emberflow/internal/group-patches/<collection>_back-fill_<backFillPatchName>` (or
336
344
  `..._patch-logics` for `"patch-logics"` runs).
337
345
 
346
+ > **Wildcard/placeholder paths are not tracked.** A placeholder path (e.g.
347
+ > `/users/{userId}/feeds`) never patches a document itself — it is only hydrated into concrete
348
+ > collections, each of which gets its own status doc + in-flight guard. Therefore no status doc is
349
+ > created for the placeholder path, and `getGroupPatchProgress` returns `undefined` for it. Query
350
+ > progress on the concrete collection paths (e.g. `/users/user123/feeds`) instead.
351
+
338
352
  ### Collection Cleanup (`cleanupConfigs`, `CleanupConfig`)
339
353
 
340
354
  Emberflow ships with a single, scheduled `cleanupCollections` Cloud Function that runs **every
@@ -1,5 +1,14 @@
1
1
  {
2
- "indexes": [],
2
+ "indexes": [
3
+ {
4
+ "collectionGroup": "group-patches",
5
+ "queryScope": "COLLECTION",
6
+ "fields": [
7
+ { "fieldPath": "patchType", "order": "ASCENDING" },
8
+ { "fieldPath": "backFillPatchName", "order": "ASCENDING" }
9
+ ]
10
+ }
11
+ ],
3
12
  "fieldOverrides": [
4
13
  {
5
14
  "collectionGroup": "computations",
@@ -7,6 +7,14 @@ import QueryDocumentSnapshot = firestore.QueryDocumentSnapshot;
7
7
  import DocumentData = FirebaseFirestore.DocumentData;
8
8
  import Reference = database.Reference;
9
9
  import Transaction = firestore.Transaction;
10
+ /**
11
+ * Maximum number of times a single group-patch chain is allowed to reschedule
12
+ * itself before the circuit breaker aborts it. This is a defense-in-depth
13
+ * backstop against a runaway backfill: normal completion happens when a page
14
+ * comes back empty, and a non-advancing cursor is caught separately, so this
15
+ * cap only trips on genuinely pathological, never-completing loops.
16
+ */
17
+ export declare const MAX_GROUP_PATCH_ITERATIONS = 100000;
10
18
  export declare const _mockable: {
11
19
  getViewLogicConfigs: () => import("./types").ViewLogicConfig[];
12
20
  getPatchLogicConfigs: () => import("./types").PatchLogicConfig[];
@@ -14,6 +22,7 @@ export declare const _mockable: {
14
22
  createNowTimestamp: () => firestore.Timestamp;
15
23
  saveMetricExecution: typeof saveMetricExecution;
16
24
  getBatchUtil: () => BatchUtil;
25
+ getMaxGroupPatchIterations: () => number;
17
26
  };
18
27
  export declare function distributeDoc(logicResultDoc: LogicResultDoc, appVersion: string, batch?: BatchUtil, txn?: Transaction): Promise<void>;
19
28
  export declare function distributeFnNonTransactional(docsByDstPath: Map<string, LogicResultDoc[]>, appVersion: string, skipReturn?: boolean): Promise<LogicResultDoc[]>;
@@ -31,6 +40,24 @@ export declare const expandConsolidateAndGroupByDstPath: (logicDocs: LogicResult
31
40
  export declare function onDeleteFunction(event: FirestoreEvent<QueryDocumentSnapshot | undefined, {
32
41
  deleteFuncId: string;
33
42
  }>): Promise<void>;
43
+ /**
44
+ * The flat internal collection that stores one status doc per
45
+ * (collectionPath, patchType, backFillPatchName) group-patch run.
46
+ */
47
+ export declare const GROUP_PATCHES_COLLECTION = "@emberflow/internal/group-patches";
48
+ /**
49
+ * Operator-driven restart. Locates every group-patch status doc for the given
50
+ * `patchType` + `backFillPatchName` (via a field query -- no doc-id parsing) and
51
+ * stamps them to "reset", clearing the previous error/count/cursor. The normal
52
+ * (no-force) `queueGroupPatch` flow then restarts each matching collection from
53
+ * scratch, while every anti-runaway guard (circuit breaker, cursor hard-stop)
54
+ * stays intact.
55
+ *
56
+ * @param {GroupPatchType} patchType The patch type to match (`"back-fill"` or `"patch-logics"`).
57
+ * @param {string} [backFillPatchName] The back-fill patch name to match (matched against `null` when omitted).
58
+ * @return {Promise<number>} The number of status docs that were reset.
59
+ */
60
+ export declare function resetGroupPatchStatuses(patchType: GroupPatchType, backFillPatchName?: string): Promise<number>;
34
61
  export declare function onGroupPatchRequest(event: FirestoreEvent<QueryDocumentSnapshot | undefined, {
35
62
  requestId: string;
36
63
  }>): Promise<void>;
@@ -52,10 +79,11 @@ export interface PatchGroupDocsParams {
52
79
  appVersion?: string;
53
80
  lastPatchedId?: string;
54
81
  /**
55
- * When true, ignore the stored status (including "completed") and patch the
56
- * whole collection from the first document, resetting the cursor and count.
82
+ * How many times this patch chain has already rescheduled itself. The engine
83
+ * increments it on every reschedule and trips a circuit breaker once it
84
+ * reaches {@link MAX_GROUP_PATCH_ITERATIONS}, aborting a runaway backfill.
57
85
  */
58
- force?: boolean;
86
+ iteration?: number;
59
87
  }
60
88
  /**
61
89
  * Internal engine logic for patching a collection page-by-page. Exported for background worker.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.patchGroupDocs = exports.ancestorIdsPatchConfig = exports.distributeFnTransactional = exports.createMetricComputation = exports.convertLogicResultsToMetricExecutions = exports.createMetricLogicDoc = exports.onGroupPatchRequest = exports.onDeleteFunction = exports.expandConsolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByTargetDocPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.distributeLater = exports.distributeFnNonTransactional = exports.distributeDoc = exports._mockable = void 0;
3
+ exports.patchGroupDocs = exports.ancestorIdsPatchConfig = exports.distributeFnTransactional = exports.createMetricComputation = exports.convertLogicResultsToMetricExecutions = exports.createMetricLogicDoc = exports.onGroupPatchRequest = exports.resetGroupPatchStatuses = exports.GROUP_PATCHES_COLLECTION = exports.onDeleteFunction = exports.expandConsolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByTargetDocPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.distributeLater = exports.distributeFnNonTransactional = exports.distributeDoc = exports._mockable = exports.MAX_GROUP_PATCH_ITERATIONS = void 0;
4
4
  const firebase_admin_1 = require("firebase-admin");
5
5
  const index_1 = require("./index");
6
6
  const paths_1 = require("./utils/paths");
@@ -12,6 +12,14 @@ const distribution_1 = require("./utils/distribution");
12
12
  const patch_logics_1 = require("./logics/patch-logics");
13
13
  var FieldValue = firebase_admin_1.firestore.FieldValue;
14
14
  var Timestamp = firebase_admin_1.firestore.Timestamp;
15
+ /**
16
+ * Maximum number of times a single group-patch chain is allowed to reschedule
17
+ * itself before the circuit breaker aborts it. This is a defense-in-depth
18
+ * backstop against a runaway backfill: normal completion happens when a page
19
+ * comes back empty, and a non-advancing cursor is caught separately, so this
20
+ * cap only trips on genuinely pathological, never-completing loops.
21
+ */
22
+ exports.MAX_GROUP_PATCH_ITERATIONS = 100000;
15
23
  exports._mockable = {
16
24
  getViewLogicConfigs: () => index_1.viewLogicConfigs,
17
25
  getPatchLogicConfigs: () => index_1.patchLogicConfigs,
@@ -19,6 +27,7 @@ exports._mockable = {
19
27
  createNowTimestamp: () => index_1.admin.firestore.Timestamp.now(),
20
28
  saveMetricExecution: saveMetricExecution,
21
29
  getBatchUtil: () => batch_1.BatchUtil.create(),
30
+ getMaxGroupPatchIterations: () => exports.MAX_GROUP_PATCH_ITERATIONS,
22
31
  };
23
32
  async function distributeDoc(logicResultDoc, appVersion, batch, txn) {
24
33
  async function _delete(dstDocRef) {
@@ -427,13 +436,54 @@ async function onDeleteFunction(event) {
427
436
  return deleteFunction(index_1.projectConfig.projectId, name);
428
437
  }
429
438
  exports.onDeleteFunction = onDeleteFunction;
439
+ /**
440
+ * The flat internal collection that stores one status doc per
441
+ * (collectionPath, patchType, backFillPatchName) group-patch run.
442
+ */
443
+ exports.GROUP_PATCHES_COLLECTION = "@emberflow/internal/group-patches";
444
+ /**
445
+ * Operator-driven restart. Locates every group-patch status doc for the given
446
+ * `patchType` + `backFillPatchName` (via a field query -- no doc-id parsing) and
447
+ * stamps them to "reset", clearing the previous error/count/cursor. The normal
448
+ * (no-force) `queueGroupPatch` flow then restarts each matching collection from
449
+ * scratch, while every anti-runaway guard (circuit breaker, cursor hard-stop)
450
+ * stays intact.
451
+ *
452
+ * @param {GroupPatchType} patchType The patch type to match (`"back-fill"` or `"patch-logics"`).
453
+ * @param {string} [backFillPatchName] The back-fill patch name to match (matched against `null` when omitted).
454
+ * @return {Promise<number>} The number of status docs that were reset.
455
+ */
456
+ async function resetGroupPatchStatuses(patchType, backFillPatchName) {
457
+ const snap = await index_1.db.collection(exports.GROUP_PATCHES_COLLECTION)
458
+ .where("patchType", "==", patchType)
459
+ .where("backFillPatchName", "==", backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null)
460
+ .get();
461
+ if (snap.empty) {
462
+ console.info(`[backfill-patch-emberflow] resetGroupPatchStatuses: no status docs found to reset for patchType="${patchType}", backFillPatchName="${backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null}".`);
463
+ return 0;
464
+ }
465
+ const batch = index_1.db.batch();
466
+ for (const statusDoc of snap.docs) {
467
+ batch.set(statusDoc.ref, {
468
+ status: "reset",
469
+ error: null,
470
+ count: 0,
471
+ lastPatchedId: null,
472
+ updatedAt: index_1.admin.firestore.Timestamp.now(),
473
+ }, { merge: true });
474
+ }
475
+ await batch.commit();
476
+ console.info(`[backfill-patch-emberflow] resetGroupPatchStatuses: stamped ${snap.size} status doc(s) to "reset" for patchType="${patchType}", backFillPatchName="${backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null}".`);
477
+ return snap.size;
478
+ }
479
+ exports.resetGroupPatchStatuses = resetGroupPatchStatuses;
430
480
  async function onGroupPatchRequest(event) {
431
481
  const data = event.data;
432
482
  if (!data) {
433
483
  console.error("Data should not be null");
434
484
  return;
435
485
  }
436
- const { path, patchType, backFillPatchName, appVersion, force } = data.data();
486
+ const { path, patchType, backFillPatchName, appVersion, resetStatus } = data.data();
437
487
  if (!path) {
438
488
  console.error("path should not be null");
439
489
  return;
@@ -443,12 +493,19 @@ async function onGroupPatchRequest(event) {
443
493
  return;
444
494
  }
445
495
  await data.ref.update({ status: "received", receivedAt: index_1.admin.firestore.Timestamp.now() });
496
+ // Operator restart option: when requested, reset all status docs for this
497
+ // patch first so the (settled) run can start over from scratch. The request
498
+ // doc may carry the flag as a real boolean (true) or as the string "true"
499
+ // (e.g. written from a console/HTTP form), so accept both.
500
+ const shouldResetStatus = resetStatus === true || resetStatus === "true";
501
+ if (shouldResetStatus) {
502
+ await resetGroupPatchStatuses(patchType, backFillPatchName);
503
+ }
446
504
  return (0, distribution_1.queueGroupPatch)({
447
505
  path,
448
506
  patchType,
449
507
  backFillPatchName,
450
508
  appVersion,
451
- force: force === true,
452
509
  });
453
510
  }
454
511
  exports.onGroupPatchRequest = onGroupPatchRequest;
@@ -608,17 +665,38 @@ exports.ancestorIdsPatchConfig = {
608
665
  * @param {PatchGroupDocsParams} params The collection path, patch type, and cursor.
609
666
  */
610
667
  async function patchGroupDocs(params) {
611
- const { collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId, force } = params;
668
+ var _a;
669
+ const { collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId } = params;
670
+ const iteration = (_a = params.iteration) !== null && _a !== void 0 ? _a : 0;
612
671
  const patchStatusPath = (0, distribution_1.getGroupPatchStatusPath)(collectionPath, patchType, backFillPatchName);
613
672
  const patchStatusRef = index_1.db.doc(patchStatusPath);
614
673
  const patchStatusDoc = await patchStatusRef.get();
615
674
  const patchStatusData = patchStatusDoc.data();
616
- // When `force` is set, ignore the stored status entirely (even "completed").
617
- if (!force && (patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.status) === "completed") {
675
+ // Circuit breaker: a healthy backfill terminates when a page comes back empty.
676
+ // If a chain keeps rescheduling itself past this cap it is almost certainly a
677
+ // runaway, so we abort here (mark "error", no reschedule) instead of letting it
678
+ // keep invoking functions and rewriting docs indefinitely.
679
+ const maxIterations = exports._mockable.getMaxGroupPatchIterations();
680
+ if (iteration >= maxIterations) {
681
+ const breakerError = `Circuit breaker tripped for ${collectionPath}: reached max ${maxIterations} patch iterations without completing (possible runaway backfill).`;
682
+ console.error(`[backfill-patch-emberflow] patchGroupDocs: ${breakerError} Aborting (no reschedule).`);
683
+ await patchStatusRef.set({
684
+ status: "error",
685
+ patchType,
686
+ backFillPatchName: backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null,
687
+ error: breakerError,
688
+ updatedAt: index_1.admin.firestore.Timestamp.now(),
689
+ }, { merge: true });
618
690
  return;
619
691
  }
620
- // Handle "reset" status (or a forced run) by starting from scratch
621
- const restartFromScratch = force || (patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.status) === "reset";
692
+ // A settled "completed" collection is never re-patched here. To restart it an
693
+ // operator stamps the status doc to "reset" (see onGroupPatchRequest), which is
694
+ // handled below.
695
+ if ((patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.status) === "completed") {
696
+ return;
697
+ }
698
+ // Handle "reset" status by starting from scratch (cursor + count cleared).
699
+ const restartFromScratch = (patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.status) === "reset";
622
700
  const effectiveLastId = restartFromScratch ? undefined : lastPatchedId;
623
701
  console.info(`[GroupPatch] Patching docs for collection: ${collectionPath}${effectiveLastId ? ` starting from ${effectiveLastId}` : ""}`);
624
702
  let query = index_1.db.collection(collectionPath).orderBy(index_1.admin.firestore.FieldPath.documentId());
@@ -638,6 +716,21 @@ async function patchGroupDocs(params) {
638
716
  return;
639
717
  }
640
718
  const lastId = docsSnapshot.docs[docsSnapshot.docs.length - 1].id;
719
+ // Hard stop for a guaranteed runaway loop: if the cursor does not advance
720
+ // between batches (the page ends on the very id we started after), rescheduling
721
+ // would re-query the exact same page forever. Abort instead of re-processing it.
722
+ if (effectiveLastId && effectiveLastId === lastId) {
723
+ const cursorError = `Cursor did not advance past "${lastId}" for ${collectionPath}; aborting to prevent a runaway backfill.`;
724
+ console.error(`[backfill-patch-emberflow] patchGroupDocs: ${cursorError} (no reschedule).`);
725
+ await patchStatusRef.set({
726
+ status: "error",
727
+ patchType,
728
+ backFillPatchName: backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null,
729
+ error: cursorError,
730
+ updatedAt: index_1.admin.firestore.Timestamp.now(),
731
+ }, { merge: true });
732
+ return;
733
+ }
641
734
  try {
642
735
  if (patchType === "patch-logics") {
643
736
  if (!appVersion) {
@@ -669,8 +762,11 @@ async function patchGroupDocs(params) {
669
762
  updatedAt: index_1.admin.firestore.Timestamp.now(),
670
763
  }, { merge: true });
671
764
  console.info(`[GroupPatch] Batch Complete: Patched ${docsSnapshot.docs.length} docs for collection: ${collectionPath}. Total patched so far: ${totalPatched}. Rescheduling next batch...`);
672
- // Reschedule for next batch
673
- await (0, distribution_1.queueGroupPatch)({ path: collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId: lastId });
765
+ // Reschedule for next batch, carrying the incremented iteration counter so
766
+ // the circuit breaker can eventually stop a chain that never completes.
767
+ const nextIteration = iteration + 1;
768
+ console.info(`[backfill-patch-emberflow] patchGroupDocs: RESCHEDULING next batch for ${collectionPath} with lastPatchedId=${lastId}, iteration=${nextIteration}.`);
769
+ await (0, distribution_1.queueGroupPatch)({ path: collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId: lastId, iteration: nextIteration });
674
770
  }
675
771
  catch (error) {
676
772
  console.error(`[GroupPatch] Error in patchGroupDocs for ${collectionPath}:`, error);
@@ -1 +1 @@
1
- {"version":3,"file":"index-utils.js","sourceRoot":"","sources":["../src/index-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-utils.js","sourceRoot":"","sources":["../src/index-utils.ts"],"names":[],"mappings":"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"}