Skip to content

Amazon Neptune

Neptune is AWS’s managed graph database. Drivine connects via the Bolt protocol with two authentication modes.

StatelessGraphObjectManager, @NodeStamp and the stamps edges writes have not been run against Neptune as of 0.1.0, and neither have grouped reads. Loading and querying are as before.

IAM SigV4 authentication (recommended for production):

database:
datasources:
graph:
type: NEPTUNE
host: your-cluster.us-east-1.neptune.amazonaws.com
port: 8182
region: us-east-1
neptune-auth: IAM

Requires AWS credentials available via the standard AWS credential chain (~/.aws/credentials, environment variables, IAM role, etc.) and the AWS SDK on the classpath:

implementation 'software.amazon.awssdk:auth:2.31.3'
implementation 'software.amazon.awssdk:regions:2.31.3'
implementation 'software.amazon.awssdk:http-client-spi:2.31.3'

Tokens are automatically refreshed before expiry.

No authentication (SSH tunnel for development):

database:
datasources:
graph:
type: NEPTUNE
host: localhost
port: 8182
neptune-auth: NONE

Use with an SSH tunnel to a Neptune cluster that has IAM auth disabled:

Terminal window
ssh -N -o ServerAliveInterval=60 -L 8182:your-cluster.neptune.amazonaws.com:8182 ec2-user@bastion-ip

Known limitations:

  • No date() function — use string dates or datetime() for temporal properties
  • No list/array property values — annotate collection fields with @JsonPacked to store as JSON strings
  • collSortMaps uses {key: 'prop', order: 'asc'} syntax (differs from APOC)