Link GVL snapshots to raw evidence records

Dieser Commit ist enthalten in:
2026-06-08 21:17:21 +02:00
Ursprung b4ac8726b4
Commit 990da710c1
2 geänderte Dateien mit 16 neuen und 4 gelöschten Zeilen
+7 -2
Datei anzeigen
@@ -619,7 +619,8 @@ function isGvlImportCandidate(value) {
async function handleFetchOfficialGvlMessage() { async function handleFetchOfficialGvlMessage() {
try { try {
const { rawJson, responseStatus } = await fetchOfficialGvlJson(); const { rawJson, rawGvlSha256, responseStatus } =
await fetchOfficialGvlJson();
if (!isGvlImportCandidate(rawJson)) { if (!isGvlImportCandidate(rawJson)) {
return { return {
@@ -633,6 +634,7 @@ async function handleFetchOfficialGvlMessage() {
const result = await VendorGetGvlService.ingestGvlSnapshot(db, rawJson, { const result = await VendorGetGvlService.ingestGvlSnapshot(db, rawJson, {
sourceUrl: OFFICIAL_IAB_GVL_URL, sourceUrl: OFFICIAL_IAB_GVL_URL,
fetchedAt: new Date().toISOString(), fetchedAt: new Date().toISOString(),
rawGvlSha256: rawGvlSha256,
diagnostics: { diagnostics: {
ingestionSource: "official_iab_fetch", ingestionSource: "official_iab_fetch",
responseStatus: responseStatus responseStatus: responseStatus
@@ -689,6 +691,7 @@ async function fetchOfficialGvlJson() {
return { return {
rawJson: JSON.parse(rawBody), rawJson: JSON.parse(rawBody),
rawGvlSha256: rawGvlSha256,
responseStatus: response.status responseStatus: response.status
}; };
} }
@@ -773,7 +776,8 @@ async function runStartupGvlAutoUpdateCheck() {
result: "started" result: "started"
}); });
const { rawJson, responseStatus } = await fetchOfficialGvlJson(); const { rawJson, rawGvlSha256, responseStatus } =
await fetchOfficialGvlJson();
if (!isGvlImportCandidate(rawJson)) { if (!isGvlImportCandidate(rawJson)) {
throw new Error("invalid_gvl_json"); throw new Error("invalid_gvl_json");
@@ -793,6 +797,7 @@ async function runStartupGvlAutoUpdateCheck() {
{ {
sourceUrl: OFFICIAL_IAB_GVL_URL, sourceUrl: OFFICIAL_IAB_GVL_URL,
fetchedAt: new Date().toISOString(), fetchedAt: new Date().toISOString(),
rawGvlSha256: rawGvlSha256,
diagnostics: { diagnostics: {
ingestionSource: "official_iab_auto_update", ingestionSource: "official_iab_auto_update",
responseStatus: responseStatus, responseStatus: responseStatus,
+9 -2
Datei anzeigen
@@ -50,11 +50,17 @@ function storeGvlRawEvidenceIfNew(db, rawEvidence) {
}); });
} }
async function buildGvlSnapshotRecord(rawJson, sourceUrl, fetchedAt) { async function buildGvlSnapshotRecord(
rawJson,
sourceUrl,
fetchedAt,
rawGvlSha256
) {
const gvlJson = normalizeGvlSnapshotValueForMetadata(rawJson); const gvlJson = normalizeGvlSnapshotValueForMetadata(rawJson);
return { return {
sha256: await calculateGvlSnapshotSha256(rawJson), sha256: await calculateGvlSnapshotSha256(rawJson),
rawGvlSha256: rawGvlSha256 ?? null,
vendorListVersion: gvlJson?.vendorListVersion ?? null, vendorListVersion: gvlJson?.vendorListVersion ?? null,
gvlSpecificationVersion: gvlJson?.gvlSpecificationVersion ?? null, gvlSpecificationVersion: gvlJson?.gvlSpecificationVersion ?? null,
tcfPolicyVersion: gvlJson?.tcfPolicyVersion ?? null, tcfPolicyVersion: gvlJson?.tcfPolicyVersion ?? null,
@@ -129,7 +135,8 @@ async function ingestGvlSnapshot(db, rawJson, options = {}) {
const snapshot = await buildGvlSnapshotRecord( const snapshot = await buildGvlSnapshotRecord(
rawJson, rawJson,
options.sourceUrl ?? null, options.sourceUrl ?? null,
options.fetchedAt ?? null options.fetchedAt ?? null,
options.rawGvlSha256 ?? null
); );
const storeResult = await storeGvlSnapshotIfNew(db, snapshot); const storeResult = await storeGvlSnapshotIfNew(db, snapshot);
const alreadyKnown = !storeResult.stored; const alreadyKnown = !storeResult.stored;