Skip to content

Latest commit

 

History

History
65 lines (59 loc) · 2.17 KB

TODO.MD

File metadata and controls

65 lines (59 loc) · 2.17 KB

TODO

Sublists

Basic features

  • Implement basic cron handling
  • Implement backup tasks (dump & copying to target in job queue)
  • Implement s3 target
  • Implement mysql source
  • Implement retention with count
  • Use winston as logging framework
  • Switch to dependency injection/service container lib
  • Configuration file -> implemented with 'config'
  • static configured targets
  • replace moment
  • Switch to proper queue (self written) => started
  • js doc
  • Async factory with decorators and interface for Targets (Decorators cause jsdoc to fail with factory methods )
  • Add MD5 per step and final to manifest
  • Middleware Stack -> Compression (gzip), Encryption (ccrypt)
  • Static config for containers
  • Automated docker build
  • Sentry Integration
  • Debug strange queue behaviour if to many jobs triggert
  • Properly build cli in container
  • Use Mutex for all situations with race conditions
    • manifest writes/reads
    • Locks per container to prevent simultaneously reading
  • Immutability for manifests and other object

Manifest Housekeeping

  • Keep backer versions in manifests
  • Give backup manifest uuids via file hash or something
  • Ensure manifest validity and integrity
  • Add file sizes
  • Keep content type in manifest per step
  • Differentiate between creation time meta and final meta

Testing

  • Unify file access for testing
  • Create compose test setup => started

low prio

  • Docs with Slate
  • Use lerna to manage packages

Realy Nice to have

  • Improved queue parallelization and concurrence
  • "File source" to backup Docker Volumes
  • Static pre-configuration for sources
  • Implement postgres sources
  • Job queue priority
  • Recover from failure
  • Notification via Services (Mail/Slack/etc .. )
  • S3 Target Path prefix
  • More complex retention schedules

Nice to have

  • Web Interface (vue + tailwind)
  • Rollback (triggering via api)
  • Rollback tests
  • Prometheus export
  • GnuPG Encryption Middleware