Skip to content

Dedupe Livesync replication and Sync from PostgreSQL docs - #430

Merged
atovpeko merged 12 commits into
mainfrom
arajkumar/improve-pg-connector-setup
Jul 31, 2026
Merged

Dedupe Livesync replication and Sync from PostgreSQL docs#430
atovpeko merged 12 commits into
mainfrom
arajkumar/improve-pg-connector-setup

Conversation

@arajkumar

@arajkumar arajkumar commented Jul 30, 2026

Copy link
Copy Markdown
Member

Describe your changes

The "Livesync replication" and "Sync from PostgreSQL" pages duplicated the same steps (source setup, publication, docker run, monitoring, sequences, cleanup) and had drifted apart. Both share the same underlying technology, so the duplication caused maintenance problems and divergence.

This PR makes the Livesync replication page the source of truth and extracts the shared content into reusable partials. Both pages now import those partials.

Shared partials added (sourced from Livesync replication):

  • Source setup: 5-provider WAL params (Self-hosted, AWS RDS, Neon, Supabase, Azure) + migration user + replication identity
  • Publication, docker run, monitor, sequence reset, cleanup, analyze
  • Console wizard (rich version with images, SSH tunneling, IDC workers)

New content added to the shared partials:

  • Note on URL-encoding special characters in postgres:// connection strings. Added an interactive component to help URL encoding.
image
  • Note on pg_hba.conf when the migration user isn't allowed by default

Bugs fixed:

  • The connector's terminal AWS RDS flow was missing the user-creation step that its Console sibling had (now uses the same shared partial)
  • Fixed two pre-existing em dashes in moved content

4 superseded partials deleted: _livesync-configure-source-database.mdx, _livesync-configure-source-database-awsrds.mdx, _migrate_live_tune_source_database_awsrds.mdx, _migrate_live_setup_enable_replication.mdx

Net: ~440 lines removed while adding content and broadening the connector page.

Affected pages

Related Issues

