context-graph-spaces
The Enterprise edition of Context Graph: memory for many users on one shared, licensed Memgraph. Each user gets a personal space, and teams get shared spaces. Memgraph Enterprise enforces the isolation through multi-tenancy, role-based access control and label- and property-based access control. Our code doesn't filter.
The Community edition (one user, one database) doesn't need this package and doesn't change when it's installed. A user's config file selects Enterprise explicitly:
edition = "enterprise"
[memgraph]
url = "bolt://memgraph.corp:7687"
user = "ante" # your Memgraph login is your identity
password = "..."
For admins: provisioning
Spaces are declared in a spec file and applied idempotently:
members = ["ante", "bob"]
personal_memory_limit_mb = 2048
[spaces.payments]
members = ["ante", "bob"]
memory_limit_mb = 4096
# labels = [...] # what members may write; defaults to curated memory
# edge_types = [...]
export MEMGRAPH_URL=bolt://memgraph.corp:7687 MEMGRAPH_USER=<admin> MEMGRAPH_PASSWORD=...
context-graph-spaces plan spaces.toml # what would change
context-graph-spaces apply spaces.toml # make it so; prints one-time setup lines for new logins
What apply maintains:
| Object | Name | Who |
|---|---|---|
| Personal database | u_<login> |
its owner (main database), plus nobody else |
| Shared database | space_<name> |
members: read everything, write only the spec's labels |
| Roles | cg_u_<login>_<hash>, space_<name>_member_<hash>, cg_worker_<hash> |
named after what they grant |
| Service login | cg_service |
writes Chunks and entities in shared spaces |
| Tenant profiles | cg_<mb>mb |
memory caps from the spec |
Removing someone from the spec revokes their access. Removing a space revokes
access to it. Users and databases are only dropped with --prune. Only objects
with the u_, space_ and cg_ prefixes are ever touched.
The shared-space worker
Members can write only curated memory into a shared space. The derived graph
there (chunks, entities, relations, and the embeddings recall uses) is written by
one service login, cg_service. Run the worker next to apply, with the
password apply printed once:
export CG_SERVICE_PASSWORD=...
context-graph-spaces reconcile spaces.toml --watch # one pass every 30s
Each pass, for each shared space, it does two things:
- It removes what deleted files left behind. A member's delete can't touch chunks.
- It reconciles changed memory files with GLiNER2 under the space's ontology. No LLM is involved.
Personal spaces keep reconciling locally, as in Community.
Tests
The tests run end-to-end against a licensed Memgraph. The licence is read from
MEMGRAPH_ENTERPRISE_LICENSE and MEMGRAPH_ORGANIZATION_NAME (the repo's .env
locally, secrets in CI):
./scripts/dev-memgraph.sh test-enterprise
Metadata
Release files for context-graph-spaces 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| context_graph_spaces-0.1.0.tar.gz | 26.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| context_graph_spaces-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.4 kB
Release files / context_graph_spaces-0.1.0.tar.gz
| Download URL | context_graph_spaces-0.1.0.tar.gz |
|---|---|
| Size | 26.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44f58d58222250033478385ac672edad0037be597a22a631b567774be34e689f
|
|
BLAKE2b-256 checksum How to use checksums |
83ae9902b64a1f83fbb16b2fcffd411917faf059bf8506628ed17e4d1c96dcfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / context_graph_spaces-0.1.0-py3-none-any.whl
| Download URL | context_graph_spaces-0.1.0-py3-none-any.whl |
|---|---|
| Size | 19.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
afb3ce1f0bf1d20de40e6cdc42345171e20d0d87b48056c73a91f4c50727f488
|
|
BLAKE2b-256 checksum How to use checksums |
79acf1d22448019692df1f49b6e9342584321160d16a6513f3fc415d2a3dc37d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|