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

# The columns a form may ask for, generated from the model, with where the tenant arranged them.

> An administered entity's form is built from this and the generic write RPCs refuse any key that is
not here. A bespoke create form's columns are listed too — its screen is hand-written and
its RPC is its own, so for those this says what to draw and in what order, and nothing about who
may write.



## OpenAPI

````yaml /api-reference/openapi.json get /entity_fields
openapi: 3.0.0
info:
  description: ''
  title: >-
    The only schema PostgREST exposes. Reads are security_invoker views; writes
    are SECURITY DEFINER functions. Rebuilt wholesale on every deploy — it holds
    no data.
  version: 12.2.3
servers:
  - url: https://app.assetinfinity.ai/api
security: []
tags:
  - name: Signing in
  - name: Profile
  - name: Assets
  - name: Asset lifecycle
  - name: Work lifecycle
  - name: Maintenance
  - name: Inventory
  - name: Inventory detail
  - name: Procurement
  - name: Contracts
  - name: Workforce
  - name: Capacity
  - name: Dispatch
  - name: Tools
  - name: Inspections
  - name: Verification
  - name: Reliability
  - name: Parts demand
  - name: Sensors and meters
  - name: Map
  - name: Floor plans
  - name: Labels
  - name: Lost and found
  - name: Root cause analysis
  - name: Reports
  - name: Audit center
  - name: Activity
  - name: Notifications
  - name: Channels
  - name: Search
  - name: Copilot
  - name: Import
  - name: Files
  - name: Sync
  - name: Support
  - name: Admin
  - name: Access
  - name: Lookups
  - name: Read models
  - name: Branding
  - name: Custom fields
  - name: Form studio
  - name: Workflows
  - name: Workflow studio
  - name: Rules
  - name: Statuses and transitions
  - name: Currencies and locales
  - name: Work configuration
  - name: Asset configuration
  - name: Inventory configuration
  - name: Tool configuration
  - name: Workforce configuration
  - name: Vendor and contract configuration
  - name: Document configuration
  - name: Inspection configuration
  - name: Sites, locations and the organisation
  - name: Platform
  - name: Amendments
  - name: Asset clone
  - name: Asset components
  - name: Asset register
  - name: Asset transfer
  - name: Audit feed
  - name: Billing
  - name: Bookings
  - name: Budgets
  - name: Bulk jobs
  - name: Calibration history
  - name: Capex plans
  - name: Conversations
  - name: Costing
  - name: Currency
  - name: Dashboards
  - name: Directory sync
  - name: Document control
  - name: Document folders
  - name: Document tree
  - name: Documents
  - name: Energy
  - name: Extracts
  - name: Features
  - name: Feeds
  - name: File exchange
  - name: Filing exceptions
  - name: Finance
  - name: Inbound mail
  - name: Keys
  - name: Knowledge
  - name: Licence
  - name: List views
  - name: Locations
  - name: Mapping
  - name: Mcp
  - name: Mcp oauth
  - name: Mfa
  - name: Numbering
  - name: Permits
  - name: Readers
  - name: Reference
  - name: Reference columns
  - name: Reference entry
  - name: Release
  - name: Scim
  - name: Security streams
  - name: Self verification
  - name: Setup
  - name: Shutdown
  - name: Sso
  - name: Telegram
  - name: Tenant switch
  - name: The caller's own work
  - name: The checklist library
  - name: Tools on a job, and who has them out
  - name: Tray
  - name: Vendor spend forecast
  - name: Vendors and contracts
  - name: Visitors
  - name: Work order execution
  - name: Work sequencing
  - name: Workforce detail
externalDocs:
  description: PostgREST Documentation
  url: https://postgrest.org/en/v12/references/api.html
