Plugins — overview
A plugin is a Python package on disk that Liberty makes importable at startup. It carries custom callables your Nomaflow python steps reference — the escape hatch for anything declarative steps can't express.
Write a callable
The function contract for a python step's callable — signature, auto-injected kwargs (connectors / ctx / settings), return-value normalisation, sync vs async, error and cancellation semantics.
ETL primitives
The liberty.etl toolkit — six async helpers your plugin callables compose into ETL flows: copy_query_to_table, snapshot_rows, delete_rows, truncate_table, insert_audit_record, run_query.
Deploy and debug
The apps repo layout, LIBERTY_APPS_DIR, the dev shell with uvicorn --reload, the production deploy pattern, log lines you'll grep for, and the testing setup.