Skip to main content

EntityIdStrategy

An id strategy which uses auto-increment integers as primary keys for all entities. This is the default strategy used by Vendure.

Signature

primaryKeyType

property

decodeId

method(id: string) => number

encodeId

method(primaryKey: number) => string

The EntityIdStrategy determines how entity IDs are generated and stored in the database, as well as how they are transformed when being passed from the API to the service layer and vice versa.

Vendure ships with two strategies: AutoIncrementIdStrategy and UuidIdStrategy, but custom strategies can be used, e.g. to apply some custom encoding to the ID before exposing it in the GraphQL API.

Info

This is configured via the entityOptions.entityIdStrategy property of your VendureConfig.

Caution

Note: changing from an integer-based strategy to a uuid-based strategy on an existing Vendure database will lead to problems with broken foreign-key references. To change primary key types like this, you'll need to start with a fresh database.

Signature

primaryKeyType

propertyT

Defines how the primary key will be stored in the database - either 'increment' for auto-increment integer IDs, or 'uuid' for a unique string ID.

encodeId

property(primaryKey: PrimaryKeyType<T>) => string

Allows the raw ID from the database to be transformed in some way before exposing it in the GraphQL API.

For example, you may need to use auto-increment integer IDs due to some business constraint, but you may not want to expose this data publicly in your API. In this case, you can use the encode/decode methods to obfuscate the ID with some kind of encoding scheme, such as base64 (or something more sophisticated).

decodeId

property(id: string) => PrimaryKeyType<T>

Reverses the transformation performed by the encodeId method in order to get back to the raw ID value.

An id strategy which uses string uuids as primary keys for all entities. This strategy can be configured with the entityIdStrategy property of the entityOptions property of VendureConfig.

Example

Ts
Signature

primaryKeyType

property

decodeId

method(id: string) => string

encodeId

method(primaryKey: string) => string
Was this chapter helpful?
Report Issue
Edited Feb 10, 2026ยทEdit this page