Table of Contents

Namespace Neo4j.Driver

Classes

AuthSchemes

Contains constants for identifying authentication schemes.

AuthTokenAndExpiration

Represents an auth token and its expiration.

AuthTokenManagers

This class provides common implementations of IAuthTokenManager for various types of authentication.

AuthTokens

This provides methods to create IAuthTokens for various authentication schemes supported by this driver. The scheme used must be also supported by the Neo4j instance you are connecting to.

AuthenticationException

Failed to authenticate the client to the server due to bad credentials To recover from this error, close the current driver and restart with the correct credentials

AuthorizationException

The authorization information maintained on the server has expired. The client should reconnect.

Bookmark

Identifies a point in the transactional history of the database.

When working with a casual cluster, transactions can be chained to ensure causal consistency. Causal chaining is carried out by passing bookmarks between transactions.
When a session is constructed with an initial bookmarks, the first transaction (either auto-commit or explicit) will be blocked until the server has fast forwarded to catchup with the latest of the provided initial bookmarks.
Within a session, bookmark propagation is carried out automatically and does not require any explicit signal or setting from the application.
To opt out of this mechanism for unrelated units of work, applications can use multiple sessions.

BookmarkManagerConfig

The BookmarkManagerConfig record encapsulates configuration values for initializing a new default IBookmarkManager implementation. The BookmarkManagerConfig instance should be passed to an NewBookmarkManager(BookmarkManagerConfig) factory method to construct a new IBookmarkManager instance.

Bookmarks

Identifies a point in the transactional history of the database.

When working with a casual cluster, transactions can be chained to ensure causal consistency. Causal chaining is carried out by passing bookmarks between transactions.
When a session is constructed with an initial bookmarks, the first transaction (either auto-commit or explicit) will be blocked until the server has fast forwarded to catchup with the latest of the provided initial bookmarks.
Within a session, bookmarks propagation is carried out automatically and does not require any explicit signal or setting from the application.
To opt out of this mechanism for unrelated units of work, applications can use multiple sessions.

ClientCertificateProviders

This class provides static methods to create basic client certificate providers.

ClientException

A ClientException indicates that the client has carried out an operation incorrectly. The error code provided can be used to determine further detail for the problem.

Config

Use this class to configure the IDriver.

ConfigBuilder

Provides a way to generate a Config instance fluently.

ConnectionReadTimeoutException

A ConnectionReadTimeoutException indicates that the driver timed out trying to read from the network socket.

DatabaseException

A DatabaseException indicates that there is a problem within the underlying database. The error code provided can be used to determine further detail for the problem.

Duration

Represents temporal amount containing months, days, seconds and nanoseconds. A duration can hold a negative value.

EagerResult<T>

Complete, materialized result from a cypher query.

FatalDiscoveryException

There was an error that points us to a fatal problem for routing table discovery, like the requested database could not be found. This kind of errors are identified as non-transient and are not retried.

ForbiddenException

This operation is forbidden.

GraphDatabase

Creates IDriver instances, optionally letting you configure them.

InvalidBookmarkException

The provided bookmark is invalid. To recover from this a new session needs to be created.

InvalidBookmarkMixtureException

The provided bookmark is invalid. To recover from this a new session needs to be created.

LocalDate

Represents a date value, without a time zone and time related components

LocalDateTime

Represents a local date time value, without a time zone

LocalTime

Represents a local time value

MessageReaderConfig

The configuration for the driver's underlying message reading from the network.

Neo4jException

The base class for all Neo4j exceptions.

OffsetTime

Represents a time value with a UTC offset

Point

Represents a single three-dimensional point in a particular coordinate reference system.

ProtocolException

There was a bolt protocol violation of the contract between the driver and the server. When seen this error, contact driver developers.

Query

An executable query, i.e. the queries' text and its parameters.

QueryConfig

Configuration for running queries using the simplified api.

QueryConfig<T>

Configuration for running queries using the simplified API.

ResultConsumedException

The result has already been consumed either by explicit consume call, or by termination of session or transaction where the result was obtained. Once a result is consumed, the records in the result is not accessible anymore.

ResultCursorExtensions

Extension methods for IResultCursor

SecurityException

Failed to connect the driver to the server due to security errors When this type of error happens, recreation of the driver might be required.

ServerAddress

A server address consists of Host and Port. This address specifies where the driver to find the server.

ServiceUnavailableException

A ServiceUnavailableException indicates that the driver cannot communicate with the cluster.

SessionConfig

The interface that defines options applicable to session constructions. It could be populated by the provided builder-style methods. The default SessionConfig defines a Write session with the server default database using default fetch size specified in FetchSize.

