Pre-flight Checks
Problem Description
Engram currently assumes a single cloud server configuration for all projects on the same local installation.
This becomes limiting when a user needs to keep projects isolated across different cloud environments or trust boundaries. For example, one local installation may contain:
project-a synced to https://cloud-a.example.test
project-b synced to https://cloud-b.example.test
Today, the cloud target is configured globally, which makes this kind of separation difficult or impossible without changing configuration between runs or maintaining separate local environments.
Proposed Solution
Add support for resolving the cloud server by project instead of relying only on a single global server setting.
One possible approach:
- keep the current global cloud server as the default
- allow optional per-project overrides
- resolve the effective cloud target at runtime using the current project
Example behavior:
engram cloud config --server https://default-cloud.example.test
engram cloud config --project project-a --server https://cloud-a.example.test
engram cloud config --project project-b --server https://cloud-b.example.test
Expected outcome:
- projects without overrides continue using the global default
- projects with overrides use their assigned server
- sync/enroll/status commands consistently resolve the same target for that project
This would help with project-level isolation while preserving backward compatibility for existing single-server users.
Affected Area
CLI (commands, flags)
Alternatives Considered
- Running separate local Engram environments per trust boundary
- Rewriting the global cloud config before each sync
- Treating this only as an authentication problem
These workarounds are operationally heavier and do not fully address project-level routing as a first-class client behavior.
Additional Context
This request is intentionally framed as client-side cloud target routing and project isolation.
It may touch config loading, runtime target resolution, and cloud-related command behavior. Backward compatibility is important:
- existing users with a single configured cloud server should not need to migrate immediately
- per-project routing should be additive
Pre-flight Checks
status:approvedbefore a PR can be openedProblem Description
Engram currently assumes a single cloud server configuration for all projects on the same local installation.
This becomes limiting when a user needs to keep projects isolated across different cloud environments or trust boundaries. For example, one local installation may contain:
project-asynced tohttps://cloud-a.example.testproject-bsynced tohttps://cloud-b.example.testToday, the cloud target is configured globally, which makes this kind of separation difficult or impossible without changing configuration between runs or maintaining separate local environments.
Proposed Solution
Add support for resolving the cloud server by project instead of relying only on a single global server setting.
One possible approach:
Example behavior:
Expected outcome:
This would help with project-level isolation while preserving backward compatibility for existing single-server users.
Affected Area
CLI (commands, flags)
Alternatives Considered
These workarounds are operationally heavier and do not fully address project-level routing as a first-class client behavior.
Additional Context
This request is intentionally framed as client-side cloud target routing and project isolation.
It may touch config loading, runtime target resolution, and cloud-related command behavior. Backward compatibility is important: