@flowselections/floriday-authenticatie-module 1.0.81 → 1.0.84
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-lib/components/floriday/FlorydayApiLogPage.d.ts.map +1 -1
- package/dist-lib/components/floriday/FlorydayApiLogPage.js +28 -2
- package/dist-lib/components/floriday/FlorydayWebhooksCard.d.ts.map +1 -1
- package/dist-lib/components/floriday/FlorydayWebhooksCard.js +1 -1
- package/dist-lib/components/floriday/TokenHealthCard.d.ts.map +1 -1
- package/dist-lib/components/floriday/TokenHealthCard.js +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +464 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/floriday-webhooks.functions.d.ts +1 -0
- package/dist-lib/lib/floriday-webhooks.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-webhooks.functions.js +8 -0
- package/dist-lib/lib/floriday.functions.d.ts +6 -1
- package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday.functions.js +72 -27
- package/dist-lib/lib/gateway/webhook-subscribe.js +1 -1
- package/dist-lib/lib/gateway/webhook.d.ts +5 -0
- package/dist-lib/lib/gateway/webhook.d.ts.map +1 -1
- package/dist-lib/lib/gateway/webhook.js +20 -0
- package/dist-lib/lib/module-version.d.ts +1 -1
- package/dist-lib/lib/module-version.js +1 -1
- package/dist-lib/lib/shell-routes.js +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ export declare const getFloridayWebhookStatus: import("@tanstack/start-client-co
|
|
|
7
7
|
last24h: Record<string, number>;
|
|
8
8
|
rejectedByReason: Record<string, number>;
|
|
9
9
|
activeEnvironments: string[];
|
|
10
|
+
lastProbeAt: string | null;
|
|
10
11
|
lastEnsureAt: string | null;
|
|
11
12
|
}>>;
|
|
12
13
|
export declare const subscribeFloridayWebhook: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floriday-webhooks.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-webhooks.functions.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wBAAwB;;;;;
|
|
1
|
+
{"version":3,"file":"floriday-webhooks.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-webhooks.functions.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wBAAwB;;;;;mBA0CA,GAAG,EAAE;;;;;;GAOtC,CAAC;AAEL,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;GAcjC,CAAC;AAEL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;GAyBnC,CAAC;AAyBL,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;KAwBlC,CAAC;AAEL,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;qBAYJ,MAAM;gBAAU,MAAM;;;GAe1D,CAAC"}
|
|
@@ -26,6 +26,13 @@ export const getFloridayWebhookStatus = createServerFn({ method: "GET" })
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
29
|
+
const { data: lastProbe } = await supabaseAdmin
|
|
30
|
+
.from("floriday_webhook_events")
|
|
31
|
+
.select("received_at")
|
|
32
|
+
.eq("status", "probe")
|
|
33
|
+
.order("received_at", { ascending: false })
|
|
34
|
+
.limit(1)
|
|
35
|
+
.maybeSingle();
|
|
29
36
|
const { data: conns } = await supabaseAdmin
|
|
30
37
|
.from("floriday_connections")
|
|
31
38
|
.select("environment")
|
|
@@ -40,6 +47,7 @@ export const getFloridayWebhookStatus = createServerFn({ method: "GET" })
|
|
|
40
47
|
last24h: counts,
|
|
41
48
|
rejectedByReason,
|
|
42
49
|
activeEnvironments: (conns ?? []).map((c) => c.environment),
|
|
50
|
+
lastProbeAt: lastProbe?.received_at ?? null,
|
|
43
51
|
lastEnsureAt: setting?.value ?? null,
|
|
44
52
|
};
|
|
45
53
|
});
|
|
@@ -316,7 +316,10 @@ export declare const updateFlorydayPublishingSettings: import("@tanstack/start-c
|
|
|
316
316
|
}, Promise<{
|
|
317
317
|
ok: true;
|
|
318
318
|
}>>;
|
|
319
|
-
|
|
319
|
+
/** Alleen items met een hoger volgnummer dan `cursor` (puur, testbaar). */
|
|
320
|
+
export declare function filterNewerThan<T = any>(items: T[], cursor: number): T[];
|
|
321
|
+
/** Hoogste volgnummer in een batch, minimaal `cursor`. */
|
|
322
|
+
export declare function highestSequence(items: any[], cursor: number): number;
|
|
320
323
|
interface SyncOptions {
|
|
321
324
|
entityType: string;
|
|
322
325
|
maxSequenceEndpoint: string;
|
|
@@ -328,6 +331,8 @@ interface SyncOptions {
|
|
|
328
331
|
/** Optioneel: epoch-ms waarna geen nieuwe pagina meer wordt opgehaald. */
|
|
329
332
|
deadlineMs?: number;
|
|
330
333
|
}
|
|
334
|
+
/** Overslaan als het eigen volgnummer bij is, of het maximum niet hoger is dan vorige ronde. */
|
|
335
|
+
export declare function shouldSkipFetch(cursor: number, maxSeq: number, lastSeenMax: number | null): boolean;
|
|
331
336
|
export declare function syncFloridayEntityBySequence(supabase: SupabaseClient, env: FlorydayEnvironment, connectionId: string, opts: SyncOptions): Promise<{
|
|
332
337
|
synced: number;
|
|
333
338
|
fromSequence: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floriday.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday.functions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"floriday.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday.functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -464,11 +464,16 @@ export async function florydayFetch(supabase, pathOrEnv, pathOrInit, maybeInit =
|
|
|
464
464
|
if (ok && flowLog?.countItems && response) {
|
|
465
465
|
try {
|
|
466
466
|
const json = await response.clone().json();
|
|
467
|
-
const
|
|
467
|
+
const all = Array.isArray(json)
|
|
468
468
|
? json
|
|
469
469
|
: Array.isArray(json?.results)
|
|
470
470
|
? json.results
|
|
471
471
|
: null;
|
|
472
|
+
// Ophaalronde: alleen items met een hoger volgnummer dan gevraagd
|
|
473
|
+
// tellen als wijziging (zelfde volgnummer = al verwerkt).
|
|
474
|
+
const items = all && typeof flowLog?.cursorFrom === "number"
|
|
475
|
+
? filterNewerThan(all, flowLog.cursorFrom)
|
|
476
|
+
: all;
|
|
472
477
|
itemCount = items ? items.length : null;
|
|
473
478
|
if (items)
|
|
474
479
|
syncItems = items;
|
|
@@ -1340,17 +1345,26 @@ export const updateFlorydayPublishingSettings = createServerFn({ method: "POST"
|
|
|
1340
1345
|
// /<entity>/max-sequence, daarna /<entity>/sync/{seq}. Deze helper houdt
|
|
1341
1346
|
// de cursor in `floriday_sync_state` per (connection, entity).
|
|
1342
1347
|
const SEQUENCE_BATCH_CAP = 1000;
|
|
1343
|
-
//
|
|
1348
|
+
// Cursorregels (1.0.82)
|
|
1344
1349
|
// ----------------------------------------------------------------------------
|
|
1345
|
-
//
|
|
1346
|
-
//
|
|
1347
|
-
//
|
|
1348
|
-
//
|
|
1349
|
-
//
|
|
1350
|
-
|
|
1351
|
-
export
|
|
1352
|
-
|
|
1353
|
-
|
|
1350
|
+
// Swagger: "Your data is up to date when your given SequenceNumber is equal to
|
|
1351
|
+
// the received MaximumSequenceNumber." De cursor gaat daarom alleen vooruit,
|
|
1352
|
+
// naar het hoogste volgnummer dat echt is opgeslagen (nooit een marge terug).
|
|
1353
|
+
// Een later gepubliceerde wijziging krijgt altijd een hoger volgnummer en komt
|
|
1354
|
+
// zo vanzelf binnen. Items met een volgnummer <= de cursor zijn al verwerkt.
|
|
1355
|
+
/** Alleen items met een hoger volgnummer dan `cursor` (puur, testbaar). */
|
|
1356
|
+
export function filterNewerThan(items, cursor) {
|
|
1357
|
+
return items.filter((it) => {
|
|
1358
|
+
const s = Number(it?.sequenceNumber ?? it?.sequence_number);
|
|
1359
|
+
return !Number.isFinite(s) || s > cursor;
|
|
1360
|
+
});
|
|
1361
|
+
}
|
|
1362
|
+
/** Hoogste volgnummer in een batch, minimaal `cursor`. */
|
|
1363
|
+
export function highestSequence(items, cursor) {
|
|
1364
|
+
return items.reduce((m, item) => {
|
|
1365
|
+
const s = Number(item?.sequenceNumber ?? item?.sequence_number ?? 0);
|
|
1366
|
+
return Number.isFinite(s) && s > m ? s : m;
|
|
1367
|
+
}, cursor);
|
|
1354
1368
|
}
|
|
1355
1369
|
async function fetchMaxSequence(supabase, env, maxSequenceEndpoint, entityType, caller) {
|
|
1356
1370
|
const res = await florydayFetch(supabase, env, maxSequenceEndpoint, {
|
|
@@ -1399,12 +1413,18 @@ async function fetchBySequence(supabase, env, bySequenceEndpointBase, fromSequen
|
|
|
1399
1413
|
const json = await res.json().catch(() => null);
|
|
1400
1414
|
return Array.isArray(json) ? json : Array.isArray(json?.results) ? json.results : [];
|
|
1401
1415
|
}
|
|
1416
|
+
/** Overslaan als het eigen volgnummer bij is, of het maximum niet hoger is dan vorige ronde. */
|
|
1417
|
+
export function shouldSkipFetch(cursor, maxSeq, lastSeenMax) {
|
|
1418
|
+
if (cursor >= maxSeq)
|
|
1419
|
+
return true;
|
|
1420
|
+
return lastSeenMax != null && maxSeq <= lastSeenMax;
|
|
1421
|
+
}
|
|
1402
1422
|
export async function syncFloridayEntityBySequence(supabase, env, connectionId, opts) {
|
|
1403
1423
|
const t0 = Date.now();
|
|
1404
1424
|
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
1405
1425
|
const { data: stateRow } = await supabase
|
|
1406
1426
|
.from("floriday_sync_state")
|
|
1407
|
-
.select("last_sequence_number")
|
|
1427
|
+
.select("last_sequence_number, last_max_sequence_seen")
|
|
1408
1428
|
.eq("connection_id", connectionId)
|
|
1409
1429
|
.eq("entity_type", opts.entityType)
|
|
1410
1430
|
.maybeSingle();
|
|
@@ -1414,6 +1434,7 @@ export async function syncFloridayEntityBySequence(supabase, env, connectionId,
|
|
|
1414
1434
|
// in dat geval expliciet op maxSeq en markeren de rij als "backfill nodig".
|
|
1415
1435
|
const hasStateRow = stateRow != null;
|
|
1416
1436
|
const startCursor = stateRow?.last_sequence_number ?? 0;
|
|
1437
|
+
let savedCursor = startCursor;
|
|
1417
1438
|
try {
|
|
1418
1439
|
// Debug-logging: helpt 401's onderscheid maken tussen scope-issue,
|
|
1419
1440
|
// expired token en wrong env. Token zelf wordt NIET gelogd.
|
|
@@ -1448,6 +1469,23 @@ export async function syncFloridayEntityBySequence(supabase, env, connectionId,
|
|
|
1448
1469
|
backfillNeeded: true,
|
|
1449
1470
|
};
|
|
1450
1471
|
}
|
|
1472
|
+
// Hoogste nummer niet gestegen sinds de vorige ronde: niets ophalen.
|
|
1473
|
+
// (Floriday nummert globaal; een stijging kan van anderen komen.)
|
|
1474
|
+
const lastSeen = stateRow?.last_max_sequence_seen ?? null;
|
|
1475
|
+
if (shouldSkipFetch(startCursor, maxSeq, lastSeen)) {
|
|
1476
|
+
const skipIso = new Date().toISOString();
|
|
1477
|
+
await supabase.from("floriday_sync_state").upsert({
|
|
1478
|
+
connection_id: connectionId,
|
|
1479
|
+
entity_type: opts.entityType,
|
|
1480
|
+
last_sequence_number: startCursor,
|
|
1481
|
+
last_max_sequence_seen: maxSeq,
|
|
1482
|
+
last_synced_at: skipIso,
|
|
1483
|
+
last_success_at: skipIso,
|
|
1484
|
+
last_items_processed: 0,
|
|
1485
|
+
last_error: null,
|
|
1486
|
+
});
|
|
1487
|
+
return { synced: 0, fromSequence: startCursor, toSequence: startCursor, durationMs: Date.now() - t0 };
|
|
1488
|
+
}
|
|
1451
1489
|
let cursor = startCursor;
|
|
1452
1490
|
let totalSynced = 0;
|
|
1453
1491
|
let safety = 0;
|
|
@@ -1459,30 +1497,36 @@ export async function syncFloridayEntityBySequence(supabase, env, connectionId,
|
|
|
1459
1497
|
break;
|
|
1460
1498
|
}
|
|
1461
1499
|
safety++;
|
|
1462
|
-
const
|
|
1500
|
+
const raw = await fetchBySequence(supabase, env, opts.bySequenceEndpointBase, cursor, opts.entityType, opts.caller);
|
|
1501
|
+
// Zelfde of lager volgnummer = al verwerkt: niet opnieuw doorgeven.
|
|
1502
|
+
const batch = filterNewerThan(raw, cursor);
|
|
1463
1503
|
if (batch.length === 0) {
|
|
1464
|
-
//
|
|
1465
|
-
//
|
|
1466
|
-
// veiligheidsmarge: een net gestempelde wijziging kan nog onderweg zijn.
|
|
1467
|
-
cursor = cursorWithMargin(maxSeq, startCursor);
|
|
1504
|
+
// Niets nieuws. Cursor blijft staan (niet vooruit springen naar maxSeq:
|
|
1505
|
+
// een nog niet gepubliceerde wijziging mag niet worden overgeslagen).
|
|
1468
1506
|
break;
|
|
1469
1507
|
}
|
|
1470
|
-
const highest = batch
|
|
1471
|
-
const s = Number(item?.sequenceNumber ?? item?.sequence_number ?? 0);
|
|
1472
|
-
return s > m ? s : m;
|
|
1473
|
-
}, cursor);
|
|
1508
|
+
const highest = highestSequence(batch, cursor);
|
|
1474
1509
|
await opts.onBatch(batch, highest);
|
|
1475
1510
|
totalSynced += batch.length;
|
|
1476
1511
|
if (highest <= cursor)
|
|
1477
1512
|
break;
|
|
1478
1513
|
cursor = highest;
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1514
|
+
// Na elke gelukte pagina vastleggen: mislukt een latere pagina, dan
|
|
1515
|
+
// blijft de cursor op het laatst opgeslagen item.
|
|
1516
|
+
await supabase
|
|
1517
|
+
.from("floriday_sync_state")
|
|
1518
|
+
.upsert({
|
|
1519
|
+
connection_id: connectionId,
|
|
1520
|
+
entity_type: opts.entityType,
|
|
1521
|
+
last_sequence_number: cursor,
|
|
1522
|
+
});
|
|
1523
|
+
savedCursor = cursor;
|
|
1524
|
+
// Volle pagina: in dezelfde ronde doorhalen tot maxSeq.
|
|
1525
|
+
if (raw.length < SEQUENCE_BATCH_CAP)
|
|
1483
1526
|
break;
|
|
1484
|
-
}
|
|
1485
1527
|
}
|
|
1528
|
+
if (cursor < maxSeq && safety >= 1000)
|
|
1529
|
+
partial = true;
|
|
1486
1530
|
const nowIso = new Date().toISOString();
|
|
1487
1531
|
await supabase
|
|
1488
1532
|
.from("floriday_sync_state")
|
|
@@ -1490,6 +1534,7 @@ export async function syncFloridayEntityBySequence(supabase, env, connectionId,
|
|
|
1490
1534
|
connection_id: connectionId,
|
|
1491
1535
|
entity_type: opts.entityType,
|
|
1492
1536
|
last_sequence_number: cursor,
|
|
1537
|
+
...(partial ? {} : { last_max_sequence_seen: maxSeq }),
|
|
1493
1538
|
last_synced_at: nowIso,
|
|
1494
1539
|
// Een afgebroken (begrensde) ronde is niet bij: last_success_at alleen bij een volledige ronde.
|
|
1495
1540
|
...(partial ? {} : { last_success_at: nowIso }),
|
|
@@ -1511,7 +1556,7 @@ export async function syncFloridayEntityBySequence(supabase, env, connectionId,
|
|
|
1511
1556
|
.upsert({
|
|
1512
1557
|
connection_id: connectionId,
|
|
1513
1558
|
entity_type: opts.entityType,
|
|
1514
|
-
last_sequence_number:
|
|
1559
|
+
last_sequence_number: savedCursor,
|
|
1515
1560
|
last_error: msg.slice(0, 500),
|
|
1516
1561
|
});
|
|
1517
1562
|
throw e;
|
|
@@ -50,7 +50,7 @@ export async function probeWebhookCallbackBase(base) {
|
|
|
50
50
|
try {
|
|
51
51
|
const res = await fetch(`${base}/api/public/gateway/webhook-in?t=${"0".repeat(64)}`, {
|
|
52
52
|
method: "POST",
|
|
53
|
-
headers: { "Content-Type": "application/json" },
|
|
53
|
+
headers: { "Content-Type": "application/json", "x-flowselections-probe": "1" },
|
|
54
54
|
body: "{}",
|
|
55
55
|
signal: AbortSignal.timeout(10000),
|
|
56
56
|
});
|
|
@@ -11,7 +11,12 @@ export interface WebhookCallContext {
|
|
|
11
11
|
/** Volledig adres waarop de melding binnenkwam (incl. token). */
|
|
12
12
|
callbackUrl?: string | null;
|
|
13
13
|
route?: string;
|
|
14
|
+
/** Eigen proefaanroep (header x-flowselections-probe: 1). */
|
|
15
|
+
probe?: boolean;
|
|
14
16
|
}
|
|
17
|
+
export declare const PROBE_HEADER = "x-flowselections-probe";
|
|
18
|
+
/** Eigen proef: sleutel van alleen nullen, of geen sleutel met de proefheader. */
|
|
19
|
+
export declare function isOwnProbe(token: string, probeHeader: boolean): boolean;
|
|
15
20
|
/** Token in een callback-adres maskeren: eerste 4 en laatste 4 tekens. */
|
|
16
21
|
export declare function maskCallbackUrl(url: string): string;
|
|
17
22
|
export declare const STALE_CALLBACK_PREFIX = "floriday_webhook_stale_callback:";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/webhook.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAW5D,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAE5E,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhE;AA4CD,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAO3D;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/lib/gateway/webhook.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAW5D,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAE5E,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhE;AA4CD,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAO3D;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,2BAA2B,CAAC;AAErD,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAGvE;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,eAAO,MAAM,qBAAqB,qCAAqC,CAAC;AAExE;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB/G;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,kBAAuB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAwLxB;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,MAAM,EACb,KAAK,SAAoB,GACxB,OAAO,CAAC,QAAQ,CAAC,CAenB;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAKD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBhG;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAWnB"}
|
|
@@ -64,6 +64,13 @@ export function originalRequestUrl(request) {
|
|
|
64
64
|
u.protocol = proto + ":";
|
|
65
65
|
return u.toString();
|
|
66
66
|
}
|
|
67
|
+
export const PROBE_HEADER = "x-flowselections-probe";
|
|
68
|
+
/** Eigen proef: sleutel van alleen nullen, of geen sleutel met de proefheader. */
|
|
69
|
+
export function isOwnProbe(token, probeHeader) {
|
|
70
|
+
if (token && /^0+$/.test(token))
|
|
71
|
+
return true;
|
|
72
|
+
return probeHeader && !token;
|
|
73
|
+
}
|
|
67
74
|
/** Token in een callback-adres maskeren: eerste 4 en laatste 4 tekens. */
|
|
68
75
|
export function maskCallbackUrl(url) {
|
|
69
76
|
const mask = (t) => (t.length <= 8 ? "****" : `${t.slice(0, 4)}…${t.slice(-4)}`);
|
|
@@ -105,6 +112,18 @@ export async function recordStaleCallback(supabase, url, route) {
|
|
|
105
112
|
}
|
|
106
113
|
export async function runFloridayWebhook(supabase, token, rawBody, ctx = {}) {
|
|
107
114
|
const route = ctx.route ?? "webhook";
|
|
115
|
+
if (isOwnProbe(token, !!ctx.probe)) {
|
|
116
|
+
try {
|
|
117
|
+
await supabase.from(WEBHOOK_EVENTS_TABLE).insert({
|
|
118
|
+
dedupe_key: `probe:${crypto.randomUUID()}`,
|
|
119
|
+
status: "probe",
|
|
120
|
+
payload: { route },
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch { /* loggen mag de respons niet breken */ }
|
|
124
|
+
// Zelfde antwoord als een weigering, zodat de routecontrole blijft werken.
|
|
125
|
+
return { status: 404, payload: { ok: false } };
|
|
126
|
+
}
|
|
108
127
|
if (!token || token.length < 32) {
|
|
109
128
|
await logRejected(supabase, "Ongeldig of ontbrekend callback-token", null, {
|
|
110
129
|
route, callbackUrlMasked: ctx.callbackUrl ? maskCallbackUrl(ctx.callbackUrl) : null,
|
|
@@ -278,6 +297,7 @@ export async function handleFloridayWebhook(request, supabase, token, route = "w
|
|
|
278
297
|
const { status, payload } = await runFloridayWebhook(supabase, token, raw, {
|
|
279
298
|
callbackUrl: originalRequestUrl(request),
|
|
280
299
|
route,
|
|
300
|
+
probe: request.headers.get(PROBE_HEADER) === "1",
|
|
281
301
|
});
|
|
282
302
|
return Response.json(payload, { status });
|
|
283
303
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const MODULE_VERSION = "1.0.
|
|
1
|
+
export declare const MODULE_VERSION = "1.0.84";
|
|
2
2
|
//# sourceMappingURL=module-version.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// GEGENEREERD door scripts/write-module-version.mjs uit package.json — niet handmatig wijzigen.
|
|
2
|
-
export const MODULE_VERSION = "1.0.
|
|
2
|
+
export const MODULE_VERSION = "1.0.84";
|
|
@@ -58,7 +58,7 @@ async function probe(base, path) {
|
|
|
58
58
|
try {
|
|
59
59
|
const res = await fetch(`${base}${path}`, {
|
|
60
60
|
method: "POST",
|
|
61
|
-
headers: { "content-type": "application/json" },
|
|
61
|
+
headers: { "content-type": "application/json", "x-flowselections-probe": "1" },
|
|
62
62
|
body: "{}",
|
|
63
63
|
signal: AbortSignal.timeout(8000),
|
|
64
64
|
});
|