Hoppa till huvudinnehåll
Petanque Life

Federation System Integration

F14.02 7 features Planerad

I korthet

Federation System Integration provides the bridge between Petanque Life and the legacy national federation systems already in operation, with configurable data-exchange profiles, file importers for CSV, XML, and fixed-width formats, FIPJP submission envelopes with payload validation, continental confederation exchange sessions, bi-directional sync with hash-based conflict detection and resolution, migration jobs with dry-run and rollback, and a strict import-validation rule engine with filterable error reporting.

Så fungerar det

Each federation that already runs a homegrown registry, ranking engine, or licensing portal is modelled as a FederationIntegrationConfig with a draft→active→paused→decommissioned lifecycle, a versioned field-mapping document, and a sync-state snapshot that records last-pulled cursor, last-pushed sequence, and resolved schema version. Legacy data lands through the file-import service: a FileFormatDefinition declares the format (CSV, XML, or fixed-width), column boundaries, encoding, and per-column transforms; POST /parse streams the upload, the fixed-width column parser materialises rows, and an ImportValidationReport runs a configurable rule engine (required, type, format, range, uniqueness) before any record touches a domain collection. Errors are streamable, filterable, and re-runnable.

For FIPJP exchange, FipjpSubmission wraps payloads in the canonical envelope (header, signed body, attachments), validates per submission type (player, license, transfer, ranking), and tracks lifecycle draft→submitted→accepted/rejected with the FIPJP receipt id stamped back on success. Continental bodies (CEP and others) use ContinentalExchangeSession to coordinate multi-tenant data drops with per-participant tracking and an initiated→in_progress→completed/failed/cancelled lifecycle. Federations that need both pull and push run a BidirectionalSyncSession that interleaves pulling, pushing, and resolving_conflicts states; conflicts are detected via row-level hash comparison, surfaced with local/remote diff payloads, and resolved via configurable strategies (last-write-wins, manual, prefer-local, prefer-remote).

One-shot legacy onboarding uses MigrationJob, which validates first, then runs in batched transactions with dry-run, progress streaming, and full rollback if the post-migration assertion suite fails.

Centrala funktioner

  • FederationIntegrationConfig with draft→active→paused→decommissioned lifecycle and field mapping
  • File import service for CSV, XML, and fixed-width legacy exports
  • FIPJP canonical envelope submissions with per-type payload validation
  • ContinentalExchangeSession for multi-tenant CEP-style data drops
  • BidirectionalSyncSession with hash-based conflict detection and resolution
  • MigrationJob with validation, dry-run, batch processing, and rollback
  • Configurable rule engine (required, type, format, range, uniqueness) with filterable error reports

I praktiken

A national federation has decided to migrate from a 15-year-old Access database. The integration engineer creates a FederationIntegrationConfig in draft, defines a FileFormatDefinition for the fixed-width player export, and uploads a sample to POST /parse. The first ImportValidationReport flags 312 rows with malformed birthdates and 17 duplicate license numbers.

After fixing the source extract, they create a MigrationJob in dry-run mode, watch the batch progress reach 99.8% success, then run it for real. Once players, licenses, and historical rankings are loaded, they switch the config to active and configure a BidirectionalSyncSession to keep the legacy system in sync during the parallel-run period, with conflicts routed to a manual review queue.

Features i detta subsystem

7
ID Status Funktioner
F14.02.01 Levererad Data exchange with existing national federation systems — FederationIntegrationConfig CRUD, lifecycle (draft→active→paused→decommissioned), field mapping, sync state ✅ PL-F1402a
F14.02.02 Levererad File import service (CSV, XML, fixed-width) for legacy data — FileFormatDefinition CRUD, POST /parse endpoint, fixed-width column parser ✅ PL-F1402a
F14.02.03 Levererad FIPJP data submission format support — FipjpSubmission CRUD, canonical envelope, payload validation per type, lifecycle (draft→submitted→accepted/rejected) ✅ PL-F1402a
F14.02.04 Levererad Continental confederation data exchange — ContinentalExchangeSession CRUD, lifecycle (initiated→in_progress→completed/failed/cancelled), participant tracking ✅ PL-F1402a
F14.02.05 Levererad Bi-directional sync for federations with existing systems — BidirectionalSyncSession CRUD, lifecycle (pending→pulling→pushing→completed/resolving_conflicts), conflict detection/resolution, per-direction statistics ✅ PL-F1402b
F14.02.06 Levererad Migration tools for legacy system data import — MigrationJob CRUD, lifecycle (draft→validating→validated→running→completed), batch processing, dry-run, rollback ✅ PL-F1402b
F14.02.07 Levererad Import validation and error reporting — ImportValidationReport CRUD, rule engine (required/type/format/range/uniqueness), summary statistics, error filtering ✅ PL-F1402b