Workflow update_suites

This workflow does whatever is needed to coordinate metadata updates for all archives in a workspace. Initially this will just involve generating basic indexes for each of the suites in those archives that have been changed, but later it may also generate supplementary files such as Contents-*.

The workflow operates on the workspace in which it was created.

  • task_data:

    • force_basic_indexes (boolean, defaults to False): if True, regenerate basic indexes (Packages, Sources, Release, and their variants) even if the state of the archive does not seem to have changed since they were last generated

For each suite in the workspace, if any collection items have been added or removed since the creation timestamp of its most recent index:Release item, it creates a GenerateSuiteIndexes task, with task data as follows:

  • suite_collection: the suite whose indexes should be generated

  • generate_at: the transaction timestamp at which the workflow orchestrator is being run (this needs special care to preserve idempotency, since any later runs of the same workflow orchestrator would have a different transaction timestamp)

To begin with, this workflow can just be run periodically, although that will not scale well to large numbers of suites. We should eventually have a mechanism where changes to a collection can trigger a workflow.

Todo

Future work is needed to sign Release files, and will need to be integrated into this task. That will probably involve creating a new sub-workflow that can deal with generating and signing indexes for a single suite. Once archives have been implemented, we may also want to group all the updates for suites in a given archive under a single sub-workflow.

Todo

Valid-Until can be supported by adding a field to the suite collection specifying the validity period. This workflow would then additionally include all those whose validity period is nearly up in its search criteria.