Skip to content
PropertyFlowdemo

SYNTHETIC DEMO DATA

Import pipeline

The catalogue is filled by a command-line importer that reads a Kyero-style XML feed, validates it and upserts it into PostgreSQL. This page shows the most recent runs. It is read-only: imports cannot be triggered from the web.

A scheduled job on a Linux VPS runs the importer daily against a simulated feed in which a few prices change, so new runs show real updates.

Latest run · #6

Completed

Oct 27, 2026, 8:39 AM UTC · 4.0 s

Inserted
0
Updated
0
Unchanged
300
Errors
0

Last successful run · #6

Completed

Oct 27, 2026, 8:39 AM UTC · 4.0 s

Inserted
0
Updated
0
Unchanged
300
Errors
0

Recent runs

RunStartedDurationStatusRecordsInsertedUpdatedUnchangedErrorsMissingDeactivatedNotes
#6Oct 27, 2026, 8:39 AM UTC4.0 sCompleted30000300000
#5Oct 27, 2026, 8:30 AM UTC2.9 sCompleted30000300000
#4Oct 27, 2026, 8:30 AM UTC5.2 sCompleted30003000000
#3Oct 27, 2026, 8:15 AM UTC0.3 sFailed–000000MALFORMED_XML: XML is not well-formed: 5230:48: unclosed tag: en
#2Oct 27, 2026, 8:15 AM UTC2.8 sCompleted30000300000
#1Oct 27, 2026, 8:15 AM UTC4.9 sCompleted30030000000

How a run works

  1. Checksum and size limit are checked before anything is parsed.
  2. The whole feed is streamed and validated before any write; a truncated file fails here and existing data stays untouched.
  3. Listings are upserted by (source, id) in one transaction. A content hash decides inserted / updated / unchanged, so re-running the same feed changes nothing.
  4. Kyero feeds are full snapshots, but missing listings are only reported, not removed. Soft deactivation needs an explicit flag and is refused when the record count drops sharply.
  5. A database advisory lock prevents two runs for the same source at once.