fd27956fe5
Verkrijgt statussen van de Franse Douane en verstuurd feedback naar Transpas
773 lines
93 KiB
JSON
773 lines
93 KiB
JSON
{
|
|
"name": "ELO - Callback API - Transpas result processing",
|
|
"nodes": [
|
|
{
|
|
"parameters": {
|
|
"httpMethod": "POST",
|
|
"path": "elo-callback/enveloppe/Reponses",
|
|
"responseMode": "responseNode",
|
|
"options": {}
|
|
},
|
|
"id": "74faad43-f245-4999-8b8f-2209a53f9026",
|
|
"name": "Webhook - ELO Reponses",
|
|
"type": "n8n-nodes-base.webhook",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1568,
|
|
-48
|
|
],
|
|
"webhookId": "0b1172b7-b25a-4726-a5e5-2e25605f6ba4"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "executeQuery",
|
|
"query": "WITH request_match AS (\n SELECT r.id\n FROM public.elo_envelope_request r\n WHERE\n ($1 IS NOT NULL AND r.correlation_id = $1)\n OR (\n NULLIF($4::text, '') IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') = NULLIF($4::text, '')\n )\n OR (\n NULLIF($5::text, '') IS NOT NULL\n AND (\n NULLIF(r.elo_reference, '') = NULLIF($5::text, '')\n OR NULLIF(r.result_body #>> '{enveloppe,jeton}', '') = NULLIF($5::text, '')\n )\n )\n OR (\n NULLIF($6::text, '') IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') = NULLIF($6::text, '')\n )\n ORDER BY\n CASE\n WHEN $1 IS NOT NULL AND r.correlation_id = $1 THEN 0\n WHEN NULLIF($4::text, '') IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') = NULLIF($4::text, '') THEN 1\n WHEN NULLIF($5::text, '') IS NOT NULL\n AND NULLIF(r.elo_reference, '') = NULLIF($5::text, '') THEN 2\n WHEN NULLIF($5::text, '') IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,jeton}', '') = NULLIF($5::text, '') THEN 3\n WHEN NULLIF($6::text, '') IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') = NULLIF($6::text, '') THEN 4\n ELSE 9\n END,\n r.id DESC\n LIMIT 1\n),\nupserted AS (\n INSERT INTO public.elo_callback_inbox (\n request_id,\n correlation_id,\n message_code,\n message_id,\n functional_id,\n headers,\n body,\n full_json,\n elo_reference,\n callback_status,\n pdf_base64,\n pdf_filename\n )\n VALUES (\n (SELECT id FROM request_match),\n $1,\n $2,\n $3,\n $4,\n $8::jsonb,\n $9::jsonb,\n $10::jsonb,\n COALESCE(NULLIF($5::text, ''), NULLIF($6::text, '')),\n NULLIF($7::text, ''),\n NULLIF($11::text, ''),\n NULLIF($12::text, '')\n )\n ON CONFLICT (correlation_id, message_code, message_id)\n DO UPDATE SET\n request_id = COALESCE(EXCLUDED.request_id, public.elo_callback_inbox.request_id),\n headers = EXCLUDED.headers,\n body = EXCLUDED.body,\n full_json = EXCLUDED.full_json,\n elo_reference = EXCLUDED.elo_reference,\n callback_status = EXCLUDED.callback_status,\n pdf_base64 = EXCLUDED.pdf_base64,\n pdf_filename = EXCLUDED.pdf_filename,\n updated_at = now()\n RETURNING\n id,\n request_id,\n elo_reference,\n callback_status\n),\nupdated_request AS (\n UPDATE public.elo_envelope_request r\n SET\n status = 'CALLBACK_OK',\n callback_at = now(),\n elo_reference = COALESCE((SELECT elo_reference FROM upserted), r.elo_reference),\n result_status = (SELECT callback_status FROM upserted),\n result_body = $9::jsonb,\n result_available = true,\n updated_at = now()\n WHERE r.id = (SELECT request_id FROM upserted)\n RETURNING r.id\n)\nSELECT\n id,\n request_id,\n elo_reference,\n callback_status\nFROM upserted;",
|
|
"options": {
|
|
"queryReplacement": "={{ [\n $json.headers.correlationid || $json.headers.correlationId,\n $json.headers.messagecode || $json.headers.messageCode,\n $json.headers.messageid || $json.headers.messageId,\n $json.headers.functionalid || $json.headers.functionalId,\n $json.body?.enveloppe?.jeton || null,\n $json.body?.enveloppe?.numeroDossier || null,\n $json.body?.enveloppe?.statut || null,\n JSON.stringify($json.headers || {}),\n JSON.stringify($json.body || {}),\n JSON.stringify($json),\n $json.body?.pdf || null,\n $json.body?.enveloppe?.jeton ? ('ELO_' + $json.body.enveloppe.jeton + '_' + ($json.headers.correlationid || $json.headers.correlationId) + '.pdf') : null\n] }}"
|
|
}
|
|
},
|
|
"id": "21137040-58f4-4723-b16e-8580301ed1c4",
|
|
"name": "PG - Insert Reponses",
|
|
"type": "n8n-nodes-base.postgres",
|
|
"typeVersion": 2.6,
|
|
"position": [
|
|
1840,
|
|
-48
|
|
],
|
|
"credentials": {
|
|
"postgres": {
|
|
"id": "0mT1Cu2z2TS7JEfo",
|
|
"name": "elo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"respondWith": "json",
|
|
"responseBody": "={{ { ok: true, id: $json.id, endpoint: 'Reponses' } }}",
|
|
"options": {
|
|
"responseCode": 200
|
|
}
|
|
},
|
|
"id": "c37d91c3-fd52-4ef8-89dd-5411d74ca93d",
|
|
"name": "Respond - Reponses OK",
|
|
"type": "n8n-nodes-base.respondToWebhook",
|
|
"typeVersion": 1.4,
|
|
"position": [
|
|
2064,
|
|
-48
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"httpMethod": "POST",
|
|
"path": "elo-callback/enveloppe/Erreur",
|
|
"responseMode": "responseNode",
|
|
"options": {}
|
|
},
|
|
"id": "e1b46b05-ba1c-4225-bad8-1ed56de6d552",
|
|
"name": "Webhook - ELO Erreur",
|
|
"type": "n8n-nodes-base.webhook",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1568,
|
|
288
|
|
],
|
|
"webhookId": "c493236e-6b22-4a48-9e42-7603ce8ddb4c"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "executeQuery",
|
|
"query": "WITH request_match AS (\n SELECT r.id\n FROM public.elo_envelope_request r\n WHERE\n ($1 IS NOT NULL AND r.correlation_id = $1)\n OR (\n NULLIF($4::text, '') IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') = NULLIF($4::text, '')\n )\n ORDER BY\n CASE\n WHEN $1 IS NOT NULL AND r.correlation_id = $1 THEN 0\n WHEN NULLIF($4::text, '') IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') = NULLIF($4::text, '') THEN 1\n ELSE 9\n END,\n r.id DESC\n LIMIT 1\n),\nupserted AS (\n INSERT INTO public.elo_callback_inbox (\n request_id,\n correlation_id,\n message_code,\n message_id,\n functional_id,\n headers,\n body,\n full_json,\n callback_status,\n error_code,\n error_text\n )\n VALUES (\n (SELECT id FROM request_match),\n $1,\n $2,\n $3,\n $4,\n $7::jsonb,\n $8::jsonb,\n $9::jsonb,\n 'ERROR',\n NULLIF($5::text, ''),\n NULLIF($6::text, '')\n )\n ON CONFLICT (correlation_id, message_code, message_id)\n DO UPDATE SET\n request_id = COALESCE(EXCLUDED.request_id, public.elo_callback_inbox.request_id),\n headers = EXCLUDED.headers,\n body = EXCLUDED.body,\n full_json = EXCLUDED.full_json,\n callback_status = EXCLUDED.callback_status,\n error_code = EXCLUDED.error_code,\n error_text = EXCLUDED.error_text,\n updated_at = now()\n RETURNING\n id,\n request_id,\n error_code,\n error_text\n),\nupdated_request AS (\n UPDATE public.elo_envelope_request r\n SET\n status = 'CALLBACK_ERROR',\n callback_at = now(),\n result_status = (SELECT error_code FROM upserted),\n result_body = $8::jsonb,\n result_available = true,\n error_text = (SELECT error_text FROM upserted),\n updated_at = now()\n WHERE r.id = (SELECT request_id FROM upserted)\n RETURNING r.id\n)\nSELECT\n id,\n request_id,\n error_code,\n error_text\nFROM upserted;",
|
|
"options": {
|
|
"queryReplacement": "={{ [\n $json.headers.correlationid || $json.headers.correlationId || null,\n $json.headers.messagecode || $json.headers.messageCode || null,\n $json.headers.messageid || $json.headers.messageId || null,\n $json.headers.functionalid || $json.headers.functionalId || null,\n\n $json.body?.informationsErreur?.statut || null,\n $json.body?.informationsErreur?.libelleErreur || null,\n\n JSON.stringify($json.headers || {}),\n JSON.stringify($json.body || {}),\n JSON.stringify($json)\n] }}"
|
|
}
|
|
},
|
|
"id": "fb267a88-942a-44a5-ae4c-a654a7006728",
|
|
"name": "PG - Insert Erreur",
|
|
"type": "n8n-nodes-base.postgres",
|
|
"typeVersion": 2.6,
|
|
"position": [
|
|
1792,
|
|
288
|
|
],
|
|
"credentials": {
|
|
"postgres": {
|
|
"id": "0mT1Cu2z2TS7JEfo",
|
|
"name": "elo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"respondWith": "json",
|
|
"responseBody": "={{ { ok: true, id: $json.id, endpoint: 'Erreur' } }}",
|
|
"options": {
|
|
"responseCode": 200
|
|
}
|
|
},
|
|
"id": "d140bd0b-ec64-4685-8e5b-22487c10b3d3",
|
|
"name": "Respond - Erreur OK",
|
|
"type": "n8n-nodes-base.respondToWebhook",
|
|
"typeVersion": 1.4,
|
|
"position": [
|
|
2016,
|
|
288
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"httpMethod": "POST",
|
|
"path": "elo-callback/pending",
|
|
"responseMode": "responseNode",
|
|
"options": {}
|
|
},
|
|
"id": "5b5a329f-2962-425a-9e3b-f691cb654c76",
|
|
"name": "Webhook - Pending",
|
|
"type": "n8n-nodes-base.webhook",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1568,
|
|
512
|
|
],
|
|
"webhookId": "2250a461-9b44-4d5a-8ad3-30e53832903c"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"jsCode": "const expectedToken = 'D1KYrH24lxP2HZzW8djssqOB';\nconst headers = $json.headers || {};\nconst receivedToken = headers['x-elo-token'] || headers['X-Elo-Token'] || headers['x_elo_token'] || '';\n\nif (receivedToken !== expectedToken) {\n throw new Error('Unauthorized: missing or invalid x-elo-token header');\n}\n\nreturn [{ json: $json }];\n"
|
|
},
|
|
"id": "b3de63f2-c548-42f2-93db-325ec883aaa1",
|
|
"name": "Auth - Pending",
|
|
"type": "n8n-nodes-base.code",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1792,
|
|
512
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "executeQuery",
|
|
"query": "WITH picked AS (\n SELECT i.id\n FROM public.elo_callback_inbox i\n WHERE i.processed = FALSE\n AND (\n i.locked_at IS NULL\n OR i.locked_at < NOW() - INTERVAL '10 minutes'\n )\n ORDER BY i.created_at\n LIMIT 1\n),\nlocked AS (\n UPDATE public.elo_callback_inbox i\n SET\n locked_at = NOW(),\n updated_at = NOW()\n FROM picked p\n WHERE i.id = p.id\n RETURNING i.*\n),\nmatched_request AS (\n SELECT\n i.id AS callback_id,\n r.id AS request_id,\n CASE\n WHEN i.request_id IS NOT NULL AND r.id = i.request_id THEN 'request_id'\n WHEN i.correlation_id IS NOT NULL AND r.correlation_id = i.correlation_id THEN 'correlation_id'\n WHEN COALESCE(NULLIF(i.body #>> '{enveloppe,numeroDossier}', ''), NULLIF(i.functional_id, '')) IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') =\n COALESCE(NULLIF(i.body #>> '{enveloppe,numeroDossier}', ''), NULLIF(i.functional_id, ''))\n THEN 'numero_dossier'\n WHEN COALESCE(NULLIF(i.body #>> '{enveloppe,jeton}', ''), NULLIF(i.elo_reference, '')) IS NOT NULL\n AND NULLIF(r.elo_reference, '') =\n COALESCE(NULLIF(i.body #>> '{enveloppe,jeton}', ''), NULLIF(i.elo_reference, ''))\n THEN 'jeton'\n WHEN COALESCE(NULLIF(i.body #>> '{enveloppe,jeton}', ''), NULLIF(i.elo_reference, '')) IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,jeton}', '') =\n COALESCE(NULLIF(i.body #>> '{enveloppe,jeton}', ''), NULLIF(i.elo_reference, ''))\n THEN 'jeton_result_body'\n ELSE 'unknown'\n END AS resolution_source\n FROM locked i\n JOIN public.elo_envelope_request r\n ON (\n (i.request_id IS NOT NULL AND r.id = i.request_id)\n OR (i.correlation_id IS NOT NULL AND r.correlation_id = i.correlation_id)\n OR (\n COALESCE(NULLIF(i.body #>> '{enveloppe,numeroDossier}', ''), NULLIF(i.functional_id, '')) IS NOT NULL\n AND NULLIF(r.result_body #>> '{enveloppe,numeroDossier}', '') =\n COALESCE(NULLIF(i.body #>> '{enveloppe,numeroDossier}', ''), NULLIF(i.functional_id, ''))\n )\n OR (\n COALESCE(NULLIF(i.body #>> '{enveloppe,jeton}', ''), NULLIF(i.elo_reference, '')) IS NOT NULL\n AND (\n NULLIF(r.elo_reference, '') =\n COALESCE(NULLIF(i.body #>> '{enveloppe,jeton}', ''), NULLIF(i.elo_reference, ''))\n OR NULLIF(r.result_body #>> '{enveloppe,jeton}', '') =\n COALESCE(NULLIF(i.body #>> '{enveloppe,jeton}', ''), NULLIF(i.elo_reference, ''))\n )\n )\n )\n),\nbest_request AS (\n SELECT DISTINCT ON (m.callback_id)\n m.callback_id,\n m.request_id,\n m.resolution_source\n FROM matched_request m\n ORDER BY\n m.callback_id,\n CASE m.resolution_source\n WHEN 'request_id' THEN 0\n WHEN 'correlation_id' THEN 1\n WHEN 'numero_dossier' THEN 2\n WHEN 'jeton' THEN 3\n WHEN 'jeton_result_body' THEN 4\n ELSE 9\n END,\n m.request_id DESC\n),\npayload AS (\n SELECT\n i.id AS callback_id,\n COALESCE(br.request_id, i.request_id) AS resolved_request_id,\n br.resolution_source,\n i.request_id AS original_request_id,\n i.correlation_id,\n i.message_code,\n i.message_id,\n i.functional_id,\n i.elo_reference,\n i.callback_status,\n i.pdf_base64,\n i.pdf_filename,\n i.headers,\n i.body,\n i.full_json,\n i.created_at,\n r.crossing_order_nr,\n r.trigger_crossing_status_log_nr,\n r.trip_nr,\n r.trip_id,\n r.truck,\n r.trailer,\n r.transpas_payload,\n r.result_status,\n r.error_text AS request_error_text\n FROM locked i\n LEFT JOIN best_request br\n ON br.callback_id = i.id\n LEFT JOIN public.elo_envelope_request r\n ON r.id = COALESCE(br.request_id, i.request_id)\n)\nSELECT COALESCE(\n (\n SELECT jsonb_build_object(\n 'ok', true,\n 'hasResult', true,\n\n 'id', p.callback_id,\n 'requestId', p.resolved_request_id,\n 'originalRequestId', p.original_request_id,\n 'resolutionSource', COALESCE(p.resolution_source, 'none'),\n\n 'correlationId', p.correlation_id,\n 'messageCode', p.message_code,\n 'messageId', p.message_id,\n 'functionalId', p.functional_id,\n\n 'resultKind',\n CASE\n WHEN p.message_code IN ('ENV_CRE02', 'ENV_MOD02', 'ENV_REC02') THEN 'OK'\n WHEN p.message_code IN ('ENV_CRE03', 'ENV_MOD03', 'ENV_REC03')\n OR p.body ? 'informationsErreur' THEN 'ERROR'\n WHEN p.message_code = 'ENV_NOT01' THEN 'NOTIFICATION'\n ELSE 'UNKNOWN'\n END,\n\n 'eloReference', p.elo_reference,\n 'jeton', COALESCE(\n NULLIF(p.body #>> '{enveloppe,jeton}', ''),\n NULLIF(p.elo_reference, '')\n ),\n 'numeroDossier', COALESCE(\n NULLIF(p.body #>> '{enveloppe,numeroDossier}', ''),\n NULLIF(p.functional_id, '')\n ),\n 'callbackStatus', p.callback_status,\n 'event', NULLIF(p.body->>'evenement', ''),\n\n 'errorCode', NULLIF(p.body #>> '{informationsErreur,statut}', ''),\n 'errorText', COALESCE(\n NULLIF(p.body #>> '{informationsErreur,libelleErreur}', ''),\n p.request_error_text\n ),\n\n 'pdfBase64', p.pdf_base64,\n 'pdfFileName', p.pdf_filename,\n\n 'crossingOrderNr', p.crossing_order_nr,\n 'crossingStatusLogNr', COALESCE(\n p.trigger_crossing_status_log_nr,\n NULLIF(p.transpas_payload->>'crossingStatusLogNr', '')::integer,\n NULLIF(p.transpas_payload #>> '{triggerInfo,crossingStatusLogNr}', '')::integer\n ),\n\n 'tripNr', COALESCE(\n p.trip_nr,\n NULLIF(p.transpas_payload #>> '{trip,tripNr}', '')::integer,\n NULLIF(p.transpas_payload->>'tripNr', '')::integer,\n NULLIF(p.transpas_payload #>> '{triggerInfo,tripNr}', '')::integer\n ),\n 'tripId', COALESCE(\n NULLIF(p.trip_id, ''),\n NULLIF(p.transpas_payload #>> '{trip,tripId}', ''),\n NULLIF(p.transpas_payload->>'tripId', ''),\n NULLIF(p.transpas_payload #>> '{triggerInfo,tripId}', '')\n ),\n\n 'truckId', COALESCE(\n NULLIF(p.truck, ''),\n NULLIF(p.transpas_payload #>> '{resources,truckId}', ''),\n NULLIF(p.transpas_payload->>'truckId', '')\n ),\n 'truckDescription', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,truckDescription}', ''),\n NULLIF(p.transpas_payload->>'truckDescription', '')\n ),\n\n 'trailerId', COALESCE(\n NULLIF(p.trailer, ''),\n NULLIF(p.transpas_payload #>> '{resources,trailerId}', ''),\n NULLIF(p.transpas_payload->>'trailerId', '')\n ),\n 'trailerDescription', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,trailerDescription}', ''),\n NULLIF(p.transpas_payload->>'trailerDescription', '')\n ),\n\n 'driverId', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,driverId}', ''),\n NULLIF(p.transpas_payload->>'driverId', '')\n ),\n 'driverDescription', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,driverDescription}', ''),\n NULLIF(p.transpas_payload->>'driverDescription', '')\n ),\n\n 'declarationIdentifiers', COALESCE(\n (\n SELECT jsonb_agg(x.identifiant)\n FROM jsonb_to_recordset(COALESCE(p.body #> '{enveloppe,declarations}', '[]'::jsonb))\n AS x(identifiant text)\n WHERE NULLIF(x.identifiant, '') IS NOT NULL\n ),\n '[]'::jsonb\n ),\n\n 'callbackBody', p.body,\n 'callbackJson', p.full_json,\n 'transpasPayload', p.transpas_payload,\n 'receivedAt', p.created_at\n )\n FROM payload p\n LIMIT 1\n ),\n jsonb_build_object(\n 'ok', true,\n 'hasResult', false\n )\n) AS result;",
|
|
"options": {
|
|
"queryReplacement": "={{ [] }}"
|
|
}
|
|
},
|
|
"id": "bcd2a8a7-7f4d-4852-8249-6112ca70c2be",
|
|
"name": "PG - Get Pending",
|
|
"type": "n8n-nodes-base.postgres",
|
|
"typeVersion": 2.6,
|
|
"position": [
|
|
2016,
|
|
512
|
|
],
|
|
"credentials": {
|
|
"postgres": {
|
|
"id": "0mT1Cu2z2TS7JEfo",
|
|
"name": "elo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"respondWith": "json",
|
|
"responseBody": "={{ $json }}",
|
|
"options": {
|
|
"responseCode": 200
|
|
}
|
|
},
|
|
"id": "930bc318-cd5a-484d-b26d-28de7c396172",
|
|
"name": "Respond - Pending",
|
|
"type": "n8n-nodes-base.respondToWebhook",
|
|
"typeVersion": 1.4,
|
|
"position": [
|
|
2464,
|
|
512
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"httpMethod": "POST",
|
|
"path": "elo-callback/ack",
|
|
"responseMode": "responseNode",
|
|
"options": {}
|
|
},
|
|
"id": "1ac6c525-d5d6-4328-9c0c-917b4af8e55a",
|
|
"name": "Webhook - Ack",
|
|
"type": "n8n-nodes-base.webhook",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1568,
|
|
736
|
|
],
|
|
"webhookId": "582b180c-d1a1-432e-915f-663738ab5f1c"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"jsCode": "const expectedToken = 'D1KYrH24lxP2HZzW8djssqOB';\nconst headers = $json.headers || {};\nconst receivedToken = headers['x-elo-token'] || headers['X-Elo-Token'] || headers['x_elo_token'] || '';\n\nif (receivedToken !== expectedToken) {\n throw new Error('Unauthorized: missing or invalid x-elo-token header');\n}\n\nreturn [{ json: $json }];\n"
|
|
},
|
|
"id": "7820c579-590d-4908-ae12-d877c59e75bf",
|
|
"name": "Auth - Ack",
|
|
"type": "n8n-nodes-base.code",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1792,
|
|
736
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "executeQuery",
|
|
"query": "WITH cb AS (\n UPDATE public.elo_callback_inbox\n SET\n processed = TRUE,\n processed_at = NOW(),\n locked_at = NULL,\n updated_at = NOW()\n WHERE id = $1::bigint\n RETURNING\n id,\n request_id,\n processed,\n processed_at\n),\nreq AS (\n UPDATE public.elo_envelope_request r\n SET\n status = 'ACKED',\n acked_at = NOW(),\n result_available = FALSE,\n updated_at = NOW()\n FROM cb\n WHERE r.id = cb.request_id\n RETURNING r.id\n)\nSELECT\n cb.id,\n cb.request_id AS \"requestId\",\n cb.processed,\n cb.processed_at AS \"processedAt\"\nFROM cb;",
|
|
"options": {
|
|
"queryReplacement": "={{ [ $json.body?.id || $json.id ] }}"
|
|
}
|
|
},
|
|
"id": "338222be-71c3-4929-a86e-60dca031e2ee",
|
|
"name": "PG - Ack",
|
|
"type": "n8n-nodes-base.postgres",
|
|
"typeVersion": 2.6,
|
|
"position": [
|
|
2016,
|
|
736
|
|
],
|
|
"credentials": {
|
|
"postgres": {
|
|
"id": "0mT1Cu2z2TS7JEfo",
|
|
"name": "elo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"respondWith": "json",
|
|
"responseBody": "={{ { ok: true, result: $json } }}",
|
|
"options": {
|
|
"responseCode": 200
|
|
}
|
|
},
|
|
"id": "d315fde9-8542-4529-ab41-b1dbf929ee64",
|
|
"name": "Respond - Ack",
|
|
"type": "n8n-nodes-base.respondToWebhook",
|
|
"typeVersion": 1.4,
|
|
"position": [
|
|
2240,
|
|
736
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"httpMethod": "POST",
|
|
"path": "elo-callback/fail",
|
|
"responseMode": "responseNode",
|
|
"options": {}
|
|
},
|
|
"id": "c2cac606-7b66-4e91-82f4-3c3ab85c2135",
|
|
"name": "Webhook - Fail",
|
|
"type": "n8n-nodes-base.webhook",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1568,
|
|
960
|
|
],
|
|
"webhookId": "64e1d41c-8947-4eda-93d3-8bb03ea0909f"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"jsCode": "const expectedToken = 'D1KYrH24lxP2HZzW8djssqOB';\nconst headers = $json.headers || {};\nconst receivedToken = headers['x-elo-token'] || headers['X-Elo-Token'] || headers['x_elo_token'] || '';\n\nif (receivedToken !== expectedToken) {\n throw new Error('Unauthorized: missing or invalid x-elo-token header');\n}\n\nreturn [{ json: $json }];\n"
|
|
},
|
|
"id": "a5a19742-7b71-42aa-93d8-1e5f61a0ba5b",
|
|
"name": "Auth - Fail",
|
|
"type": "n8n-nodes-base.code",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
1792,
|
|
960
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "executeQuery",
|
|
"query": "WITH target AS (\n SELECT\n i.id,\n i.request_id,\n i.message_code\n FROM public.elo_callback_inbox i\n WHERE i.id = $1::bigint\n),\ncb AS (\n UPDATE public.elo_callback_inbox i\n SET\n processed = CASE\n WHEN t.message_code = 'ENV_NOT01'\n AND $2::text ILIKE 'Kan CrossingOrdernr niet bepalen uit pending callback.%'\n THEN TRUE\n ELSE i.processed\n END,\n processed_at = CASE\n WHEN t.message_code = 'ENV_NOT01'\n AND $2::text ILIKE 'Kan CrossingOrdernr niet bepalen uit pending callback.%'\n THEN NOW()\n ELSE i.processed_at\n END,\n locked_at = NULL,\n updated_at = NOW()\n FROM target t\n WHERE i.id = t.id\n RETURNING\n i.id,\n t.request_id,\n i.processed,\n i.locked_at,\n i.updated_at,\n t.message_code\n),\nreq AS (\n UPDATE public.elo_envelope_request r\n SET\n error_text = LEFT(\n CONCAT(\n COALESCE(NULLIF(r.error_text, '') || ' | ', ''),\n 'Transpas verwerking fout: ',\n $2::text\n ),\n 4000\n ),\n updated_at = NOW()\n FROM cb\n WHERE r.id = cb.request_id\n RETURNING r.id\n)\nSELECT\n cb.id,\n cb.request_id AS \"requestId\",\n cb.processed,\n CASE\n WHEN cb.message_code = 'ENV_NOT01'\n AND $2::text ILIKE 'Kan CrossingOrdernr niet bepalen uit pending callback.%'\n THEN 'ENV_NOT01 kon niet gekoppeld worden; callback is automatisch als verwerkt gemarkeerd'\n ELSE $2::text\n END AS \"processError\",\n cb.updated_at AS \"updatedAt\"\nFROM cb;",
|
|
"options": {
|
|
"queryReplacement": "={{ [ $json.body?.id || $json.id, $json.body?.error || $json.error || 'Onbekende fout bij verwerken callback in Transpas' ] }}"
|
|
}
|
|
},
|
|
"id": "87edd638-fdb7-450b-b1ef-3c474e6cfbad",
|
|
"name": "PG - Fail",
|
|
"type": "n8n-nodes-base.postgres",
|
|
"typeVersion": 2.6,
|
|
"position": [
|
|
2016,
|
|
960
|
|
],
|
|
"credentials": {
|
|
"postgres": {
|
|
"id": "0mT1Cu2z2TS7JEfo",
|
|
"name": "elo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"respondWith": "json",
|
|
"responseBody": "={{ { ok: true, result: $json } }}",
|
|
"options": {
|
|
"responseCode": 200
|
|
}
|
|
},
|
|
"id": "ac6bf6cf-2a4c-47a4-85a0-5c452c72b7f2",
|
|
"name": "Respond - Fail",
|
|
"type": "n8n-nodes-base.respondToWebhook",
|
|
"typeVersion": 1.4,
|
|
"position": [
|
|
2240,
|
|
960
|
|
]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"jsCode": "let result = $json.result ?? { ok: true, hasResult: false };\n\nif (typeof result === 'string') {\n try {\n result = JSON.parse(result);\n } catch (e) {\n result = { ok: false, hasResult: false, error: 'Kon pending result JSON niet parsen' };\n }\n}\n\nreturn [{ json: result }];"
|
|
},
|
|
"type": "n8n-nodes-base.code",
|
|
"typeVersion": 2,
|
|
"position": [
|
|
2240,
|
|
512
|
|
],
|
|
"id": "5b3edfd0-5fe9-454e-a5a7-9dbae26f0095",
|
|
"name": "Format - Pending Response"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "upload",
|
|
"path": "=/ELO/{{ $('Webhook - ELO Reponses').item.json.headers.correlationid }}.pdf",
|
|
"options": {}
|
|
},
|
|
"type": "n8n-nodes-base.ftp",
|
|
"typeVersion": 1,
|
|
"position": [
|
|
2544,
|
|
112
|
|
],
|
|
"id": "f4a67cbd-3e14-474f-a379-92ab566afefc",
|
|
"name": "FTP",
|
|
"credentials": {
|
|
"ftp": {
|
|
"id": "oLAZ4OgmkOopMHAq",
|
|
"name": "FTP De Wit Transport"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "toBinary",
|
|
"sourceProperty": "=pdf",
|
|
"options": {
|
|
"fileName": "={{ $json.ritnummer }} - {{ $json.auto }}.pdf"
|
|
}
|
|
},
|
|
"type": "n8n-nodes-base.convertToFile",
|
|
"typeVersion": 1.1,
|
|
"position": [
|
|
2336,
|
|
128
|
|
],
|
|
"id": "614e7045-233c-4c63-a685-0c4e0b4c50e4",
|
|
"name": "Convert to File"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"conditions": {
|
|
"options": {
|
|
"caseSensitive": true,
|
|
"leftValue": "",
|
|
"typeValidation": "strict",
|
|
"version": 3
|
|
},
|
|
"conditions": [
|
|
{
|
|
"id": "1646d79b-dc4f-4a79-8c0b-c680719f21b8",
|
|
"leftValue": "={{ !!$json.body?.pdf }}",
|
|
"rightValue": "",
|
|
"operator": {
|
|
"type": "boolean",
|
|
"operation": "true",
|
|
"singleValue": true
|
|
}
|
|
}
|
|
],
|
|
"combinator": "and"
|
|
},
|
|
"options": {}
|
|
},
|
|
"type": "n8n-nodes-base.if",
|
|
"typeVersion": 2.3,
|
|
"position": [
|
|
1760,
|
|
128
|
|
],
|
|
"id": "5a9395a2-2c46-41bf-bb2c-722478cadca4",
|
|
"name": "If1"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "executeQuery",
|
|
"query": "select \n truck as auto,\n trailer as trailer,\n trip_id as ritnummer\nfrom elo_envelope_request\nwhere correlation_id = '{{ $json.headers.correlationid }}'",
|
|
"options": {}
|
|
},
|
|
"type": "n8n-nodes-base.postgres",
|
|
"typeVersion": 2.6,
|
|
"position": [
|
|
1968,
|
|
128
|
|
],
|
|
"id": "38f52887-a973-4415-bcfa-a6dc133a7c0c",
|
|
"name": "Execute a SQL query",
|
|
"credentials": {
|
|
"postgres": {
|
|
"id": "0mT1Cu2z2TS7JEfo",
|
|
"name": "elo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"assignments": {
|
|
"assignments": [
|
|
{
|
|
"id": "83f219da-c72b-48b2-8b37-68c1d897e0a0",
|
|
"name": "pdf",
|
|
"value": "={{ $('Webhook - ELO Reponses').first().json.body.pdf }}",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"includeOtherFields": true,
|
|
"options": {}
|
|
},
|
|
"type": "n8n-nodes-base.set",
|
|
"typeVersion": 3.4,
|
|
"position": [
|
|
2176,
|
|
128
|
|
],
|
|
"id": "4cdbc2a0-927b-472e-ba39-097ad555718b",
|
|
"name": "Edit Fields"
|
|
},
|
|
{
|
|
"parameters": {
|
|
"operation": "executeQuery",
|
|
"query": "WITH picked AS (\n SELECT i.id\n FROM public.elo_callback_inbox i\n WHERE i.processed = FALSE\n AND (\n i.locked_at IS NULL\n OR i.locked_at < NOW() - INTERVAL '10 minutes'\n )\n ORDER BY i.created_at\n LIMIT 1\n),\nlocked AS (\n UPDATE public.elo_callback_inbox i\n SET\n locked_at = NOW(),\n updated_at = NOW()\n FROM picked p\n WHERE i.id = p.id\n RETURNING i.*\n),\npayload AS (\n SELECT\n i.id AS callback_id,\n i.request_id,\n i.correlation_id,\n i.message_code,\n i.message_id,\n i.functional_id,\n i.elo_reference,\n i.callback_status,\n i.pdf_base64,\n i.pdf_filename,\n i.headers,\n i.body,\n i.full_json,\n i.created_at,\n r.crossing_order_nr,\n r.trigger_crossing_status_log_nr,\n r.trip_nr,\n r.trip_id,\n r.truck,\n r.trailer,\n r.transpas_payload,\n r.result_status,\n r.error_text AS request_error_text\n FROM locked i\n LEFT JOIN public.elo_envelope_request r\n ON r.id = i.request_id\n)\nSELECT COALESCE(\n (\n SELECT jsonb_build_object(\n 'ok', true,\n 'hasResult', true,\n\n 'id', p.callback_id,\n 'requestId', p.request_id,\n 'correlationId', p.correlation_id,\n 'messageCode', p.message_code,\n 'messageId', p.message_id,\n 'functionalId', p.functional_id,\n\n 'resultKind',\n CASE\n WHEN p.message_code IN ('ENV_CRE02', 'ENV_MOD02', 'ENV_REC02') THEN 'OK'\n WHEN p.message_code IN ('ENV_CRE03', 'ENV_MOD03', 'ENV_REC03')\n OR p.body ? 'informationsErreur' THEN 'ERROR'\n ELSE 'UNKNOWN'\n END,\n\n 'eloReference', p.elo_reference,\n 'callbackStatus', p.callback_status,\n\n 'errorCode', NULLIF(p.body #>> '{informationsErreur,statut}', ''),\n 'errorText', COALESCE(\n NULLIF(p.body #>> '{informationsErreur,libelleErreur}', ''),\n p.request_error_text\n ),\n\n 'pdfBase64', p.pdf_base64,\n 'pdfFileName', p.pdf_filename,\n\n 'crossingOrderNr', p.crossing_order_nr,\n 'crossingStatusLogNr', COALESCE(\n p.trigger_crossing_status_log_nr,\n NULLIF(p.transpas_payload->>'crossingStatusLogNr', '')::integer,\n NULLIF(p.transpas_payload #>> '{triggerInfo,crossingStatusLogNr}', '')::integer\n ),\n\n 'tripNr', COALESCE(\n p.trip_nr,\n NULLIF(p.transpas_payload #>> '{trip,tripNr}', '')::integer,\n NULLIF(p.transpas_payload->>'tripNr', '')::integer,\n NULLIF(p.transpas_payload #>> '{triggerInfo,tripNr}', '')::integer\n ),\n 'tripId', COALESCE(\n NULLIF(p.trip_id, ''),\n NULLIF(p.transpas_payload #>> '{trip,tripId}', ''),\n NULLIF(p.transpas_payload->>'tripId', ''),\n NULLIF(p.transpas_payload #>> '{triggerInfo,tripId}', '')\n ),\n\n 'truckId', COALESCE(\n NULLIF(p.truck, ''),\n NULLIF(p.transpas_payload #>> '{resources,truckId}', ''),\n NULLIF(p.transpas_payload->>'truckId', '')\n ),\n 'truckDescription', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,truckDescription}', ''),\n NULLIF(p.transpas_payload->>'truckDescription', '')\n ),\n\n 'trailerId', COALESCE(\n NULLIF(p.trailer, ''),\n NULLIF(p.transpas_payload #>> '{resources,trailerId}', ''),\n NULLIF(p.transpas_payload->>'trailerId', '')\n ),\n 'trailerDescription', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,trailerDescription}', ''),\n NULLIF(p.transpas_payload->>'trailerDescription', '')\n ),\n\n 'driverId', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,driverId}', ''),\n NULLIF(p.transpas_payload->>'driverId', '')\n ),\n 'driverDescription', COALESCE(\n NULLIF(p.transpas_payload #>> '{resources,driverDescription}', ''),\n NULLIF(p.transpas_payload->>'driverDescription', '')\n ),\n\n 'callbackBody', p.body,\n 'callbackJson', p.full_json,\n 'transpasPayload', p.transpas_payload,\n 'receivedAt', p.created_at\n )\n FROM payload p\n LIMIT 1\n ),\n jsonb_build_object(\n 'ok', true,\n 'hasResult', false\n )\n) AS result;",
|
|
"options": {
|
|
"queryReplacement": "={{ [] }}"
|
|
}
|
|
},
|
|
"id": "87f25088-0bb7-49b4-a74e-0292ca3b4777",
|
|
"name": "PG - Get Pending1",
|
|
"type": "n8n-nodes-base.postgres",
|
|
"typeVersion": 2.6,
|
|
"position": [
|
|
2800,
|
|
528
|
|
],
|
|
"credentials": {
|
|
"postgres": {
|
|
"id": "0mT1Cu2z2TS7JEfo",
|
|
"name": "elo"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"pinData": {
|
|
"Webhook - ELO Reponses": [
|
|
{
|
|
"json": {
|
|
"headers": {
|
|
"connection": "Keep-Alive",
|
|
"host": "n8n.tmsconnector.nl",
|
|
"x-forwarded-scheme": "https",
|
|
"x-forwarded-proto": "https",
|
|
"x-forwarded-for": "185.24.187.203",
|
|
"x-real-ip": "185.24.187.203",
|
|
"content-length": "53581",
|
|
"messagecode": "ENV_CRE02",
|
|
"messageid": "eff0e667-70fd-49e5-b081-0d3185b46ae0",
|
|
"accept": "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*",
|
|
"accept-charset": "iso-8859-1,*,utf-8",
|
|
"authorization": "Bearer pleaseinsertyourtokenhere",
|
|
"functionalid": "B202606161814264595U",
|
|
"content-type": "application/json",
|
|
"correlationid": "ELO-MOA-10269-V1-470f9b2823bd",
|
|
"accept-encoding": "gzip",
|
|
"user-agent": "Apache-HttpClient/4.5.13 (Java/11.0.15)"
|
|
},
|
|
"params": {},
|
|
"query": {},
|
|
"body": {
|
|
"enveloppe": {
|
|
"jeton": "EE202606161815014596K",
|
|
"numeroDossier": "B202606161814264595U",
|
|
"statut": "FERMEE",
|
|
"modeCreation": "EDI",
|
|
"informationsAppairage": {
|
|
"sensTraversee": "EXPORT",
|
|
"typeCamion": "PLEIN",
|
|
"estTIRATA": false,
|
|
"possedeContratTransport": false,
|
|
"estPostal": false,
|
|
"estSPS": false,
|
|
"estProduitPeche": false,
|
|
"estEmballageVide": false
|
|
},
|
|
"declarations": [
|
|
{
|
|
"identifiant": "26NL4ZE83WLZ030DA9",
|
|
"typeDeclaration": "SDS_INDETERMINE",
|
|
"informationsValidation": {
|
|
"etat": "DETOURNEMENT",
|
|
"code": "ENV_E03_MSG32",
|
|
"message": "Attention : Cette déclaration ne comporte pas de bureau de sortie français."
|
|
}
|
|
}
|
|
],
|
|
"nombreDeclaration": 1,
|
|
"dateCreation": "2026-06-16T18:14:26.743",
|
|
"dateModification": "2026-06-16T18:15:01.867149955",
|
|
"dateValidation": "2026-06-16T18:15:01.867149955",
|
|
"procedureSecoursIcs2": true
|
|
},
|
|
"pdf": "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"
|
|
},
|
|
"webhookUrl": "https://n8n.tmsconnector.nl/webhook/elo-callback/enveloppe/Reponses",
|
|
"executionMode": "production"
|
|
},
|
|
"pairedItem": {
|
|
"item": 0
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"connections": {
|
|
"Webhook - ELO Reponses": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "PG - Insert Reponses",
|
|
"type": "main",
|
|
"index": 0
|
|
},
|
|
{
|
|
"node": "If1",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"PG - Insert Reponses": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Respond - Reponses OK",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Webhook - ELO Erreur": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "PG - Insert Erreur",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"PG - Insert Erreur": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Respond - Erreur OK",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Webhook - Pending": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Auth - Pending",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Auth - Pending": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "PG - Get Pending",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"PG - Get Pending": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Format - Pending Response",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Webhook - Ack": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Auth - Ack",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Auth - Ack": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "PG - Ack",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"PG - Ack": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Respond - Ack",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Webhook - Fail": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Auth - Fail",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Auth - Fail": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "PG - Fail",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"PG - Fail": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Respond - Fail",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Format - Pending Response": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Respond - Pending",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Convert to File": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "FTP",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"If1": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Execute a SQL query",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Execute a SQL query": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Edit Fields",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Edit Fields": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Convert to File",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
}
|
|
},
|
|
"active": true,
|
|
"settings": {
|
|
"executionOrder": "v1",
|
|
"binaryMode": "separate",
|
|
"timeSavedMode": "fixed",
|
|
"callerPolicy": "workflowsFromSameOwner",
|
|
"availableInMCP": false,
|
|
"errorWorkflow": "1Ps5lukDf2sgcGL7"
|
|
},
|
|
"versionId": "09ec6bfc-ce7e-467b-975c-65e0e63b401c",
|
|
"meta": {
|
|
"templateCredsSetupCompleted": true,
|
|
"instanceId": "bef8d409866a58c0777dfe7cca1b9c2400fd051c056d361501393ab423006b5f"
|
|
},
|
|
"nodeGroups": [],
|
|
"id": "wawKiFL7MyhS6q2l",
|
|
"tags": []
|
|
} |