What it provides, and who provides it
Identity stays gateway-enforced even on Enterprise: Community has no per-user roles, and per-lease database users are a follow-up, not something this connector mints quietly. A policy requiring more than
enforced identity refuses to start on a Neo4j connection.
The governed subset
One leadingMATCH with an optional WHERE, followed by exactly one of RETURN, CREATE, SET, or DELETE/DETACH DELETE — or a standalone CREATE. Parameters are positional ($0, $1, ...) and stay bound all the way to the driver. A parameter in a label or relationship-type position is refused: it would let the agent choose the label at execution time.
Everything else is refused outright: WITH, UNION, MERGE, CALL (and so every apoc.* procedure), LOAD CSV, FOREACH, UNWIND, OPTIONAL MATCH, REMOVE, whole-node assignment, function calls in RETURN, variable-length relationships, and stacked statements. A filter the subset accepts but cannot normalize — a regex, a function call, a nested expression — fails the statement instead of executing with a filter Warden did not understand.
Comments are inert by construction: what the lexer strips cannot execute, so MATCH (o:Order) // DETACH DELETE o is a read and nothing else.
Writes carry the scope too
Reads and deletes are restricted by conjoining the lease’s bindings into the filter, on every variable bound to a scoped label — a label matched under two variables with the condition on only one would still read the other’s records. Writes are restricted by what they write: aCREATE must state the lease’s value inline for every scoped label it creates, and a SET may not move a node out of scope. Anything else is refused rather than corrected, so the operation that executes is the one a reviewer approved.
Setting it up
database defaults to neo4j, which is the only database Community serves — refusing an empty value would make every Community deployment fail to start over a setting it cannot use. Set labels on any non-trivial graph; without it the catalog includes every label. Use a least-privilege role: the connector needs to read and write data, never to manage users or databases.
Known gaps
- Native per-lease principals. Not minted on any edition yet; Enterprise RBAC could back them in a follow-up.
- Relationship scoping is not supported.
- The subset is narrow on purpose.
MERGE, aggregations, and path queries are refused today; broadening it means proving each addition against the adversarial corpus first.