SessionConfigBuilder

The builder to build a SessionConfig.

SessionExpiredException

A SessionExpiredException indicates that the session can no longer satisfy the criteria under which it was acquired, e.g. a server no longer accepts write requests. A new session needs to be acquired from the driver and all actions taken on the expired session must be replayed.

StatementArgumentException

A generic argument error has occurred. To recover from this a new session needs to be created.

TemporalValue

Base class for temporal values

TokenExpiredException

The provided token has expired. The current driver instance is considered invalid. It should not be used anymore. The client must create a new driver instance with a valid token.

TransactionClosedException

The exception that is thrown when calling CommitAsync() or RollbackAsync() on an IAsyncTransaction that has already been closed.

TransactionConfig

Configuration object containing settings for explicit and auto-commit transactions. Leave the fields unmodified to use server side transaction configurations.

TransactionConfigBuilder

The builder to create a TransactionConfig

TransactionNestingException

An attempt to BeginTransaction has been made before the sessions existing transaction has been consumed or rolled back. e.g. An attempt to nest transactions has occurred. A session can only have a single transaction at a time.

TransactionTerminatedException

The exception that is thrown when trying to further interact with a terminated transaction. Transactions are terminated when they incur errors.
If created by the driver the Code will be null.

TransientException

A TransientException signals a failed operation that may be able to succeed if this operation is retried without any intervention by application-level functionality. The error code provided can be used to determine further details for the problem.

TrustManager

This is the base class all built-in or custom trust manager implementations should be inheriting from. Trust managers are the way that one could customise how TLS trust is established.

TypeException

An error occurred related to data typing.

UnknownSecurityException

An unknown security error occurred.

UnsupportedFeatureException

The exception that is thrown when calling an operation in the driver which uses a server feature that is not available on the connected server version.

ValueExtensions

A collection of extensions to process values streamed back via Bolt.

ValueOverflowException

A value retrieved from the database cannot be represented with the type to be converted, and will cause working with a modified data.

ValueTruncationException

A value retrieved from the database needs to be truncated for this conversion to work, and will cause working with a modified data.

Zone

This abstract class represents a time zone that's usable by ZonedDateTime type. A time zone can be identified either by its offset (in seconds) from UTC or its IANA/Windows time zone identifiers. You can get corresponding instances of Zone by using its Of(int) or Of(string) members.

ZoneId

Represents a time zone specified by its time zone identifier.

ZoneOffset

Represents a time zone specified by its offset from UTC.

ZonedDateTime

Represents a date time value with a time zone, specified as a UTC offset

Interfaces

IAsyncQueryRunner

Common interface for components that can execute Neo4j queries.

IAsyncSession

A live session with a Neo4j instance. Sessions serve a role in transaction isolation and ordering semantics. Within a session, transactions run sequentially one after another. Session objects are not thread safe, if you want to run concurrent operations against the database, simply create multiple session objects.

IAsyncTransaction

Represents a transaction in the Neo4j database.

IAuthToken

An authentication token is used to authenticate with a Neo4j instance. It usually contains a Principal, for instance a username, and one or more Credentials, for instance a password. See AuthTokens for available types of IAuthTokens.

IAuthTokenManager

Common interface for components that can provide auth tokens. For pre-baked implementations of this interface, see AuthTokenManagers.

IBookmarkManager

The IBookmarkManager interface is intended for implementation by classes that provide convenient interfacing with Bookmarks in both the driver and user code.

IBookmarkManagerFactory

The IBookmarkManagerFactory interface is intended for classes that construct instances of an IBookmarkManager implementation.

IClientCertificateProvider

Provides a client certificate to the driver for mutual TLS.

The driver will call GetCertificateAsync() to get the latest certificate to use for new connections.

The certificate is only used as a second factor for authentication authenticating the client. The DBMS user still needs to authenticate with an authentication token.

All implementations of this interface must be thread-safe and non-blocking for caller threads. For instance, IO operations must not be done on the calling thread.

Note that the work done in the methods of this interface count towards the connectionAcquisition. Should fetching the certificate be particularly slow, it might be necessary to increase the timeout.
IConfiguredQuery<TIn, TOut>

A query that can no longer be configured.

ICounters

Represents the changes to the database made as a result of a query being run.

IDatabaseInfo

Provides information about the database that processed the query.

IDriver

The IDriver instance maintains the connections with a Neo4j database, providing an access point via the IAsyncSession method.

IEntity

Represents an Entity in the Neo4j graph database. An Entity could be a Node or a Relationship.

IExecutableQuery<TIn, TOut>

