Skip to content

Bring server/'s docs in line with this fork's mandatory auth - #12

Merged
Ho1yShif merged 1 commit into
mainfrom
fix/server-docs-mandatory-auth
Jul 30, 2026
Merged

Bring server/'s docs in line with this fork's mandatory auth#12
Ho1yShif merged 1 commit into
mainfrom
fix/server-docs-mandatory-auth

Conversation

@Ho1yShif

@Ho1yShif Ho1yShif commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

server/.env.example and server/README.md are inherited from upstream and never got updated when this fork made GRAPHITI_API_KEY mandatory. Neither mentioned it, so following them gave you a server that exits at startup with a pydantic error and no hint which file was wrong.

server/README.md also told you to run zepai/graphiti:latest — upstream's image, which contains none of this fork's auth. It now builds from the root Dockerfile, matching render.yaml and docker-compose.yml.

Also in the compose snippet: ports were published on every interface alongside a placeholder key and NEO4J_PASSWORD=password, so copying it exposed Bolt write access on a shared network — now bound to 127.0.0.1. And neo4j:5.22.05.26.2, dropping the obsolete version: key.

Found running the template quality bar. Docs only — no code, no config values, no behaviour change.

Verified: compose snippet passes docker compose config with all ports on 127.0.0.1; Settings loads from the new example once OPENAI_API_KEY is filled in; the numbers in the prose match auth.py/config.py; 32 passed, 1 skipped.

🤖 Generated with Claude Code

server/.env.example and server/README.md are inherited from upstream and were
never updated when this fork made GRAPHITI_API_KEY mandatory. Neither mentioned
it, so a developer following them got a server that exits at startup with a
pydantic error and no hint of which file was wrong. Both are the first thing
someone reads when they open server/, and the root README they contradict is the
correct one.

server/README.md also told the reader to run `zepai/graphiti:latest`. That is
upstream's published image and does not contain this fork's auth code at all, so
following it produced a service with no key requirement and none of the behaviour
the root README documents. Now it builds from the repo root Dockerfile, which is
what render.yaml and docker-compose.yml already do, and the upstream image is
described as upstream's with that caveat stated.

Two smaller things fixed in the same pass, both in the compose snippet:

  - Ports were published on every interface while the snippet shipped a
    placeholder key and NEO4J_PASSWORD=password, so copying it exposed
    unmediated Bolt write access on a shared network. Bound to 127.0.0.1,
    matching docker-compose.yml.
  - neo4j:5.22.0 and the obsolete `version: '3.8'` key, replaced with 5.26.2 to
    match docker-compose.yml.

Added an auth section stating the rule once, and a pointer to the root README
for the Render path, since that is what most readers of this directory want.

Verified: the compose snippet passes `docker compose config` with its defaults
resolving and all three ports bound to 127.0.0.1; Settings loads from a .env
copied off the new server/.env.example once OPENAI_API_KEY is filled in, with
graphiti_api_key at 22 characters against the 16 minimum; every number quoted in
the prose cross-checked against auth.py and config.py (MAX_FAILED_AUTH 10,
FAILED_AUTH_WINDOW_SECONDS 60, MIN_API_KEY_LENGTH 16); 32 passed, 1 skipped.

Docs only — no code, no config values, no behaviour change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Ho1yShif
Ho1yShif merged commit 243c557 into main Jul 30, 2026
5 of 13 checks passed
@Ho1yShif
Ho1yShif deleted the fix/server-docs-mandatory-auth branch July 30, 2026 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant