Skip to content

Component

A Component is a named block of a Page, such as a hero, a pricing table, or a form, filled from records through typed props.

Properties

PropertyTypeRequiredDescription
namestringrequiredThe name a Template places it by, such as Pricing.
propsjsonrequiredThe schema of the props it accepts.
regionstringWhere it sits: header, section, footer, or notice.
interactivebooleanTrue when it runs code in the browser; it still renders a static still without it.

Object

JSON
{
  "$id": "https://api.sb/patentpad.com/components/component_1",
  "$type": "Component",
  "name": "PatentPad",
  "props": {},
  "region": "header",
  "interactive": true
}

Relationships

  • A Component is placed by many Templates: a Template places named Components, such as Pricing, and fills their props from records. placedBy, inverse places.
  • A Component is used on many Pages: a Page is assembled from Components, each filled from records. usedOn, inverse uses.

Verbs

  1. createCreates a Component.
    POST /{namespace}/componentsdoComponent.created
  2. getReturns one Component by id.
    GET /{namespace}/components/{id}readNo Event
  3. listReturns Components, newest first, one page at a time.
    GET /{namespace}/componentsreadNo Event
  4. updateChanges the given properties of a Component.
    PATCH /{namespace}/components/{id}doComponent.updated
  5. deleteDeletes a Component; its history is kept.
    DELETE /{namespace}/components/{id}doComponent.deleted

Permissions

Which Access level may call each Verb. One-way Verbs wait their delay window.

Operationowneradminmemberviewer
Component.createYesYesYesNo
Component.getYesYesYesYes
Component.listYesYesYesYes
Component.updateYesYesYesNo
Component.deleteYesYesYesNo

Call it

Text
Add a component to ShiftNote.

Example

The pricing Page of a scheduling SaaS places a Pricing Component in its main region, fed by the published Offers. Publishing a $29 team Offer adds a column on every Page that uses the Component.