Skip to content

QUA-1806: Document PostgreSQL fork support, schema config, and Snowflake CSID#1127

Open
RafaelOsiro wants to merge 1 commit into
mainfrom
qua-1806-datastore-connectivity-text-only
Open

QUA-1806: Document PostgreSQL fork support, schema config, and Snowflake CSID#1127
RafaelOsiro wants to merge 1 commit into
mainfrom
qua-1806-datastore-connectivity-text-only

Conversation

@RafaelOsiro
Copy link
Copy Markdown
Contributor

@RafaelOsiro RafaelOsiro commented May 21, 2026

Overview

Documents the text-only items from QUA-1806 "Datastore Connectivity" that don't require UI screenshots: PostgreSQL fork compatibility, custom schema configuration for self-hosted deployments, and the Snowflake Connection String Identifier (CSID).

IAM Role authentication for S3, Athena, and Redshift is intentionally out of scope for this PR. Those changes need screenshots of the connection form and will land in a follow-up branch.

Key Changes

  • Self-hosted deployment: New Database Configuration (Optional) section under the Helm setup. Covers two topics:
    • PostgreSQL fork compatibility: notes that the control plane supports stock PostgreSQL and common forks (EDB Postgres Advanced Server, Yugabyte, Aurora, Greenplum) without extra configuration, including the reserved-word handling needed for EPAS.
    • Custom PostgreSQL schema: documents the POSTGRES_SCHEMA environment variable (default public), how Alembic creates the schema and sets search_path automatically, and when an operator might want to set it (shared PostgreSQL instance, internal naming conventions).
  • Snowflake datastore: New Identifying Qualytics in Snowflake section explaining that every Snowflake JDBC connection is tagged with application=Qualytics, so customers can filter Qualytics activity in QUERY_HISTORY, LOGIN_HISTORY, and Snowsight's Client Application column. No customer-side configuration is required.
  • Polish: removed em-dashes across self-hosted-deployment.md, aligned domain placeholders to your-company.qualytics.io, and replaced internal jargon (for example, encoded fingerprint to signed request that uniquely identifies your deployment).

Pages to Test

… Snowflake CSID

- Self-hosted deployment: add "Database Configuration (Optional)" section
  covering PostgreSQL fork compatibility (EPAS, Yugabyte, Aurora, Greenplum)
  and the POSTGRES_SCHEMA environment variable for custom schema layouts.
- Snowflake datastore: add "Identifying Qualytics in Snowflake" section
  describing the application=Qualytics JDBC parameter that surfaces under
  Snowflake's Client Application monitoring views.
- Polish: remove em-dashes, align placeholders (your-company.qualytics.io),
  and replace internal jargon with clearer wording.
@RafaelOsiro RafaelOsiro added the documentation Improvements or additions to documentation label May 21, 2026
@RafaelOsiro RafaelOsiro self-assigned this May 21, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 21, 2026

Greptile Summary

This PR adds documentation for three text-only features from QUA-1806: PostgreSQL fork compatibility and custom schema configuration for self-hosted deployments, and Snowflake Connection String Identifier (CSID) tagging. It also polishes self-hosted-deployment.md by removing em-dashes and aligning domain placeholders.

  • self-hosted-deployment.md: New Database Configuration (Optional) section documents supported PostgreSQL forks (EPAS, Yugabyte, Aurora, Greenplum) and the POSTGRES_SCHEMA environment variable; em-dash punctuation is replaced throughout with periods/commas.
  • snowflake.md: New Identifying Qualytics in Snowflake section explains the application=Qualytics JDBC tag visible in QUERY_HISTORY, LOGIN_HISTORY, and Snowsight; two invalid JSON placeholders (connection-id) are replaced with a valid integer sample value (123).

Confidence Score: 4/5

Safe to merge — changes are documentation-only with no runtime impact.

