---
lang: en
title: 'API docs: repository-tests.crudfeatures'
keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI
sidebar: lb4_sidebar
editurl: https://github.com/loopbackio/loopback-next/tree/master/packages/repository-tests
permalink: /doc/en/lb4/apidocs.repository-tests.crudfeatures.html
---

<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@loopback/repository-tests](./repository-tests.md) &gt; [CrudFeatures](./repository-tests.crudfeatures.md)

## CrudFeatures interface

List of flags describing behavior specific to different connectors and repository implementations. These flags are used by the test suite to tweak assertions and skip tests for scenarios not supported by some implementations.

**Signature:**

```typescript
export interface CrudFeatures 
```

## Properties

<table><thead><tr><th>

Property


</th><th>

Modifiers


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

[emptyValue](./repository-tests.crudfeatures.emptyvalue.md)


</td><td>


</td><td>

undefined \| null


</td><td>

The value used by the database to store properties set to `undefined`<!-- -->. Typically, SQL databases store both `undefined` and `null` as `null`<!-- -->.

Default: `undefined`


</td></tr>
<tr><td>

[freeFormProperties](./repository-tests.crudfeatures.freeformproperties.md)


</td><td>


</td><td>

boolean


</td><td>

Does the database (or the connector) require a fixed schema, or can it support additional (free-form) properties? SQL databases typically don't support free-form properties.

Default: `true`


</td></tr>
<tr><td>

[hasRevisionToken](./repository-tests.crudfeatures.hasrevisiontoken.md)


</td><td>


</td><td>

boolean


</td><td>

Does the connector have the revision token for replacement operations? (Cloudant)

Default: `false`


</td></tr>
<tr><td>

[idType](./repository-tests.crudfeatures.idtype.md)


</td><td>


</td><td>

'string' \| 'number'


</td><td>

What type is used for auto-generated primary keys? - SQL databases typically use auto-incremented numbers, - NoSQL databases tend to use GUID/UUID strings.

Default: `'string'`<!-- -->.


</td></tr>
<tr><td>

[supportsInclusionResolvers](./repository-tests.crudfeatures.supportsinclusionresolvers.md)


</td><td>


</td><td>

boolean


</td><td>

Does the repository provide `inclusionResolvers` object where resolvers can be registered?

Default: `true`


</td></tr>
<tr><td>

[supportsTransactions](./repository-tests.crudfeatures.supportstransactions.md)


</td><td>


</td><td>

boolean


</td><td>

Does the connector support using transactions for performing CRUD operations atomically and being able to commit or rollback the changes? SQL databases usually support transactions

Default: `false`


</td></tr>
</tbody></table>


