Neo4j
Neo4j
Scan Neo4j node labels and relationship structure for graph data.
- Category
- Graph Databases
- Source type
- NEO4J
- Produces
- label
Graph databases hold relationships — customers to accounts, people to organisations, identities to devices. That makes the properties on those nodes some of the most identity-rich data in an estate.
What you need to connect
A Bolt or Neo4j URI (bolt://, neo4j://, neo4j+s:// for Aura), a
database name, and — unless the instance is unauthenticated — a username and
password. A read-only role is sufficient.
What Classifyre reads
One asset per node label, whose content is a sample of the properties on nodes with that label. Scope by label allow- and denylist, with a cap on how many label assets a run produces.
When relationship extraction is enabled, the relationships between labels are resolved and recorded as links, so the shape of the graph is visible alongside its contents.
Metadata on every asset
Asset kind · label
| Field | Type | Always present | What it is |
|---|---|---|---|
| label | string | Yes | Node label |
| database | string | Yes | Database name |
| node_count | integer | No | Number of nodes with this label |
| sample_property_keys | string[] | No | Sampled property keys present on nodes with this label |
Lineage
Lineage
This source records no lineage. Nothing in the system it reads describes data moving from one place to another, so no FLOW edges are produced. Related items are still linked — see Lineage & Relationships for what those links mean and how they differ from lineage.
Worth knowing
- Only read queries are issued — the scan never writes to the graph.
- Neo4j Aura connects with a
neo4j+s://URI and needs no extra TLS configuration.
Configuration
Beyond the fields below, every source also has the settings shared by all of them: the sampling strategy, the detectors to run, the scan schedule, and the compute limits for its scan jobs.
Required
Without these, the source will not save.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| required | object | Yes | Neo4j connection endpoint. Accepts bolt://, neo4j://, or neo4j+s:// URIs.no extra properties | — |
| database | string | No | Target database name (defaults to "neo4j"). Multi-database requires Neo4j 4.0+. | — |
| uri | string | Yes | Bolt or Neo4j URI (e.g. bolt://localhost:7687 or neo4j+s://abc123.databases.neo4j.io) | — |
Secrets
Stored encrypted and never shown again after you save them. See Configuration & Fields.
This section depends on which authentication method you pick — one of the following applies.
Neo4j Username Password
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| username | string | Yes | Neo4j username (typically "neo4j") | — |
| password | string | Yes | Neo4j password | — |
Neo4j No Authentication
Secret fields · Neo4j No Authentication: none for this source.
Optional
Everything you can tune. Sensible defaults apply when you leave them alone.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| optional | object | No | —no extra properties | — |
| connection | object | No | Neo4j driver connection tuning options.no extra properties | — |
| connection.connection_timeout_ms | integer | No | Driver connection timeout in milliseconds.min 1000 | 30000 |
| connection.encrypted | boolean | No | Force encrypted connection (overrides URI scheme detection). | — |
| connection.max_connection_pool_size | integer | No | Maximum number of connections in the driver pool.min 1 | 10 |
| connection.trust_strategy | enum | No | Certificate trust strategy. TRUST_ALL_CERTIFICATES is useful for self-signed certs in dev. Allowed: TRUST_ALL_CERTIFICATES, TRUST_SYSTEM_CA_SIGNED_CERTIFICATES | — |
| scope | object | No | Controls which node labels and relationships are included.no extra properties | — |
| scope.exclude_labels | array | No | Denylist of node labels to skip (case-sensitive). | — |
| scope.exclude_labels[] | string | No | — | — |
| scope.include_labels | array | No | Allowlist of node labels to scan. If empty, all labels are included. | — |
| scope.include_labels[] | string | No | — | — |
| scope.include_relationships | boolean | No | When true, relationship edges between labels are resolved and stored as asset links. | true |
| scope.node_limit_per_label | integer | No | Maximum number of assets (node labels) to emit per extraction run.min 1 | — |