Giter Club home page Giter Club logo

infohub's Introduction

Hi there ๐Ÿ‘‹

I am Peter Lembke. Software developer.

trophy

  • ๐Ÿ”ญ At work Iโ€™m currently working on MongoDb aggregations.
  • ๐Ÿ”ญ At home Iโ€™m currently working on programming on InfoHub in PHP/Javascript.
  • ๐ŸŒฑ Iโ€™m currently learning MongoDb and more about Open source.
  • Me at LinkedIn
  • Blog ๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ about the InfoHub project - Your private operating system in your browser Infohub logo
  • Blog ๐Ÿ‡ธ๐Ÿ‡ช about software development and other technical stuff at CharZam software
  • Blog ๐Ÿ‡ธ๐Ÿ‡ช about running, cycling, training and equipment at Team Fakta

infohub's People

Contributors

peterlembke avatar

Stargazers

 avatar

Watchers

 avatar

infohub's Issues

Tree - Storage

When saving plain data to local Storage it will first be encrypted.
When saving encrypted data to local Storage it will be stored as it is.
When reading data from local Storage it will optionally be decrypted.
If requested data do not exist in local Storage then we ask the server for the data and store it in local Storage.

Used by Tree, Backup, Restore, Sync
Uses: Encrypt

Plugin has no GUI.

Below is how the plugins act towards Storage

Tree want the data to be decrypted on read.
For Backup it is optional to decrypt the data before it is backed up.
Sync want the data encrypted when sending it to the server.
Sync want the data decrypted when solving merge conflicts.

Tree - Update documentation

Update all documentation in detail so there is no doubt how Tree will work.

I want to use a sync system like infohub_cache or infohub_asset

Tree

The main plugin.
Has a menu where you can reach all GUIs for the child plugins.

Menu

  • Encrypt - Manage your encryption key
  • Sync - Trigger sync to/from the server. Manage sync conflicts
  • Backup - Set backup mode + options and trigger a backup
  • Restore - Pick files to restore and the restore mode

Has public functions for read and write so other plugins can use Tree to read and write their data.

Other plugins do not need to care about encryption, sync to the server, backup/restore, data conflicts.

Tree - Restore

Restore data from a backup file to the local Storage.
The sync will later make sure the data comes to the server if needed.

GUI

Mode

Not all modes need to be implemented directly. It is enough with Overwrite and Skip to start with.

  • Overwrite existing conflicting items in local storage
  • Skip existing items in local storage
  • Newest, Keep the newest item if that can be determined
  • Ask, If an item exist and I can not determine what to keep then ask a human

Select files

Select one or many files to restore.

Ask

If there is a conflict then show the decrypted data in both items so a human can decide what to keep.

Tree - Sync

Sync make sure the changed data we have locally get synced to the server.
Sync make sure the data we view are the latest data by asking for updated checksum lists from the server.

Every change made to the data generate a new checksum. The current and some of the previous checksums are available in the data. Then sync can determine who is newest.

If sync can not determine what copy to keep then a GUI will show conflicts that a human have to solve.

Trigger

  • Manually with a button
  • Cron message - Mode "Changes"

GUI

List with plugin name, local items count, server items count, percentage

Mode
Select one of these for your manual sync

  • Changes, Sync changed local items (Default)
  • Missing, Download missing items
  • All, Download all items and overwrite local items
  • Purge, Remove local items that have been synced to the server

Select plugins and use button "Sync".

Changes is good for normal operation. You have the things you work on and they are the latest versions.
Missing is useful when you want to do a backup.
All when you want all items on a new/cleaned browser
Purge when you want to reduce the amount of data in the local storage to make room for other data

Tree - Backup

Backup data from local Storage only

You need to let Sync fill your local Storage first.

Mode:

  • All, all data
  • Plugin, for a specific plugin
  • Keys, specific keys in a plugin

Options:

  • Decrypt, data before backup. Default is to have it encrypted.
  • Changes, Only changed data from a specific date and onwards. Default is all available data.

A file is created and downloaded.

https://freesvg.org/data-backup-restore-vector-illustration

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.