mltrace
mltrace copied to clipboard
Information flow labels
We want to track information flow throughout a pipeline at a user-defined label granularity. The user will specify labels on some inputs (i.e., the most upstream input), and we must store and propagate them throughout the pipeline.
Steps:
- [x] Create 2 tables: (1) mapping label key to IOPointer, (2) mapping deleted label to time of deletion request
Add ability to index by IOPointer
- [x] Perform db migration
- [x] Modify existing commit functions to also commit a label or dummy label
- [x] Implement retrieval functions for queries
- [x] Get all IOPointers for a label
- [x] Get all labels for an IOPointer
- [x] Forward trace (get all artifacts derived from a label)
- [x] Implement delete_label function
- [x] Modify component run function to:
- [x] compute labels for outputs based on earlier retrieval functions
- [x] check if label is fully deleted and block computation if necessary
- [ ] Write dummy pipelines to test functionality