[GH-ISSUE #174] Imported transaction inputs are not persisted to source (saved as null) #89

Open
opened 2026-03-03 11:58:48 +03:00 by kerem · 2 comments
Owner

Originally created by @sergeiosipov on GitHub (Feb 10, 2026).
Original GitHub issue: https://github.com/finmars-platform/finmars-core/issues/174

Originally assigned to: @HenkKalkwater on GitHub.

Description

When importing transactions, all input fields provided during import must be persisted as is into the transaction source object.

This behavior existed in previous versions of the platform but is currently broken.
At the moment, the transaction is created with source = null, which leads to a loss of original import data.

This is a regression.


Expected Behavior

  • During transaction import, all raw input fields must be written unchanged into the transaction source
  • The source object must always be created if it was imported (manual booking is exception)
  • Input values must be preserved even if they are later transformed, normalized, or recalculated
  • Behavior should match previous platform versions

Actual Behavior

  • Transaction is created successfully
  • source is null
  • Original import inputs are not persisted

Why This Is Important

Persisting raw import inputs is required for:

  • auditability and traceability
  • debugging and reconciliation
  • comparison of input vs processed values
  • parity with previous platform behavior

Loss of source data causes irreversible information loss.


Evidence

  • In previous platform versions, source was populated correctly (see screenshot below)
    Image

  • In the current version, source is not created and remains null

Image
Originally created by @sergeiosipov on GitHub (Feb 10, 2026). Original GitHub issue: https://github.com/finmars-platform/finmars-core/issues/174 Originally assigned to: @HenkKalkwater on GitHub. ## Description When importing transactions, **all input fields provided during import must be persisted _as is_ into the transaction `source` object**. This behavior existed in previous versions of the platform but is currently broken. At the moment, the transaction is created with `source = null`, which leads to a loss of original import data. This is a regression. --- ## Expected Behavior - During transaction import, **all raw input fields** must be written unchanged into the transaction `source` - The `source` object must always be created if it was imported (manual booking is exception) - Input values must be preserved even if they are later transformed, normalized, or recalculated - Behavior should match previous platform versions --- ## Actual Behavior - Transaction is created successfully - `source` is `null` - Original import inputs are not persisted --- ## Why This Is Important Persisting raw import inputs is required for: - auditability and traceability - debugging and reconciliation - comparison of input vs processed values - parity with previous platform behavior Loss of `source` data causes irreversible information loss. --- ## Evidence - In previous platform versions, `source` was populated correctly (see screenshot below) <img width="447" height="457" alt="Image" src="https://github.com/user-attachments/assets/ee3bc6fc-815e-4d6b-8824-ec2b337ad48d" /> - In the current version, `source` is not created and remains `null` <img width="479" height="449" alt="Image" src="https://github.com/user-attachments/assets/78dfcea3-d496-411e-8069-e53e9b9b9ac1" />
Author
Owner

@sergeiosipov commented on GitHub (Feb 10, 2026):

@falendary maybe the problem in name collisions with Source from Provenance

<!-- gh-comment-id:3877662040 --> @sergeiosipov commented on GitHub (Feb 10, 2026): @falendary maybe the problem in name collisions with Source from Provenance
Author
Owner

@sergeiosipov commented on GitHub (Feb 24, 2026):

Now this data is in the source_data field in the complex transaction json object.
But there is seems to be extra json.dumps which prevent this field from showing in the tab source.
Rename tab to source data for consistency.

Image
<!-- gh-comment-id:3952010848 --> @sergeiosipov commented on GitHub (Feb 24, 2026): Now this data is in the `source_data` field in the complex transaction json object. But there is seems to be extra json.dumps which prevent this field from showing in the tab source. Rename tab to source data for consistency. <img width="1480" height="460" alt="Image" src="https://github.com/user-attachments/assets/8a540e05-d2b5-4e7e-ab51-244c4fbbff70" />
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/finmars-core#89
No description provided.