Skip to content

Add remote server sync (data synchronization with upstream Sparked instance) #471

Description

@OlivierJM

Feature Parity: Remote Server Sync

Legacy app has a sync feature allowing one Sparked instance to pull content from another (upstream/remote) Sparked server. This is critical for offline/low-connectivity deployments where a local instance syncs from a central content server.

Legacy capabilities

  • Admin authenticates with a remote Sparked server (via API credentials in config)
  • Fetches collections from remote: courses, units, topics, resources, search data
  • Database restoration from remote dumps
  • Sync progress tracking UI with per-collection status
  • Configuration via config.json (serverUrl, credentials)
  • Supports multiple remote endpoints
  • File synchronization (media files pulled from remote)

Use case

Field deployments of Sparked in low-bandwidth areas use a local server that periodically syncs from a central content server. Without sync, local instances must be manually updated.

Acceptance criteria

  • Config: serverUrl and auth credentials for remote instance
  • POST /api/sync/authenticate — verify remote server credentials
  • POST /api/sync/fetch — pull specified collections from remote
  • Progress tracking: per-collection sync status (in-progress, complete, failed)
  • UI: sync management page (admin only) with trigger buttons and progress display
  • Handle partial syncs gracefully (don't overwrite local data on failure)
  • File/media sync from remote S3 or file server
  • Sync history log

Identified via feature-parity audit against legacy Sparked (Meteor) app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority 3This is needed but not urgentenhancementNew feature or requestfeature-parityFeature exists in legacy Sparked (Meteor) but missing in sparked-nextneeds-backend-support

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions