📋 Pre-flight Checks
📝 Bug Description
Engram Cloud container runs with ENGRAM_CLOUD_INSECURE_NO_AUTH=1 (no auth for local dev) via docker-compose.cloud.yml. However, in cmd/engram/cloud.go the newCloudRuntime function unconditionally adds WithPrincipalProjectAuthorizer, even in insecure mode.
When a request comes in:
- No authenticator exists (insecure mode) → authenticateRequest allows it (no principal in context)
- But WithPrincipalProjectAuthorizer is set → authorizeProjectScope tries to get principal from context
- No principal exists → returns "forbidden: principal is required" (403)
🔄 Steps to Reproduce
- Clone repository main branch
- In docker-compose.cloud.yml check ENGRAM_CLOUD_INSECURE_NO_AUTH=1
- docker compose -f docker-compose.cloud.yml up -d
- Wait for both postgres and cloud services to be healthy
- engram cloud config --server http://127.0.0.1:18080
- engram cloud enroll smoke-project
- engram sync --cloud --project smoke-project
- Observe 403: forbidden: principal is required
✅ Expected Behavior
Expected: Requests succeed in insecure mode (no auth required)
Actual: 403 Forbidden
❌ Actual Behavior
Exporting memories for project "smoke-project" to cloud... enrgam: cloud: fetch manifest: status 403: forbidden: principal is required.
Operating System
Linux (Ubuntu/Debian)
Engram Version
1.19.0
Agent / Client
OpenCode
📋 Relevant Logs
Exporting memories for project "smoke-project" to cloud...
enrgam: cloud: fetch manifest: status 403: forbidden: principal is required.
💡 Additional Context
Not token provider and ENGRAM_CLOUD_INSECURE_NO_AUTH=1
📋 Pre-flight Checks
status:approvedbefore a PR can be opened📝 Bug Description
Engram Cloud container runs with ENGRAM_CLOUD_INSECURE_NO_AUTH=1 (no auth for local dev) via docker-compose.cloud.yml. However, in cmd/engram/cloud.go the newCloudRuntime function unconditionally adds WithPrincipalProjectAuthorizer, even in insecure mode.
When a request comes in:
🔄 Steps to Reproduce
✅ Expected Behavior
Expected: Requests succeed in insecure mode (no auth required)
Actual: 403 Forbidden
❌ Actual Behavior
Exporting memories for project "smoke-project" to cloud... enrgam: cloud: fetch manifest: status 403: forbidden: principal is required.Operating System
Linux (Ubuntu/Debian)
Engram Version
1.19.0
Agent / Client
OpenCode
📋 Relevant Logs
💡 Additional Context
Not token provider and ENGRAM_CLOUD_INSECURE_NO_AUTH=1