Aller au contenu
use-cases / send-a-teammate-a-database-state / hero
PIPE · FLUX PARTAGÉS · POSTGRES

Envoyez un état de base de données à un collègue en une ligne

Un collègue tombe sur un bug que vous ne pouvez pas reproduire. Sautez le fichier. pg_dump sur votre laptop streame directement dans son psql en staging — pas d'upload, pas de lien, pas de download. Le pipe achemine les octets.

Lire la doc API Pipe
use-cases / send-a-teammate-a-database-state / flow

Un chemin pipe. Deux curl. Pas de fichier au milieu.

L'API Hoody Pipe garde un pipe non établi jusqu'à cinq minutes en attendant que l'autre côté se connecte. Quand vous êtes connectés des deux côtés, les octets traversent. Rien n'est jamais écrit sur disque côté serveur.

pipe.containers.hoody.com/dev-snapshot
PUT · ÉMETTEURvous · dev

Streamez le dump hors de pg_dump

# from your dev laptoppg_dump --format=custom dev \  | curl -T - \      https://pipe.containers.hoody.com/api/v1/pipe/dev-snapshot[INFO] Waiting for 1 receiver to connect…[INFO] Streaming to 1 receiver…[INFO] Transfer complete.

PUT (ou POST) avec un corps en streaming. Le serveur affiche des messages de statut dans votre terminal pendant que le pipe s'établit — utile pour voir quand l'autre côté s'est réellement connecté.

GET · RÉCEPTEURcollègue · staging

Tirez le dump directement dans psql

# on their staging shellcurl https://pipe.containers.hoody.com/api/v1/pipe/dev-snapshot \  | pg_restore -d staging# rows imported · staging now matches dev

GET sur le même chemin bloque jusqu'à ce que l'émetteur se connecte. Les octets que l'émetteur écrit apparaissent comme corps de la réponse. Envoyez vers pg_restore (ou psql) et le dump atterrit directement dans la base — jamais un fichier.

n=1 · fan-out par défautle pipe attend jusqu'à 5 minutes0 octet stocké côté serveur

Si vous voulez surveiller la progression sans consommer un slot de récepteur, pointez un troisième curl sur le même chemin avec ?progress et vous obtenez un dashboard HTML en direct affichant les octets transférés, la vitesse et l'ETA.

use-cases / send-a-teammate-a-database-state / steps

À quoi cela ressemble en temps réel

Les quatre mouvements pour amener une base de dev dans la staging de votre collègue sans que rien ne touche jamais le disque côté serveur.

Message Slack → DB restauréeQUATRE ÉTAPES · UN PIPE
10:14 · BUG REPORT01

Le collègue ne peut pas reproduire

« tu peux m'envoyer ta db de dev ? »

Hier cela aurait voulu dire pg_dump, bucket S3, URL présignée et un copier-coller Slack.

10:14 · PUT02

Vous streamez le dump

pg_dump dev | curl -T - …/pipe/dev-snapshot

Votre terminal affiche « Waiting for 1 receiver to connect… » et reste là. Aucun fichier n'est créé localement non plus.

10:15 · GET03

Le collègue lance le récepteur

curl …/pipe/dev-snapshot | pg_restore

Le pipe s'établit dès qu'ils se connectent. Les octets commencent à circuler de votre pg_dump directement dans leur pg_restore.

10:18 · TERMINÉ04

La staging correspond maintenant à dev

Transfer complete · 0 octet sur le serveur

L'utilisation disque côté serveur reste à zéro. Le chemin pipe oublie que le transfert a eu lieu dès que les deux côtés se déconnectent.

use-cases / send-a-teammate-a-database-state / reasons

Pourquoi un chemin bat un fichier

C'est le même nombre de commandes que vous taperiez pour un aller-retour S3 — moins le bucket, l'identifiant, l'upload, le download et le nettoyage.

PAS DE STOCKAGE

Le serveur ne retient jamais les octets

Hoody Pipe est un intermédiaire de streaming, pas un service de fichiers. Le dump existe sur votre disque et sur le leur ; entre les deux, ce ne sont que des octets en vol. Rien à nettoyer, rien à fuiter.

PAS DE GROS FICHIERS

La taille est limitée par le pipe, pas par la RAM

Pas de barre de progression d'upload à surveiller parce qu'il n'y a pas d'upload. Un dump de 40 Go avance à la vitesse que votre réseau et le pg_restore de votre collègue peuvent soutenir — le pipe se contente de transmettre.

OBSERVABLE

Ajoutez ?progress pour un dashboard en direct

Ouvrez le même chemin avec ?progress sur une troisième URL et regardez les octets transférés, la vitesse et l'ETA en temps réel. Jusqu'à 50 spectateurs par pipe, aucun ne consomme un slot de récepteur.

use-cases / send-a-teammate-a-database-state / punchline

L'état d'une base de données était une pièce jointe. Maintenant c'est un chemin.

Les fichiers sont un état au repos. Les chemins sont un état en mouvement. Hoody Pipe permet à un snapshot de base de données d'être le second — adressable, éphémère, et jamais posé sur un serveur que vous devez nettoyer plus tard.

  • pas d'upload
  • pas de download
  • pas de lien à partager
use-cases / send-a-teammate-a-database-state / replaces

Ce que cela remplace

La plupart des outils que nous utilisions pour partager une base de dev sont des reliques d'une époque où l'on ne pouvait pas streamer des octets entre deux terminaux par HTTP. Le pipe les rend tous inutiles.

  • AWS S3 + URL présignéeUn bucket, un identifiant, un upload et un lien de 24h
  • Dropbox / Google DriveConnexion, partage manuel, attente de la synchronisation
  • Uploads de fichiers SlackPlafond 30 Mo, puis « utilise un vrai lien »
  • Services de type WeTransferBarrières email, pages de pub, fenêtres de rétention floues
  • Contournements via dblink PostgresOuvrir un port sur dev pour que staging tire les lignes en direct
  • rsync via bastion SSHDeux clés SSH, un jump host et un fichier temporaire de chaque côté
use-cases / send-a-teammate-a-database-state / cta

Deux curl. Un chemin. Leur staging correspond maintenant à votre dev.

Lire le guide de l'API Pipe
use-cases / send-a-teammate-a-database-state / related

Découvrez les autres