@serve.zone/dcrouter 34.0.0 → 34.2.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.
@@ -9,6 +9,7 @@ import { canonicalJson as canonicalWebPushJson, openWebPushEnvelope, parseWebPus
9
9
  import { buildGatewayClientRouteName, gatewayClientHostRouteKeyPrefix, parseGatewayClientHostRouteKey, } from '../dist_ts/opsserver/helpers/gateway-client-route-key.js';
10
10
  import { buildDnsProviderRecordKey, dnsProviderRecordKeyIndexName, } from '../dist_ts/dns/provider-record-key.js';
11
11
  import { data as servezoneInterfacesData } from '@serve.zone/interfaces';
12
+ import * as plugins from '../dist_ts/plugins.js';
12
13
  /** The verifier contract token CoreMail peers are stored under from interfaces 32.0.0 on. */
13
14
  const coreMailVerifierFormat = servezoneInterfacesData.coreMailCredentialVerifierPolicy.format;
14
15
  /**
@@ -766,6 +767,55 @@ async function migrateServiceMailIdempotencyIndex(ctx) {
766
767
  * @param targetVersion - The explicit schema or historical migration test target
767
768
  */
768
769
  export async function createMigrationRunner(db, targetVersion, options = {}) {
770
+ return await buildMigrationRunner(db, targetVersion, targetVersion, options);
771
+ }
772
+ /**
773
+ * Create the runner `dcrouter migrate` walks the ledger back with.
774
+ *
775
+ * It registers the whole chain through `dcRouterSchemaVersion`, so smartmigration plans the
776
+ * reverse run itself: it refuses a target that is not a step boundary (`TARGET_NOT_REACHABLE`) and
777
+ * a path across a step without `.down()` (`DOWNGRADE_STEP_IRREVERSIBLE`) before any handler runs.
778
+ * `run()` and `plan()` refuse by name, before that, a database without a ledger, a ledger a newer
779
+ * dcrouter wrote and a target ahead of the ledger: a forward migration is what starting dcrouter
780
+ * does. A target equal to the ledger is the no-op a repeated downgrade is.
781
+ *
782
+ * @param db - An initialized SmartdataDb on a storage root no dcrouter is running on
783
+ * @param targetVersion - The data version to walk the ledger back to
784
+ */
785
+ export async function createDowngradeMigrationRunner(db, targetVersion, options = {}) {
786
+ const runner = await buildMigrationRunner(db, targetVersion, dcRouterSchemaVersion, options);
787
+ const assertDowngrade = async () => {
788
+ const ledgerVersion = await runner.getCurrentVersion();
789
+ if (ledgerVersion === null) {
790
+ throw new DcRouterMigrationError('This database has no migration ledger, so there is no data version to walk back from. Nothing was changed.');
791
+ }
792
+ if (compareSemver(ledgerVersion, dcRouterSchemaVersion) > 0) {
793
+ throw new DcRouterMigrationError(`The migration ledger is at "${ledgerVersion}", which a newer dcrouter wrote. This release migrates data `
794
+ + `up to "${dcRouterSchemaVersion}" and cannot walk it back. Nothing was changed.`);
795
+ }
796
+ if (compareSemver(targetVersion, ledgerVersion) > 0) {
797
+ throw new DcRouterMigrationError(`The target "${targetVersion}" is ahead of the migration ledger at "${ledgerVersion}". dcrouter migrate only `
798
+ + 'walks data back; starting dcrouter migrates it forward. Nothing was changed.');
799
+ }
800
+ };
801
+ return {
802
+ getCurrentVersion: () => runner.getCurrentVersion(),
803
+ plan: async () => {
804
+ await assertDowngrade();
805
+ return await runner.plan();
806
+ },
807
+ run: async () => {
808
+ await assertDowngrade();
809
+ return await runner.run();
810
+ },
811
+ };
812
+ }
813
+ /**
814
+ * Builds the SmartMigration runner. Steps are registered up to `chainEndVersion`: the target
815
+ * itself for a forward runner, so a target between two step boundaries is bridged rather than
816
+ * overshot, and `dcRouterSchemaVersion` for a downgrade runner, whose target is behind the chain.
817
+ */
818
+ async function buildMigrationRunner(db, targetVersion, chainEndVersion, options) {
769
819
  const sm = await import('@push.rocks/smartmigration');
770
820
  const migration = new sm.SmartMigration({
771
821
  targetVersion,
@@ -796,9 +846,10 @@ export async function createMigrationRunner(db, targetVersion, options = {}) {
796
846
  });
797
847
  // Register steps in execution order; each `.from()` is the previous `.to()`,
798
848
  // and `oldestSupportedVersion` pins the first one as the floor of this
799
- // release. Registration stops at `targetVersion` so a target that is not a
800
- // step boundary is bridged by smartmigration instead of overshooting.
801
- const reaches = (versionArg) => compareSemver(targetVersion, versionArg) >= 0;
849
+ // release. Registration stops at `chainEndVersion`; for a forward runner that
850
+ // is the target, so a target that is not a step boundary is bridged by
851
+ // smartmigration instead of overshooting.
852
+ const reaches = (versionArg) => compareSemver(chainEndVersion, versionArg) >= 0;
802
853
  /**
803
854
  * Close the chain. A `targetVersion` that is not a step boundary is bridged,
804
855
  * and that bridge repeats the settings safeguards the chain reached rather
@@ -1034,6 +1085,12 @@ export async function createMigrationRunner(db, targetVersion, options = {}) {
1034
1085
  .step('release-annexed-gateway-route-dns-records')
1035
1086
  .from(providerRecordMirrorMigrationVersion).to(gatewayRouteDnsOwnershipReleaseMigrationVersion)
1036
1087
  .description('Return the operator records route DNS adopted or replaced to operator ownership')
1088
+ // The releases, their undo record and the ledger stamp commit in one transaction, and so
1089
+ // does the restore: no window between a commit and its stamp in either direction.
1090
+ .transactional()
1091
+ .down(async (ctx) => {
1092
+ await restoreAnnexedGatewayRouteDnsRecords(ctx);
1093
+ })
1037
1094
  .up(async (ctx) => {
1038
1095
  await releaseAnnexedGatewayRouteDnsRecords(ctx);
1039
1096
  });
@@ -1789,8 +1846,121 @@ async function reconcileProviderRecordMirrorDuplicates(ctx) {
1789
1846
  // ----------------------------------------- Route DNS ownership release (merge-time version)
1790
1847
  /** Title of the platform event released route DNS wrote when it replaced manual records. */
1791
1848
  const gatewayRouteDnsManualClaimEventTitle = 'Gateway route DNS automation claimed a manual hostname';
1849
+ const gatewayRouteDnsOwnershipReleaseStepId = 'release-annexed-gateway-route-dns-records';
1792
1850
  /**
1793
- * Return to the operator the records route DNS took from operators before it stopped doing so.
1851
+ * The migration-owned record of what a step changed, so that its `.down()` restores exactly that
1852
+ * and nothing it would have to guess. Only `ts_migrations/` writes or reads it. A step keeps one
1853
+ * header (`_id` = the step id) and one row per change (`_id` = `<step id>:<record id>`).
1854
+ */
1855
+ const migrationUndoRecordCollection = 'MigrationUndoRecord';
1856
+ /**
1857
+ * smartmigration's mongo ledger: one document in `SmartdataEasyStore` keyed
1858
+ * `smartmigration:<ledgerName>` (its readme, "The ledger"); dcrouter uses the default name.
1859
+ */
1860
+ const migrationLedgerCollection = 'SmartdataEasyStore';
1861
+ const migrationLedgerNameId = 'smartmigration:smartmigration';
1862
+ /** For a route DNS record these three fields are its whole ownership. */
1863
+ const dnsRecordOwnershipFields = ['managedBy', 'managedOwnerId', 'managedRecordKey'];
1864
+ function requireStepSession(ctxArg, stepNameArg) {
1865
+ if (!ctxArg.session) {
1866
+ throw new DcRouterMigrationError(`${stepNameArg} runs only as a transactional step and got no transaction session.`);
1867
+ }
1868
+ return ctxArg.session;
1869
+ }
1870
+ const hasOwnField = (documentArg, fieldArg) => (Object.prototype.hasOwnProperty.call(documentArg, fieldArg));
1871
+ /** No ownership field at all, the test the restore's `$exists: false` filter makes. */
1872
+ const isUnownedDnsRecord = (recordArg) => (dnsRecordOwnershipFields.every((fieldArg) => !hasOwnField(recordArg, fieldArg)));
1873
+ /** Exactly the recorded ownership: each recorded field equal, every other one absent. */
1874
+ const isOwnedAsRecorded = (recordArg, restoreArg) => (dnsRecordOwnershipFields.every((fieldArg) => (hasOwnField(restoreArg, fieldArg)
1875
+ ? hasOwnField(recordArg, fieldArg) && recordArg[fieldArg] === restoreArg[fieldArg]
1876
+ : !hasOwnField(recordArg, fieldArg))));
1877
+ const describeDnsRecordOwnership = (recordArg) => (dnsRecordOwnershipFields
1878
+ .filter((fieldArg) => hasOwnField(recordArg, fieldArg))
1879
+ .map((fieldArg) => `${fieldArg} "${String(recordArg[fieldArg])}"`)
1880
+ .join(', '));
1881
+ // ----------------------------------------- SmartDB transaction size
1882
+ /**
1883
+ * SmartDB 5.7.1 materializes every namespace a transaction reads or writes as a snapshot of the
1884
+ * whole collection, and admits at most 10,000 snapshot documents and 32 MiB in one transaction
1885
+ * (its readme, "Remaining storage and pipeline limits"). The byte budget also holds every written
1886
+ * document before and after the write and every id the transaction read
1887
+ * (`rustdb-txn` `TransactionResourceLimits`). A step that writes in one transaction checks its work
1888
+ * against both before its first write, and never splits it into batches.
1889
+ */
1890
+ const smartDbTransactionDocumentCap = 10_000;
1891
+ const smartDbTransactionByteCap = 32 * 1024 * 1024;
1892
+ /** A bound, per snapshot document, on the read id and namespace bytes the transaction accounts. */
1893
+ const smartDbTransactionReadAllowanceBytes = 256;
1894
+ /** A bound on what the ledger stamp adds to the ledger document: one step entry. */
1895
+ const smartDbTransactionLedgerStampAllowanceBytes = 1024;
1896
+ const bsonBytes = (documentArg) => plugins.bson.calculateObjectSize(documentArg);
1897
+ function smartDbTransactionCapError(stepNameArg, workLabelArg, holdsArg) {
1898
+ return new DcRouterMigrationError(`${stepNameArg}: the ${workLabelArg} commits in one SmartDB transaction, and SmartDB 5.7.1 admits at most `
1899
+ + `${smartDbTransactionDocumentCap} documents and ${smartDbTransactionByteCap} bytes in one; this one would hold `
1900
+ + `${holdsArg}. Nothing was changed. The step does not split its work across transactions.`);
1901
+ }
1902
+ /**
1903
+ * Reads, outside any transaction, every document of the namespaces the transaction will touch.
1904
+ * Namespaces that together exceed the document cap are refused on their counts alone.
1905
+ */
1906
+ async function readSmartDbTransactionSnapshot(ctxArg, stepNameArg, workLabelArg, namespacesArg) {
1907
+ const counts = await Promise.all(namespacesArg.map((namespaceArg) => (ctxArg.mongo.collection(namespaceArg).countDocuments({}))));
1908
+ const total = counts.reduce((sumArg, countArg) => sumArg + countArg, 0);
1909
+ if (total > smartDbTransactionDocumentCap) {
1910
+ throw smartDbTransactionCapError(stepNameArg, workLabelArg, `${total} snapshot documents (`
1911
+ + `${namespacesArg.map((namespaceArg, indexArg) => `${namespaceArg} ${counts[indexArg]}`).join(', ')})`);
1912
+ }
1913
+ return await Promise.all(namespacesArg.map(async (namespaceArg) => ({
1914
+ namespace: namespaceArg,
1915
+ documents: await ctxArg.mongo.collection(namespaceArg).find({}).toArray(),
1916
+ })));
1917
+ }
1918
+ function assertSmartDbTransactionFits(stepNameArg, workLabelArg, workArg) {
1919
+ const snapshotDocuments = workArg.snapshot.reduce((sumArg, entryArg) => sumArg + entryArg.documents.length, 0);
1920
+ const documents = snapshotDocuments + workArg.inserted.length;
1921
+ const writes = workArg.inserted.length + workArg.updated.length + workArg.deleted.length;
1922
+ const sumBytes = (documentsArg) => documentsArg.reduce((sumArg, documentArg) => sumArg + bsonBytes(documentArg), 0);
1923
+ const bytes = workArg.snapshot.reduce((sumArg, entryArg) => sumArg + sumBytes(entryArg.documents), 0)
1924
+ + snapshotDocuments * smartDbTransactionReadAllowanceBytes
1925
+ + sumBytes(workArg.inserted)
1926
+ + workArg.updated.reduce((sumArg, entryArg) => sumArg + bsonBytes(entryArg.before) + bsonBytes(entryArg.after), 0)
1927
+ + sumBytes(workArg.deleted)
1928
+ + smartDbTransactionLedgerStampAllowanceBytes;
1929
+ if (documents <= smartDbTransactionDocumentCap
1930
+ && writes <= smartDbTransactionDocumentCap
1931
+ && bytes <= smartDbTransactionByteCap) {
1932
+ return;
1933
+ }
1934
+ throw smartDbTransactionCapError(stepNameArg, workLabelArg, `${documents} documents (${workArg.snapshot.map((entryArg) => `${entryArg.namespace} ${entryArg.documents.length}`)
1935
+ .join(', ')}, ${workArg.inserted.length} inserted), ${writes} writes and about ${bytes} bytes`);
1936
+ }
1937
+ function buildRouteDnsReleaseUndoRow(stepNameArg, releaseArg, releasedAtArg) {
1938
+ const { record } = releaseArg;
1939
+ const restore = {};
1940
+ for (const field of dnsRecordOwnershipFields) {
1941
+ if (hasOwnField(record, field))
1942
+ restore[field] = record[field];
1943
+ }
1944
+ return {
1945
+ _id: `${stepNameArg}:${String(record.id)}`,
1946
+ kind: 'release',
1947
+ stepId: stepNameArg,
1948
+ recordDocumentId: record._id,
1949
+ recordId: String(record.id),
1950
+ domainId: String(record.domainId),
1951
+ zone: releaseArg.zoneName || null,
1952
+ name: String(record.name),
1953
+ type: String(record.type),
1954
+ value: String(record.value),
1955
+ createdBy: typeof record.createdBy === 'string' ? record.createdBy : null,
1956
+ cause: releaseArg.cause,
1957
+ restore,
1958
+ releasedAt: releasedAtArg,
1959
+ };
1960
+ }
1961
+ /**
1962
+ * Return to the operator the records route DNS took from operators before it stopped doing so,
1963
+ * and record each release for the step's `.down()`.
1794
1964
  *
1795
1965
  * Two kinds of record went that way. Route DNS adopted an identical manual record by setting its
1796
1966
  * ownership fields, which never rewrote `createdBy`, so every `managedBy: 'gateway-route-dns'`
@@ -1800,13 +1970,24 @@ const gatewayRouteDnsManualClaimEventTitle = 'Gateway route DNS automation claim
1800
1970
  * with the zone and hostname, open or acknowledged. Both are released: their ownership fields are
1801
1971
  * removed and the record stays exactly as it is. Records route DNS created where nothing was stay
1802
1972
  * owned. Every release is logged; a re-run finds nothing left to release.
1973
+ *
1974
+ * The `MigrationUndoRecord` header is written before the step's transaction: SmartDB creates no
1975
+ * collection inside one, and `$setOnInsert` never turns a committed header back into `recording`.
1976
+ * The transaction then inserts one undo row per release (the record's identity, the cause and
1977
+ * exactly the ownership fields it held), removes the ownership, and sets the header `complete`;
1978
+ * smartmigration stamps the ledger in the same transaction. A re-upgrade over a `reverted` header
1979
+ * replaces its rows there. dcrouter 34.0.0 and 34.1.0 ran this step without recording anything.
1803
1980
  */
1804
1981
  async function releaseAnnexedGatewayRouteDnsRecords(ctx) {
1805
- const stepName = 'release-annexed-gateway-route-dns-records';
1982
+ const stepName = gatewayRouteDnsOwnershipReleaseStepId;
1983
+ const session = requireStepSession(ctx, stepName);
1806
1984
  const canonical = normalizeMigrationDnsHostname;
1807
- const records = ctx.mongo.collection('DnsRecordDoc');
1808
- const owned = await records.find({ managedBy: gatewayRouteDnsManagedBy }).sort({ id: 1 }).toArray();
1809
- const claimEvents = await ctx.mongo.collection('OpsConfigEventDoc')
1985
+ const mongo = ctx.mongo;
1986
+ const records = mongo.collection('DnsRecordDoc');
1987
+ const undo = mongo.collection(migrationUndoRecordCollection);
1988
+ // The step decides from these but never writes them, so they are read outside the transaction
1989
+ // and stay out of its snapshot.
1990
+ const claimEvents = await mongo.collection('OpsConfigEventDoc')
1810
1991
  .find({ category: 'dns-conflict', title: gatewayRouteDnsManualClaimEventTitle })
1811
1992
  .toArray();
1812
1993
  const claimedHostnames = new Map();
@@ -1817,24 +1998,293 @@ async function releaseAnnexedGatewayRouteDnsRecords(ctx) {
1817
1998
  claimedHostnames.set(`${zoneName}|${hostname}`, event);
1818
1999
  }
1819
2000
  const zoneNames = new Map();
1820
- for (const zone of await ctx.mongo.collection('DomainDoc').find({}).toArray()) {
2001
+ for (const zone of await mongo.collection('DomainDoc').find({}).toArray()) {
1821
2002
  zoneNames.set(String(zone.id), canonical(zone.name));
1822
2003
  }
1823
- let released = 0;
1824
- for (const record of owned) {
2004
+ const selectReleases = (ownedArg) => ownedArg.flatMap((record) => {
1825
2005
  const zoneName = zoneNames.get(String(record.domainId));
1826
- const adopted = record.createdBy !== gatewayRouteDnsManagedBy;
2006
+ if (record.createdBy !== gatewayRouteDnsManagedBy)
2007
+ return [{ record, zoneName, cause: { kind: 'adopted' } }];
1827
2008
  const claimEvent = zoneName ? claimedHostnames.get(`${zoneName}|${canonical(record.name)}`) : undefined;
1828
- if (!adopted && !claimEvent)
1829
- continue;
1830
- await records.updateOne({ _id: record._id }, { $unset: { managedBy: '', managedOwnerId: '', managedRecordKey: '' } });
1831
- released++;
2009
+ return claimEvent ? [{ record, zoneName, cause: { kind: 'replaced', eventId: String(claimEvent.id) } }] : [];
2010
+ });
2011
+ const byRecordId = (leftArg, rightArg) => (String(leftArg.id).localeCompare(String(rightArg.id)));
2012
+ const releasedAt = Date.now();
2013
+ // Before the first write: refuse work SmartDB cannot hold in one transaction.
2014
+ const snapshot = await readSmartDbTransactionSnapshot(ctx, stepName, 'release', [
2015
+ 'DnsRecordDoc',
2016
+ migrationUndoRecordCollection,
2017
+ migrationLedgerCollection,
2018
+ ]);
2019
+ const [recordSnapshot, undoSnapshot, ledgerSnapshot] = snapshot;
2020
+ const storedHeader = undoSnapshot.documents.find((documentArg) => documentArg._id === stepName);
2021
+ const newHeader = { _id: stepName, kind: 'header', stepId: stepName, state: 'recording', createdAt: releasedAt };
2022
+ const header = storedHeader ?? newHeader;
2023
+ const plannedReleases = selectReleases(recordSnapshot.documents
2024
+ .filter((recordArg) => recordArg.managedBy === gatewayRouteDnsManagedBy)
2025
+ .sort(byRecordId));
2026
+ const ownStepRows = (documentArg) => documentArg.stepId === stepName && documentArg.kind === 'release';
2027
+ assertSmartDbTransactionFits(stepName, 'release', {
2028
+ snapshot: storedHeader ? snapshot : [recordSnapshot, { ...undoSnapshot, documents: [...undoSnapshot.documents, header] }, ledgerSnapshot],
2029
+ inserted: plannedReleases.map((releaseArg) => buildRouteDnsReleaseUndoRow(stepName, releaseArg, releasedAt)),
2030
+ updated: [
2031
+ ...plannedReleases.map((releaseArg) => {
2032
+ const after = { ...releaseArg.record };
2033
+ for (const field of dnsRecordOwnershipFields)
2034
+ delete after[field];
2035
+ return { before: releaseArg.record, after };
2036
+ }),
2037
+ { before: header, after: { ...header, state: 'complete', completedAt: releasedAt, releasedCount: plannedReleases.length } },
2038
+ ...ledgerSnapshot.documents
2039
+ .filter((documentArg) => documentArg.nameId === migrationLedgerNameId)
2040
+ .map((documentArg) => ({ before: documentArg, after: documentArg })),
2041
+ ],
2042
+ deleted: storedHeader?.state === 'reverted' ? undoSnapshot.documents.filter(ownStepRows) : [],
2043
+ });
2044
+ const { _id: headerId, ...headerFields } = newHeader;
2045
+ await undo.updateOne({ _id: headerId }, { $setOnInsert: headerFields }, { upsert: true });
2046
+ // The step's transaction: the rows, the releases and the header commit with the ledger stamp.
2047
+ const currentHeader = await undo.findOne({ _id: stepName }, { session });
2048
+ if (!currentHeader) {
2049
+ throw new DcRouterMigrationError(`${stepName}: the undo record header written before the transaction is gone. Nothing was changed.`);
2050
+ }
2051
+ const releases = selectReleases(await records.find({ managedBy: gatewayRouteDnsManagedBy }, { session }).sort({ id: 1 }).toArray());
2052
+ const rows = releases.map((releaseArg) => buildRouteDnsReleaseUndoRow(stepName, releaseArg, releasedAt));
2053
+ // A re-upgrade after a downgrade replaces the rows, which describe releases that downgrade
2054
+ // restored: each release replaces its record's row, and the rows of records not released again
2055
+ // are removed.
2056
+ const replacesRows = currentHeader.state === 'reverted';
2057
+ const recordedRowIds = new Set();
2058
+ if (replacesRows) {
2059
+ await undo.deleteMany({ stepId: stepName, kind: 'release', _id: { $nin: rows.map((rowArg) => rowArg._id) } }, { session });
2060
+ }
2061
+ else {
2062
+ for (const row of await undo.find({ stepId: stepName, kind: 'release' }, { session }).toArray()) {
2063
+ recordedRowIds.add(String(row._id));
2064
+ }
2065
+ }
2066
+ const alreadyRecorded = rows.filter((rowArg) => recordedRowIds.has(rowArg._id));
2067
+ if (alreadyRecorded.length > 0) {
2068
+ throw new DcRouterMigrationError(`${stepName}: record(s) ${alreadyRecorded.map((rowArg) => rowArg.recordId).join(', ')} already have an undo row from `
2069
+ + 'an earlier release by this step, which a second release would overwrite. Nothing was changed.');
2070
+ }
2071
+ for (const [index, release] of releases.entries()) {
2072
+ const { record } = release;
2073
+ if (replacesRows) {
2074
+ await undo.replaceOne({ _id: rows[index]._id }, rows[index], { session, upsert: true });
2075
+ }
2076
+ else {
2077
+ await undo.insertOne(rows[index], { session });
2078
+ }
2079
+ const released = await records.updateOne({ _id: record._id }, { $unset: { managedBy: '', managedOwnerId: '', managedRecordKey: '' } }, { session });
2080
+ if (released.matchedCount !== 1) {
2081
+ throw new DcRouterMigrationError(`${stepName}: record ${record.id} disappeared while the step ran. Nothing was changed.`);
2082
+ }
1832
2083
  ctx.log.log('info', `${stepName}: released ${record.type} ${record.name} ${record.value} (record ${record.id}, zone `
1833
- + `${zoneName || record.domainId}) from ${record.managedOwnerId ?? 'no owner'}: `
1834
- + (adopted
2084
+ + `${release.zoneName || record.domainId}) from ${record.managedOwnerId ?? 'no owner'}: `
2085
+ + (release.cause.kind === 'adopted'
1835
2086
  ? `route DNS adopted it from creator ${record.createdBy ?? 'unknown'}`
1836
- : `route DNS replaced a manual record there (platform event ${claimEvent.id})`));
2087
+ : `route DNS replaced a manual record there (platform event ${release.cause.eventId})`));
2088
+ }
2089
+ await undo.updateOne({ _id: stepName }, {
2090
+ $set: { state: 'complete', completedAt: releasedAt, releasedCount: recordedRowIds.size + rows.length },
2091
+ $unset: { revertedAt: '', restoredCount: '', alreadyRestoredCount: '', skippedDeletedCount: '' },
2092
+ }, { session });
2093
+ ctx.log.log('info', `${stepName}: released ${rows.length} route-owned DNS record(s) and recorded each release in ${migrationUndoRecordCollection}`);
2094
+ }
2095
+ // ----------------------------------------- Route DNS ownership release: down
2096
+ /**
2097
+ * What the down does with the undo record header and the step's ledger entry it finds. The ledger
2098
+ * is the authority on whether the step ran: an entry for the step, whatever its status, means it
2099
+ * did. `applied` and `failed` leave the data in the step's applied state (a failed attempt, up or
2100
+ * down, committed nothing at a data version at or above the step's), `reverted` leaves it restored.
2101
+ * Only a `complete` header beside such an entry is restored; a database whose ledger never ran the
2102
+ * step and that holds no header has nothing to restore, and so has one whose header and entry are
2103
+ * both `reverted`. Every other combination is refused by name, with nothing changed.
2104
+ */
2105
+ function judgeRouteDnsReleaseUndoState(stepNameArg, headerArg, ledgerEntryArg) {
2106
+ const headerState = headerArg ? String(headerArg.state) : 'missing';
2107
+ const entryStatus = ledgerEntryArg ? String(ledgerEntryArg.status) : 'absent';
2108
+ const refuse = (reasonArg) => new DcRouterMigrationError(`${stepNameArg}: ${reasonArg} Nothing was changed.`);
2109
+ const disagree = () => refuse(`the migration ledger records this step as ${entryStatus === 'absent' ? 'never run' : `"${entryStatus}"`}, but its undo `
2110
+ + `record ${headerArg ? `is "${headerState}"` : 'is missing'}; the two disagree, so neither says what to restore.`);
2111
+ if (entryStatus === 'absent') {
2112
+ if (!headerArg)
2113
+ return { restore: false, nothingToRestore: 'the step never ran on this database' };
2114
+ throw disagree();
2115
+ }
2116
+ if (entryStatus === 'reverted') {
2117
+ if (headerState === 'reverted')
2118
+ return { restore: false, nothingToRestore: 'the recorded releases were restored already' };
2119
+ throw disagree();
2120
+ }
2121
+ if (entryStatus !== 'applied' && entryStatus !== 'failed') {
2122
+ throw refuse(`the migration ledger records this step with the unknown status "${entryStatus}".`);
2123
+ }
2124
+ if (!headerArg) {
2125
+ throw refuse(`the migration ledger records this step as "${entryStatus}", but the database holds no undo record for it. `
2126
+ + 'dcrouter 34.0.0 and 34.1.0 applied the step without writing one: on a database they upgraded, and on a '
2127
+ + 'database they created, whose fresh-install-version run applies every step from 17.7.2 on, this one included '
2128
+ + '(a 34.0.0- or 34.1.0-created database). There is nothing to restore route DNS ownership from. Restore the '
2129
+ + 'export taken before the upgrade to 34.0.0 instead; a database 34.0.0 or 34.1.0 created has no data of 33.0.0 '
2130
+ + 'to go back to.');
2131
+ }
2132
+ if (headerState === 'recording') {
2133
+ throw refuse(`the undo record is still "recording", so this step never committed its releases, but the migration ledger `
2134
+ + `records it as "${entryStatus}": a release that does not record them (34.0.0 or 34.1.0) applied it. Restore `
2135
+ + 'the export taken before that upgrade instead.');
2136
+ }
2137
+ if (headerState === 'reverted') {
2138
+ throw refuse(`the undo record says its releases were restored, but the migration ledger records the step as "${entryStatus}" `
2139
+ + 'at its applied data version: a release that does not record its releases (34.0.0 or 34.1.0) applied it again '
2140
+ + 'since. Restore the export taken before that upgrade instead.');
2141
+ }
2142
+ if (headerState !== 'complete') {
2143
+ throw refuse(`the undo record has the unknown state "${headerState}".`);
2144
+ }
2145
+ return { restore: true };
2146
+ }
2147
+ /**
2148
+ * Give the records the step released their recorded ownership back, as dcrouter 33.0.0 held it.
2149
+ *
2150
+ * Every row is judged before anything is written, in the step's transaction:
2151
+ * - a record deleted since the release is skipped and logged (the deletion is kept);
2152
+ * - an unowned record (no `managedBy`, `managedOwnerId` or `managedRecordKey`) is restored, even
2153
+ * when its value, TTL, name or type changed since: 33.0.0 keeps ownership through every edit;
2154
+ * - a record owned exactly as recorded counts as already restored;
2155
+ * - a record owned otherwise, or a recorded `managedRecordKey` another record holds now, is a
2156
+ * conflict. All conflicts are refused in one error and nothing is written.
2157
+ * Each restore is a `$set` conditional on the record still being unowned that must match exactly
2158
+ * one record, and the header becomes `reverted` in the same transaction, which smartmigration
2159
+ * stamps back to 32.6.0. The undo record is kept, and so are the 34-era collections
2160
+ * `DnsMutationJournalDoc` and `DnsProtectedHostnameDoc`, which 33.0.0 never reads.
2161
+ *
2162
+ * Which header and ledger entry lead to a restore, to nothing or to a refusal is decided by
2163
+ * `judgeRouteDnsReleaseUndoState`: a database whose ledger shows the step and that holds no
2164
+ * `complete` header was migrated by a release that did not record its releases (34.0.0, 34.1.0,
2165
+ * an upgrade or a fresh install) and is refused by name.
2166
+ */
2167
+ async function restoreAnnexedGatewayRouteDnsRecords(ctx) {
2168
+ const stepName = gatewayRouteDnsOwnershipReleaseStepId;
2169
+ const session = requireStepSession(ctx, stepName);
2170
+ const mongo = ctx.mongo;
2171
+ const records = mongo.collection('DnsRecordDoc');
2172
+ const undo = mongo.collection(migrationUndoRecordCollection);
2173
+ const ledger = mongo.collection(migrationLedgerCollection);
2174
+ // Before the first write: refuse work SmartDB cannot hold in one transaction.
2175
+ const snapshot = await readSmartDbTransactionSnapshot(ctx, stepName, 'restore', [
2176
+ 'DnsRecordDoc',
2177
+ migrationUndoRecordCollection,
2178
+ migrationLedgerCollection,
2179
+ ]);
2180
+ const [recordSnapshot, undoSnapshot, ledgerSnapshot] = snapshot;
2181
+ const snapshotRecords = new Map(recordSnapshot.documents.map((recordArg) => [String(recordArg._id), recordArg]));
2182
+ const storedHeader = undoSnapshot.documents.find((documentArg) => documentArg._id === stepName);
2183
+ assertSmartDbTransactionFits(stepName, 'restore', {
2184
+ snapshot,
2185
+ inserted: [],
2186
+ updated: [
2187
+ ...undoSnapshot.documents
2188
+ .filter((documentArg) => documentArg.stepId === stepName && documentArg.kind === 'release')
2189
+ .flatMap((rowArg) => {
2190
+ const record = snapshotRecords.get(String(rowArg.recordDocumentId));
2191
+ return record ? [{ before: record, after: { ...record, ...rowArg.restore } }] : [];
2192
+ }),
2193
+ ...(storedHeader
2194
+ ? [{ before: storedHeader, after: { ...storedHeader, state: 'reverted', revertedAt: 0, restoredCount: 0,
2195
+ alreadyRestoredCount: 0, skippedDeletedCount: 0 } }]
2196
+ : []),
2197
+ ...ledgerSnapshot.documents
2198
+ .filter((documentArg) => documentArg.nameId === migrationLedgerNameId)
2199
+ .map((documentArg) => ({ before: documentArg, after: documentArg })),
2200
+ ],
2201
+ deleted: [],
2202
+ });
2203
+ const protectedHostnameCount = await mongo.collection('DnsProtectedHostnameDoc').countDocuments({});
2204
+ // The step's transaction: the restores and the header commit with the ledger stamp.
2205
+ const header = await undo.findOne({ _id: stepName }, { session });
2206
+ const ledgerDocument = await ledger.findOne({ nameId: migrationLedgerNameId }, { session });
2207
+ const ledgerSteps = ledgerDocument?.data?.steps ?? {};
2208
+ const ledgerEntry = hasOwnField(ledgerSteps, stepName) ? ledgerSteps[stepName] : undefined;
2209
+ const verdict = judgeRouteDnsReleaseUndoState(stepName, header, ledgerEntry);
2210
+ if (!verdict.restore) {
2211
+ ctx.log.log('info', `${stepName}: ${verdict.nothingToRestore}; there is nothing to restore`);
2212
+ return;
2213
+ }
2214
+ const rows = await undo.find({ stepId: stepName, kind: 'release' }, { session }).sort({ _id: 1 }).toArray();
2215
+ const current = rows.length > 0
2216
+ ? await records.find({ _id: { $in: rows.map((rowArg) => rowArg.recordDocumentId) } }, { session }).toArray()
2217
+ : [];
2218
+ const currentById = new Map(current.map((recordArg) => [String(recordArg._id), recordArg]));
2219
+ const recordedKeys = rows
2220
+ .map((rowArg) => rowArg.restore?.managedRecordKey)
2221
+ .filter((keyArg) => typeof keyArg === 'string');
2222
+ const keyHolders = recordedKeys.length > 0
2223
+ ? await records.find({ managedRecordKey: { $in: recordedKeys } }, { session }).toArray()
2224
+ : [];
2225
+ const restores = [];
2226
+ const deleted = [];
2227
+ let alreadyRestored = 0;
2228
+ const conflicts = [];
2229
+ for (const row of rows) {
2230
+ const restore = row.restore ?? {};
2231
+ const record = currentById.get(String(row.recordDocumentId));
2232
+ if (!record) {
2233
+ deleted.push(row);
2234
+ continue;
2235
+ }
2236
+ const label = `record ${row.recordId} (${record.type} ${record.name})`;
2237
+ const holder = restore.managedRecordKey === undefined
2238
+ ? undefined
2239
+ : keyHolders.find((holderArg) => (holderArg.managedRecordKey === restore.managedRecordKey && String(holderArg._id) !== String(record._id)));
2240
+ if (holder) {
2241
+ conflicts.push(`${label} held managedRecordKey "${restore.managedRecordKey}", which record ${holder.id} `
2242
+ + `(${holder.type} ${holder.name}) holds now`);
2243
+ continue;
2244
+ }
2245
+ if (isUnownedDnsRecord(record)) {
2246
+ restores.push({ row, record });
2247
+ }
2248
+ else if (isOwnedAsRecorded(record, restore)) {
2249
+ alreadyRestored++;
2250
+ }
2251
+ else {
2252
+ conflicts.push(`${label} is owned again (${describeDnsRecordOwnership(record)}), not as recorded `
2253
+ + `(${describeDnsRecordOwnership(restore)})`);
2254
+ }
2255
+ }
2256
+ if (conflicts.length > 0) {
2257
+ throw new DcRouterMigrationError(`${stepName}: ${conflicts.length} of ${rows.length} released record(s) cannot get their recorded ownership back. `
2258
+ + `Nothing was changed. ${conflicts.join('; ')}. Resolve each conflict with this release running (release or `
2259
+ + 'delete the record that holds the ownership through the ops API), stop it, then run dcrouter migrate again.');
2260
+ }
2261
+ for (const row of deleted) {
2262
+ ctx.log.log('info', `${stepName}: skipped ${row.type} ${row.name} ${row.value} (record ${row.recordId}): deleted since the release`);
2263
+ }
2264
+ for (const { row, record } of restores) {
2265
+ const restored = await records.updateOne({
2266
+ _id: record._id,
2267
+ managedBy: { $exists: false },
2268
+ managedOwnerId: { $exists: false },
2269
+ managedRecordKey: { $exists: false },
2270
+ }, { $set: row.restore }, { session });
2271
+ if (restored.matchedCount !== 1) {
2272
+ throw new DcRouterMigrationError(`${stepName}: record ${row.recordId} changed while the step ran, so its ownership was not restored. Nothing was changed.`);
2273
+ }
2274
+ ctx.log.log('info', `${stepName}: restored ${record.type} ${record.name} ${record.value} (record ${row.recordId}) to `
2275
+ + `${row.restore.managedBy}/${row.restore.managedOwnerId ?? 'no owner'}`);
1837
2276
  }
1838
- ctx.log.log('info', `${stepName}: released ${released} of ${owned.length} route-owned DNS record(s)`);
2277
+ await undo.updateOne({ _id: stepName }, {
2278
+ $set: {
2279
+ state: 'reverted',
2280
+ revertedAt: Date.now(),
2281
+ restoredCount: restores.length,
2282
+ alreadyRestoredCount: alreadyRestored,
2283
+ skippedDeletedCount: deleted.length,
2284
+ },
2285
+ }, { session });
2286
+ ctx.log.log('info', `${stepName}: restored ${restores.length} of ${rows.length} released record(s), ${alreadyRestored} already restored, `
2287
+ + `${deleted.length} deleted since the release; kept ${protectedHostnameCount} protected hostname(s) in `
2288
+ + 'DnsProtectedHostnameDoc and the DNS mutation journal, which dcrouter 33.0.0 neither reads nor enforces');
1839
2289
  }
1840
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19taWdyYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLCtCQUErQixHQUNoQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sRUFDTCxhQUFhLElBQUksb0JBQW9CLEVBQ3JDLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3BCLE1BQU0seUNBQXlDLENBQUM7QUFNakQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiwrQkFBK0IsRUFDL0IsOEJBQThCLEdBQy9CLE1BQU0scURBQXFELENBQUM7QUFDN0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsR0FDOUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxJQUFJLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekUsNkZBQTZGO0FBQzdGLE1BQU0sc0JBQXNCLEdBQUcsdUJBQXVCLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFDO0FBRS9GOzs7Ozs7R0FNRztBQUVIOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLEtBQUs7SUFDL0MsWUFBWSxVQUFrQixFQUFFLFVBQWdDO1FBQzlE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
2290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19taWdyYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLCtCQUErQixHQUNoQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sRUFDTCxhQUFhLElBQUksb0JBQW9CLEVBQ3JDLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3BCLE1BQU0seUNBQXlDLENBQUM7QUFNakQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiwrQkFBK0IsRUFDL0IsOEJBQThCLEdBQy9CLE1BQU0scURBQXFELENBQUM7QUFDN0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsR0FDOUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxJQUFJLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUU1Qyw2RkFBNkY7QUFDN0YsTUFBTSxzQkFBc0IsR0FBRyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUM7QUFFL0Y7Ozs7OztHQU1HO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEs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RCxJQUFLLEdBQVcsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBSyxHQUFXLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFLLEdBQVcsQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHlEQUF5RCxDQUFDLENBQUM7UUFDL0UsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUNyQixJQUFJLENBQUMsU0FBUyxHQUFJLEdBQVcsQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDO0lBRXZELE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FDdkIsR0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUcsR0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSw2QkFBNkIsRUFBRSxFQUM1RixFQUFFLElBQUksRUFBRSxDQUNULENBQUM7SUFDRixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsNkNBQTZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUNwSCxDQUFDO0FB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