Define a canonical PostgreSQL configuration path for Compose and cloud startup
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start with the published Compose config (docker-compose / GHCR reference) and the .env docs that set POSTGRES_* versus ENGRAM_DATABASE_URL, then locate cloudstore.New and its PingContext call to see where the real connection is made. Also read PR #691's discussion to learn why pg_isready was rejected. Done means one validated canonical config path, URI-safe credential handling, and a fresh-volume startup test showing Compose initialization and the cloud store's connection succeed together; note the issue requires status:approved before any PR.
Written by the indexing model from the issue text.
Description
📋 Pre-flight Checks
- I have searched existing issues and this is not a duplicate
- I understand this issue needs
status:approvedbefore a PR can be opened
🔍 Problem Description
The published GHCR reference Compose configuration initializes PostgreSQL with POSTGRES_USER, POSTGRES_PASSWORD, and POSTGRES_DB, while the cloud service independently connects through ENGRAM_DATABASE_URL. cloudstore.New performs the actual PingContext.
The documented .env therefore duplicates database identity and credential information in POSTGRES_* values and in the DSN, without one canonical user-facing configuration path. This creates an observable contradiction when the two representations do not agree, particularly for URI-sensitive password values.
💡 Proposed Solution
Define one canonical, safely validated PostgreSQL configuration path for Compose initialization and the cloud service’s runtime connection.
The intended behavior should:
- make the relationship between PostgreSQL initialization values and
ENGRAM_DATABASE_URLexplicit and safely validated; - handle URI-sensitive credential values correctly when constructing or accepting a DSN;
- ensure readiness checks are not treated as proof that the runtime credentials and database target are usable;
- add a behavior-level fresh-volume startup test proving initialization and the cloud store’s actual connection path succeed together.
📦 Affected Area
Store (database, queries)
🔄 Alternatives Considered
Continue documenting POSTGRES_* and ENGRAM_DATABASE_URL as independently supplied values. This leaves database identity and credentials duplicated and does not provide a canonical or validated relationship between them.
📎 Additional Context
PR #691’s pg_isready healthcheck change was closed as not root-causal. pg_isready can report readiness without correct user or database values, whereas the actual cloud connection is established by cloudstore.New through PingContext.
This report does not claim a production incident, a local Docker reproduction, or data loss. Docker and pg_isready were unavailable locally.
- Dominant language
- Go
- Stars
- 7.1k
- Forks
- 729
- Avg merge
- 11h 17m
- Merged PRs (30d)
- 334
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Gentleman-Programming/engram
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Gentleman-Programming/engram#1899 ·
Maintainers usually reply within 1 day
-
status:needs-review type:bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Gentleman-Programming/engram#1687 ·
Maintainers usually reply within 1 day
-
priority:medium status:needs-review type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Gentleman-Programming/engram#863 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 62/100
Gentleman-Programming/engram#1900 ·
Maintainers usually reply within 1 day
-
status:needs-review type:bug
Difficulty 3/5 1-2 days Newbie friendliness 70/100
Gentleman-Programming/engram#1897 ·
Maintainers usually reply within 1 day
All issues in Gentleman-Programming/engram
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
documentation hacktoberfest priority: low skill: good first issue status: ready for dev
Difficulty 2/5 Half a day Newbie friendliness 85/100
hyperledger-labs/fabric-smart-client#2142 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
numberly/vault-db-injector#107 ·
Maintainers usually reply within 1 day
-
area/import kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
[DOC] Wrong sg_egress_ports range in the Terraform Databricks Guide for AWS Hub & Spoke with Network FirewallPossibly taken @akhil9tiet claimed this today. Opendocs
Difficulty 1/5 Under an hour Newbie friendliness 72/100
databricks/terraform-provider-databricks#6080 · 1 comment ·
Maintainers usually reply within 3 days