---
description: Custom attributes and types for powering up your schema
---

# Schema plugins

Q3 auto-installs a few important plugins on all its models. These help you to solve common tasks quickly, such as locking property values and auto-populating references. For more information on how each plugin works, view the "Related Projects" page.

### Schema Path Options

| Property     | Value     | Description                                                                                                                                                                                   |
| ------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `lock`       | `Boolean` | Once set, a locked property cannot be changed.                                                                                                                                                |
| `searchable` | `Boolean` | It will consider the field's value in all search queries (via `q3-core-rest`). Internally, the REST controller simply calls the "**searchBuilder**" static appended to all registered models. |
| `systemOnly` | Boolean   | Controls the value's mutability over the API.                                                                                                                                                 |

### Schema Settings Options

| Option                   | Value  | Description                                                                               |
| ------------------------ | ------ | ----------------------------------------------------------------------------------------- |
| `restify`                | String | See the "[Rest](https://3merge.gitbook.io/q3/api/core/rest)" section for more information |
| `collectionPluralName`   | String | Same as above                                                                             |
| `collectionSingularName` | String | Same as above                                                                             |

