跳转到内容
#0299
PipeSqlite

The customer's data export never touches a bucket

A customer invokes their right to a full data export. The old flow: dump, upload to S3, sign a URL, email it, set a lifecycle rule, hope it expires before someone forwards the link.

New flow. You give them a pipe path. On your side: sqlite3 /hoody/databases/customer-4411.db .dump | gzip | curl -T - …/api/v1/pipe/export-4411. On theirs: curl …/api/v1/pipe/export-4411 | gunzip > my-data.sql. Either party can connect first; the server holds the connection up to five minutes for the other to arrive. Bytes move from your process to theirs and land nowhere in between.

No object in a bucket, no signed URL with a seven-day life, no copy to forget about. When the stream closes, the export is wherever the customer put it and nowhere else.

An export used to be a file you stored. Now it's a stream you answer.