If there is a related issue, please add it below (just put the number after the # below, and GitHub will automatically create a link):

Issue:
https://linear.app/tigerdata/issue/CON-2058
https://linear.app/tigerdata/issue/CON-2057

Checklist before requesting a review

  • - This is ready for review. If not, raise as a draft PR
  • - I have reviewed my changes.
  • - I have confirmed the content is technically accurate.
  • - I have tested any code that is added or updated on the latest available version.
  • - I have confirmed the content is free of typos or grammar errors.
  • - I have verified all images and videos are clear and match production (or dev for unreleased features).
  • - I have checked the component kitchen sink for any visual breakage (only needed if you changed components, styles, or dependencies). A link to this PR's own preview appears under Affected pages once the build deploys.
  • - This references a feature that is public. If not, add a note and we can schedule the merge for after the feature release.

Extract shared content from the Livesync replication page into reusable
partials so both the migration page and the Sync from PostgreSQL connector
page can import them instead of duplicating content:

- _livesync-source-setup.mdx: 5-provider WAL params + migration user
  (SUPERUSER note, Azure carve-out, all-schemas grant) with pg_hba.conf note
- _livesync-connection-string-note.mdx: URL-encoding note for postgres:// URIs
- _livesync-replication-identity.mdx: auto-generating replica identity SQL
- _livesync-publication.mdx: CREATE PUBLICATION, add/drop, publish_via_partition_root
- _livesync-docker-run.mdx: docker run daemon + flag table
- _livesync-monitor.mdx: logs, table sync state, COPY progress, lag queries
- _livesync-sequence-reset.mdx: copy-sequences command + manual SQL
- _livesync-cleanup.mdx: drop sub-command + WAL retention warning
- _livesync-analyze.mdx: vacuumdb --analyze
- _livesync-console-wizard.mdx: rich Console wizard steps (images, SSH tunneling,
  IDC workers, publication selection)
…ntent

_livesync-console.mdx: drop inline source-tuning tabs and connection-string
duplication; import _livesync-source-setup, _livesync-connection-string-note,
and the new _livesync-console-wizard partial for the wizard steps.

_livesync-terminal.mdx: replace inline WAL/user/replication-identity,
publication, docker-run, monitor, sequence-reset, cleanup, and ANALYZE
sections with imports of the new shared partials. Retain page-specific
prerequisites, pg_dump schema migration, and hypertable conversion.
Replace inline source setup, replication identity, publication, docker run,
monitor, sequence reset, cleanup, and analyze sections with imports of the
new shared partials. Replace the lean inline Console tab with the rich
_livesync-console-wizard partial. Add the connection-string note after the
Prerequisites env-var block.

All migration-only content (roles dump, schema migration, post-sync policies,
cutover, limitations) stays inline.
These partials are fully replaced by the new shared _livesync-* partials:
- _livesync-configure-source-database.mdx → _livesync-source-setup.mdx
- _livesync-configure-source-database-awsrds.mdx → _livesync-source-setup.mdx
- _migrate_live_tune_source_database_awsrds.mdx → _livesync-source-setup.mdx
- _migrate_live_setup_enable_replication.mdx → _livesync-replication-identity.mdx

Verified zero remaining importers before deletion.
@vercel

vercel Bot commented Jul 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tiger-data-docs Ready Ready Preview Jul 31, 2026 12:24pm

@CLAassistant

CLAassistant commented Jul 30, 2026

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ atovpeko
❌ arajkumar
You have signed the CLA already but the status is still pending? Let us recheck it.

@arajkumar arajkumar changed the title Improve postgres connector setup docs Dedupe Livesync replication and Sync from PostgreSQL docs Jul 30, 2026
@arajkumar
arajkumar requested review from VineethReddy02 and atovpeko and removed request for VineethReddy02 July 30, 2026 10:24
Replace the inline examples (@ -> %40, etc.) with an interactive
PasswordEncoder component that URL-encodes a pasted password live using
encodeURIComponent, with a copy button for the result.

The note text is trimmed to the essential guidance: encode special chars
or use keyword=value format; see libpq docs.
Add a descriptive hint below the input explaining what the box does
('Enter your password to get the URL-encoded version'). Also note that
URI-safe characters like *, ~, ., -, _ are intentionally left as-is,
since encodeURIComponent correctly skips unreserved characters per RFC 3986.
Show a working keyword=value example with host, port, dbname, user, and
a single-quoted password containing special characters, so users see
directly how to avoid URL-encoding.
@arajkumar
arajkumar marked this pull request as ready for review July 30, 2026 10:41
@arajkumar
arajkumar requested review from a team and alejandrodnm July 30, 2026 10:41
@github-actions

Copy link
Copy Markdown

✅ Checklist Complete

Thank you for taking the time to properly review your PR! All checklist items are complete.

Reorder so the flow is: problem statement, encoding tool, then the
keyword=value alternative. Reads more naturally than introducing the
alternative before the encoder.

Signed-off-by: Arunprasad Rajkumar <ar.arunprasad@gmail.com>
<Callout variant="note">
When using the `postgres://user:pass@host:port/db` URI format, URL-encode special characters in the password to avoid URL-parsing errors.

<PasswordEncoder client:load />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know if I like us asking customers to put their database credentials here. I know it's optional and we don't store it.

At least lets add some alternatives, like how to encode it yourself on the terminal.

@arajkumar arajkumar Jul 30, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about this? Also added a note on password store
image

Add Python, Node.js, and jq one-liner commands for users who prefer not
to paste their password into a form. All three run locally; nothing is
sent anywhere.
Pass the password as argv[1] (single-quoted) instead of embedding it in
the inline script. Avoids escaping issues with special characters in the
script string itself.
Move the 'nothing is sent or stored' note up to sit directly after the
PasswordEncoder, where users actually paste their password, instead of
burying it in the terminal-alternatives paragraph.
@atovpeko
atovpeko merged commit b803d56 into main Jul 31, 2026
6 of 7 checks passed
@atovpeko
atovpeko deleted the arajkumar/improve-pg-connector-setup branch July 31, 2026 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants