> ## 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: AccessProtection

> Not exported: an exported type refers to it.

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

Not exported: an exported type refers to it.

## Properties

### isAccessModel

• **isAccessModel**: `true`

***

### accessAddress

• **accessAddress**: `undefined` | [`Address`](/api/modules/server#address)

***

### accessRules

• **accessRules**: `Record`\<`string`, [`InstalledRule`](/api/modules/server#installedrule)>

***

### discover

• **discover**: [`NativeDiscovery`](/api/modules/server#nativediscovery)

## Methods

### inspect

▸ **inspect**(`ctx`): [`AccessInspector`](/api/interfaces/server.AccessInspector)

#### Parameters

| Name | Type |
| :- | :- |
| `ctx` | [`AccessCtx`](/api/modules/server#accessctx) |

#### Returns

[`AccessInspector`](/api/interfaces/server.AccessInspector)

***

### expiry

▸ **expiry**(): [`AssignmentMutation`](/api/modules/server#assignmentmutation)

#### Returns

[`AssignmentMutation`](/api/modules/server#assignmentmutation)

***

### assignmentTableName

▸ **assignmentTableName**(): `string`

#### Returns

`string`

***

### assignmentTable

▸ **assignmentTable**(): `string`

#### Returns

`string`

***

### decide

▸ **decide**(`checks`, `subject?`): `Promise`\<\{ `allowed`: `boolean` ; `validUntil`: `number` | `null`  }\[]>

#### Parameters

| Name | Type |
| :- | :- |
| `checks` | readonly [`AccessCheck`](/api/modules/server#accesscheck)\[] |
| `subject?` | `string` |

#### Returns

`Promise`\<\{ `allowed`: `boolean` ; `validUntil`: `number` | `null`  }\[]>

***

### requestEligibility

▸ **requestEligibility**(`checks`): `Promise`\<`boolean`\[]>

#### Parameters

| Name | Type |
| :- | :- |
| `checks` | readonly [`AccessCheck`](/api/modules/server#accesscheck)\[] |

#### Returns

`Promise`\<`boolean`\[]>

***

### \[initializeAccess]

▸ **\[initializeAccess]**(): `void`

#### Returns

`void`

***

### \[attachAccess]

▸ **\[attachAccess]**(`address`): [`AccessProtection`](/api/interfaces/server.AccessProtection)

#### Parameters

| Name | Type |
| :- | :- |
| `address` | [`Address`](/api/modules/server#address) |

#### Returns

[`AccessProtection`](/api/interfaces/server.AccessProtection)

***

### protect

▸ **protect**\<`T`>(`type`, `table`): `T`

#### Type parameters

| Name | Type |
| :- | :- |
| `T` | extends `Table` |

#### Parameters

| Name | Type |
| :- | :- |
| `type` | `string` |
| `table` | `T` |

#### Returns

`T`

***

### operationDecision

▸ **operationDecision**(): `string` | `undefined`

#### Returns

`string` | `undefined`

***

### protectPolicy

▸ **protectPolicy**\<`T`>(`name`, `table`, `prepare?`, `policy?`): `T`

#### Type parameters

| Name | Type |
| :- | :- |
| `T` | extends `Table` |

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `string` |
| `table` | `T` |
| `prepare?` | () => `void` |
| `policy?` | [`SchemaAccessPolicy`](/api/modules/server#schemaaccesspolicy) |

#### Returns

`T`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.