Skip to content

The Great Migration #424

@ErikBjare

Description

@ErikBjare

There are currently a few migrations planned, here I'll try to document them so that we can have some general discussion and clarity on what migration debts have to be repaid.

  • bundle: aw-server-python to aw-server-rust

    • This is the big one. aw-server-rust has been properly battle-tested by now (especially in aw-android) and is ready to become the default. We're currently (April 2020, v0.9) shipping it in the bundle as an alternative server that the user can choose to start with aw-qt.
    • Practically, all of the migrations below depend on this one.
  • some watchers: 'unknown' hostnames to correct hostname

    • affects: aw-watcher-web, aw-android
    • currently create buckets with hostname "unknown", leading to them being assumed to have to belong to a certain hostname when querying.
    • new behavior (proposal): watchers use the hostname from the server's /info API endpoint when creating the bucket.
    • new behavior (proposal): watchers can create buckets with a magic hostname which automatically uses the server hostname. It's more convenient for watcher developers than the above proposal.
    • new behavior (proposal): watchers no longer have hostname in their name, they are assumed to be owned by the server they have requested to create a bucket for. All buckets in /api/0/buckets are local and "external" buckets from other devices can be on a seperate endpoint.
    • planned migration: Change buckets with a certain signature to the local server hostname.
  • aw-server: hostnames to device IDs (Change how hostname/devices work #302)

    • hostnames are a bad way to identify an instance, especially so as hostnames sometimes change (transient hostnames) for network reasons.
    • planned migration: migrate to using device_id.
  • some watchers: non-unique bucket IDs

    • we need a fix for this to allow having buckets from several hosts with identical IDs (aw-watcher-web-chrome), but we don't yet have one.
  • some watchers: old bucket types (discussed in Rework the buckettype names and data formats #201)

    • We have been trying to adhere to a better standard for bucket type names (namespaces), which some of the older watchers don't use (currentwindow, afkstatus).
    • Before we perform this migration we might want to improve the docs on all the known and somewhat standard bucket types.
  • aw-android: bucket type and id

    • aw-android currently uses currentwindow as its bucket type. This is not appropriate, as the event data schema is different (no title, for example).
    • affects: aw-android and aw-webui
    • best performed by: aw-android? aw-server-rust?
  • aw-server-python: default datastore from peewee to sqlite

    • indefinitely postponed in favor of switching to aw-server-rust

There are more info about these in issues that I haven't yet referenced here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions