DATE:
AUTHOR:
PowerSync Product Team
Flutter SDK React Native SDK Kotlin Multiplatform SDK JavaScript/Web SDK Swift SDK

PowerSync SDKs: Fine-Grained Update Tracking with Previous Values & Metadata

DATE:
AUTHOR: PowerSync Product Team

When handling writes in uploadData that involve complex fields like arrays or nested JSON, it's not always obvious what actually changed. You might need more detail than just the final state of the row. This update introduces new tools that give you fine-grained insight into updates—making it easier to detect specific changes, attach custom metadata, and suppress noise from no-op updates.

Advanced Schema Options

Schema tables now support the following options:

  • trackPreviousValues
    Populates CrudEntry.previousValues so you can see both the old and new values during updates—helpful for detecting diffs in complex fields.

  • trackMetadata
    Adds a _metadata column to your table. You can write any custom data into this field during an upload, and access it via CrudEntry.metadata.

  • ignoreEmptyUpdates
    Skips creating CRUD entries when an update doesn’t actually change any values. This keeps uploadData focused only on meaningful changes.

These options give you more control over how updates are tracked and processed—especially useful when working with structured data like arrays and objects.

Availability & Examples

Available in:

  • Flutter (v1.13.0)

  • React Native (v1.20.1)

  • JavaScript/Web (v1.20.1)

  • Kotlin Multiplatform (v1.1.0)

  • Swift (v1.1.0)

See usage examples: Custom Types, Arrays & JSON

Feedback & Questions?

Let us know how you're using these new tracking features and what you'd like to see next. Join the discussion on PowerSync Discord.

Powered by LaunchNotes