Install
cargo install faucet-cli --features sink-http faucet init --sink http
# Cargo.toml — use it as a library cargo add faucet-sink-http
Starter config
sink:
type: http
config:
url: "" # REQUIRED — Target endpoint URL.
# method: "POST" # HTTP method (default: POST).
# auth: { type: none } # one of: none, bearer, basic, custom
# --- Alternative variants — replace the block above with one of these ---
# type: bearer
# config:
# token: "" # REQUIRED
#
# type: basic
# config:
# username: "" # REQUIRED
# password: "" # REQUIRED
#
# type: custom
# config:
# headers: {} # REQUIRED
# batch_mode: { type: Individual } # one of: Individual, Array
# --- Alternative variants — replace the block above with one of these ---
# type: Array
# max_retries: 0 # Number of retries on transient failures (default: 0).
# concurrency: 10 # Maximum number of concurrent requests in Individual mode (default: 10).
# batch_size: 1000 # Maximum number of records sent per outbound HTTP request.
# timeout: 30 # Per-request timeout in seconds.
# connect_timeout: 10 # Timeout for establishing a connection, in seconds.
Capabilities
| Delivery | At-least-once |
|---|---|
| Write modes | append |
| Exactly-once writes | No |
| Schema evolution | No |
| Scoped cleanup | No |
| Staged bulk load | No |
| Run rollback | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
urlrequired | string | — | Target endpoint URL. |
method | string | POST | HTTP method (default: POST). |
auth | object | type: none | Authentication: either inline ({ type, config }) or a { ref: <name> } pointer to a shared provider in the CLI's top-level auth: catalog. Defaults to no authentication. |
batch_mode | object | type: Individual | How to batch records in requests (default: Individual). |
max_retries | integer | 0 | Number of retries on transient failures (default: 0). A POST / PATCH is not retried after a timeout or a connection dropped mid-response, since the endpoint may already hold it. |
concurrency | integer | 10 | Maximum number of concurrent requests in Individual mode (default: 10). Above 1 the records of a page are sent in parallel and can reach the endpoint out of order — use 1 for a last-write-wins endpoint that receives several updates to one entity per page. |
batch_size | integer | 1000 | Maximum number of records sent per outbound HTTP request. Defaults to DEFAULT_BATCH_SIZE (1000). |
timeout | integer | 30 | Per-request timeout in seconds. Covers one HTTP request (a stalled peer fails the request, so retries and resilience can act), not the whole run. null disables it. Defaults to 30. |
connect_timeout | integer | 10 | Timeout for establishing a connection, in seconds. null disables it. Defaults to 10. |
Get started
Your first pipeline runs in five minutes.
Install the CLI, scaffold a config, and move real data — nothing external to stand up.
curl -LsSf https://github.com/faucet-hq/faucet-stream/releases/latest/download/faucet-cli-installer.sh | sh brew install faucet-hq/faucet-stream/faucet-cli