> ## 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.

# Class: CedarReleaseDerivation

> Reference for the CedarReleaseDerivation class in bijection/access/cedar.

[access/cedar](https://docs.bijection.com/api/modules/access_cedar).CedarReleaseDerivation

## Hierarchy

* `CedarInformation`

  ↳ **`CedarReleaseDerivation`**

## Constructors

### constructor

• **new CedarReleaseDerivation**(`program`, `tables`)

#### Parameters

| Name | Type |
| :- | :- |
| `program` | [`AccessReleaseProgram`](https://docs.bijection.com/api/modules/server#accessreleaseprogram) |
| `tables` | `Record`\<`string`, readonly [`Row`](https://docs.bijection.com/api/modules/access_cedar#row)\[]> |

#### Overrides

CedarInformation.constructor

## Properties

### model

• `Protected` `Readonly` **model**: [`AccessProgram`](https://docs.bijection.com/api/modules/server#accessprogram)

#### Inherited from

CedarInformation.model

***

### tables

• `Protected` `Readonly` **tables**: `Record`\<`string`, readonly `Row`\[]>

#### Inherited from

CedarInformation.tables

## Methods

### step

▸ `Protected` **step**(`n?`): `void`

#### Parameters

| Name | Type | Default value |
| :- | :- | :- |
| `n` | `number` | `1` |

#### Returns

`void`

#### Inherited from

CedarInformation.step

***

### type

▸ `Protected` **type**(`name`): `Object`

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `string` |

#### Returns

`Object`

| Name | Type |
| :- | :- |
| `table?` | `string` |
| `parent` | \{ `type`: `string` ; `field?`: `string` ; `index`: `string`  } |
| `parent.type` | `string` |
| `parent.field?` | `string` |
| `parent.index` | `string` |
| `relations?` | `Record`\<`string`, \{ `type`: `string` ; `index`: `string`  }> |
| `permissions` | `string`\[] |
| `visibility` | `string` |
| `holders?` | `string` |
| `read` | \{ `fields`: `Record`\<`string`, `string`> ; `all`: `string`\[] ; `denied?`: `string`\[] ; `rest?`: `string` ; `restrictions?`: `Record`\<`string`, \{ `type`: `string` ; `key`: `string`  }\[]> ; `markingFields?`: `Record`\<`string`, \{ `type`: `string` ; `field`: `string` ; `allowed`: `string`\[]  }\[]>  } |
| `read.fields` | `Record`\<`string`, `string`> |
| `read.all` | `string`\[] |
| `read.denied?` | `string`\[] |
| `read.rest?` | `string` |
| `read.restrictions?` | `Record`\<`string`, \{ `type`: `string` ; `key`: `string`  }\[]> |
| `read.markingFields?` | `Record`\<`string`, \{ `type`: `string` ; `field`: `string` ; `allowed`: `string`\[]  }\[]> |
| `root?` | \{ `type`: `string` ; `category`: `string`  } |
| `root.type` | `string` |
| `root.category` | `string` |
| `markings?` | \{ `name`: `string` ; `type`: `string`  } |
| `markings.name` | `string` |
| `markings.type` | `string` |
| `category?` | `string` \| \{ `from`: `"key"`  } |
| `create?` | \{ `assign`: \{ `role`: `string` ; `holder`: `"creator"`  } ; `children?`: `string`\[]  } |
| `create.assign` | \{ `role`: `string` ; `holder`: `"creator"`  } |
| `create.assign.role` | `string` |
| `create.assign.holder` | `"creator"` |
| `create.children?` | `string`\[] |
| `recovery?` | \{ `role`: `string`  } |
| `recovery.role` | `string` |
| `fields?` | `Record`\<`string`, [`AccessClaimType`](https://docs.bijection.com/api/modules/server#accessclaimtype)> |
| `requiredFields?` | `string`\[] |
| `conditions?` | \{ `name`: `string` ; `expr`: [`Expr`](https://docs.bijection.com/api/modules/access_cedar#expr) ; `on`: `string`\[]  }\[] |

#### Inherited from

CedarInformation.type

***

### ancestors

▸ `Protected` **ancestors**(`name`): `string`\[]

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `string` |

#### Returns

`string`\[]

#### Inherited from

CedarInformation.ancestors

***

### row

▸ `Protected` **row**(`table`, `key`): `Row` | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `table` | `string` |
| `key` | `string` |

#### Returns

`Row` | `null`

#### Inherited from

CedarInformation.row

***

### resourceRow

▸ `Protected` **resourceRow**(`on`): `Row` | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `on` | [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) |

#### Returns

`Row` | `null`

#### Inherited from

CedarInformation.resourceRow

***

### chain

▸ `Protected` **chain**(`on`): [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref)\[] | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `on` | [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) |

#### Returns

[`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref)\[] | `null`

#### Inherited from

CedarInformation.chain

***

### markingClauses

▸ `Protected` **markingClauses**(`type`, `keys`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Parameters

| Name | Type |
| :- | :- |
| `type` | `string` |
| `keys` | readonly `string`\[] |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Inherited from

CedarInformation.markingClauses

***

### markingRequirements

▸ **markingRequirements**(`type`, `keys`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Parameters

| Name | Type |
| :- | :- |
| `type` | `string` |
| `keys` | readonly `string`\[] |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Inherited from

CedarInformation.markingRequirements

***

### add

▸ `Protected` **add**(`into`, `clauses`): `void`

#### Parameters

| Name | Type |
| :- | :- |
| `into` | [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] |
| `clauses` | readonly [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] |

#### Returns

`void`

#### Inherited from

CedarInformation.add

***

### self

▸ `Protected` **self**(`on`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Parameters

| Name | Type |
| :- | :- |
| `on` | [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Inherited from

CedarInformation.self

***

### carried

▸ `Protected` **carried**(`name`, `keys`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `string` |
| `keys` | readonly `string`\[] |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]

#### Inherited from

CedarInformation.carried

***

### restrictions

▸ `Protected` **restrictions**(`on`, `child?`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `on` | [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) |
| `child?` | `Object` |
| `child.name` | `string` |
| `child.keys` | readonly `string`\[] |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] | `null`

#### Inherited from

CedarInformation.restrictions

***

### protection

▸ **protection**(`on`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] | `null`

Neutral protection facts also used by placement and retained-grant checks.

#### Parameters

| Name | Type |
| :- | :- |
| `on` | [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] | `null`

#### Inherited from

CedarInformation.protection

***

### assignmentRestrictions

▸ `Protected` **assignmentRestrictions**(`on`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `on` | [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[] | `null`

#### Inherited from

CedarInformation.assignmentRestrictions

***

### restrictingTypes

▸ `Protected` **restrictingTypes**(`name`): `Set`\<`string`>

#### Parameters

| Name | Type |
| :- | :- |
| `name` | `string` |

#### Returns

`Set`\<`string`>

#### Inherited from

CedarInformation.restrictingTypes

***

### assignmentRestrictingTypes

▸ `Protected` **assignmentRestrictingTypes**(`resource?`): `Set`\<`string`>

#### Parameters

| Name | Type |
| :- | :- |
| `resource?` | `string` |

#### Returns

`Set`\<`string`>

#### Inherited from

CedarInformation.assignmentRestrictingTypes

***

### readPermissions

▸ **readPermissions**(`subject`): `string`\[] | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `subject` | [`ReadAccessRequest`](https://docs.bijection.com/api/modules/server#readaccessrequest) |

#### Returns

`string`\[] | `null`

#### Inherited from

CedarInformation.readPermissions

***

### equalities

▸ `Protected` **equalities**(`subject`): `Map`\<`string`, `unknown`>

#### Parameters

| Name | Type |
| :- | :- |
| `subject` | [`ReadAccessRequest`](https://docs.bijection.com/api/modules/server#readaccessrequest) |

#### Returns

`Map`\<`string`, `unknown`>

#### Inherited from

CedarInformation.equalities

***

### scope

▸ **scope**(`subject`): [`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `subject` | [`ReadAccessRequest`](https://docs.bijection.com/api/modules/server#readaccessrequest) |

#### Returns

[`ResourceRef`](https://docs.bijection.com/api/modules/access_cedar#resourceref) | `null`

#### Inherited from

CedarInformation.scope

***

### source

▸ **source**(`subject`): [`InformationSummary`](https://docs.bijection.com/api/modules/access_cedar#informationsummary) | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `subject` | [`ReadAccessRequest`](https://docs.bijection.com/api/modules/server#readaccessrequest) |

#### Returns

[`InformationSummary`](https://docs.bijection.com/api/modules/access_cedar#informationsummary) | `null`

#### Inherited from

CedarInformation.source

***

### destinations

▸ **destinations**(`destination`): [`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]\[] | `null`

#### Parameters

| Name | Type |
| :- | :- |
| `destination` | `Row` |

#### Returns

[`Clause`](https://docs.bijection.com/api/modules/access_cedar#clause)\[]\[] | `null`

#### Inherited from

CedarInformation.destinations

***

### releaseSource

▸ **releaseSource**(`subject`, `declassify?`): [`ReleaseInformation`](https://docs.bijection.com/api/modules/access_cedar#releaseinformation) | `null`

Resolve a neutral population descriptor into explicit release demands.

#### Parameters

| Name | Type | Default value |
| :- | :- | :- |
| `subject` | [`ReadAccessRequest`](https://docs.bijection.com/api/modules/server#readaccessrequest) | `undefined` |
| `declassify` | readonly `string`\[] | `[]` |

#### Returns

[`ReleaseInformation`](https://docs.bijection.com/api/modules/access_cedar#releaseinformation) | `null`

***

### ordinary

▸ **ordinary**(`destination`): `boolean`

#### Parameters

| Name | Type |
| :- | :- |
| `destination` | [`Row`](https://docs.bijection.com/api/modules/access_cedar#row) |

#### Returns

`boolean`

***

### derive

▸ **derive**(`subjects`, `suppliedDestination`, `suppliedContext`): [`CedarReleasePlan`](https://docs.bijection.com/api/modules/access_cedar#cedarreleaseplan)

The native release owner's complete route/source/carrier reduction.
The resulting permission, range, read and identity judgments
are deliberately retained as judgments; route selection supplies none of
their answers. No application predicate is evaluated during derivation.

#### Parameters

| Name | Type |
| :- | :- |
| `subjects` | readonly [`ReadAccessRequest`](https://docs.bijection.com/api/modules/server#readaccessrequest)\[] |
| `suppliedDestination` | [`Row`](https://docs.bijection.com/api/modules/access_cedar#row) |
| `suppliedContext` | [`CedarReleaseContext`](https://docs.bijection.com/api/modules/access_cedar#cedarreleasecontext) |

#### Returns

[`CedarReleasePlan`](https://docs.bijection.com/api/modules/access_cedar#cedarreleaseplan)


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