Exposes methods for configuring and executing a driver-level query.

IGqlStatusObject

This is a preview API, This API may change between minor revisions.
The GQL-status object as defined by the GQL standard. Returned by GqlStatusObjects

IInputPosition

An input position refers to a specific character in a query.

ILogger

The new ILogger differs from the legacy one in the message format the logging methods are accepting. In ILogger, each logging method accepts a message which specifies how the message would be formatted and one or many arguments that are used to replace placeholders in the message string. The following example shows a simplified version of how the ILogger is used in this driver:

logger.Info("Hello {0}, {1}", "Alice", "Bob");
INode

Represents a Node in the Neo4j graph database.

INotification

Representation for notifications found when executing a query. A notification can be visualized in a client pinpointing problems or other information about the query.

INotificationsConfig

Marker interface for configuration objects of notifications.

Notification configuration allows the driver to specify which notification categories or severities to ignore when analyzing queries.

IPath

A Path is a directed sequence of relationships between two nodes. This generally represents a traversal or walk through a graph and maintains a direction separate from that of any relationships traversed. It is allowed to be of size 0, meaning there are no relationships in it. In this case, it contains only a single node which is both the start and the end of the path.

IPlan

This describes the Plan that the database planner produced and used (or will use) to execute your query. This can be extremely helpful in understanding what a query is doing, and how to optimize it. For more details, see the Neo4j Manual. The plan for the query is a tree of plans - each sub-tree containing zero or more child plans. The query starts with the root plan. Each sub-plan is of a specific OperatorType, which describes what that part of the plan does - for instance, perform an index lookup or filter results. The Neo4j Manual contains a reference of the available operator types, and these may differ across Neo4j versions.

IProfiledPlan

This is the same as a regular IPlan - except this plan has been executed, meaning it also contains detailed information about how much work each step of the plan incurred on the database.

IRecord

A record contains ordered key and value pairs

IReducedExecutableQuery<TOut>

A query that has been configured fully and now can only be executed.

IRelationship

Represents a Relationship in the Neo4j graph database.

IResultCursor

Provides access to the result as an asynchronous stream of IRecords. The records in the result is lazily retrieved and can be visited only once in a sequential order.

IResultSummary

The result summary of running a query. The result summary interface can be used to investigate details about the result, like the type of query run, how many and which kinds of updates have been executed, and query plan and profiling information if available. The result summary is only available after all result records have been consumed. Keeping the result summary around does not influence the lifecycle of any associated session and/or transaction.

IRotatingClientCertificateProvider

This interface allows for the implementation of a client certificate provider that can be updated with new certificates.

IServerAddressResolver

Used by routing driver to resolve the initial address used to create the driver. Such resolution happens: 1) during the very first rediscovery when driver is created. 2) when all the known routers from the current routing table have failed and driver needs to fallback to the initial address.

IServerInfo

Provides basic information of the server where the cypher query was executed.

ITlsNegotiator

Defines a method that negotiates a TLS connection.

Enums

AccessMode

Used by driver to route a cypher query to a write server or a read server.

Category

Used In conjunction with Severity to filter which INotifications will be sent in Notifications.

Can be used in WithNotifications(Severity?, Category[], Classification[]) and WithNotifications(Severity?, Category[], Classification[]).

CertificateTrustRule

Rules for how to validate a server certificate.

Classification

Severity to filter which IGqlStatusObject and INotifications will be sent in GqlStatusObjects and Notifications .
Can be used in WithNotifications(Severity?, Category[], Classification[]) and WithNotifications(Severity?, Category[], Classification[]).

EncryptionLevel

Control the level of encryption to require.

NotificationCategory

Represents the category of server notifications surfaced by INotification.
Used in conjunction with NotificationSeverity.

NotificationClassification

This is a preview API, This API may change between minor revisions.
Represents the classification of server notifications surfaced by IGqlStatusObject.
Used in conjunction with NotificationSeverity.

NotificationSeverity

Represents the severity of server notifications surfaced by INotification.
Used in conjunction with NotificationCategory.

QueryType

The type of a query.

RoutingControl

Used for specifying which members of a neo4j cluster will process the workload.
default: Writers

Severity

Used In conjunction with Category to filter which INotifications will be sent in Notifications.

Can be used in WithNotifications(Severity?, Category[], Classification[]) and WithNotifications(Severity?, Category[], Classification[]).

ZonedDateTime.AmbiguityReason

Used by the driver to explain the cause of a ZonedDateTime's Ambiguous being true.

Delegates

NegotiateTlsDelegate

A delegate that negotiates a TLS connection.