paths:
  /entity_fields:
    get:
      tags:
        - Admin
      summary: >-
        The columns a form may ask for, generated from the model, with where the
        tenant arranged them.
      description: >-
        An administered entity's form is built from this and the generic write
        RPCs refuse any key that is

        not here. A bespoke create form's columns are listed too — its screen is
        hand-written and

        its RPC is its own, so for those this says what to draw and in what
        order, and nothing about who

        may write.
      parameters:
        - $ref: '#/components/parameters/rowFilter.entity_fields.entity'
        - $ref: '#/components/parameters/rowFilter.entity_fields.column_name'
        - $ref: '#/components/parameters/rowFilter.entity_fields.label'
        - $ref: '#/components/parameters/rowFilter.entity_fields.data_type'
        - $ref: '#/components/parameters/rowFilter.entity_fields.is_required'
        - $ref: '#/components/parameters/rowFilter.entity_fields.requires_answer'
        - $ref: '#/components/parameters/rowFilter.entity_fields.requires_leaf'
        - $ref: '#/components/parameters/rowFilter.entity_fields.is_nullable'
        - $ref: '#/components/parameters/rowFilter.entity_fields.default_value'
        - $ref: '#/components/parameters/rowFilter.entity_fields.is_immutable'
        - $ref: '#/components/parameters/rowFilter.entity_fields.server_assigned'
        - $ref: '#/components/parameters/rowFilter.entity_fields.references_entity'
        - $ref: >-
            #/components/parameters/rowFilter.entity_fields.references_title_column
        - $ref: '#/components/parameters/rowFilter.entity_fields.references_label'
        - $ref: >-
            #/components/parameters/rowFilter.entity_fields.references_allows_create
        - $ref: '#/components/parameters/rowFilter.entity_fields.scope_column'
        - $ref: '#/components/parameters/rowFilter.entity_fields.scope_target_column'
        - $ref: '#/components/parameters/rowFilter.entity_fields.references_by_name'
        - $ref: '#/components/parameters/rowFilter.entity_fields.files_against'
        - $ref: '#/components/parameters/rowFilter.entity_fields.allowed_values'
        - $ref: '#/components/parameters/rowFilter.entity_fields.sort_order'
        - $ref: '#/components/parameters/rowFilter.entity_fields.section'
        - $ref: '#/components/parameters/rowFilter.entity_fields.section_label'
        - $ref: '#/components/parameters/rowFilter.entity_fields.section_hint'
        - $ref: '#/components/parameters/rowFilter.entity_fields.hint'
        - $ref: '#/components/parameters/rowFilter.entity_fields.widget'
        - $ref: '#/components/parameters/rowFilter.entity_fields.companion_column'
        - $ref: '#/components/parameters/rowFilter.entity_fields.is_hidden'
        - $ref: '#/components/parameters/rowFilter.entity_fields.hidden_by_tenant'
        - $ref: '#/components/parameters/rowFilter.entity_fields.frozen_by_tenant'
        - $ref: '#/components/parameters/rowFilter.entity_fields.visible_when_column'
        - $ref: '#/components/parameters/rowFilter.entity_fields.visible_when_values'
        - $ref: '#/components/parameters/rowFilter.entity_fields.visible_when_empty'
        - $ref: '#/components/parameters/rowFilter.entity_fields.owned_by_action'
        - $ref: >-
            #/components/parameters/rowFilter.entity_fields.companion_references_entity
        - $ref: '#/components/parameters/rowFilter.entity_fields.is_scannable'
        - $ref: >-
            #/components/parameters/rowFilter.entity_fields.references_is_scannable
        - $ref: '#/components/parameters/rowFilter.entity_fields.contributes_defaults'
        - $ref: '#/components/parameters/rowFilter.entity_fields.may_edit'
        - $ref: '#/components/parameters/rowFilter.entity_fields.hidden_from_caller'
        - $ref: '#/components/parameters/rowFilter.entity_fields.on_create_form'
        - $ref: '#/components/parameters/rowFilter.entity_fields.on_edit_form'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/order'
        - $ref: '#/components/parameters/range'
        - $ref: '#/components/parameters/rangeUnit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/preferCount'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/entity_fields'
                type: array
            application/vnd.pgrst.object+json:
              schema:
                items:
                  $ref: '#/components/schemas/entity_fields'
                type: array
            application/vnd.pgrst.object+json;nulls=stripped:
              schema:
                items:
                  $ref: '#/components/schemas/entity_fields'
                type: array
            text/csv:
              schema:
                items:
                  $ref: '#/components/schemas/entity_fields'
                type: array
          description: OK
        '206':
          description: Partial Content
