---
title: "KindOfConnection"
description: "a kind of connection, as a row: its roles and what each role allows"
section: concepts
address: /concepts/kindofconnection
contract: 0476e35e6e275db5
---

# KindOfConnection

a kind of connection, as a row: its roles and what each role allows

[figure: KindOfConnection is a row at platform scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | row |
| scope | platform |
| key | its name |
| store | postgres |
| family | record |



## Fields


| field | type | required | note |
|---|---|---|---|
| `name` | `text` | yes |  |
| `roles` | [ConnectionRole](/concepts/connectionrole) | yes |  |
| `from_header` | [HeaderRule](/concepts/headerrule) | no | the rule that makes this kind of connection from the shared silver header, when the kind has one: each role bound to a header column, and when the rule applies; a kind with no rule makes no view |
| `adds` | [SourceField](/concepts/sourcefield) | no | the fields the kind adds, typed as a source object declares its fields; each is a typed column of the kind's gold table |
| `layer` | `one of relational \| associative \| semantic \| none` | yes | the layer of likeness it feeds, if any |
| `materialised_under_a_cut` | `bool` | yes | for co-presence |
| `symmetric` | `bool` | no |  |
| `transitive` | `bool` | no | a derivation may walk it to a depth only when true |
| `inverse_of` | [KindOfConnection](/concepts/kindofconnection) | no |  |



## Routes that use it
No route takes or returns KindOfConnection directly. The record holds it, and the objects that point at it reach it.
