Skip to content

News sources migration, merging, and linking flows #8

Description

@zefr0x

For content integrity, source provided IDs of news items don't have any influence across different sources (e.g. two items with the same provided ID but from different sources will not be grouped together for versioning or de-duplication).

Currently if we want to migrate to a new source, we need to delete or disable the old one and add a new one that it not linked to the old. This will lead to duplication and missing history of later updated news items.

Following are four proposed options of handling this:

  1. Add a feature to link multiple sources and to break the integrity restriction
    • For already existing sources.
    • Linked sources are allowed to match provided news items IDs, having the same versioning history.
    • This may allow enabling multiple sources at the same time
  2. Add a source merge feature
    • For already existing sources.
    • It deletes old sources and combine their news items in a single new source with only one informant parameters.
  3. Add a source replace feature
    • For only one existing source.
    • It will replace informant and parameters to new ones without affecting news items.
  4. Implement all previous options with the following possible flows:
    • Link
    • Merge
    • Link -> Merge
    • Link -> Merge -> Replace
    • Merge -> Replace
    • Replace

Note that this feature is intended to migrate or change the informant or its parameters of a specific source, it is not for editing the parameters to target an entirely different source. It might not be technically feasible to apply such restriction, but it is not the intended usage.


This should facilitate option no.3 in #7, where permanent redirections count as an informant parameters migration. So, we need a flow that allows the informant to propose optional migrations to the user.

We could have a database table to store pending migration options, where the front-end may propose them to the user. It may linked or merged with the original source, or replace it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions