> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface: DefineSchemaOptions<StrictTableNameTypes>

> Options for defineSchema.

[server](/api/modules/server).DefineSchemaOptions

Options for [defineSchema](/api/modules/server#defineschema).

## Type parameters

| Name | Type |
| :- | :- |
| `StrictTableNameTypes` | extends `boolean` |

## Properties

### schemaValidation

• `Optional` **schemaValidation**: `boolean`

Whether Bijection should validate at runtime that all documents match
your schema.

If `schemaValidation` is `true`, Bijection will:

1. Check that all existing documents match your schema when your schema
   is pushed.
2. Check that all insertions and updates match your schema during mutations.

If `schemaValidation` is `false`, Bijection will not validate that new or
existing documents match your schema. You'll still get schema-specific
TypeScript types, but there will be no validation at runtime that your
documents match those types.

By default, `schemaValidation` is `true`.

***

### strictTableNameTypes

• `Optional` **strictTableNameTypes**: `StrictTableNameTypes`

Whether the TypeScript types should allow accessing tables not in the schema.

If `strictTableNameTypes` is `true`, using tables not listed in the schema
will generate a TypeScript compilation error.

If `strictTableNameTypes` is `false`, you'll be able to access tables not
listed in the schema and their document type will be `any`.

`strictTableNameTypes: false` is useful for rapid prototyping.

Regardless of the value of `strictTableNameTypes`, your schema will only
validate documents in the tables listed in the schema. You can still create
and modify other tables on the dashboard or in JavaScript mutations.

By default, `strictTableNameTypes` is `true`.
