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
DomainReadScope<TColumn>
Type Parameters
| Type Parameter | Default type |
|---|---|
TColumn extends string | string |
TExpandKey extends string | string |
Properties
| Property | Type | Description | Inherited from | Defined 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.deleted | js-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.filter | js-api/src/domains.ts:447 |
limit? | number | - | - | js-api/src/domains.ts:473 |
offset? | number | - | - | js-api/src/domains.ts:474 |
search? | string | Case-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.search | js-api/src/domains.ts:451 |
sort? | string | Comma-separated column list; ! prefix for descending, e.g. 'name,!created_on'. | - | js-api/src/domains.ts:464 |
withAccess? | boolean | Adds 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 |