Both files contain purely additive documentation. The new Database Configuration section omits a concrete Helm YAML snippet for setting POSTGRES_SCHEMA, which may leave operators without a clear reference, and two list items are missing trailing periods. None of these affect correctness of the platform itself.

docs/deployments/self-hosted-deployment.md — the POSTGRES_SCHEMA subsection and two list items near the license workflow would benefit from a quick pass.

Important Files Changed

Filename Overview
docs/deployments/self-hosted-deployment.md Adds a new "Database Configuration (Optional)" section documenting PostgreSQL fork support and the POSTGRES_SCHEMA env var; applies em-dash → punctuation polish throughout. Two trailing periods are missing and the POSTGRES_SCHEMA subsection omits a concrete Helm YAML example.
docs/source-datastore/add-datastores/snowflake.md Adds a new "Identifying Qualytics in Snowflake" section about the application=Qualytics JDBC tag; fixes two invalid JSON placeholders (connection-id → 123). No issues found.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Self-Hosted Deployment] --> B[Step 3: Deploy via Helm Chart]
    B --> C[Database Configuration Optional]
    C --> D[PostgreSQL Fork Compatibility\nEPAS · Yugabyte · Aurora · Greenplum]
    C --> E[Custom Schema\nPOSTGRES_SCHEMA env var\ndefault: public]
    E --> F[Alembic auto-creates schema\nand sets search_path]

    G[Snowflake Datastore] --> H[Identifying Qualytics in Snowflake]
    H --> I[JDBC tag: application=Qualytics]
    I --> J[QUERY_HISTORY]
    I --> K[LOGIN_HISTORY]
    I --> L[Snowsight Client Application column]
Loading

Reviews (1): Last reviewed commit: "docs(deployments): document Postgres for..." | Re-trigger Greptile

1. Navigate to **Settings > Status** (requires **Admin** or **Manager** role)
2. Click **Generate License Request** — this creates an encoded fingerprint of your deployment
3. Copy the request string and send it to your [Qualytics account manager](mailto:hello@qualytics.ai) via a secure channel (e.g., [Bitwarden Send](https://bitwarden.com/products/send/) never plain email)
2. Click **Generate License Request**. This creates a signed request that uniquely identifies your deployment
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.

P2 Missing period at the end of the list item, inconsistent with the surrounding numbered steps that all terminate with a period.

Suggested change
2. Click **Generate License Request**. This creates a signed request that uniquely identifies your deployment
2. Click **Generate License Request**. This creates a signed request that uniquely identifies your deployment.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!


- A warning appears when the license expires **within 30 days** (the date turns red with a warning icon)
- **Renew before expiration** to avoid service interruption — if a license expires, dataplane operations stop until a new license is applied
- **Renew before expiration** to avoid service interruption. If a license expires, dataplane operations stop until a new license is applied
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.

P2 Missing period at the end of the sentence, inconsistent with surrounding bullet items in this section.

Suggested change
- **Renew before expiration** to avoid service interruption. If a license expires, dataplane operations stop until a new license is applied
- **Renew before expiration** to avoid service interruption. If a license expires, dataplane operations stop until a new license is applied.

Comment on lines +176 to +178
**Custom PostgreSQL schema**

The control plane reads the `POSTGRES_SCHEMA` environment variable (default `public`) to decide where its tables live. Alembic migrations automatically run `CREATE SCHEMA IF NOT EXISTS` and set the session `search_path`, so no manual schema creation is required. Set this variable through your Helm values when sharing one PostgreSQL instance across multiple Qualytics environments or when matching internal naming conventions.
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.

P2 No YAML example for setting POSTGRES_SCHEMA in Helm values

The section tells operators to "Set this variable through your Helm values" but does not show what the corresponding YAML looks like. Without a concrete snippet (e.g. under global.env or an equivalent Helm key), operators configuring a shared PostgreSQL instance have no authoritative reference and may get the key name or nesting wrong on first try. A short inline example would close that gap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant