Skip to main content

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:

  1. It removes what deleted files left behind. A member's delete can't touch chunks.
  2. 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)

Source distribution for context-graph-spaces 0.1.0
File Size Uploaded
context_graph_spaces-0.1.0.tar.gz 26.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for context-graph-spaces 0.1.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page