@proteos/sdk 0.45.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-IGIAJVX6.js → chunk-5KEJKXO5.js} +220 -34
- package/dist/chunk-5KEJKXO5.js.map +1 -0
- package/dist/{chunk-33EULWIM.cjs → chunk-Z7LC3GGU.cjs} +224 -33
- package/dist/chunk-Z7LC3GGU.cjs.map +1 -0
- package/dist/index.cjs +437 -179
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +659 -18
- package/dist/index.d.ts +659 -18
- package/dist/index.js +339 -97
- package/dist/index.js.map +1 -1
- package/dist/meta/index.cjs +69 -53
- package/dist/meta/index.d.cts +1 -1
- package/dist/meta/index.d.ts +1 -1
- package/dist/meta/index.js +1 -1
- package/dist/{types-BTdBFq34.d.cts → types-oECz4xTQ.d.cts} +578 -32
- package/dist/{types-BTdBFq34.d.ts → types-oECz4xTQ.d.ts} +578 -32
- package/package.json +1 -1
- package/src/auth/index.ts +58 -1
- package/src/auth/me.ts +14 -1
- package/src/auth/platform-entities.ts +27 -0
- package/src/auth/roles.ts +3 -1
- package/src/auth/shares.ts +181 -0
- package/src/auth/teams.ts +135 -0
- package/src/auth/types.ts +192 -4
- package/src/auth/user-role-assignments.ts +65 -0
- package/src/functions/actions.ts +29 -0
- package/src/functions/types.ts +6 -4
- package/src/index.ts +36 -0
- package/src/knowledge/graph.ts +6 -2
- package/src/knowledge/index.ts +15 -0
- package/src/knowledge/nodes.ts +4 -1
- package/src/knowledge/spaces.ts +86 -0
- package/src/knowledge/types.ts +89 -0
- package/src/meta/index.ts +11 -0
- package/src/meta/layout/control-registry.json +154 -27
- package/src/meta/layout/elements.ts +86 -0
- package/src/meta/layout/index.ts +2 -0
- package/src/meta/types.ts +245 -17
- package/src/workflow/types.ts +20 -3
- package/dist/chunk-33EULWIM.cjs.map +0 -1
- package/dist/chunk-IGIAJVX6.js.map +0 -1
|
@@ -1428,6 +1428,8 @@ declare const LayoutElementType: {
|
|
|
1428
1428
|
readonly Component: "component";
|
|
1429
1429
|
readonly Divider: "divider";
|
|
1430
1430
|
readonly Text: "text";
|
|
1431
|
+
readonly RecordFilter: "record_filter";
|
|
1432
|
+
readonly List: "list";
|
|
1431
1433
|
};
|
|
1432
1434
|
type LayoutElementType = (typeof LayoutElementType)[keyof typeof LayoutElementType];
|
|
1433
1435
|
type RowElement = CommonProps & {
|
|
@@ -1548,6 +1550,70 @@ type ComponentElement = CommonProps & {
|
|
|
1548
1550
|
* to the host's 80px fallback when unset. */
|
|
1549
1551
|
reserved_height?: number;
|
|
1550
1552
|
};
|
|
1553
|
+
/**
|
|
1554
|
+
* A filter builder placed directly on a page. It owns no data of its own: it
|
|
1555
|
+
* publishes the filter (and the chosen subject entity) under its element id,
|
|
1556
|
+
* and every `list` element naming that id in `filter_element_id` renders the
|
|
1557
|
+
* filtered rows.
|
|
1558
|
+
*
|
|
1559
|
+
* `subject_entity` pins which entity the filter is authored against. When it is
|
|
1560
|
+
* absent the element renders a subject picker over the entities its bound lists
|
|
1561
|
+
* offer — one entry per bound list, since a list carries exactly one entity.
|
|
1562
|
+
*
|
|
1563
|
+
* The filter is in-memory: it resets on reload rather than persisting per user.
|
|
1564
|
+
*/
|
|
1565
|
+
type RecordFilterElement = CommonProps & {
|
|
1566
|
+
type: 'record_filter';
|
|
1567
|
+
subject_entity?: string;
|
|
1568
|
+
/** `toolbar` (default) is the Filter button + active chips, matching every
|
|
1569
|
+
* list view. `panel` is the always-open AND/OR editor, for a page whose
|
|
1570
|
+
* point IS the filter. */
|
|
1571
|
+
variant?: 'toolbar' | 'panel';
|
|
1572
|
+
/** Nested AND/OR groups. Defaults to true — the records query carries the
|
|
1573
|
+
* whole tree, so there is no reason to hide the affordance. */
|
|
1574
|
+
is_complex_enabled?: boolean;
|
|
1575
|
+
};
|
|
1576
|
+
/**
|
|
1577
|
+
* Renders records of a configured List — the record-agnostic sibling of
|
|
1578
|
+
* `related_list`, and the only way to show records on a page that has no
|
|
1579
|
+
* record of its own.
|
|
1580
|
+
*
|
|
1581
|
+
* The List supplies everything about presentation and behaviour: columns,
|
|
1582
|
+
* sorting, base filters, toolbar actions, selection mode, and which page a row
|
|
1583
|
+
* opens. Naming more than one list makes the element switchable; the active one
|
|
1584
|
+
* is chosen by the bound filter's subject picker, or by the element's own
|
|
1585
|
+
* switcher when it is unbound.
|
|
1586
|
+
*
|
|
1587
|
+
* `filter_element_id` binds the element to a `record_filter` on the same page.
|
|
1588
|
+
* The bound filter is ANDed with the list's own saved filters — it narrows the
|
|
1589
|
+
* list, it never replaces what the list declared.
|
|
1590
|
+
*/
|
|
1591
|
+
type ListElement = CommonProps & {
|
|
1592
|
+
type: 'list';
|
|
1593
|
+
/** Slugs of the lists this element can render. At least one. */
|
|
1594
|
+
list_slugs: string[];
|
|
1595
|
+
/** Element id of the `record_filter` driving this list. Unbound renders the
|
|
1596
|
+
* list with its own filters only. */
|
|
1597
|
+
filter_element_id?: string;
|
|
1598
|
+
/**
|
|
1599
|
+
* Record-page alternative to `filter_element_id`: the attribute on THIS
|
|
1600
|
+
* page's record holding a saved filter (as written by the `record-filter`
|
|
1601
|
+
* control). The list then renders what the record's own filter selects —
|
|
1602
|
+
* a saved-segment record showing its matches.
|
|
1603
|
+
*
|
|
1604
|
+
* Mutually exclusive with `filter_element_id`: two filters driving one list
|
|
1605
|
+
* has no defined precedence, so the layout validator rejects both at once.
|
|
1606
|
+
* Record pages only — a standalone page has no record to read.
|
|
1607
|
+
*/
|
|
1608
|
+
filter_attribute?: string;
|
|
1609
|
+
/**
|
|
1610
|
+
* Attribute on this page's record naming the subject entity slug. The
|
|
1611
|
+
* element renders whichever of `list_slugs` targets that entity. Without
|
|
1612
|
+
* it the first configured list wins. Pairs with `filter_attribute`.
|
|
1613
|
+
*/
|
|
1614
|
+
subject_entity_attribute?: string;
|
|
1615
|
+
page_size?: number;
|
|
1616
|
+
};
|
|
1551
1617
|
type DividerElement = CommonProps & {
|
|
1552
1618
|
type: 'divider';
|
|
1553
1619
|
};
|
|
@@ -1557,7 +1623,7 @@ type TextElement = CommonProps & {
|
|
|
1557
1623
|
variant: TextVariant;
|
|
1558
1624
|
content: string;
|
|
1559
1625
|
};
|
|
1560
|
-
type LayoutElement = RowElement | ColumnElement | SectionElement | CardElement | TabsElement | FieldElement | RelatedListElement | RelatedRecordElement | ComponentElement | DividerElement | TextElement;
|
|
1626
|
+
type LayoutElement = RowElement | ColumnElement | SectionElement | CardElement | TabsElement | FieldElement | RelatedListElement | RelatedRecordElement | ComponentElement | DividerElement | TextElement | RecordFilterElement | ListElement;
|
|
1561
1627
|
declare const LayoutElementSchema: z.ZodType<LayoutElement>;
|
|
1562
1628
|
|
|
1563
1629
|
/**
|
|
@@ -1779,7 +1845,36 @@ interface MetaListOptions extends ListOptions {
|
|
|
1779
1845
|
* full set; format/structural variation lives on `Attribute.meta` (see
|
|
1780
1846
|
* `AttributeMeta` below), not on the type discriminator.
|
|
1781
1847
|
*/
|
|
1782
|
-
type AttributeType = 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'datetime' | 'enum' | 'relation' | 'user' | 'currency' | 'knowledge-text' | 'file';
|
|
1848
|
+
type AttributeType = 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'datetime' | 'enum' | 'relation' | 'user' | 'principal' | 'currency' | 'knowledge-text' | 'file';
|
|
1849
|
+
/**
|
|
1850
|
+
* Attribute-level permissions: restricting a FIELD rather than a record — a
|
|
1851
|
+
* salary column readable only by the people team, a margin column writable only
|
|
1852
|
+
* by finance. Mirror of the Go `metamodel.AttributeRestrictions`.
|
|
1853
|
+
*
|
|
1854
|
+
* Orthogonal to instance-level access: a caller who may see a record may still
|
|
1855
|
+
* be blocked from one of its fields.
|
|
1856
|
+
*
|
|
1857
|
+
* Absent means unrestricted. Both arms FAIL CLOSED — an empty rule matches
|
|
1858
|
+
* nobody rather than everybody, and an unknown role or team slug never matches,
|
|
1859
|
+
* so a typo removes access rather than granting it.
|
|
1860
|
+
*/
|
|
1861
|
+
interface AttributeAccessRule {
|
|
1862
|
+
/** Role slugs, matched against the caller's roles. */
|
|
1863
|
+
roles?: string[];
|
|
1864
|
+
/**
|
|
1865
|
+
* Team slugs. Matched through the caller's team closure, so a member of a
|
|
1866
|
+
* CHILD team is matched by a rule naming an ancestor.
|
|
1867
|
+
*/
|
|
1868
|
+
teams?: string[];
|
|
1869
|
+
}
|
|
1870
|
+
/**
|
|
1871
|
+
* Read and write are gated independently, so `write` alone yields a field
|
|
1872
|
+
* everyone can see and only some can change.
|
|
1873
|
+
*/
|
|
1874
|
+
interface AttributeRestrictions {
|
|
1875
|
+
read?: AttributeAccessRule;
|
|
1876
|
+
write?: AttributeAccessRule;
|
|
1877
|
+
}
|
|
1783
1878
|
/** JSON-Schema string formats carried by `string` attributes. */
|
|
1784
1879
|
type StringFormat = 'email' | 'uri' | 'uuid' | 'hostname' | 'ipv4' | 'ipv6';
|
|
1785
1880
|
interface StringAttributeMeta {
|
|
@@ -1815,6 +1910,10 @@ interface EnumValue {
|
|
|
1815
1910
|
value: string;
|
|
1816
1911
|
label?: string;
|
|
1817
1912
|
description?: string;
|
|
1913
|
+
/** Lucide icon name, canonical PascalCase (e.g. `CircleCheck`). Replaces the badge dot. */
|
|
1914
|
+
icon?: string;
|
|
1915
|
+
/** Tint as `#rrggbb`. Renderers derive dot/border/background from it; text stays ink. */
|
|
1916
|
+
color?: string;
|
|
1818
1917
|
}
|
|
1819
1918
|
interface EnumAttributeMeta {
|
|
1820
1919
|
values: EnumValue[];
|
|
@@ -1879,6 +1978,54 @@ declare const UserAttributeMetaSchema: z.ZodObject<{
|
|
|
1879
1978
|
}, {
|
|
1880
1979
|
description?: string | undefined;
|
|
1881
1980
|
}>;
|
|
1981
|
+
/**
|
|
1982
|
+
* The stored value of a `principal`-typed attribute: a {@link PrincipalRef}
|
|
1983
|
+
* `{ type, id }` naming anything that can HOLD ACCESS — a user (person, agent
|
|
1984
|
+
* or api client), a team, or the whole organization. Mirror of the Go
|
|
1985
|
+
* `metamodel.PrincipalAttributeMeta`.
|
|
1986
|
+
*
|
|
1987
|
+
* Distinct from `user` on purpose. `user` means "a person did this" — it is
|
|
1988
|
+
* authorship, and its value can never be a team. `principal` means "this party
|
|
1989
|
+
* may be granted access", a different question with a strictly larger
|
|
1990
|
+
* vocabulary. Widening `user` would have made every existing user attribute
|
|
1991
|
+
* silently accept a team, including the created_by / updated_by audit columns.
|
|
1992
|
+
*/
|
|
1993
|
+
interface PrincipalAttributeMeta {
|
|
1994
|
+
description?: string;
|
|
1995
|
+
/**
|
|
1996
|
+
* Turns the attribute into a GRANTING attribute: the verbs its value confers
|
|
1997
|
+
* on the record. `deals.account_manager` with `["read","write"]` means setting
|
|
1998
|
+
* it gives that principal access with no share call — the business field IS
|
|
1999
|
+
* the ACL.
|
|
2000
|
+
*
|
|
2001
|
+
* `share` is the right to hand access on — share the record, set other
|
|
2002
|
+
* granting attributes, revoke shares. `["read","write","delete","share"]` is
|
|
2003
|
+
* full ownership: there is no separate owner field on the platform, the
|
|
2004
|
+
* business field that grants `share` IS the owner. `share` must accompany
|
|
2005
|
+
* at least one of read/write/delete, and an attribute granting it never
|
|
2006
|
+
* accepts an `org` principal.
|
|
2007
|
+
*
|
|
2008
|
+
* Empty (the default) means an ordinary reference that confers nothing, so an
|
|
2009
|
+
* existing principal attribute cannot start granting access by accident.
|
|
2010
|
+
*/
|
|
2011
|
+
grants?: Array<'read' | 'write' | 'delete' | 'share'>;
|
|
2012
|
+
/**
|
|
2013
|
+
* Narrows which principal kinds this attribute accepts; empty means all
|
|
2014
|
+
* (except that an attribute granting `share` refuses `org` regardless —
|
|
2015
|
+
* an org-wide right to re-grant would hand record management to every
|
|
2016
|
+
* member).
|
|
2017
|
+
*/
|
|
2018
|
+
allowed_types?: PrincipalType[];
|
|
2019
|
+
}
|
|
2020
|
+
/** The kinds a principal reference may name. */
|
|
2021
|
+
type PrincipalType = 'person' | 'agent' | 'api' | 'team' | 'org';
|
|
2022
|
+
/**
|
|
2023
|
+
* The stored value of a `principal`-typed attribute.
|
|
2024
|
+
*/
|
|
2025
|
+
interface PrincipalRef {
|
|
2026
|
+
type: PrincipalType;
|
|
2027
|
+
id: string;
|
|
2028
|
+
}
|
|
1882
2029
|
/**
|
|
1883
2030
|
* The stored value of a `currency`-typed attribute: an exact decimal `amount`
|
|
1884
2031
|
* (a STRING, never a JS number — preserves financial-system precision and
|
|
@@ -1949,7 +2096,7 @@ declare const FileAttributeMetaSchema: z.ZodObject<{
|
|
|
1949
2096
|
* appropriate shape based on `Attribute.type`; runtime consumers can
|
|
1950
2097
|
* narrow via the `type` field.
|
|
1951
2098
|
*/
|
|
1952
|
-
type AttributeMeta = StringAttributeMeta | NumberAttributeMeta | DatetimeAttributeMeta | ArrayAttributeMeta | ObjectAttributeMeta | EnumAttributeMeta | RelationAttributeMeta | UserAttributeMeta | CurrencyAttributeMeta | KnowledgeTextAttributeMeta | FileAttributeMeta;
|
|
2099
|
+
type AttributeMeta = StringAttributeMeta | NumberAttributeMeta | DatetimeAttributeMeta | ArrayAttributeMeta | ObjectAttributeMeta | EnumAttributeMeta | RelationAttributeMeta | UserAttributeMeta | PrincipalAttributeMeta | CurrencyAttributeMeta | KnowledgeTextAttributeMeta | FileAttributeMeta;
|
|
1953
2100
|
/**
|
|
1954
2101
|
* Entity attribute definition. Mirrors `model.Attribute` in the Go SDK.
|
|
1955
2102
|
*/
|
|
@@ -1969,6 +2116,17 @@ interface Attribute {
|
|
|
1969
2116
|
* Mirrors `IsPlatformManaged` in the Go `metamodel.Attribute`.
|
|
1970
2117
|
*/
|
|
1971
2118
|
is_platform_managed?: boolean;
|
|
2119
|
+
/**
|
|
2120
|
+
* Attribute-level permissions. Absent means unrestricted (today's behaviour).
|
|
2121
|
+
* Platform-managed attributes cannot carry restrictions.
|
|
2122
|
+
*/
|
|
2123
|
+
restrictions?: AttributeRestrictions;
|
|
2124
|
+
/**
|
|
2125
|
+
* Literal default, or — on a `user` / `principal` attribute only — the
|
|
2126
|
+
* current-user sentinel `{ type: 'current_user' }` (see
|
|
2127
|
+
* `CURRENT_USER_DEFAULT`), which data-service resolves to the writer at
|
|
2128
|
+
* record-write time.
|
|
2129
|
+
*/
|
|
1972
2130
|
default_value?: unknown;
|
|
1973
2131
|
/**
|
|
1974
2132
|
* Type-specific metadata. The concrete shape is determined by `type`
|
|
@@ -2002,6 +2160,46 @@ declare const AttributeSchema: z.ZodObject<{
|
|
|
2002
2160
|
is_nullable: z.ZodOptional<z.ZodBoolean>;
|
|
2003
2161
|
is_unique: z.ZodBoolean;
|
|
2004
2162
|
is_read_only: z.ZodOptional<z.ZodBoolean>;
|
|
2163
|
+
restrictions: z.ZodOptional<z.ZodObject<{
|
|
2164
|
+
read: z.ZodOptional<z.ZodObject<{
|
|
2165
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2166
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2167
|
+
}, "strip", z.ZodTypeAny, {
|
|
2168
|
+
roles?: string[] | undefined;
|
|
2169
|
+
teams?: string[] | undefined;
|
|
2170
|
+
}, {
|
|
2171
|
+
roles?: string[] | undefined;
|
|
2172
|
+
teams?: string[] | undefined;
|
|
2173
|
+
}>>;
|
|
2174
|
+
write: z.ZodOptional<z.ZodObject<{
|
|
2175
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2176
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2177
|
+
}, "strip", z.ZodTypeAny, {
|
|
2178
|
+
roles?: string[] | undefined;
|
|
2179
|
+
teams?: string[] | undefined;
|
|
2180
|
+
}, {
|
|
2181
|
+
roles?: string[] | undefined;
|
|
2182
|
+
teams?: string[] | undefined;
|
|
2183
|
+
}>>;
|
|
2184
|
+
}, "strip", z.ZodTypeAny, {
|
|
2185
|
+
read?: {
|
|
2186
|
+
roles?: string[] | undefined;
|
|
2187
|
+
teams?: string[] | undefined;
|
|
2188
|
+
} | undefined;
|
|
2189
|
+
write?: {
|
|
2190
|
+
roles?: string[] | undefined;
|
|
2191
|
+
teams?: string[] | undefined;
|
|
2192
|
+
} | undefined;
|
|
2193
|
+
}, {
|
|
2194
|
+
read?: {
|
|
2195
|
+
roles?: string[] | undefined;
|
|
2196
|
+
teams?: string[] | undefined;
|
|
2197
|
+
} | undefined;
|
|
2198
|
+
write?: {
|
|
2199
|
+
roles?: string[] | undefined;
|
|
2200
|
+
teams?: string[] | undefined;
|
|
2201
|
+
} | undefined;
|
|
2202
|
+
}>>;
|
|
2005
2203
|
default_value: z.ZodOptional<z.ZodUnknown>;
|
|
2006
2204
|
meta: z.ZodOptional<z.ZodUnknown>;
|
|
2007
2205
|
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -2016,6 +2214,16 @@ declare const AttributeSchema: z.ZodObject<{
|
|
|
2016
2214
|
description?: string | undefined;
|
|
2017
2215
|
is_read_only?: boolean | undefined;
|
|
2018
2216
|
is_nullable?: boolean | undefined;
|
|
2217
|
+
restrictions?: {
|
|
2218
|
+
read?: {
|
|
2219
|
+
roles?: string[] | undefined;
|
|
2220
|
+
teams?: string[] | undefined;
|
|
2221
|
+
} | undefined;
|
|
2222
|
+
write?: {
|
|
2223
|
+
roles?: string[] | undefined;
|
|
2224
|
+
teams?: string[] | undefined;
|
|
2225
|
+
} | undefined;
|
|
2226
|
+
} | undefined;
|
|
2019
2227
|
default_value?: unknown;
|
|
2020
2228
|
}, {
|
|
2021
2229
|
type: string;
|
|
@@ -2028,6 +2236,16 @@ declare const AttributeSchema: z.ZodObject<{
|
|
|
2028
2236
|
description?: string | undefined;
|
|
2029
2237
|
is_read_only?: boolean | undefined;
|
|
2030
2238
|
is_nullable?: boolean | undefined;
|
|
2239
|
+
restrictions?: {
|
|
2240
|
+
read?: {
|
|
2241
|
+
roles?: string[] | undefined;
|
|
2242
|
+
teams?: string[] | undefined;
|
|
2243
|
+
} | undefined;
|
|
2244
|
+
write?: {
|
|
2245
|
+
roles?: string[] | undefined;
|
|
2246
|
+
teams?: string[] | undefined;
|
|
2247
|
+
} | undefined;
|
|
2248
|
+
} | undefined;
|
|
2031
2249
|
default_value?: unknown;
|
|
2032
2250
|
}>;
|
|
2033
2251
|
/**
|
|
@@ -2043,6 +2261,12 @@ declare function parseRelationMeta(attr: Attribute): RelationAttributeMeta | nul
|
|
|
2043
2261
|
* attribute with no meta still resolves to an empty `{}` rather than null.
|
|
2044
2262
|
*/
|
|
2045
2263
|
declare function parseCurrencyMeta(attr: Attribute): CurrencyAttributeMeta | null;
|
|
2264
|
+
/**
|
|
2265
|
+
* Returns the typed `PrincipalAttributeMeta` when `attr` is a principal
|
|
2266
|
+
* attribute; null otherwise. Principal meta is optional, so an attribute with
|
|
2267
|
+
* no meta resolves to an empty `{}` rather than null.
|
|
2268
|
+
*/
|
|
2269
|
+
declare function parsePrincipalMeta(attr: Attribute): PrincipalAttributeMeta | null;
|
|
2046
2270
|
declare function parseUserMeta(attr: Attribute): UserAttributeMeta | null;
|
|
2047
2271
|
/**
|
|
2048
2272
|
* Returns the typed `FileAttributeMeta` when `attr` is a file attribute; null
|
|
@@ -2126,6 +2350,46 @@ declare const EntitySchema: z.ZodObject<{
|
|
|
2126
2350
|
is_nullable: z.ZodOptional<z.ZodBoolean>;
|
|
2127
2351
|
is_unique: z.ZodBoolean;
|
|
2128
2352
|
is_read_only: z.ZodOptional<z.ZodBoolean>;
|
|
2353
|
+
restrictions: z.ZodOptional<z.ZodObject<{
|
|
2354
|
+
read: z.ZodOptional<z.ZodObject<{
|
|
2355
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2356
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2357
|
+
}, "strip", z.ZodTypeAny, {
|
|
2358
|
+
roles?: string[] | undefined;
|
|
2359
|
+
teams?: string[] | undefined;
|
|
2360
|
+
}, {
|
|
2361
|
+
roles?: string[] | undefined;
|
|
2362
|
+
teams?: string[] | undefined;
|
|
2363
|
+
}>>;
|
|
2364
|
+
write: z.ZodOptional<z.ZodObject<{
|
|
2365
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2366
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2367
|
+
}, "strip", z.ZodTypeAny, {
|
|
2368
|
+
roles?: string[] | undefined;
|
|
2369
|
+
teams?: string[] | undefined;
|
|
2370
|
+
}, {
|
|
2371
|
+
roles?: string[] | undefined;
|
|
2372
|
+
teams?: string[] | undefined;
|
|
2373
|
+
}>>;
|
|
2374
|
+
}, "strip", z.ZodTypeAny, {
|
|
2375
|
+
read?: {
|
|
2376
|
+
roles?: string[] | undefined;
|
|
2377
|
+
teams?: string[] | undefined;
|
|
2378
|
+
} | undefined;
|
|
2379
|
+
write?: {
|
|
2380
|
+
roles?: string[] | undefined;
|
|
2381
|
+
teams?: string[] | undefined;
|
|
2382
|
+
} | undefined;
|
|
2383
|
+
}, {
|
|
2384
|
+
read?: {
|
|
2385
|
+
roles?: string[] | undefined;
|
|
2386
|
+
teams?: string[] | undefined;
|
|
2387
|
+
} | undefined;
|
|
2388
|
+
write?: {
|
|
2389
|
+
roles?: string[] | undefined;
|
|
2390
|
+
teams?: string[] | undefined;
|
|
2391
|
+
} | undefined;
|
|
2392
|
+
}>>;
|
|
2129
2393
|
default_value: z.ZodOptional<z.ZodUnknown>;
|
|
2130
2394
|
meta: z.ZodOptional<z.ZodUnknown>;
|
|
2131
2395
|
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -2140,6 +2404,16 @@ declare const EntitySchema: z.ZodObject<{
|
|
|
2140
2404
|
description?: string | undefined;
|
|
2141
2405
|
is_read_only?: boolean | undefined;
|
|
2142
2406
|
is_nullable?: boolean | undefined;
|
|
2407
|
+
restrictions?: {
|
|
2408
|
+
read?: {
|
|
2409
|
+
roles?: string[] | undefined;
|
|
2410
|
+
teams?: string[] | undefined;
|
|
2411
|
+
} | undefined;
|
|
2412
|
+
write?: {
|
|
2413
|
+
roles?: string[] | undefined;
|
|
2414
|
+
teams?: string[] | undefined;
|
|
2415
|
+
} | undefined;
|
|
2416
|
+
} | undefined;
|
|
2143
2417
|
default_value?: unknown;
|
|
2144
2418
|
}, {
|
|
2145
2419
|
type: string;
|
|
@@ -2152,6 +2426,16 @@ declare const EntitySchema: z.ZodObject<{
|
|
|
2152
2426
|
description?: string | undefined;
|
|
2153
2427
|
is_read_only?: boolean | undefined;
|
|
2154
2428
|
is_nullable?: boolean | undefined;
|
|
2429
|
+
restrictions?: {
|
|
2430
|
+
read?: {
|
|
2431
|
+
roles?: string[] | undefined;
|
|
2432
|
+
teams?: string[] | undefined;
|
|
2433
|
+
} | undefined;
|
|
2434
|
+
write?: {
|
|
2435
|
+
roles?: string[] | undefined;
|
|
2436
|
+
teams?: string[] | undefined;
|
|
2437
|
+
} | undefined;
|
|
2438
|
+
} | undefined;
|
|
2155
2439
|
default_value?: unknown;
|
|
2156
2440
|
}>, "many">;
|
|
2157
2441
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -2178,6 +2462,16 @@ declare const EntitySchema: z.ZodObject<{
|
|
|
2178
2462
|
description?: string | undefined;
|
|
2179
2463
|
is_read_only?: boolean | undefined;
|
|
2180
2464
|
is_nullable?: boolean | undefined;
|
|
2465
|
+
restrictions?: {
|
|
2466
|
+
read?: {
|
|
2467
|
+
roles?: string[] | undefined;
|
|
2468
|
+
teams?: string[] | undefined;
|
|
2469
|
+
} | undefined;
|
|
2470
|
+
write?: {
|
|
2471
|
+
roles?: string[] | undefined;
|
|
2472
|
+
teams?: string[] | undefined;
|
|
2473
|
+
} | undefined;
|
|
2474
|
+
} | undefined;
|
|
2181
2475
|
default_value?: unknown;
|
|
2182
2476
|
}[];
|
|
2183
2477
|
slug: string;
|
|
@@ -2209,6 +2503,16 @@ declare const EntitySchema: z.ZodObject<{
|
|
|
2209
2503
|
description?: string | undefined;
|
|
2210
2504
|
is_read_only?: boolean | undefined;
|
|
2211
2505
|
is_nullable?: boolean | undefined;
|
|
2506
|
+
restrictions?: {
|
|
2507
|
+
read?: {
|
|
2508
|
+
roles?: string[] | undefined;
|
|
2509
|
+
teams?: string[] | undefined;
|
|
2510
|
+
} | undefined;
|
|
2511
|
+
write?: {
|
|
2512
|
+
roles?: string[] | undefined;
|
|
2513
|
+
teams?: string[] | undefined;
|
|
2514
|
+
} | undefined;
|
|
2515
|
+
} | undefined;
|
|
2212
2516
|
default_value?: unknown;
|
|
2213
2517
|
}[];
|
|
2214
2518
|
slug: string;
|
|
@@ -2263,6 +2567,46 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
|
|
|
2263
2567
|
is_nullable: z.ZodOptional<z.ZodBoolean>;
|
|
2264
2568
|
is_unique: z.ZodBoolean;
|
|
2265
2569
|
is_read_only: z.ZodOptional<z.ZodBoolean>;
|
|
2570
|
+
restrictions: z.ZodOptional<z.ZodObject<{
|
|
2571
|
+
read: z.ZodOptional<z.ZodObject<{
|
|
2572
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2573
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2574
|
+
}, "strip", z.ZodTypeAny, {
|
|
2575
|
+
roles?: string[] | undefined;
|
|
2576
|
+
teams?: string[] | undefined;
|
|
2577
|
+
}, {
|
|
2578
|
+
roles?: string[] | undefined;
|
|
2579
|
+
teams?: string[] | undefined;
|
|
2580
|
+
}>>;
|
|
2581
|
+
write: z.ZodOptional<z.ZodObject<{
|
|
2582
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2583
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2584
|
+
}, "strip", z.ZodTypeAny, {
|
|
2585
|
+
roles?: string[] | undefined;
|
|
2586
|
+
teams?: string[] | undefined;
|
|
2587
|
+
}, {
|
|
2588
|
+
roles?: string[] | undefined;
|
|
2589
|
+
teams?: string[] | undefined;
|
|
2590
|
+
}>>;
|
|
2591
|
+
}, "strip", z.ZodTypeAny, {
|
|
2592
|
+
read?: {
|
|
2593
|
+
roles?: string[] | undefined;
|
|
2594
|
+
teams?: string[] | undefined;
|
|
2595
|
+
} | undefined;
|
|
2596
|
+
write?: {
|
|
2597
|
+
roles?: string[] | undefined;
|
|
2598
|
+
teams?: string[] | undefined;
|
|
2599
|
+
} | undefined;
|
|
2600
|
+
}, {
|
|
2601
|
+
read?: {
|
|
2602
|
+
roles?: string[] | undefined;
|
|
2603
|
+
teams?: string[] | undefined;
|
|
2604
|
+
} | undefined;
|
|
2605
|
+
write?: {
|
|
2606
|
+
roles?: string[] | undefined;
|
|
2607
|
+
teams?: string[] | undefined;
|
|
2608
|
+
} | undefined;
|
|
2609
|
+
}>>;
|
|
2266
2610
|
default_value: z.ZodOptional<z.ZodUnknown>;
|
|
2267
2611
|
meta: z.ZodOptional<z.ZodUnknown>;
|
|
2268
2612
|
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -2277,6 +2621,16 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
|
|
|
2277
2621
|
description?: string | undefined;
|
|
2278
2622
|
is_read_only?: boolean | undefined;
|
|
2279
2623
|
is_nullable?: boolean | undefined;
|
|
2624
|
+
restrictions?: {
|
|
2625
|
+
read?: {
|
|
2626
|
+
roles?: string[] | undefined;
|
|
2627
|
+
teams?: string[] | undefined;
|
|
2628
|
+
} | undefined;
|
|
2629
|
+
write?: {
|
|
2630
|
+
roles?: string[] | undefined;
|
|
2631
|
+
teams?: string[] | undefined;
|
|
2632
|
+
} | undefined;
|
|
2633
|
+
} | undefined;
|
|
2280
2634
|
default_value?: unknown;
|
|
2281
2635
|
}, {
|
|
2282
2636
|
type: string;
|
|
@@ -2289,6 +2643,16 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
|
|
|
2289
2643
|
description?: string | undefined;
|
|
2290
2644
|
is_read_only?: boolean | undefined;
|
|
2291
2645
|
is_nullable?: boolean | undefined;
|
|
2646
|
+
restrictions?: {
|
|
2647
|
+
read?: {
|
|
2648
|
+
roles?: string[] | undefined;
|
|
2649
|
+
teams?: string[] | undefined;
|
|
2650
|
+
} | undefined;
|
|
2651
|
+
write?: {
|
|
2652
|
+
roles?: string[] | undefined;
|
|
2653
|
+
teams?: string[] | undefined;
|
|
2654
|
+
} | undefined;
|
|
2655
|
+
} | undefined;
|
|
2292
2656
|
default_value?: unknown;
|
|
2293
2657
|
}>, "many">;
|
|
2294
2658
|
} & {
|
|
@@ -2317,6 +2681,16 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
|
|
|
2317
2681
|
description?: string | undefined;
|
|
2318
2682
|
is_read_only?: boolean | undefined;
|
|
2319
2683
|
is_nullable?: boolean | undefined;
|
|
2684
|
+
restrictions?: {
|
|
2685
|
+
read?: {
|
|
2686
|
+
roles?: string[] | undefined;
|
|
2687
|
+
teams?: string[] | undefined;
|
|
2688
|
+
} | undefined;
|
|
2689
|
+
write?: {
|
|
2690
|
+
roles?: string[] | undefined;
|
|
2691
|
+
teams?: string[] | undefined;
|
|
2692
|
+
} | undefined;
|
|
2693
|
+
} | undefined;
|
|
2320
2694
|
default_value?: unknown;
|
|
2321
2695
|
}[];
|
|
2322
2696
|
slug: string;
|
|
@@ -2349,6 +2723,16 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
|
|
|
2349
2723
|
description?: string | undefined;
|
|
2350
2724
|
is_read_only?: boolean | undefined;
|
|
2351
2725
|
is_nullable?: boolean | undefined;
|
|
2726
|
+
restrictions?: {
|
|
2727
|
+
read?: {
|
|
2728
|
+
roles?: string[] | undefined;
|
|
2729
|
+
teams?: string[] | undefined;
|
|
2730
|
+
} | undefined;
|
|
2731
|
+
write?: {
|
|
2732
|
+
roles?: string[] | undefined;
|
|
2733
|
+
teams?: string[] | undefined;
|
|
2734
|
+
} | undefined;
|
|
2735
|
+
} | undefined;
|
|
2352
2736
|
default_value?: unknown;
|
|
2353
2737
|
}[];
|
|
2354
2738
|
slug: string;
|
|
@@ -2733,6 +3117,19 @@ interface UpdateComponentRequest {
|
|
|
2733
3117
|
}
|
|
2734
3118
|
/**
|
|
2735
3119
|
* List column definition.
|
|
3120
|
+
*
|
|
3121
|
+
* `attribute` is an attribute name or a dot path, told apart by the type of
|
|
3122
|
+
* the first segment:
|
|
3123
|
+
*
|
|
3124
|
+
* - `name` — an attribute on the list's own entity.
|
|
3125
|
+
* - `address.city` — a leaf inside one of its `object` attributes.
|
|
3126
|
+
* - `company_id.name` — a field of the RELATED record, reached through a
|
|
3127
|
+
* relation attribute (the first segment is the FK).
|
|
3128
|
+
*
|
|
3129
|
+
* A bare `object` attribute is not a valid column — it carries no value of
|
|
3130
|
+
* its own, only leaves. Sorting follows the same grammar minus the relation
|
|
3131
|
+
* hop: an attribute or an object path can be ordered by, a related field
|
|
3132
|
+
* cannot (it would need a join).
|
|
2736
3133
|
*/
|
|
2737
3134
|
interface Column {
|
|
2738
3135
|
attribute: string;
|
|
@@ -2744,13 +3141,77 @@ interface Column {
|
|
|
2744
3141
|
*/
|
|
2745
3142
|
type SortDirection = 'asc' | 'desc';
|
|
2746
3143
|
/**
|
|
2747
|
-
* Sort configuration.
|
|
3144
|
+
* Sort configuration. `attribute` is an attribute name or an object path
|
|
3145
|
+
* (`address.city`); relation paths are not sortable — ordering by a related
|
|
3146
|
+
* field would need a join the records query doesn't do.
|
|
2748
3147
|
*/
|
|
2749
3148
|
interface SortConfig {
|
|
2750
3149
|
attribute: string;
|
|
2751
3150
|
direction: SortDirection;
|
|
2752
3151
|
}
|
|
2753
3152
|
|
|
3153
|
+
/**
|
|
3154
|
+
* What a page toolbar button invokes. Absent normalizes to `action` (pages
|
|
3155
|
+
* persisted before `kind` existed).
|
|
3156
|
+
*/
|
|
3157
|
+
type PageActionKind = 'action' | 'workflow';
|
|
3158
|
+
/**
|
|
3159
|
+
* Page action definition — one toolbar button. `kind: action` invokes a
|
|
3160
|
+
* function-service Action by slug (`action`) and may prefill its params;
|
|
3161
|
+
* `kind: workflow` starts a manual run of a workflow by key (`workflow`) and
|
|
3162
|
+
* may prefill its manual-trigger inputs. `params` / `inputs` map target field
|
|
3163
|
+
* names to Liquid templates rendered against the page scope
|
|
3164
|
+
* `{ record, entity, params, user }`; a resolved field is locked in the invoke
|
|
3165
|
+
* dialog. `skip_confirmation` fires the target immediately when every required
|
|
3166
|
+
* field resolved from the templates.
|
|
3167
|
+
*/
|
|
3168
|
+
interface PageAction {
|
|
3169
|
+
label: string;
|
|
3170
|
+
icon: string;
|
|
3171
|
+
kind?: PageActionKind;
|
|
3172
|
+
action?: string;
|
|
3173
|
+
workflow?: string;
|
|
3174
|
+
params?: Record<string, string>;
|
|
3175
|
+
inputs?: Record<string, string>;
|
|
3176
|
+
skip_confirmation?: boolean;
|
|
3177
|
+
}
|
|
3178
|
+
declare const PageActionSchema: z.ZodObject<{
|
|
3179
|
+
label: z.ZodString;
|
|
3180
|
+
icon: z.ZodString;
|
|
3181
|
+
kind: z.ZodOptional<z.ZodEnum<["action", "workflow"]>>;
|
|
3182
|
+
action: z.ZodOptional<z.ZodString>;
|
|
3183
|
+
workflow: z.ZodOptional<z.ZodString>;
|
|
3184
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3185
|
+
inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3186
|
+
skip_confirmation: z.ZodOptional<z.ZodBoolean>;
|
|
3187
|
+
}, "strip", z.ZodTypeAny, {
|
|
3188
|
+
label: string;
|
|
3189
|
+
icon: string;
|
|
3190
|
+
params?: Record<string, string> | undefined;
|
|
3191
|
+
action?: string | undefined;
|
|
3192
|
+
workflow?: string | undefined;
|
|
3193
|
+
kind?: "action" | "workflow" | undefined;
|
|
3194
|
+
inputs?: Record<string, string> | undefined;
|
|
3195
|
+
skip_confirmation?: boolean | undefined;
|
|
3196
|
+
}, {
|
|
3197
|
+
label: string;
|
|
3198
|
+
icon: string;
|
|
3199
|
+
params?: Record<string, string> | undefined;
|
|
3200
|
+
action?: string | undefined;
|
|
3201
|
+
workflow?: string | undefined;
|
|
3202
|
+
kind?: "action" | "workflow" | undefined;
|
|
3203
|
+
inputs?: Record<string, string> | undefined;
|
|
3204
|
+
skip_confirmation?: boolean | undefined;
|
|
3205
|
+
}>;
|
|
3206
|
+
/**
|
|
3207
|
+
* Whether a list's rows can be checked, and whether the checkboxes show from
|
|
3208
|
+
* the start:
|
|
3209
|
+
*
|
|
3210
|
+
* - `on_demand` (default) — a Select toggle in the toolbar reveals them.
|
|
3211
|
+
* - `always` — checkboxes are showing from the start.
|
|
3212
|
+
* - `off` — rows can never be checked, even when the list carries actions.
|
|
3213
|
+
*/
|
|
3214
|
+
type SelectionMode = 'on_demand' | 'always' | 'off';
|
|
2754
3215
|
/**
|
|
2755
3216
|
* List configuration.
|
|
2756
3217
|
* Note: List uses `slug` as its primary identifier, not `id`.
|
|
@@ -2762,6 +3223,15 @@ interface List extends AuditFields {
|
|
|
2762
3223
|
name: string;
|
|
2763
3224
|
entity_slug: string;
|
|
2764
3225
|
columns: Column[];
|
|
3226
|
+
/**
|
|
3227
|
+
* Toolbar buttons on the list, same shape a page carries. They act on the
|
|
3228
|
+
* rows SELECTED in the list, so an `action` button names an `entity_batch`
|
|
3229
|
+
* action (invoked once with every selected record id) and prefill templates
|
|
3230
|
+
* resolve against the list scope `{ selection, entity, user }`.
|
|
3231
|
+
*/
|
|
3232
|
+
actions?: PageAction[];
|
|
3233
|
+
/** Row-selection affordance; absent normalizes to `on_demand`. */
|
|
3234
|
+
selection_mode?: SelectionMode;
|
|
2765
3235
|
/** Record page to open from this list; empty/absent = org default for the entity. */
|
|
2766
3236
|
default_page_slug?: string;
|
|
2767
3237
|
sorting: SortConfig[];
|
|
@@ -2831,6 +3301,35 @@ declare const ListSchema: z.ZodObject<{
|
|
|
2831
3301
|
label: string;
|
|
2832
3302
|
attribute: string;
|
|
2833
3303
|
}>, "many">;
|
|
3304
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3305
|
+
label: z.ZodString;
|
|
3306
|
+
icon: z.ZodString;
|
|
3307
|
+
kind: z.ZodOptional<z.ZodEnum<["action", "workflow"]>>;
|
|
3308
|
+
action: z.ZodOptional<z.ZodString>;
|
|
3309
|
+
workflow: z.ZodOptional<z.ZodString>;
|
|
3310
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3311
|
+
inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3312
|
+
skip_confirmation: z.ZodOptional<z.ZodBoolean>;
|
|
3313
|
+
}, "strip", z.ZodTypeAny, {
|
|
3314
|
+
label: string;
|
|
3315
|
+
icon: string;
|
|
3316
|
+
params?: Record<string, string> | undefined;
|
|
3317
|
+
action?: string | undefined;
|
|
3318
|
+
workflow?: string | undefined;
|
|
3319
|
+
kind?: "action" | "workflow" | undefined;
|
|
3320
|
+
inputs?: Record<string, string> | undefined;
|
|
3321
|
+
skip_confirmation?: boolean | undefined;
|
|
3322
|
+
}, {
|
|
3323
|
+
label: string;
|
|
3324
|
+
icon: string;
|
|
3325
|
+
params?: Record<string, string> | undefined;
|
|
3326
|
+
action?: string | undefined;
|
|
3327
|
+
workflow?: string | undefined;
|
|
3328
|
+
kind?: "action" | "workflow" | undefined;
|
|
3329
|
+
inputs?: Record<string, string> | undefined;
|
|
3330
|
+
skip_confirmation?: boolean | undefined;
|
|
3331
|
+
}>, "many">>;
|
|
3332
|
+
selection_mode: z.ZodOptional<z.ZodEnum<["on_demand", "always", "off"]>>;
|
|
2834
3333
|
default_page_slug: z.ZodOptional<z.ZodString>;
|
|
2835
3334
|
sorting: z.ZodArray<z.ZodObject<{
|
|
2836
3335
|
attribute: z.ZodString;
|
|
@@ -2868,6 +3367,17 @@ declare const ListSchema: z.ZodObject<{
|
|
|
2868
3367
|
direction: "asc" | "desc";
|
|
2869
3368
|
}[];
|
|
2870
3369
|
filters: FilterGroup[];
|
|
3370
|
+
actions?: {
|
|
3371
|
+
label: string;
|
|
3372
|
+
icon: string;
|
|
3373
|
+
params?: Record<string, string> | undefined;
|
|
3374
|
+
action?: string | undefined;
|
|
3375
|
+
workflow?: string | undefined;
|
|
3376
|
+
kind?: "action" | "workflow" | undefined;
|
|
3377
|
+
inputs?: Record<string, string> | undefined;
|
|
3378
|
+
skip_confirmation?: boolean | undefined;
|
|
3379
|
+
}[] | undefined;
|
|
3380
|
+
selection_mode?: "on_demand" | "always" | "off" | undefined;
|
|
2871
3381
|
default_page_slug?: string | undefined;
|
|
2872
3382
|
}, {
|
|
2873
3383
|
name: string;
|
|
@@ -2894,6 +3404,17 @@ declare const ListSchema: z.ZodObject<{
|
|
|
2894
3404
|
direction: "asc" | "desc";
|
|
2895
3405
|
}[];
|
|
2896
3406
|
filters: FilterGroup[];
|
|
3407
|
+
actions?: {
|
|
3408
|
+
label: string;
|
|
3409
|
+
icon: string;
|
|
3410
|
+
params?: Record<string, string> | undefined;
|
|
3411
|
+
action?: string | undefined;
|
|
3412
|
+
workflow?: string | undefined;
|
|
3413
|
+
kind?: "action" | "workflow" | undefined;
|
|
3414
|
+
inputs?: Record<string, string> | undefined;
|
|
3415
|
+
skip_confirmation?: boolean | undefined;
|
|
3416
|
+
}[] | undefined;
|
|
3417
|
+
selection_mode?: "on_demand" | "always" | "off" | undefined;
|
|
2897
3418
|
default_page_slug?: string | undefined;
|
|
2898
3419
|
}>;
|
|
2899
3420
|
/**
|
|
@@ -2914,6 +3435,8 @@ interface CreateListRequest {
|
|
|
2914
3435
|
entity_slug: string;
|
|
2915
3436
|
name: string;
|
|
2916
3437
|
columns: Column[];
|
|
3438
|
+
actions?: PageAction[];
|
|
3439
|
+
selection_mode?: SelectionMode;
|
|
2917
3440
|
default_page_slug?: string;
|
|
2918
3441
|
sorting: SortConfig[];
|
|
2919
3442
|
filters: FilterGroup[];
|
|
@@ -2925,6 +3448,8 @@ interface UpdateListRequest {
|
|
|
2925
3448
|
name?: string;
|
|
2926
3449
|
module_slug?: string;
|
|
2927
3450
|
columns?: Column[];
|
|
3451
|
+
actions?: PageAction[];
|
|
3452
|
+
selection_mode?: SelectionMode;
|
|
2928
3453
|
/** Set to '' to clear back to the org default. */
|
|
2929
3454
|
default_page_slug?: string;
|
|
2930
3455
|
sorting?: SortConfig[];
|
|
@@ -3078,28 +3603,6 @@ interface UpdateListViewRequest {
|
|
|
3078
3603
|
sorting?: SortConfig[];
|
|
3079
3604
|
filters?: FilterGroup[];
|
|
3080
3605
|
}
|
|
3081
|
-
/**
|
|
3082
|
-
* Page action definition. Page-level toolbar item; addressed by permissions
|
|
3083
|
-
* and shortcuts systems.
|
|
3084
|
-
*/
|
|
3085
|
-
interface PageAction {
|
|
3086
|
-
label: string;
|
|
3087
|
-
icon: string;
|
|
3088
|
-
action: string;
|
|
3089
|
-
}
|
|
3090
|
-
declare const PageActionSchema: z.ZodObject<{
|
|
3091
|
-
label: z.ZodString;
|
|
3092
|
-
icon: z.ZodString;
|
|
3093
|
-
action: z.ZodString;
|
|
3094
|
-
}, "strip", z.ZodTypeAny, {
|
|
3095
|
-
label: string;
|
|
3096
|
-
icon: string;
|
|
3097
|
-
action: string;
|
|
3098
|
-
}, {
|
|
3099
|
-
label: string;
|
|
3100
|
-
icon: string;
|
|
3101
|
-
action: string;
|
|
3102
|
-
}>;
|
|
3103
3606
|
/**
|
|
3104
3607
|
* Page type — encodes what the page binds to and how it is served (chrome +
|
|
3105
3608
|
* auth posture both follow from it):
|
|
@@ -3164,15 +3667,30 @@ declare const PageSchema: z.ZodObject<{
|
|
|
3164
3667
|
actions: z.ZodArray<z.ZodObject<{
|
|
3165
3668
|
label: z.ZodString;
|
|
3166
3669
|
icon: z.ZodString;
|
|
3167
|
-
|
|
3670
|
+
kind: z.ZodOptional<z.ZodEnum<["action", "workflow"]>>;
|
|
3671
|
+
action: z.ZodOptional<z.ZodString>;
|
|
3672
|
+
workflow: z.ZodOptional<z.ZodString>;
|
|
3673
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3674
|
+
inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3675
|
+
skip_confirmation: z.ZodOptional<z.ZodBoolean>;
|
|
3168
3676
|
}, "strip", z.ZodTypeAny, {
|
|
3169
3677
|
label: string;
|
|
3170
3678
|
icon: string;
|
|
3171
|
-
|
|
3679
|
+
params?: Record<string, string> | undefined;
|
|
3680
|
+
action?: string | undefined;
|
|
3681
|
+
workflow?: string | undefined;
|
|
3682
|
+
kind?: "action" | "workflow" | undefined;
|
|
3683
|
+
inputs?: Record<string, string> | undefined;
|
|
3684
|
+
skip_confirmation?: boolean | undefined;
|
|
3172
3685
|
}, {
|
|
3173
3686
|
label: string;
|
|
3174
3687
|
icon: string;
|
|
3175
|
-
|
|
3688
|
+
params?: Record<string, string> | undefined;
|
|
3689
|
+
action?: string | undefined;
|
|
3690
|
+
workflow?: string | undefined;
|
|
3691
|
+
kind?: "action" | "workflow" | undefined;
|
|
3692
|
+
inputs?: Record<string, string> | undefined;
|
|
3693
|
+
skip_confirmation?: boolean | undefined;
|
|
3176
3694
|
}>, "many">;
|
|
3177
3695
|
layout: z.ZodObject<{
|
|
3178
3696
|
version: z.ZodLiteral<1>;
|
|
@@ -3253,7 +3771,12 @@ declare const PageSchema: z.ZodObject<{
|
|
|
3253
3771
|
actions: {
|
|
3254
3772
|
label: string;
|
|
3255
3773
|
icon: string;
|
|
3256
|
-
|
|
3774
|
+
params?: Record<string, string> | undefined;
|
|
3775
|
+
action?: string | undefined;
|
|
3776
|
+
workflow?: string | undefined;
|
|
3777
|
+
kind?: "action" | "workflow" | undefined;
|
|
3778
|
+
inputs?: Record<string, string> | undefined;
|
|
3779
|
+
skip_confirmation?: boolean | undefined;
|
|
3257
3780
|
}[];
|
|
3258
3781
|
layout: {
|
|
3259
3782
|
version: 1;
|
|
@@ -3289,7 +3812,12 @@ declare const PageSchema: z.ZodObject<{
|
|
|
3289
3812
|
actions: {
|
|
3290
3813
|
label: string;
|
|
3291
3814
|
icon: string;
|
|
3292
|
-
|
|
3815
|
+
params?: Record<string, string> | undefined;
|
|
3816
|
+
action?: string | undefined;
|
|
3817
|
+
workflow?: string | undefined;
|
|
3818
|
+
kind?: "action" | "workflow" | undefined;
|
|
3819
|
+
inputs?: Record<string, string> | undefined;
|
|
3820
|
+
skip_confirmation?: boolean | undefined;
|
|
3293
3821
|
}[];
|
|
3294
3822
|
layout: {
|
|
3295
3823
|
version: 1;
|
|
@@ -3708,5 +4236,23 @@ interface UpdateDesignReferenceRequest {
|
|
|
3708
4236
|
interface DesignReferenceContent {
|
|
3709
4237
|
content: string;
|
|
3710
4238
|
}
|
|
4239
|
+
/**
|
|
4240
|
+
* The one non-literal `default_value`: "whoever is writing the record".
|
|
4241
|
+
* Meaningful only on `user` and `principal` attributes, where data-service
|
|
4242
|
+
* resolves it to the caller's `{ type, id }` at write time — an owner field
|
|
4243
|
+
* granting `share`, an `assignee`, a `requested_by` fill themselves without a
|
|
4244
|
+
* hook. An object rather than a bare string because a bare string IS a valid
|
|
4245
|
+
* user value (clients send bare ids). Mirrors `metamodel.CurrentUserDefault`.
|
|
4246
|
+
*/
|
|
4247
|
+
declare const CURRENT_USER_DEFAULT: {
|
|
4248
|
+
readonly type: "current_user";
|
|
4249
|
+
};
|
|
4250
|
+
type CurrentUserDefault = {
|
|
4251
|
+
type: 'current_user';
|
|
4252
|
+
};
|
|
4253
|
+
/** True when a `default_value` is the current-user sentinel (and nothing else). */
|
|
4254
|
+
declare function isCurrentUserDefault(value: unknown): value is CurrentUserDefault;
|
|
4255
|
+
/** Only the identity-valued attribute types can carry the sentinel. */
|
|
4256
|
+
declare function acceptsCurrentUserDefault(type: AttributeType): boolean;
|
|
3711
4257
|
|
|
3712
|
-
export {
|
|
4258
|
+
export { type EntityWithSchema as $, type AuditFields as A, type CreateListViewRequest as B, CURRENT_USER_DEFAULT as C, type CreateMenuConfigurationRequest as D, type CreatePageRequest as E, type FileRef as F, type CreateVariableRequest as G, type CurrencyAttributeMeta as H, CurrencyAttributeMetaSchema as I, type CurrencySymbolSide as J, type CurrencyValue as K, type ListOptions as L, type CurrentUserDefault as M, DEFAULT_OPTIONS as N, DEFAULT_PAGE_SIZE as O, PageIterator as P, DONE as Q, type DeployModuleRequest as R, type DesignReference as S, type DesignReferenceContent as T, type UserRef as U, DesignReferenceSchema as V, type DesignReferenceService as W, type Done as X, type Entity as Y, EntitySchema as Z, type EntityService as _, type Attribute as a, type Timestamps as a$, EntityWithSchemaSchema as a0, type EnumAttributeMeta as a1, type EnumValue as a2, type FileAttributeMeta as a3, FileRefSchema as a4, type FilterElement as a5, FilterElementSchema as a6, type FilterGroup as a7, FilterGroupSchema as a8, type List as a9, ModuleSchema as aA, type ModuleService as aB, type ModuleStatus as aC, type OnDeleteAction as aD, OnDeleteActionSchema as aE, PLATFORM_ATTRIBUTE_NAMES as aF, PLATFORM_USER_ID as aG, type Page as aH, type PageAction as aI, type PageActionKind as aJ, PageActionSchema as aK, type PageLayout as aL, PageLayoutSchema as aM, PageSchema as aN, type PageService as aO, type PageType as aP, type PublicPageComponent as aQ, type PublicPageResponse as aR, type RelationAttributeMeta as aS, RelationAttributeMetaSchema as aT, type RequestOptions as aU, type ResolvedClientOptions as aV, type ResponseMeta as aW, ResponseMetaSchema as aX, type SortConfig as aY, SortConfigSchema as aZ, type SortDirection as a_, type ListAppsOptions as aa, type ListComponentsOptions as ab, type ListDesignReferencesOptions as ac, type ListEntitiesOptions as ad, type ListFn as ae, type ListListViewsOptions as af, type ListListsOptions as ag, type ListMenuConfigurationsOptions as ah, type ListModulesOptions as ai, type ListPagesOptions as aj, ListSchema as ak, type ListService as al, type ListVariablesOptions as am, type ListView as an, ListViewSchema as ao, type ListViewService as ap, type LogicalOperator as aq, type MenuConfiguration as ar, MenuConfigurationSchema as as, type MenuConfigurationService as at, type MenuItem as au, MenuItemSchema as av, MenuItemType as aw, MetaClient as ax, type MetaListOptions as ay, type Module as az, type ListResult as b, type PrincipalAttributeMeta as b$, type TokenProvider as b0, type UpdateAppRequest as b1, type UpdateComponentRequest as b2, type UpdateDesignReferenceRequest as b3, type UpdateEntityRequest as b4, type UpdateListRequest as b5, type UpdateListViewRequest as b6, type UpdateMenuConfigurationRequest as b7, type UpdatePageRequest as b8, type UpdateVariableRequest as b9, type BuiltInControlSlug as bA, type CardElement as bB, type ColumnElement as bC, type CommonProps as bD, type ComponentElement as bE, type ControlBucket as bF, type DatetimeAttributeMeta as bG, type DatetimeFormat as bH, type DividerElement as bI, type FieldElement as bJ, FileAttributeMetaSchema as bK, type LayoutAlign as bL, type LayoutElement as bM, LayoutElementSchema as bN, LayoutElementType as bO, type LayoutGap as bP, type LayoutJustify as bQ, type LayoutTab as bR, type ListElement as bS, type NumberAttributeMeta as bT, type ObjectAttributeMeta as bU, PAGE_BACKGROUND_TOKENS as bV, type PageBackgroundToken as bW, type PageLayoutSidePanel as bX, PageLayoutSidePanelSchema as bY, type PageStyle as bZ, PageStyleSchema as b_, UserRefSchema as ba, type UserType as bb, type Variable as bc, VariableSchema as bd, type VariableService as be, acceptsCurrentUserDefault as bf, allCurrencyCodes as bg, createIterator as bh, createListResultSchema as bi, currencyLabel as bj, currencySymbol as bk, currencySymbolSide as bl, formatAmount as bm, formatMoney as bn, isCurrentUserDefault as bo, isPlatformAttributeName as bp, localeNumberSeparators as bq, parseAmount as br, parseCurrencyMeta as bs, parseFileMeta as bt, parseRelationMeta as bu, platformAttributes as bv, resolveOptions as bw, type AttributeForLookup as bx, type AttributeMeta as by, BUILT_IN_CONTROLS as bz, ProteosClient as c, type PrincipalType as c0, type RecordFilterElement as c1, type RelatedListElement as c2, type RelatedRecordElement as c3, type ResponsiveSizing as c4, type RowElement as c5, type SectionElement as c6, type SizeValue as c7, SizeValueSchema as c8, type SizingProps as c9, type StringAttributeMeta as ca, type StringFormat as cb, type TabsElement as cc, type TextElement as cd, type TextVariant as ce, type UserAttributeMeta as cf, UserAttributeMetaSchema as cg, isBuiltInControl as ch, lookupCompatibleControls as ci, lookupControls as cj, lookupPrimaryControl as ck, parsePrincipalMeta as cl, parseUserMeta as cm, type PrincipalRef as d, type PublicAccessOperation as e, type App as f, AppSchema as g, type AppService as h, type ArrayAttributeMeta as i, type AttributeAccessRule as j, type AttributeRestrictions as k, AttributeSchema as l, type AttributeType as m, AuditFieldsSchema as n, type ClientOptions as o, type Column as p, ColumnSchema as q, type ComparisonOperator as r, type Component as s, ComponentSchema as t, type ComponentService as u, type CreateAppRequest as v, type CreateComponentRequest as w, type CreateDesignReferenceRequest as x, type CreateEntityRequest as y, type CreateListRequest as z };
|