# sinks/publish.py
from providers.destination_client import DestinationClient
from sqlbuild.sinks import (
LifecycleEvent,
LifecycleEventKind,
lifecycle_event_sink,
lifecycle_event_to_json,
)
@lifecycle_event_sink(
event_kinds={
LifecycleEventKind.INVOCATION,
LifecycleEventKind.RUN,
LifecycleEventKind.RESOURCE,
LifecycleEventKind.AUDIT,
}
)
def publish_lifecycle(event: LifecycleEvent, destination_client: DestinationClient) -> None:
destination_client.publish(
route="sqlbuild.lifecycle.v2",
key=event.invocation_id,
payload=lifecycle_event_to_json(event).encode("utf-8"),
)