Changelog¶
0.0.1¶
Initial release.
- Supports lamindb 2.8.1 and newer only. The hook, sensors and lineage tasks reject instances on older
lamindb with
LaminDBVersionError, and event triggers don't poll them. An olderlamindb_versionfails when the DAG is parsed, and a lineage task whose virtualenv or pod has an older lamindb fails when it starts. - Lineage: DAG runs are recorded as LaminDB flow runs and tasks as steps with
LaminDBFlowInitOperator,LaminDBFlowFinishOperatorand the@task.lamindb_venvand@task.lamindb_k8sdecorators. LaminDB runs in a virtualenv or a Kubernetes pod, never on the worker. The virtualenvs installlamindb-corein the instance's version (with pandas below 3 for lamindb before 2.10) and get their credentials from thelamindbconnection. LaminDBHookand thelamindbconnection type for the LaminHub REST API, shared by all operators, triggers and sensors. It queries and writes records (insert_records,update_record).- Event triggers for event-driven scheduling based on the LaminHub database write log, with
cursors in the asset state store:
LaminDBRecordEventTrigger,LaminDBArtifactEventTrigger,LaminDBBranchStatusEventTriggerandLaminDBBranchBlockEventTrigger. Withcursor_store=RecordCursorStore(), the cursors are kept in records of the watched instance instead. - Deferrable sensors:
LaminDBBranchStatusSensor,LaminDBRecordSensorandLaminDBArtifactSensor. They keep waiting through network errors, rate limiting and LaminHub server errors. - Filters built in Python with
Fand enums for registries (LaminDBRegistry), registry fields (ArtifactField,RunField, ...), operators (FilterOperator) and values (ArtifactKind,TransformKind,RunStatus). Filters are validated when a sensor, trigger or hook receives them.