components:
  parameters:
    rowFilter.entity_fields.entity:
      in: query
      name: entity
      required: false
      schema:
        type: string
    rowFilter.entity_fields.column_name:
      in: query
      name: column_name
      required: false
      schema:
        type: string
    rowFilter.entity_fields.label:
      in: query
      name: label
      required: false
      schema:
        type: string
    rowFilter.entity_fields.data_type:
      in: query
      name: data_type
      required: false
      schema:
        type: string
    rowFilter.entity_fields.is_required:
      in: query
      name: is_required
      required: false
      schema:
        type: string
    rowFilter.entity_fields.requires_answer:
      in: query
      name: requires_answer
      required: false
      schema:
        type: string
    rowFilter.entity_fields.requires_leaf:
      in: query
      name: requires_leaf
      required: false
      schema:
        type: string
    rowFilter.entity_fields.is_nullable:
      in: query
      name: is_nullable
      required: false
      schema:
        type: string
    rowFilter.entity_fields.default_value:
      in: query
      name: default_value
      required: false
      schema:
        type: string
    rowFilter.entity_fields.is_immutable:
      in: query
      name: is_immutable
      required: false
      schema:
        type: string
    rowFilter.entity_fields.server_assigned:
      in: query
      name: server_assigned
      required: false
      schema:
        type: string
    rowFilter.entity_fields.references_entity:
      in: query
      name: references_entity
      required: false
      schema:
        type: string
    rowFilter.entity_fields.references_title_column:
      in: query
      name: references_title_column
      required: false
      schema:
        type: string
    rowFilter.entity_fields.references_label:
      in: query
      name: references_label
      required: false
      schema:
        type: string
    rowFilter.entity_fields.references_allows_create:
      in: query
      name: references_allows_create
      required: false
      schema:
        type: string
    rowFilter.entity_fields.scope_column:
      in: query
      name: scope_column
      required: false
      schema:
        type: string
    rowFilter.entity_fields.scope_target_column:
      in: query
      name: scope_target_column
      required: false
      schema:
        type: string
    rowFilter.entity_fields.references_by_name:
      in: query
      name: references_by_name
      required: false
      schema:
        type: string
    rowFilter.entity_fields.files_against:
      in: query
      name: files_against
      required: false
      schema:
        type: string
    rowFilter.entity_fields.allowed_values:
      in: query
      name: allowed_values
      required: false
      schema:
        type: string
    rowFilter.entity_fields.sort_order:
      in: query
      name: sort_order
      required: false
      schema:
        type: string
    rowFilter.entity_fields.section:
      in: query
      name: section
      required: false
      schema:
        type: string
    rowFilter.entity_fields.section_label:
      in: query
      name: section_label
      required: false
      schema:
        type: string
    rowFilter.entity_fields.section_hint:
      in: query
      name: section_hint
      required: false
      schema:
        type: string
    rowFilter.entity_fields.hint:
      in: query
      name: hint
      required: false
      schema:
        type: string
    rowFilter.entity_fields.widget:
      in: query
      name: widget
      required: false
      schema:
        type: string
    rowFilter.entity_fields.companion_column:
      in: query
      name: companion_column
      required: false
      schema:
        type: string
    rowFilter.entity_fields.is_hidden:
      in: query
      name: is_hidden
      required: false
      schema:
        type: string
    rowFilter.entity_fields.hidden_by_tenant:
      in: query
      name: hidden_by_tenant
      required: false
      schema:
        type: string
    rowFilter.entity_fields.frozen_by_tenant:
      in: query
      name: frozen_by_tenant
      required: false
      schema:
        type: string
    rowFilter.entity_fields.visible_when_column:
      in: query
      name: visible_when_column
      required: false
      schema:
        type: string
    rowFilter.entity_fields.visible_when_values:
      in: query
      name: visible_when_values
      required: false
      schema:
        type: string
    rowFilter.entity_fields.visible_when_empty:
      in: query
      name: visible_when_empty
      required: false
      schema:
        type: string
    rowFilter.entity_fields.owned_by_action:
      in: query
      name: owned_by_action
      required: false
      schema:
        type: string
    rowFilter.entity_fields.companion_references_entity:
      in: query
      name: companion_references_entity
      required: false
      schema:
        type: string
    rowFilter.entity_fields.is_scannable:
      in: query
      name: is_scannable
      required: false
      schema:
        type: string
    rowFilter.entity_fields.references_is_scannable:
      in: query
      name: references_is_scannable
      required: false
      schema:
        type: string
    rowFilter.entity_fields.contributes_defaults:
      in: query
      name: contributes_defaults
      required: false
      schema:
        type: string
    rowFilter.entity_fields.may_edit:
      in: query
      name: may_edit
      required: false
      schema:
        type: string
    rowFilter.entity_fields.hidden_from_caller:
      in: query
      name: hidden_from_caller
      required: false
      schema:
        type: string
    rowFilter.entity_fields.on_create_form:
      in: query
      name: on_create_form
      required: false
      schema:
        type: string
    rowFilter.entity_fields.on_edit_form:
      in: query
      name: on_edit_form
      required: false
      schema:
        type: string
    select:
      description: Filtering Columns
      in: query
      name: select
      required: false
      schema:
        type: string
    order:
      description: Ordering
      in: query
      name: order
      required: false
      schema:
        type: string
    range:
      description: Limiting and Pagination
      in: header
      name: Range
      required: false
      schema:
        type: string
    rangeUnit:
      description: Limiting and Pagination
      in: header
      name: Range-Unit
      required: false
      schema:
        default: items
        type: string
    offset:
      description: Limiting and Pagination
      in: query
      name: offset
      required: false
      schema:
        type: string
    limit:
      description: Limiting and Pagination
      in: query
      name: limit
      required: false
      schema:
        type: string
    preferCount:
      description: Preference
      in: header
      name: Prefer
      required: false
      schema:
        enum:
          - count=none
        type: string
  schemas:
    entity_fields:
      description: >-
        The columns a form may ask for, generated from the model, with where the
        tenant arranged them.


        An administered entity's form is built from this and the generic write
        RPCs refuse any key that is

        not here. A bespoke create form's columns are listed too — its screen is
        hand-written and

        its RPC is its own, so for those this says what to draw and in what
        order, and nothing about who

        may write.
      properties:
        allowed_values:
          format: text[]
          items:
            type: string
          type: array
        column_name:
          format: character varying
          maxLength: 63
          type: string
        companion_column:
          format: character varying
          maxLength: 63
          type: string
        companion_references_entity:
          format: character varying
          maxLength: 80
          type: string
        contributes_defaults:
          format: boolean
          type: boolean
        data_type:
          format: character varying
          maxLength: 40
          type: string
        default_value:
          format: text
          type: string
        entity:
          description: >-
            Note:

            This is a Foreign Key to `custom_field_entities.entity`.<fk
            table='custom_field_entities' column='entity'/>
          format: character varying
          maxLength: 80
          type: string
        files_against:
          format: boolean
          type: boolean
        frozen_by_tenant:
          format: boolean
          type: boolean
        hidden_by_tenant:
          format: boolean
          type: boolean
        hidden_from_caller:
          format: boolean
          type: boolean
        hint:
          format: text
          type: string
        is_hidden:
          format: boolean
          type: boolean
        is_immutable:
          format: boolean
          type: boolean
        is_nullable:
          format: boolean
          type: boolean
        is_required:
          format: boolean
          type: boolean
        is_scannable:
          format: boolean
          type: boolean
        label:
          format: text
          type: string
        may_edit:
          format: boolean
          type: boolean
        on_create_form:
          format: boolean
          type: boolean
        on_edit_form:
          format: boolean
          type: boolean
        owned_by_action:
          format: text
          type: string
        references_allows_create:
          format: boolean
          type: boolean
        references_by_name:
          format: boolean
          type: boolean
        references_entity:
          format: character varying
          maxLength: 80
          type: string
        references_is_scannable:
          format: boolean
          type: boolean
        references_label:
          format: text
          type: string
        references_title_column:
          format: character varying
          maxLength: 63
          type: string
        requires_answer:
          format: boolean
          type: boolean
        requires_leaf:
          format: boolean
          type: boolean
        scope_column:
          format: character varying
          maxLength: 63
          type: string
        scope_target_column:
          format: character varying
          maxLength: 63
          type: string
        section:
          format: character varying
          maxLength: 60
          type: string
        section_hint:
          format: text
          type: string
        section_label:
          format: text
          type: string
        server_assigned:
          format: boolean
          type: boolean
        sort_order:
          format: integer
          type: integer
        visible_when_column:
          format: character varying
          maxLength: 63
          type: string
        visible_when_empty:
          format: boolean
          type: boolean
        visible_when_values:
          format: text[]
          items:
            type: string
          type: array
        widget:
          format: character varying
          maxLength: 30
          type: string
      type: object

````