The External Secrets Enterprise product suite is a premium product.
It requires a specific subscription. Contact us for more information.
In order to use the Neo4j User Generator, you must have the Enterprise Distribution of ESO available via ESI Agent or via our Helm chart bundle
Introduction
Managing user credentials for Neo4j databases manually can be error-prone and tedious. The Neo4j User Generator for ESO allows you to dynamically create, manage, and rotate database users with native integration. This is useful when providing applications with scoped credentials to Neo4j, reducing the operational overhead of manual user management and improving security posture.Output Keys and Values
Key | Description |
---|---|
user | The generated Neo4j username |
password | The generated Neo4j password |
Parameters
Key | Default | Description |
---|---|---|
database | neo4j | The name of the Neo4j database to connect to. |
auth.uri | Required | The connection URI for the Neo4j instance. Example: bolt://neo4j.default.svc.cluster.local:7687 |
auth.basic.username | optional | Username for basic authentication. Required if auth.basic is used. |
auth.basic.password | optional | Kubernetes secret reference for the password. Required if auth.basic is used. |
auth.bearer.token | optional | Kubernetes secret reference for a bearer token. Optional alternative to basic auth. |
enterprise | false | Set to true if the Neo4j instance is running in Enterprise Edition. |
user.user | Required | The username to create. Must not contain dashes (- ). |
user.suffixSize | 8 | Length of the random suffix appended to the username. If set to 0, no suffix is appended. |
user.roles | [] | List of roles to assign to the user. Only supported in Neo4j Enterprise Edition. |
user.home | optional | The home database for the user. Only supported in Neo4j Enterprise Edition. |
user.provider | native | Authentication provider for the user. Only "native" is supported. "native" provider is used for Neo4j Community |
Set up
Neo4j Database Requirements
- Your Neo4j instance must support user management. This works with the native authentication provider (
auth_provider: native
). - Neo4j Enterprise is necessary for management of user
Home
,States
andRoles
Neo4j Permissions
The admin user provided in the spec must have sufficient permissions to create and delete users in Neo4j. Typically, the built-inneo4j
admin account has the required permissions.
Supported Providers
At this moment, only thenative
Neo4j authentication provider is supported.
Authentication
Neo4j Generator supports two types of authentication:- Basic Authentication: Username and password credentials.
- Bearer Authentication: A bearer token secret.
Generator Config
ExternalSecret Config
Using the Generated Secret
Notes and Considerations
- The generator does not manage roles if the Neo4j instance is Community Edition, as role-based access control is only available in Enterprise Edition.
- The generator will create the user if it does not exist and can optionally suspend or delete the user during cleanup operations, depending on the Neo4j edition. In the Enterprise edition, users are suspended during cleanup instead of being deleted, whereas in the Community edition, users are permanently deleted.