githubbob42 / mingle2github2

0 stars 1 forks source link

Make database tech swappable #3797

Open githubbob42 opened 5 years ago

githubbob42 commented 5 years ago

Mingle Card: 4123 PreRequisite:

4147 – data access will need to be consolidated before tackling this

Narrative

FieldFX is written with the base assumption that IndexedDB is the storage technology. iOS implementation of IndexedDB is poor/non-existent so we use a indexeddbShim to write to WebSQL instead.

iOS native app needs to write to SQLite to support “at rest” encrypted durable data storage. Although the SQLite API is compatible with WebSQL, going through sqlite plugin creates a 2-3X overhead in sync time. 

Acceptance Criteria

FieldFX can be configured to write directly to different available database technologies.

Analysis

First, organize data access throughout the app to use a single API for data access. The rest-api module for the new sync is mostly there but is likely a consumer of the API and not the API itself.

Once data access is uniform, we have some options:

Related Stories

Tasks

{{table query: SELECT Number, Name, Owner, 'Task Status' WHERE Type = Task and Story = THIS CARD}}

Defects

{{ table query: SELECT Number, Name, Owner, 'Status' WHERE Type = Defect and 'Related Story' = THIS CARD }}

Test Plan

githubbob42 commented 5 years ago

Feature: #3820 iOS Native Application (Mingle)