Skip to main content

DomainQuerySpec<TColumn, TExpandKey>

Defined in: js-api/src/domains.ts:461

Query options for domain table query/queryDf: a DomainReadScope plus what shapes the page.

Extends

Type Parameters

Type ParameterDefault type
TColumn extends stringstring
TExpandKey extends stringstring

Properties

PropertyTypeDescriptionInherited fromDefined in
captions?TColumn[]Ref columns to project the TARGET ROW'S DISPLAY NAME for, each as one service column '~caption_<column>' (domainCaptionColumn) — string, nullable, in request order. A list renders project_id as 'Apollo' without a second round trip and without the caller knowing which column of the target is its name. Name only: never a target field (use expand for those), never nested ('a.b' rejects), never a duplicate, and never a non-ref or invisible column — all four reject with a DomainFilterError that names nothing else (no oracle). A target row the caller may not View reads NULL, exactly like a target that does not exist. Captions are not fields: absent from DomainAccess.fields, never editable, excluded from csv and binary export. Independent of columns: a caption may be asked for a ref column that is not projected, and asking for one never projects the ref column itself. One LEFT JOIN per caption per page — never default them on.-js-api/src/domains.ts:494
columns?TColumn[]Columns to return; omit for all viewable columns.-js-api/src/domains.ts:466
deleted?"exclude" | "include" | "only"Soft-deleted rows: 'exclude' (the default — only live rows), 'include' (both) or 'only' (the trash). Anything but 'exclude' also projects ~is_deleted (DOMAIN_SERVICE_COLUMNS); a deleted row is read-only until DomainTableClient.restore brings it back. Needs DomainSupport.deleted.DomainReadScope.deletedjs-api/src/domains.ts:456
expand?TExpandKey[]Expansions (same-schema, depth 1): '<fk_column>' returns the master row's declared columns prefixed '<fk_column>.<name>'; 'details:<table>[.<fk_column>]' returns capped child-row arrays under the child-table name (JSON queries only — not supported by queryDf); '<relation>' (a declared many-to-many) returns the link array — see DomainRelationLink.-js-api/src/domains.ts:472
filter?DomainFilter<TColumn>Smart-filter string (same grammar as entity search, e.g. barcode starts "P-1"), a single condition, or the canonical condition tree — values are bound server-side. Row caps: JSON query 10k, d42 queryDf 10M.DomainReadScope.filterjs-api/src/domains.ts:447
limit?number--js-api/src/domains.ts:473
offset?number--js-api/src/domains.ts:474
search?stringCase-insensitive substring over the table's searchable columns — those declared searchable: true, else the name column (DomainTableInfo.searchableColumns); a table with neither rejects with a filter error. ANDed with filter.DomainReadScope.searchjs-api/src/domains.ts:451
sort?stringComma-separated column list; ! prefix for descending, e.g. 'name,!created_on'.-js-api/src/domains.ts:464
withAccess?booleanAdds the per-row DOMAIN_ACCESS_COLUMNS (~can_edit, ~can_delete, ~can_share, plus ~can_<name> per declared custom permission): JSON rows carry them as boolean keys, queryDf frames as trailing bool columns. Row-level truth where the table-level DomainAccess.can flags are false negatives.-js-api/src/domains.ts:479