Changes between Version 68 and Version 69 of BluePrint/Synchronisation


Ignore:
Timestamp:
05/17/10 20:20:04 (12 years ago)
Author:
Fran Boon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/Synchronisation

    v68 v69  
    4242User Interface to provide access to the URL-based S3XRC engine:
    4343
     44=== Simple UI ===
    4445 * NB Most Users shouldn't need to be aware of sync at all
    4546  * a Big 'Sync Now' button should be all that is required for users with poor access to the Net or when they are requested to make an out-of-schedule sync.  Pressing this button needs to return a normal status:
     
    4849   * Red error for any of the 3 trapped errors (Network problem, Authentication problem, Code crash), ideally distinguishing between them.
    4950
    50  * Sync Partners
    51   * Host
    52   * Pull [Download] (potentially have multiple of these so that some data is synced more frequently than others? Push/Pull are just default labels which can be amended?)
    53    * URL
    54     * includes login if protected
    55    * Policy
    56     * Which tables we're importing
    57      * Filters on the Tables (e.g. we may only want Hospitals from !OpenStreetMap)
    58     * Conflict Resolution Rules (deployers/admins can select from list)
    59      * http://spreadsheets.google.com/pub?key=ttORvOuuE4ohs8tBqlts7tg&output=html
    60      * We win
    61      * They win
    62      * Latest changed (default?)
    63      * Manual resolution
    64      * Can vary by role of the modified_by field!
    65    * Schedule
    66     * Since last date
    67   * Push [Upload]
    68    * URL
    69     * includes login
    70     * NB This can't assume that the remote side can trigger a Pull from us as we might be on a Private IP or Firewalled off.
    71    * Which tables we're exporting
    72     * Filters on the Tables
    73    * Schedule
    74     * Since last date
    75   * Conflict storage
    76    * New 'conflict' boolean column added to all syncable tables
    77    * Hide this from all normal queries (like 'deleted')
    78    * Modify UUID field to UUID_orig/sync_parter_id/version (or similar? Suggestions welcomed)
    79   * Sync Log
    80    * We need to view conflictsto launch conflict-resolution UI
    81    * We need to be able to see if a sync has failed
    82     * due to network problems
    83     * due to permission problems
    84     * due to code crash
    85   * We need to be able to retry failed syncs
    86    * Ideally continuing from where we left off, although having to redo that whole sync again is OK
    87     * Do not mark sync as completed until it is
    88 
    89  * Offline Sync (e.g. USB stick or email attachment)
    90   * Export to File
    91    * Which tables we're exporting
    92     * Filters on the Tables
    93     * Since x date
    94    * Export ALL => Backup Facility :)
    95   * Import from File
    96    * Engine supports this format: {{{http://localhost:8000/sahana/gis/location/create.ushahidi?filename=haiti.ushahidi.com.xml}}}
     51=== Sync Partners ===
     52 * Host
     53 * Pull [Download] (potentially have multiple of these so that some data is synced more frequently than others? Push/Pull are just default labels which can be amended?)
     54  * URL
     55   * includes login if protected
     56  * Policy
    9757   * Which tables we're importing
    98     * Filters on the Tables
     58    * Filters on the Tables (e.g. we may only want Hospitals from !OpenStreetMap)
     59   * Conflict Resolution Rules (deployers/admins can select from list)
     60    * http://spreadsheets.google.com/pub?key=ttORvOuuE4ohs8tBqlts7tg&output=html
     61    * We win
     62    * They win
     63    * Latest changed (default?)
     64    * Manual resolution
     65    * Can vary by role of the modified_by field!
     66  * Schedule
     67   * Since last date
     68 * Push [Upload]
     69  * URL
     70   * includes login
     71   * NB This can't assume that the remote side can trigger a Pull from us as we might be on a Private IP or Firewalled off.
     72  * Which tables we're exporting
     73   * Filters on the Tables
     74  * Schedule
     75   * Since last date
     76 * Conflict storage
     77  * New 'conflict' boolean column added to all syncable tables
     78  * Hide this from all normal queries (like 'deleted')
     79  * Modify UUID field to UUID_orig/sync_parter_id/version (or similar? Suggestions welcomed)
     80 * Sync Log
     81  * We need to view conflictsto launch conflict-resolution UI
     82  * We need to be able to see if a sync has failed
     83   * due to network problems
     84   * due to permission problems
     85   * due to code crash
     86 * We need to be able to retry failed syncs
     87  * Ideally continuing from where we left off, although having to redo that whole sync again is OK
     88   * Do not mark sync as completed until it is
     89
     90=== Offline Sync ===
     91e.g. USB stick or email attachment
     92 * Export to File
     93  * Which tables we're exporting
     94   * Filters on the Tables
    9995   * Since x date
    100    * Conflict Resolution Rules
    101     * (as above)
    102 
    103  * UI to manually resolve conflicts which aren't covered by policy
    104   * Displays both records side-by-side & allows selection of which version to base the result on & copying fields across from the other into it.
    105 
    106  * Sync Pools (Groups of Partners which share a common policy &/or username)
    107 
    108  * UI to Map data fields between instances with different lookup lists
    109   * This seems very similar to the Spreadsheet Importer so should reuse as much of the design from this as possible (libs, look/feel)
    110   * Does this write out an XSLT file called <instance>.xsl & then url uses http://..../resource.<instance>
    111 
    112  * Beacon Service
    113   * Allow hosts to register to say they're interested in certain tags (e.g. 'haiti') for either 'download' or 'upload'
    114    * this then puts them into the potentials list for a sync pool, for the admin to verify
    115   * Discovery data includes what tables are accessible & their field mappings
    116   * Any node can host a service. default host service is configured to be sync.sahanafoundation.org
    117 
    118  * [wiki:BluePrintZeroConf ZeroConf]
    119   * Allow nodes on same LAN to auto-discover each other (i.e. integrate work done in GSoC 2009)
     96  * Export ALL => Backup Facility :)
     97 * Import from File
     98  * Engine supports this format: {{{http://localhost:8000/sahana/gis/location/create.ushahidi?filename=haiti.ushahidi.com.xml}}}
     99  * Which tables we're importing
     100   * Filters on the Tables
     101  * Since x date
     102  * Conflict Resolution Rules
     103   * (as above)
     104
     105=== UI to manually resolve conflicts ===
     106Hopefully not many which aren't automatically covered by policy
     107 * Displays both records side-by-side & allows selection of which version to base the result on & copying fields across from the other into it.
     108 * Header of view shows the sync_partner, created_on, modified_on, created_by, modified_by (these are normally hidden, but v.useful to expose here)
     109
     110=== Sync Pools ===
     111Groups of Partners which share a common policy &/or username
     112
     113=== UI to Map data fields between instances with different lookup lists ===
     114 * This seems very similar to the Spreadsheet Importer so should reuse as much of the design from this as possible (libs, look/feel)
     115 * Does this write out an XSLT file called <instance>.xsl & then url uses http://..../resource.<instance>
     116
     117=== Beacon Service ===
     118 * Allow hosts to register to say they're interested in certain tags (e.g. 'haiti') for either 'download' or 'upload'
     119  * this then puts them into the potentials list for a sync pool, for the admin to verify
     120 * Discovery data includes what tables are accessible & their field mappings
     121 * Any node can host a service. default host service is configured to be sync.sahanafoundation.org
     122
     123=== [wiki:BluePrintZeroConf ZeroConf] ===
     124 * Allow nodes on same LAN to auto-discover each other (i.e. integrate work done in GSoC 2009)
    120125
    121126 * Documentation for each of the above - during the stage it is developed