Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Source: Singer / Meltano

The Singer source runs a Singer "tap" (data extractor) and delivers its output records into a pg_tide inbox. This gives you access to approximately 500 data sources from the Meltano Hub ecosystem — SaaS APIs, databases, file formats, and more — all flowing reliably into your PostgreSQL inbox with incremental sync state management.

Configuration

SELECT tide.relay_set_inbox(
    'hubspot-contacts',
    'crm_events',
    '{
        "source_type": "singer",
        "tap_command": "tap-hubspot",
        "tap_config": {
            "api_key": "${env:HUBSPOT_API_KEY}",
            "start_date": "2024-01-01T00:00:00Z"
        },
        "on_schema_change": "log"
    }'::jsonb
);

Configuration Reference

ParameterTypeDefaultDescription
source_typestringMust be "singer"
tap_commandstringSinger tap executable
tap_configobject{}Tap configuration
on_schema_changestring"log"Schema drift policy
state_persistencebooltruePersist STATE for incremental syncs
stream_filterarraynullSpecific streams to extract (null = all)

STATE Persistence for Incremental Syncs

Singer taps emit STATE messages containing bookmarks (last sync position). pg_tide persists these in tide.singer_state, enabling incremental syncs — on each run, only new or changed data is extracted.

Further Reading