[BREAKING-CHANGE] Centralize system View viewField side effect (#23081)
# Introduction Closes https://github.com/twentyhq/core-team-issues/issues/2669 Part of the `isSystemSideEffect` engine-ownership effort. Until now, a custom object's default **INDEX** table view (`All {objectLabelPlural}`) and its view fields were built imperatively in `ObjectMetadataService` with random `v4()` identifiers, while `twenty-standard` authored its own copies with hardcoded literals. The two never converged, an object rename could drift the view, and nothing marked these rows as engine-owned. This PR makes the metadata side-effect engine the **single owner** of the INDEX view and its view fields, on name-free deterministic identifiers, for custom and standard objects alike. ## Core design - **Name-free deterministic identity.** The INDEX view identifier derives from `object identifier + ViewKey.INDEX` (`getSystemViewUniversalIdentifier`); each view-field identifier derives from `view identifier + field identifier` (`getViewFieldUniversalIdentifier`). An object rename (with a pinned object identifier) keeps the same view, losslessly. - **`isSystemSideEffect: true` is provenance.** Every INDEX view / view field the engine emits is flagged system-owned, so manifest deletion inference never drops it. The flag follows the view: a view field inherits its parent view's flag. - **The engine is the sole owner of the INDEX view.** It always emits it; a caller providing one with the same derived identifier is a genuine conflict surfaced by the engine's reserved-identifier collision, not silently deferred. ## Changes ### Shared (`twenty-shared`) - `getIndexViewUniversalIdentifier` → `getSystemViewUniversalIdentifier`, now taking a `viewKey` (generalizes to any singleton engine-owned view). - Standard field identifiers extracted into a new `STANDARD_OBJECT_FIELDS` constant, so both an object's `fields` and its INDEX view read the same field identifiers. - `buildStandardObjectIndexView` derives the standard INDEX view + view-field identifiers from `STANDARD_OBJECT_FIELDS`, replacing the hardcoded literals in `standard-object.constant.ts`. ### Metadata side-effect engine (custom objects) - **`objectSystemFieldsAndIndexViewOnCreate`** (replaces `objectSystemFieldsOnCreate`): on object creation, provisions the 7 reserved system fields **and** the INDEX view with one view field per displayable system field, all `isSystemSideEffect: true`. - **`fieldIndexViewFieldOnCreate`** (new): on field creation, provisions the field's INDEX view field. Object created in the same batch → visible, positioned before the system view fields; pre-existing object → hidden, appended (preserving the historical `createOneField` behavior). Both branches resolve the INDEX view by its derived identifier (single map access, never a scan). - **`fieldSystemViewFieldsOnDelete`** (new): on field deletion, cascade-deletes every engine-owned view field displaying it. - **`objectSystemSideEffectsOnDelete`** (extended): now also cascade-deletes the object's engine-owned views and their view fields (in addition to system fields, indexes, searchFieldMetadata). Every lookup walks a foreign-key aggregator down from the deleted object, so the work is proportional to what the object owns, never to workspace size. - Object-create and field-create positions are derived from the same caller-input field list, so the INDEX view layout is contiguous with no handler-ordering dependency. - `view` / `viewField` added to the side-effect companion metadata names for `fieldMetadata` and `objectMetadata`. ### Reserved-identifier invariant A caller can never define an entity whose identifier collides with one a system side effect produces: caller inputs are forced `isSystemSideEffect: false` at every entry point (API and app-manifest transpilers), and the engine raises `RESERVED_SYSTEM_UNIVERSAL_IDENTIFIER`, aborting the operation, when a system emission lands on a caller-claimed identifier. Covered by a new engine-level test. ### Caller-side provisioning removed The imperative INDEX view + view-field provisioning is removed from `ObjectMetadataService.createOneObject`. The record-page `FIELDS_WIDGET` view is intentionally left caller-side and deferred to the follow-up (see below). ### `twenty-standard` convergence Standard INDEX views and their view fields converge on the same derived-identifier + `isSystemSideEffect: true` scheme as the engine. `twenty-standard` syncs through the from/to migration path (which never runs the side-effect engine), so it authors this INDEX surface itself, matching what the engine produces for custom objects. ## Rollout Two `2.26.0` workspace commands, running after the `2.25` messageCampaign commands: - `upgrade:2-26:reconcile-index-view-universal-identifier` re-owns the INDEX views of the **twenty-standard and workspace-custom applications** and all their view fields to the derived identifiers with `isSystemSideEffect: true`, in a single per-workspace transaction. Each view field identifier is keyed on the application of the **displayed field** (an app or user column on a standard INDEX view converges too). Soft-deleted views and view fields are skipped: one can coexist with an active successor on the same derivation inputs and both would derive the same identifier. Children reference the view by primary key, so the re-own is lossless. - `upgrade:2-26:demote-and-backfill-application-index-view` handles **manifest-installed applications**, which never had their INDEX view auto-provisioned: every caller-authored INDEX view of another application is demoted to `key: null` (a plain additional view under its manifest identifier), then every application object gets the engine-owned INDEX view and its full view-field layout backfilled through the migration pipeline's legacy path (no side-effect expansion), views committed before view fields across applications since a view field belongs to the application owning its field. Idempotent and retry-safe: engine-owned INDEX views are neither demoted nor re-backfilled, and view creation and view-field creation are gated independently, so a retry after a partial failure still backfills the missing view fields of an already-committed view. Both support `--dry-run` and invalidate the full flat-maps closure (parents aggregate the re-owned identifiers, children resolve them as universal foreign keys, and page-layout widget universal configurations resolve view PKs at cache-build time). The `2.25` `upgrade:2-25:add-message-campaign-name-field` command is adapted to resolve the campaign INDEX view by its INDEX key on the object instead of by universal identifier: it now runs before the reconcile, on workspaces still holding legacy identifiers. ## ⚠️ Breaking change This PR **mutates 187 previously hardcoded universal identifiers** — the standard objects' INDEX views and their view fields (the literals removed from `standard-object.constant.ts`), now derived. - **Handled by the `2.26` commands above** for all existing workspaces. - **The INDEX key is now engine-reserved.** The flat view validator rejects caller-created INDEX views (API and manifest inputs are forced `isSystemSideEffect: false`) and enforces a single non-deleted INDEX view per object; `view.key` is no longer a comparable/updatable property, so no writer can promote or demote a view after creation. `ViewManifest.key` is deprecated and ignored (manifest views are always additional views, so old apps keep syncing and demoted views are not promoted back); the REST/GraphQL create path now rejects `key: INDEX`. In-repo example apps (`hello-world`, `document-generator`) no longer declare it. - **12 declared-but-never-seeded standard INDEX view field identifiers deleted** (the former `preservedViewFields` on `timelineActivity`, `workflowRun` and `workspaceMember`): after the reconcile, no workspace row references them. - **`computeFlatViewFieldsToCreate` now derives view field identifiers** instead of drawing `v4()` ones, which also changes what the committed `1-23` record-page backfill produces going forward (deliberate, documented in-code). - **Record-page views and view fields are not affected** (identifiers unchanged). - **In-repo apps: `twenty-last-contact` updated.** It was the only app declaring explicit INDEX view fields (10 columns across `allPeople` / `allCompanies` / `allOpportunities`) through manifest `viewFields`. Those target identifiers are now engine-owned and derived, so the manifest inputs no longer resolve and install failed with `View not found`. The app now declares only its fields; the engine's `fieldIndexViewFieldOnCreate` provisions the matching INDEX view field automatically. No other app under `packages/twenty-apps` references any of the 187 mutated identifiers, and apps that target standard views point at record-page views (e.g. `real-estate` → `opportunityRecordPageFields`) or their own objects (`twenty-partners`), all unchanged. ### Loss of granularity for app maintainers The engine now owns the INDEX view field of every field a caller adds to an object, so app maintainers lose direct control over those columns. Previously an app could target the engine-owned INDEX view with an explicit manifest `viewField` and set its `position` and `isVisible`. Now `fieldIndexViewFieldOnCreate` appends a **hidden** view field in caller-input order on field creation, so: - Columns an app previously showed at a **dedicated position** and **visible** (e.g. `twenty-last-contact`'s last-contact columns) become **hidden** and **appended in input order** after install. - There is currently **no manifest way to override** the engine-provisioned INDEX view field's position, visibility, or size. This is a deliberate regression accepted for the sake of single-ownership, and app maintainers should expect their INDEX columns to move/hide after upgrading. A follow-up override API will let maintainers reclaim per-field control over the engine-provisioned INDEX view field. ## Testing - Unit specs for each handler: object create (system fields + INDEX view/view fields, override, position offset), field create (same-batch vs existing-object, non-displayable noop, no-INDEX-view noop), field delete, object delete (fields/indexes/searchFieldMetadata/views/view fields cascade, reverse-relation view field on another object). - Engine-level test for the reserved-identifier collision. - `twenty-standard` guard test that its INDEX views/view fields stay on the derived scheme and stay system-owned. - Integration test: full engine provisioning of the INDEX view/view fields on object creation, same view id preserved across an object rename, and cascade delete on object deletion. ## Follow-up The full record-page stack (record-page view, its view fields, view field groups, page layout / tab / widget) is still built imperatively and moves into the engine in https://github.com/twentyhq/core-team-issues/issues/2721.
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
import { getFieldsWidgetViewUniversalIdentifier } from '@/application/deterministic-identifier/get-fields-widget-view-universal-identifier.util';
|
||||
|
||||
const APP = '11111111-1111-4111-8111-111111111111';
|
||||
const WIDGET = '88888888-8888-4888-8888-888888888888';
|
||||
|
||||
describe('getFieldsWidgetViewUniversalIdentifier', () => {
|
||||
it('derives a deterministic id from its 1:1 FIELDS page-layout widget', () => {
|
||||
expect(
|
||||
getFieldsWidgetViewUniversalIdentifier({
|
||||
applicationUniversalIdentifier: APP,
|
||||
pageLayoutWidgetUniversalIdentifier: WIDGET,
|
||||
}),
|
||||
).toBe('5f45a1bd-97df-56f7-a8ad-7839ef0045b5');
|
||||
});
|
||||
});
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import { getSystemViewUniversalIdentifier } from '@/application/deterministic-identifier/get-system-view-universal-identifier.util';
|
||||
import { ViewKey } from '@/types/ViewKey';
|
||||
|
||||
const APP = '11111111-1111-4111-8111-111111111111';
|
||||
const OBJECT = '22222222-2222-4222-8222-222222222222';
|
||||
|
||||
describe('getSystemViewUniversalIdentifier', () => {
|
||||
it('derives a deterministic id from the stable INDEX view key within its object', () => {
|
||||
expect(
|
||||
getSystemViewUniversalIdentifier({
|
||||
applicationUniversalIdentifier: APP,
|
||||
objectUniversalIdentifier: OBJECT,
|
||||
viewKey: ViewKey.INDEX,
|
||||
}),
|
||||
).toBe('3803a536-0158-554c-bfb4-e5492323e57f');
|
||||
});
|
||||
});
|
||||
+1
-28
@@ -1,12 +1,7 @@
|
||||
import {
|
||||
getFieldsWidgetViewUniversalIdentifier,
|
||||
getIndexViewUniversalIdentifier,
|
||||
getViewUniversalIdentifier,
|
||||
} from '@/application/deterministic-identifier/get-view-universal-identifier.util';
|
||||
import { getViewUniversalIdentifier } from '@/application/deterministic-identifier/get-view-universal-identifier.util';
|
||||
|
||||
const APP = '11111111-1111-4111-8111-111111111111';
|
||||
const OBJECT = '22222222-2222-4222-8222-222222222222';
|
||||
const WIDGET = '88888888-8888-4888-8888-888888888888';
|
||||
|
||||
describe('getViewUniversalIdentifier', () => {
|
||||
it('derives a deterministic id from the view name within its object', () => {
|
||||
@@ -19,25 +14,3 @@ describe('getViewUniversalIdentifier', () => {
|
||||
).toBe('125140c3-eca9-560d-9020-dad4ac1ebab6');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getIndexViewUniversalIdentifier', () => {
|
||||
it('derives a deterministic id from the stable INDEX view key within its object', () => {
|
||||
expect(
|
||||
getIndexViewUniversalIdentifier({
|
||||
applicationUniversalIdentifier: APP,
|
||||
objectUniversalIdentifier: OBJECT,
|
||||
}),
|
||||
).toBe('3803a536-0158-554c-bfb4-e5492323e57f');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getFieldsWidgetViewUniversalIdentifier', () => {
|
||||
it('derives a deterministic id from its 1:1 FIELDS page-layout widget', () => {
|
||||
expect(
|
||||
getFieldsWidgetViewUniversalIdentifier({
|
||||
applicationUniversalIdentifier: APP,
|
||||
pageLayoutWidgetUniversalIdentifier: WIDGET,
|
||||
}),
|
||||
).toBe('5f45a1bd-97df-56f7-a8ad-7839ef0045b5');
|
||||
});
|
||||
});
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
import { computeDeterministicUuid } from '@/application/deterministic-identifier/compute-deterministic-uuid.util';
|
||||
|
||||
export const getFieldsWidgetViewUniversalIdentifier = ({
|
||||
applicationUniversalIdentifier,
|
||||
pageLayoutWidgetUniversalIdentifier,
|
||||
}: {
|
||||
applicationUniversalIdentifier: string;
|
||||
pageLayoutWidgetUniversalIdentifier: string;
|
||||
}): string =>
|
||||
computeDeterministicUuid({
|
||||
entityNamespace: 'view',
|
||||
value: pageLayoutWidgetUniversalIdentifier,
|
||||
applicationUniversalIdentifier,
|
||||
});
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import { computeDeterministicUuid } from '@/application/deterministic-identifier/compute-deterministic-uuid.util';
|
||||
import { type ViewKey } from '@/types/ViewKey';
|
||||
|
||||
export const getSystemViewUniversalIdentifier = ({
|
||||
applicationUniversalIdentifier,
|
||||
objectUniversalIdentifier,
|
||||
viewKey,
|
||||
}: {
|
||||
applicationUniversalIdentifier: string;
|
||||
objectUniversalIdentifier: string;
|
||||
viewKey: ViewKey;
|
||||
}): string =>
|
||||
computeDeterministicUuid({
|
||||
entityNamespace: 'view',
|
||||
value: `${objectUniversalIdentifier}:${viewKey}`,
|
||||
applicationUniversalIdentifier,
|
||||
});
|
||||
-32
@@ -1,7 +1,5 @@
|
||||
import { computeDeterministicUuid } from '@/application/deterministic-identifier/compute-deterministic-uuid.util';
|
||||
import { ViewKey } from '@/types/ViewKey';
|
||||
|
||||
// A view is identified by its name within its object.
|
||||
export const getViewUniversalIdentifier = ({
|
||||
applicationUniversalIdentifier,
|
||||
objectUniversalIdentifier,
|
||||
@@ -16,33 +14,3 @@ export const getViewUniversalIdentifier = ({
|
||||
value: `${objectUniversalIdentifier}:${name}`,
|
||||
applicationUniversalIdentifier,
|
||||
});
|
||||
|
||||
// The INDEX view is an object's singleton main table view; its name is
|
||||
// server-generated, so it is keyed by the stable INDEX view key.
|
||||
export const getIndexViewUniversalIdentifier = ({
|
||||
applicationUniversalIdentifier,
|
||||
objectUniversalIdentifier,
|
||||
}: {
|
||||
applicationUniversalIdentifier: string;
|
||||
objectUniversalIdentifier: string;
|
||||
}): string =>
|
||||
computeDeterministicUuid({
|
||||
entityNamespace: 'view',
|
||||
value: `${objectUniversalIdentifier}:${ViewKey.INDEX}`,
|
||||
applicationUniversalIdentifier,
|
||||
});
|
||||
|
||||
// A fields-widget view is 1:1 with its FIELDS page-layout widget, so it is keyed
|
||||
// by that widget's deterministic universalIdentifier (its name is server-generated).
|
||||
export const getFieldsWidgetViewUniversalIdentifier = ({
|
||||
applicationUniversalIdentifier,
|
||||
pageLayoutWidgetUniversalIdentifier,
|
||||
}: {
|
||||
applicationUniversalIdentifier: string;
|
||||
pageLayoutWidgetUniversalIdentifier: string;
|
||||
}): string =>
|
||||
computeDeterministicUuid({
|
||||
entityNamespace: 'view',
|
||||
value: pageLayoutWidgetUniversalIdentifier,
|
||||
applicationUniversalIdentifier,
|
||||
});
|
||||
|
||||
@@ -54,6 +54,7 @@ export {
|
||||
export { getConnectionProviderUniversalIdentifier } from './deterministic-identifier/get-connection-provider-universal-identifier.util';
|
||||
export { getFieldPermissionUniversalIdentifier } from './deterministic-identifier/get-field-permission-universal-identifier.util';
|
||||
export { getFieldUniversalIdentifier } from './deterministic-identifier/get-field-universal-identifier.util';
|
||||
export { getFieldsWidgetViewUniversalIdentifier } from './deterministic-identifier/get-fields-widget-view-universal-identifier.util';
|
||||
export { getFrontComponentUniversalIdentifier } from './deterministic-identifier/get-front-component-universal-identifier.util';
|
||||
export { getIndexUniversalIdentifier } from './deterministic-identifier/get-index-universal-identifier.util';
|
||||
export { getLogicFunctionUniversalIdentifier } from './deterministic-identifier/get-logic-function-universal-identifier.util';
|
||||
@@ -79,16 +80,13 @@ export { getSearchFieldUniversalIdentifier } from './deterministic-identifier/ge
|
||||
export { getSelectOptionUniversalIdentifier } from './deterministic-identifier/get-select-option-universal-identifier.util';
|
||||
export { getSkillUniversalIdentifier } from './deterministic-identifier/get-skill-universal-identifier.util';
|
||||
export { getSystemRelationFieldUniversalIdentifier } from './deterministic-identifier/get-system-relation-field-universal-identifier.util';
|
||||
export { getSystemViewUniversalIdentifier } from './deterministic-identifier/get-system-view-universal-identifier.util';
|
||||
export { getViewFieldGroupUniversalIdentifier } from './deterministic-identifier/get-view-field-group-universal-identifier.util';
|
||||
export { getViewFieldUniversalIdentifier } from './deterministic-identifier/get-view-field-universal-identifier.util';
|
||||
export { getViewFilterUniversalIdentifier } from './deterministic-identifier/get-view-filter-universal-identifier.util';
|
||||
export { getViewGroupUniversalIdentifier } from './deterministic-identifier/get-view-group-universal-identifier.util';
|
||||
export { getViewSortUniversalIdentifier } from './deterministic-identifier/get-view-sort-universal-identifier.util';
|
||||
export {
|
||||
getViewUniversalIdentifier,
|
||||
getIndexViewUniversalIdentifier,
|
||||
getFieldsWidgetViewUniversalIdentifier,
|
||||
} from './deterministic-identifier/get-view-universal-identifier.util';
|
||||
export { getViewUniversalIdentifier } from './deterministic-identifier/get-view-universal-identifier.util';
|
||||
export { SyncableEntity } from './enums/syncable-entities.enum';
|
||||
export type {
|
||||
RegularFieldManifest,
|
||||
|
||||
@@ -68,6 +68,11 @@ export type ViewManifest = SyncableEntityOptions & {
|
||||
name: string;
|
||||
objectUniversalIdentifier: string;
|
||||
type?: ViewType;
|
||||
/**
|
||||
* @deprecated The INDEX key is reserved for the engine-owned default view,
|
||||
* which the server provisions automatically for every object. This field is
|
||||
* ignored: manifest views are always created as additional views.
|
||||
*/
|
||||
key?: ViewKey;
|
||||
icon?: string;
|
||||
position?: number;
|
||||
|
||||
+188
-224
@@ -93,40 +93,40 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-bd3d-4c60-8dca-571c71d4447a",
|
||||
"views": {
|
||||
"allAttachments": {
|
||||
"universalIdentifier": "3f7f3363-7087-44cc-902d-5e8904262316",
|
||||
"universalIdentifier": "e0c5bfc8-2aa8-5407-9d7e-f374055914b2",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "6c092c26-b1cb-488f-ae2e-5af4bec1162b",
|
||||
"universalIdentifier": "cd0ab629-435f-5d59-9b14-1d2ee00954d8",
|
||||
},
|
||||
"createdBy": {
|
||||
"universalIdentifier": "fa363372-0fdf-4bb3-bdf1-0ead354b9225",
|
||||
"universalIdentifier": "9c0456cf-ab42-596b-b381-048cf5718117",
|
||||
},
|
||||
"file": {
|
||||
"universalIdentifier": "873cf114-5477-4b62-9023-7ea6ad69fbe5",
|
||||
"universalIdentifier": "2c641732-02a0-5aeb-9262-ff60973b7cf2",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "be56712f-d7a6-4fbe-b92b-d750f0708a0a",
|
||||
"universalIdentifier": "d5a4f58e-abf1-52ce-a315-ea7b18e4a946",
|
||||
},
|
||||
"targetCompany": {
|
||||
"universalIdentifier": "b335ad04-059e-4c36-8666-f40431849044",
|
||||
"universalIdentifier": "7f76f6c5-078d-5064-89b4-e0042ee4e169",
|
||||
},
|
||||
"targetDashboard": {
|
||||
"universalIdentifier": "bcc6d6e1-7c0b-4291-9270-66e42024d8dd",
|
||||
"universalIdentifier": "4f1ae4ae-c1c9-5b2c-8f6f-9435171fca48",
|
||||
},
|
||||
"targetNote": {
|
||||
"universalIdentifier": "fc8dba49-bcf2-41b8-a435-0c4a3bbf2af6",
|
||||
"universalIdentifier": "6e24a74a-6d3d-54ce-afd0-7c55daf79d81",
|
||||
},
|
||||
"targetOpportunity": {
|
||||
"universalIdentifier": "15f2d457-dc09-4c52-bf2a-47083d6bf017",
|
||||
"universalIdentifier": "4e0a4cf7-8e45-5688-90a6-da6d67544f72",
|
||||
},
|
||||
"targetPerson": {
|
||||
"universalIdentifier": "73a4c3a7-c7f9-4ed6-a2b6-117d7efad0f3",
|
||||
"universalIdentifier": "8cff29b2-23e8-5190-93da-f1b22faea495",
|
||||
},
|
||||
"targetTask": {
|
||||
"universalIdentifier": "c2913c5e-6cc6-438d-9c2f-3212a9b2a82b",
|
||||
"universalIdentifier": "cc9c44ea-c27e-5f57-9094-85cf14dae3e2",
|
||||
},
|
||||
"targetWorkflow": {
|
||||
"universalIdentifier": "11fcf58b-dbab-42dd-be67-689462111070",
|
||||
"universalIdentifier": "75d1d092-412f-57b1-9e74-e3f8285a3f0c",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -173,16 +173,16 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-0408-4f38-b8a8-4d5e3e26e24d",
|
||||
"views": {
|
||||
"allBlocklists": {
|
||||
"universalIdentifier": "5a98e88c-67c2-4f61-a5ab-a0d3d6a836bb",
|
||||
"universalIdentifier": "2ee7be0b-4112-5543-9f29-04c933fd4f98",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "e7cfcf05-2676-4d43-9eee-4da1016b12ff",
|
||||
"universalIdentifier": "fc86c1d0-a6f1-58c4-b32c-ddbffdeda2da",
|
||||
},
|
||||
"handle": {
|
||||
"universalIdentifier": "155ae00d-0def-4f62-9473-8a8efa209eee",
|
||||
"universalIdentifier": "07282d15-ed89-5504-9904-cd242125e9f2",
|
||||
},
|
||||
"workspaceMember": {
|
||||
"universalIdentifier": "05a2f0b9-f2ef-4729-bc42-9e2ad2a34fb2",
|
||||
"universalIdentifier": "20253618-79e4-57e8-b18f-f506657d5132",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -260,19 +260,19 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-491b-4aaa-9825-afd1bae6ae00",
|
||||
"views": {
|
||||
"allCalendarChannelEventAssociations": {
|
||||
"universalIdentifier": "001893be-c06c-4ba1-9f18-53bd26f0179f",
|
||||
"universalIdentifier": "66887c1c-c33a-52b6-8dd1-0714e504ffec",
|
||||
"viewFields": {
|
||||
"calendarChannelId": {
|
||||
"universalIdentifier": "e3adffd2-d820-4c89-912c-34908d90057e",
|
||||
"universalIdentifier": "6504f7e7-3a66-54b2-adc1-53d90fc7d9e3",
|
||||
},
|
||||
"calendarEvent": {
|
||||
"universalIdentifier": "35656a84-ecb8-4075-a610-8b538d6f8120",
|
||||
"universalIdentifier": "9be9bb56-f65d-53ee-a6e6-4d01a6e9cb58",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "8ca74f2f-210b-4afc-81f0-506047400e82",
|
||||
"universalIdentifier": "2ee9fd11-c7a6-54c8-af41-572ed8cecbd7",
|
||||
},
|
||||
"eventExternalId": {
|
||||
"universalIdentifier": "f779d7e8-f1d8-44a7-b0ef-4409c9b6b466",
|
||||
"universalIdentifier": "55ea0442-7664-5da2-bc21-d02e101acdcc",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -382,31 +382,31 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-8f1d-4eef-9f85-0d1965e27221",
|
||||
"views": {
|
||||
"allCalendarEvents": {
|
||||
"universalIdentifier": "20202020-c001-4c01-8c01-ca1ebe0ca001",
|
||||
"universalIdentifier": "d581f9a1-1546-5eef-b5a4-4c7a088dc6fa",
|
||||
"viewFields": {
|
||||
"conferenceLink": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf06",
|
||||
"universalIdentifier": "caee37ae-989a-5d95-ad26-e42530d5a65c",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf08",
|
||||
"universalIdentifier": "0a502413-f875-5c1d-aa60-93e6f412568e",
|
||||
},
|
||||
"endsAt": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf03",
|
||||
"universalIdentifier": "65fbb3d7-e21c-52f6-a90c-38a424d05284",
|
||||
},
|
||||
"isCanceled": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf07",
|
||||
"universalIdentifier": "ef47c862-92b5-5d72-8e3c-7806244b0a70",
|
||||
},
|
||||
"isFullDay": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf04",
|
||||
"universalIdentifier": "b3f5e6c6-80bf-5ef3-b8d7-1bc521ef8054",
|
||||
},
|
||||
"location": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf05",
|
||||
"universalIdentifier": "ac181cfc-c9cb-50f5-89eb-19c01615b0dc",
|
||||
},
|
||||
"startsAt": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf02",
|
||||
"universalIdentifier": "38902ac0-92dd-5889-bcc2-0e3956a7f18d",
|
||||
},
|
||||
"title": {
|
||||
"universalIdentifier": "20202020-cf01-4c01-8c01-ca1ebe0caf01",
|
||||
"universalIdentifier": "292e2bd9-118e-56a2-bafc-e182f4f323a7",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -523,31 +523,31 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-a1c3-47a6-9732-27e5b1e8436d",
|
||||
"views": {
|
||||
"allCalendarEventParticipants": {
|
||||
"universalIdentifier": "5228d634-6b69-4a43-be5c-e778fa6fe779",
|
||||
"universalIdentifier": "23b1277b-8859-54ea-9106-9e6d43e5adc4",
|
||||
"viewFields": {
|
||||
"calendarEvent": {
|
||||
"universalIdentifier": "d9c2f346-b83b-48ae-98d0-e344f97248cd",
|
||||
"universalIdentifier": "5ef7cac8-d293-559f-88a7-5a4d0234c4c5",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "63d9d40d-e40c-410c-a14c-2f36c64c3e69",
|
||||
"universalIdentifier": "41f8cf98-cd93-500d-9b9c-1e1af2e6c3cb",
|
||||
},
|
||||
"displayName": {
|
||||
"universalIdentifier": "3cadc470-9231-4027-9bbe-60e934edb483",
|
||||
"universalIdentifier": "f96e757e-aa84-5c05-8922-9f962eb3854f",
|
||||
},
|
||||
"handle": {
|
||||
"universalIdentifier": "4140bd68-55e8-475c-8724-7f9f97634a9f",
|
||||
"universalIdentifier": "e3c1165d-aa09-5636-ac37-a391bacc602e",
|
||||
},
|
||||
"isOrganizer": {
|
||||
"universalIdentifier": "684972f9-c5fe-4fff-bdec-2fc5511c938c",
|
||||
"universalIdentifier": "949e222c-dbe7-5696-b386-ed3a82d8b452",
|
||||
},
|
||||
"person": {
|
||||
"universalIdentifier": "86546244-9e3d-40e4-87cd-cbc82a353d2e",
|
||||
"universalIdentifier": "e236d415-822a-5847-a90c-f0699eeb5cc7",
|
||||
},
|
||||
"responseStatus": {
|
||||
"universalIdentifier": "dd0ab0bd-7f33-48fa-9461-fb5d085a2f9f",
|
||||
"universalIdentifier": "0f3e3c0c-d8f9-57d9-99d5-66407347f210",
|
||||
},
|
||||
"workspaceMember": {
|
||||
"universalIdentifier": "542141b0-ac85-4c43-867b-8d7f559b07ae",
|
||||
"universalIdentifier": "e54eca2e-7fd9-5743-a514-348067775949",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -667,19 +667,19 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "ce19efb9-710f-45b2-b141-473abbeea60b",
|
||||
"views": {
|
||||
"allCallRecordings": {
|
||||
"universalIdentifier": "c395b55e-88f0-4d5b-a1fb-0d38b50e0b19",
|
||||
"universalIdentifier": "6676d746-71e4-5dff-9bf1-418b92c26253",
|
||||
"viewFields": {
|
||||
"recordingRequestStatus": {
|
||||
"universalIdentifier": "3bdedacd-0fd5-4175-8d28-2fe41bb5aa77",
|
||||
"universalIdentifier": "883d1aca-4113-50ab-b83e-e2e2292bb5aa",
|
||||
},
|
||||
"startedAt": {
|
||||
"universalIdentifier": "3b96351f-66ed-4fa6-acb6-698647573af7",
|
||||
"universalIdentifier": "23d91b8e-e413-5e10-b818-17c3359fe068",
|
||||
},
|
||||
"status": {
|
||||
"universalIdentifier": "6c4a81a2-d9c1-4f82-984c-f97e083ca710",
|
||||
"universalIdentifier": "c7e2829f-4eba-5d7f-a1c7-a18ed8bd8025",
|
||||
},
|
||||
"title": {
|
||||
"universalIdentifier": "b1d5051b-071d-4514-93cf-704724cdc8f6",
|
||||
"universalIdentifier": "fcf0cedc-6d25-53ed-a587-cfb4b0958071",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -799,28 +799,28 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
||||
"views": {
|
||||
"allCompanies": {
|
||||
"universalIdentifier": "20202020-a001-4a01-8a01-c0aba11c0001",
|
||||
"universalIdentifier": "cb8dc074-a42f-520b-85e5-ab85a1b40b20",
|
||||
"viewFields": {
|
||||
"accountOwner": {
|
||||
"universalIdentifier": "20202020-af01-4a01-8a01-c0aba11cf004",
|
||||
"universalIdentifier": "90b29c8d-d6a3-57be-8f3b-879f2807a0a7",
|
||||
},
|
||||
"address": {
|
||||
"universalIdentifier": "20202020-af01-4a01-8a01-c0aba11cf008",
|
||||
"universalIdentifier": "68cd0e8b-f730-54f5-90a0-45798bb5bb70",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-af01-4a01-8a01-c0aba11cf005",
|
||||
"universalIdentifier": "b8b2c693-4f3e-5471-afe2-1bd70dcd9b16",
|
||||
},
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af01-4a01-8a01-c0aba11cf003",
|
||||
"universalIdentifier": "ec94701d-acce-58b5-bd81-75d585a68cf7",
|
||||
},
|
||||
"domainName": {
|
||||
"universalIdentifier": "20202020-af01-4a01-8a01-c0aba11cf002",
|
||||
"universalIdentifier": "4b4afe40-aa94-5bca-92a3-b84ccb846811",
|
||||
},
|
||||
"linkedinLink": {
|
||||
"universalIdentifier": "20202020-af01-4a01-8a01-c0aba11cf007",
|
||||
"universalIdentifier": "fa5a7f00-9751-5ab1-a410-fe144fedd2dc",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-af01-4a01-8a01-c0aba11cf001",
|
||||
"universalIdentifier": "87bbfcc6-3be8-58a5-852c-f02c9c9bc009",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -937,19 +937,19 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-3840-4b6d-9425-0c5188b05ca8",
|
||||
"views": {
|
||||
"allDashboards": {
|
||||
"universalIdentifier": "20202020-a012-4a12-8a12-da5ab0b0a001",
|
||||
"universalIdentifier": "0769edd6-ff42-5c4b-80c4-8aa1d07afba6",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-af12-4a12-8a12-da5ab0b0af03",
|
||||
"universalIdentifier": "f586827d-ed83-51bc-a862-741bd45ead77",
|
||||
},
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af12-4a12-8a12-da5ab0b0af02",
|
||||
"universalIdentifier": "79f57be6-3262-517b-b592-4e791be5806e",
|
||||
},
|
||||
"title": {
|
||||
"universalIdentifier": "20202020-af12-4a12-8a12-da5ab0b0af01",
|
||||
"universalIdentifier": "e0fd54ca-2197-5ba8-ac87-9b7b39f359d0",
|
||||
},
|
||||
"updatedAt": {
|
||||
"universalIdentifier": "20202020-af12-4a12-8a12-da5ab0b0af04",
|
||||
"universalIdentifier": "d37846b6-01a9-54f9-ab44-43a39375974d",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1023,28 +1023,28 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-3f6b-4425-80ab-e468899ab4b2",
|
||||
"views": {
|
||||
"allMessages": {
|
||||
"universalIdentifier": "20202020-d001-4d01-8d01-ae55a9e5a001",
|
||||
"universalIdentifier": "8ac6d466-4071-5ce9-b635-5162034fa3f5",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-df01-4d01-8d01-ae55a9e5af07",
|
||||
"universalIdentifier": "b214ac38-da59-5c1c-ae7e-189dc11f3f37",
|
||||
},
|
||||
"headerMessageId": {
|
||||
"universalIdentifier": "20202020-df01-4d01-8d01-ae55a9e5af05",
|
||||
"universalIdentifier": "9139b1ad-8555-571c-8433-f038de5a3c82",
|
||||
},
|
||||
"messageParticipants": {
|
||||
"universalIdentifier": "20202020-df01-4d01-8d01-ae55a9e5af03",
|
||||
"universalIdentifier": "3ad5730a-168c-5d32-be43-71c982ce9505",
|
||||
},
|
||||
"messageThread": {
|
||||
"universalIdentifier": "20202020-df01-4d01-8d01-ae55a9e5af02",
|
||||
"universalIdentifier": "5072b4d6-d708-5cb5-a97a-7ae2a12b1337",
|
||||
},
|
||||
"receivedAt": {
|
||||
"universalIdentifier": "20202020-df01-4d01-8d01-ae55a9e5af04",
|
||||
"universalIdentifier": "c8df5f80-0d07-5ecd-ba69-8f975bbdc51a",
|
||||
},
|
||||
"subject": {
|
||||
"universalIdentifier": "20202020-df01-4d01-8d01-ae55a9e5af01",
|
||||
"universalIdentifier": "dfe53214-95ef-5dae-9c94-bf0c008f5c5d",
|
||||
},
|
||||
"text": {
|
||||
"universalIdentifier": "20202020-df01-4d01-8d01-ae55a9e5af06",
|
||||
"universalIdentifier": "1aeb24ca-72db-5735-ab13-f9bd99cab092",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1136,43 +1136,43 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "238acb94-dd4c-4036-bc55-19b99d821efd",
|
||||
"views": {
|
||||
"allMessageCampaigns": {
|
||||
"universalIdentifier": "ffedb368-33f0-43a7-b84e-e622b4e97be9",
|
||||
"universalIdentifier": "8094a87e-310b-58e7-9c05-a76c59ac6535",
|
||||
"viewFields": {
|
||||
"bouncedCount": {
|
||||
"universalIdentifier": "135d3fb9-bc45-4426-980b-9836ed792e3a",
|
||||
"universalIdentifier": "3c273c7f-b577-5213-8597-198dac6fdae1",
|
||||
},
|
||||
"complainedCount": {
|
||||
"universalIdentifier": "9957dc6d-05ae-4829-ae7d-7cdf9239cdd0",
|
||||
"universalIdentifier": "30317d2b-5212-56be-a5fe-0ab15722dde3",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "6dffa47d-3128-4d54-924a-4f67676116c2",
|
||||
"universalIdentifier": "88484379-8afd-5f7c-ab3c-7d937bb7ed13",
|
||||
},
|
||||
"failedCount": {
|
||||
"universalIdentifier": "ad346c8e-f462-499e-89c8-da01d5460dc6",
|
||||
"universalIdentifier": "2f44ac38-194f-56a7-bd94-a292db4bc210",
|
||||
},
|
||||
"fromAddress": {
|
||||
"universalIdentifier": "553a0ea6-1f55-4143-a2d0-8c1ad0cf3dd1",
|
||||
"universalIdentifier": "2ebb7a5d-e03d-5c6e-955f-4efb99fffb46",
|
||||
},
|
||||
"list": {
|
||||
"universalIdentifier": "c0bf6a48-8695-4520-81e6-7462d35033b5",
|
||||
"universalIdentifier": "13936b8a-0135-5ac3-81d1-f6a11826451e",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "4d40646c-853d-48e6-8ddb-81e6dedabc99",
|
||||
"universalIdentifier": "5a224d5d-9ae7-53c8-ad6d-720bb62a087b",
|
||||
},
|
||||
"recipients": {
|
||||
"universalIdentifier": "2f99f444-4af3-44fd-b08d-46955c4ac2a2",
|
||||
"universalIdentifier": "40f278c1-2716-5324-8035-c14ea62a4eb7",
|
||||
},
|
||||
"sentAt": {
|
||||
"universalIdentifier": "7f4a9d81-afac-4d27-98de-0a2da65114f7",
|
||||
"universalIdentifier": "a9389297-3927-5364-8c9d-4bcb8039020e",
|
||||
},
|
||||
"sentCount": {
|
||||
"universalIdentifier": "0be62e57-3955-49bd-a9ef-8f82f7a6e9aa",
|
||||
"universalIdentifier": "e55b655a-038e-5257-ab2c-f2966900d2de",
|
||||
},
|
||||
"status": {
|
||||
"universalIdentifier": "ef35df97-b1a5-4f16-8b85-5751e5019f63",
|
||||
"universalIdentifier": "68714967-d906-5082-af8c-2791705ce682",
|
||||
},
|
||||
"subject": {
|
||||
"universalIdentifier": "b017c851-e38d-4a81-ab38-0fb10e9f239e",
|
||||
"universalIdentifier": "2a4fe259-612f-5d10-a451-a047e605917c",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1268,22 +1268,22 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-ad1e-4127-bccb-d83ae04d2ccb",
|
||||
"views": {
|
||||
"allMessageChannelMessageAssociations": {
|
||||
"universalIdentifier": "a4f465ac-d5cb-4f24-93ac-7a24bafd398e",
|
||||
"universalIdentifier": "fda3d57b-b54b-57be-af68-f9857f58577c",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "af239abd-2c55-4108-a9d8-b5a67f6ca2e2",
|
||||
"universalIdentifier": "32690396-1e7d-5b95-ad30-94c0c8914957",
|
||||
},
|
||||
"direction": {
|
||||
"universalIdentifier": "ca38195e-985c-4880-85e0-26fa143c1ec7",
|
||||
"universalIdentifier": "c9603fb3-9cef-5747-8d99-86592bff5f3d",
|
||||
},
|
||||
"message": {
|
||||
"universalIdentifier": "f9f2de0d-3db5-402b-a733-53be6a4667c8",
|
||||
"universalIdentifier": "9346a2f9-eff0-5909-af3e-12e52e6eef3a",
|
||||
},
|
||||
"messageChannelId": {
|
||||
"universalIdentifier": "b86e652b-04ce-4089-9f71-e190eaf5b798",
|
||||
"universalIdentifier": "5c6fdb16-a932-53f7-99d6-29e118a06f75",
|
||||
},
|
||||
"messageExternalId": {
|
||||
"universalIdentifier": "7fb9801d-ca3d-4b2d-8d55-c922fcf7fefd",
|
||||
"universalIdentifier": "ce797f5c-ea26-50fc-8d72-2dac766dc498",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1367,16 +1367,16 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-a1b0-40b0-8ab0-5b6c7d8e9f0a",
|
||||
"views": {
|
||||
"allMessageChannelMessageAssociationMessageFolders": {
|
||||
"universalIdentifier": "775610fe-f1d1-4959-bdc3-0b437059cfeb",
|
||||
"universalIdentifier": "982c43ec-d2af-5197-aad9-c61f4365a91b",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "9da7637e-25c7-4101-8169-b5f6ff159690",
|
||||
"universalIdentifier": "63b9774c-fd0e-5c17-a1c4-84ca9845f79c",
|
||||
},
|
||||
"messageChannelMessageAssociation": {
|
||||
"universalIdentifier": "1251e67a-e795-4bc2-a468-6cfc838b6a0a",
|
||||
"universalIdentifier": "7f87dc1b-efea-5286-be19-27b171a21a7e",
|
||||
},
|
||||
"messageFolderId": {
|
||||
"universalIdentifier": "aff2203d-6439-43b8-9cb4-55e8d78bba43",
|
||||
"universalIdentifier": "e608de61-b9fe-5747-a224-ab1c32290997",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1454,19 +1454,19 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "826561ea-4816-411c-baa0-eec5e6ca8866",
|
||||
"views": {
|
||||
"allMessageLists": {
|
||||
"universalIdentifier": "c72bae18-75e9-4cb0-baeb-379d3529b98f",
|
||||
"universalIdentifier": "75e21a3c-6c76-58ec-9f14-b2e9ecc93204",
|
||||
"viewFields": {
|
||||
"campaigns": {
|
||||
"universalIdentifier": "037030a2-9dad-4bfd-957a-313b362172b4",
|
||||
"universalIdentifier": "8fd26964-23a7-5913-b431-1b83c03bfdfe",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "29f3e7de-c40b-4597-8568-7318c146e4da",
|
||||
"universalIdentifier": "69d178f4-f4b8-5bc2-a01b-bfc21f3a753a",
|
||||
},
|
||||
"members": {
|
||||
"universalIdentifier": "6d314c4b-215a-4094-963a-ff9dd8221aea",
|
||||
"universalIdentifier": "8e64ce89-0910-58df-a896-ccbe514f3913",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "c9767580-34e6-420b-923d-b4abd8c13d96",
|
||||
"universalIdentifier": "9deb8cdc-2734-541f-a6c2-d37e144d4747",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1580,28 +1580,28 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-a433-4456-aa2d-fd9cb26b774a",
|
||||
"views": {
|
||||
"allMessageParticipants": {
|
||||
"universalIdentifier": "8b7fbe7d-dae0-4285-8bdc-ec078a4de870",
|
||||
"universalIdentifier": "9ffa51b2-4eef-52a7-9761-10b2d2ca8716",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "636ff7b6-86b8-49fc-9442-39f4c24ff424",
|
||||
"universalIdentifier": "9995f355-7956-5f8c-917f-7a3390fd417d",
|
||||
},
|
||||
"displayName": {
|
||||
"universalIdentifier": "8d0c8202-b57f-4450-a090-a7eb26aa2299",
|
||||
"universalIdentifier": "dd4ef6d0-a1d6-5618-a583-d77222d6a768",
|
||||
},
|
||||
"handle": {
|
||||
"universalIdentifier": "abcbb5d9-b8c2-46bb-b3cc-ea035be8f3be",
|
||||
"universalIdentifier": "1eb7f5a3-7e3b-5f9b-9362-27b99b1ca88f",
|
||||
},
|
||||
"message": {
|
||||
"universalIdentifier": "ca491a31-8659-4202-9476-f0f72efc80b5",
|
||||
"universalIdentifier": "a6ae59bd-a5ef-5210-b0bf-ebbcb0386e93",
|
||||
},
|
||||
"person": {
|
||||
"universalIdentifier": "26d0f3f1-43d3-425c-930c-81147451d0f8",
|
||||
"universalIdentifier": "78872b33-6bba-5cf3-bef0-bfaf528e6877",
|
||||
},
|
||||
"role": {
|
||||
"universalIdentifier": "55b74f7e-7c58-4fce-a44b-a8d9671ec541",
|
||||
"universalIdentifier": "009f68a7-695c-582b-833e-501af34480ff",
|
||||
},
|
||||
"workspaceMember": {
|
||||
"universalIdentifier": "df62dcbc-c22d-4d34-9fa5-6f70bae02161",
|
||||
"universalIdentifier": "ca7bd6d7-939d-59eb-bd2d-73777e28c9a5",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1681,19 +1681,19 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-849a-4c3e-84f5-a25a7d802271",
|
||||
"views": {
|
||||
"allMessageThreads": {
|
||||
"universalIdentifier": "20202020-d002-4d02-8d02-ae55a9ba2002",
|
||||
"universalIdentifier": "0f667621-896c-5b8e-8359-3c7c1f8ee1d8",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-df02-4d02-8d02-ae55a9ba2f02",
|
||||
"universalIdentifier": "98c4c4b8-509c-57a4-b1ba-f66de2df38a2",
|
||||
},
|
||||
"messages": {
|
||||
"universalIdentifier": "20202020-df02-4d02-8d02-ae55a9ba2f01",
|
||||
"universalIdentifier": "0f61a257-5110-5f67-9315-42da5355a6e9",
|
||||
},
|
||||
"subject": {
|
||||
"universalIdentifier": "e5f0d32b-2b6a-47bc-b3bd-f32c96594ec1",
|
||||
"universalIdentifier": "7074b6e0-abd9-5f2c-bf3b-3c834ef37c1d",
|
||||
},
|
||||
"updatedAt": {
|
||||
"universalIdentifier": "af2c6ac9-7083-4609-8172-d518441f5e9e",
|
||||
"universalIdentifier": "cd336056-36de-525b-af30-c5c6c38b917b",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1749,22 +1749,22 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-0b00-45cd-b6f6-6cd806fc6804",
|
||||
"views": {
|
||||
"allNotes": {
|
||||
"universalIdentifier": "20202020-a005-4a05-8a05-a0be5a11a000",
|
||||
"universalIdentifier": "2bfba20b-7cfa-5d3c-b683-cf9abde2359d",
|
||||
"viewFields": {
|
||||
"bodyV2": {
|
||||
"universalIdentifier": "20202020-af05-4a05-8a05-a0be5a11af02",
|
||||
"universalIdentifier": "3a923b53-057d-52ee-9b12-43ccbe9b9fc2",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-af05-4a05-8a05-a0be5a11af04",
|
||||
"universalIdentifier": "6c04d549-a0fb-50ea-8132-557c61ad6f58",
|
||||
},
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af05-4a05-8a05-a0be5a11af03",
|
||||
"universalIdentifier": "414f18ff-5ce5-589b-8ff3-fe7cad4b0e75",
|
||||
},
|
||||
"noteTargets": {
|
||||
"universalIdentifier": "20202020-af05-4a05-8a05-a0be5a11af01",
|
||||
"universalIdentifier": "1be85e89-a527-5225-a315-3c3fddfdaf86",
|
||||
},
|
||||
"title": {
|
||||
"universalIdentifier": "20202020-af05-4a05-8a05-a0be5a11af00",
|
||||
"universalIdentifier": "55d3619b-d72e-5f2b-8f79-a4ad5106dd76",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1868,22 +1868,22 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-fff0-4b44-be82-bda313884400",
|
||||
"views": {
|
||||
"allNoteTargets": {
|
||||
"universalIdentifier": "d124d587-ef78-402b-9341-7673e6cea033",
|
||||
"universalIdentifier": "3962cec0-e2f6-5d27-ab3c-40a5dd6279d0",
|
||||
"viewFields": {
|
||||
"id": {
|
||||
"universalIdentifier": "f2d912fe-7c6f-4a9c-b808-b7b5a18d2818",
|
||||
"universalIdentifier": "e296fb5c-74f5-5924-8506-3b16639564c9",
|
||||
},
|
||||
"note": {
|
||||
"universalIdentifier": "9d4ac173-d32b-4a44-9dbd-8a47ab844f98",
|
||||
"universalIdentifier": "de9a35c2-dd69-5b62-94ca-006fc7c4c28f",
|
||||
},
|
||||
"targetCompany": {
|
||||
"universalIdentifier": "a9c7f370-4b22-4f29-8e3f-678e91a59576",
|
||||
"universalIdentifier": "e8175481-58d2-5c1d-a6b4-118448c78073",
|
||||
},
|
||||
"targetOpportunity": {
|
||||
"universalIdentifier": "3efeb162-cd03-458b-9c7b-47032d045204",
|
||||
"universalIdentifier": "eb132124-1725-5528-affc-e4996415e01f",
|
||||
},
|
||||
"targetPerson": {
|
||||
"universalIdentifier": "b6f67de5-c5cf-4235-b740-a6a007c8eae3",
|
||||
"universalIdentifier": "48f31dbf-75fc-5780-a58a-960d9ce5c18b",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -1966,25 +1966,25 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-9549-49dd-b2b2-883999db8938",
|
||||
"views": {
|
||||
"allOpportunities": {
|
||||
"universalIdentifier": "20202020-a003-4a03-8a03-0aa0b1ca1ba0",
|
||||
"universalIdentifier": "d024c8c9-3021-53d0-b612-9da81b02736f",
|
||||
"viewFields": {
|
||||
"amount": {
|
||||
"universalIdentifier": "20202020-af03-4a03-8a03-0aa0b1ca1bb0",
|
||||
"universalIdentifier": "22e16aff-d1b4-59ce-902b-fee1f4adb79c",
|
||||
},
|
||||
"closeDate": {
|
||||
"universalIdentifier": "20202020-af03-4a03-8a03-0aa0b1ca1bb2",
|
||||
"universalIdentifier": "20b2d9f9-8ad9-59db-8a62-2576692c9ad9",
|
||||
},
|
||||
"company": {
|
||||
"universalIdentifier": "20202020-af03-4a03-8a03-0aa0b1ca1bb3",
|
||||
"universalIdentifier": "d0ac287f-801b-54c5-ba49-c842a5e7140c",
|
||||
},
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af03-4a03-8a03-0aa0b1ca1bb1",
|
||||
"universalIdentifier": "fe527f0f-1690-5077-9b9e-cebaa7c4c5d1",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-af03-4a03-8a03-0aa0b1ca1baf",
|
||||
"universalIdentifier": "4a52d5c5-0243-5c57-ab5e-6d1395beb2cf",
|
||||
},
|
||||
"pointOfContact": {
|
||||
"universalIdentifier": "20202020-af03-4a03-8a03-0aa0b1ca1bb4",
|
||||
"universalIdentifier": "51fbe12a-46c1-50d2-8163-5a50542c600e",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2177,31 +2177,31 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-e674-48e5-a542-72570eee7213",
|
||||
"views": {
|
||||
"allPeople": {
|
||||
"universalIdentifier": "20202020-a002-4a02-8a02-ae0a1ea11a00",
|
||||
"universalIdentifier": "0cda0ad4-74da-5ccd-975c-a0e4db43a05a",
|
||||
"viewFields": {
|
||||
"company": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af3",
|
||||
"universalIdentifier": "3530ea58-3f8f-5e5f-a17a-f68d4ad867ba",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af5",
|
||||
"universalIdentifier": "114a1b7f-71c5-5277-a4e7-b2379d900a99",
|
||||
},
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af2",
|
||||
"universalIdentifier": "de1a471e-8ae4-533f-870a-c462561b02d2",
|
||||
},
|
||||
"emails": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af1",
|
||||
"universalIdentifier": "5731e6bb-b5dc-5793-aaa5-386b0da99fd5",
|
||||
},
|
||||
"jobTitle": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af7",
|
||||
"universalIdentifier": "a036c9bc-4e8e-5384-8598-48ed4e516fc6",
|
||||
},
|
||||
"linkedinLink": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af8",
|
||||
"universalIdentifier": "42014c11-5951-59eb-b525-bf14d5570eab",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af0",
|
||||
"universalIdentifier": "899d55b0-dd24-534e-af40-65d08b9073ce",
|
||||
},
|
||||
"phones": {
|
||||
"universalIdentifier": "20202020-af02-4a02-8a02-ae0a1ea11af4",
|
||||
"universalIdentifier": "565f0a13-140e-5c59-86b1-7d0ebd18e9dd",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2342,31 +2342,31 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-1ba1-48ba-bc83-ef7e5990ed10",
|
||||
"views": {
|
||||
"allTasks": {
|
||||
"universalIdentifier": "20202020-a006-4a06-8a06-ba5ca11a1ea0",
|
||||
"universalIdentifier": "ca2db697-077a-5f45-81e1-513aea4752a1",
|
||||
"viewFields": {
|
||||
"assignee": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eb4",
|
||||
"universalIdentifier": "1244827a-ea11-532b-9722-d862948426e5",
|
||||
},
|
||||
"bodyV2": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eb5",
|
||||
"universalIdentifier": "a2c8a8f0-2b25-57db-9a25-a8e1beee93a1",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eb6",
|
||||
"universalIdentifier": "98414831-dc54-51a4-a6a7-4144e0d124ae",
|
||||
},
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eb2",
|
||||
"universalIdentifier": "422888eb-d12d-5096-9b3e-7899cf4722e9",
|
||||
},
|
||||
"dueAt": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eb3",
|
||||
"universalIdentifier": "92a126a5-2072-5cfd-b3e1-e0a327358056",
|
||||
},
|
||||
"status": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eb0",
|
||||
"universalIdentifier": "6527420a-3345-5581-bb51-f4210f31ef3a",
|
||||
},
|
||||
"taskTargets": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eb1",
|
||||
"universalIdentifier": "2714ec81-03f5-5915-9d5f-1bec691fc1b6",
|
||||
},
|
||||
"title": {
|
||||
"universalIdentifier": "20202020-af06-4a06-8a06-ba5ca11a1eaf",
|
||||
"universalIdentifier": "1480d069-9159-51ae-b316-5bc1a3f04235",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2555,22 +2555,22 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-5a9a-44e8-95df-771cd06d0fb1",
|
||||
"views": {
|
||||
"allTaskTargets": {
|
||||
"universalIdentifier": "1dbf1d24-6cca-4f55-ae2f-e3d1b425a495",
|
||||
"universalIdentifier": "dea38ca0-b564-5ae1-b662-9ce388668438",
|
||||
"viewFields": {
|
||||
"id": {
|
||||
"universalIdentifier": "a49287c9-8aa6-4fca-9ec5-08d643f7239f",
|
||||
"universalIdentifier": "d1aa56de-7a8a-5670-9cc5-c2c159a4ff4d",
|
||||
},
|
||||
"targetCompany": {
|
||||
"universalIdentifier": "e9fa1305-4ba2-41c5-9198-fdc622b69f90",
|
||||
"universalIdentifier": "47a3f1f8-e2ce-5a7c-af00-36dda03fbc44",
|
||||
},
|
||||
"targetOpportunity": {
|
||||
"universalIdentifier": "526f3354-34d6-4e7e-a870-5f99c28353c2",
|
||||
"universalIdentifier": "2c09e527-cf94-5e74-9e23-fb4550c7cf18",
|
||||
},
|
||||
"targetPerson": {
|
||||
"universalIdentifier": "cadc7a33-1527-4ef8-ac00-7ed0b54d1bae",
|
||||
"universalIdentifier": "611b9723-3be8-5470-8baf-5201053a38f0",
|
||||
},
|
||||
"task": {
|
||||
"universalIdentifier": "1f79839e-42f6-4a69-839a-369e21a7497d",
|
||||
"universalIdentifier": "634c7721-c9d6-5ada-943f-914065531425",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2697,49 +2697,43 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-6736-4337-b5c4-8b39fae325a5",
|
||||
"views": {
|
||||
"allTimelineActivities": {
|
||||
"universalIdentifier": "20202020-b101-4b01-8b01-ba5cc01aa001",
|
||||
"universalIdentifier": "28d3e8a9-e840-5034-ade2-b752bc8eb25d",
|
||||
"viewFields": {
|
||||
"happensAt": {
|
||||
"universalIdentifier": "20202020-bf01-4b01-8b01-ba5cc01aa012",
|
||||
},
|
||||
"linkedRecordCachedName": {
|
||||
"universalIdentifier": "20202020-bf01-4b01-8b01-ba5cc01aa017",
|
||||
"universalIdentifier": "3ccb9611-f9ec-56c5-82df-f12f7e26e694",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-bf01-4b01-8b01-ba5cc01aa011",
|
||||
},
|
||||
"properties": {
|
||||
"universalIdentifier": "20202020-bf01-4b01-8b01-ba5cc01aa019",
|
||||
"universalIdentifier": "821f0d94-72e0-5b04-ba97-50538f5a73c2",
|
||||
},
|
||||
"targetCompany": {
|
||||
"universalIdentifier": "2015825f-0786-4b0d-88a7-dfce1b4b1c1a",
|
||||
"universalIdentifier": "d271d5b4-86ad-513d-a042-d4f8a9c41665",
|
||||
},
|
||||
"targetDashboard": {
|
||||
"universalIdentifier": "538847e8-ab09-407c-a433-505f6d7be7a1",
|
||||
"universalIdentifier": "b899313f-2e84-51c2-8322-a02bb695ec91",
|
||||
},
|
||||
"targetNote": {
|
||||
"universalIdentifier": "ab74ed52-0195-4b65-987a-8367c07ee222",
|
||||
"universalIdentifier": "fd6171eb-8bb7-5d3d-a7f7-bd0ebf972f90",
|
||||
},
|
||||
"targetOpportunity": {
|
||||
"universalIdentifier": "f7b5ced9-eba6-4454-8849-7a92d27c11ca",
|
||||
"universalIdentifier": "a53f262e-4810-55bc-9e47-f9b7bc9a4da7",
|
||||
},
|
||||
"targetPerson": {
|
||||
"universalIdentifier": "37b38a8b-abd7-4f72-92d2-ad82bbef0296",
|
||||
"universalIdentifier": "c5bd0e0d-20aa-5112-8517-df71c63e5726",
|
||||
},
|
||||
"targetTask": {
|
||||
"universalIdentifier": "3899138d-e6fa-414c-9432-214c9b797ebb",
|
||||
"universalIdentifier": "3e21cd2a-77ca-5e49-90be-4532dd804c24",
|
||||
},
|
||||
"targetWorkflow": {
|
||||
"universalIdentifier": "d2c3ddc3-afad-40b9-a2cb-d2765f2f5691",
|
||||
"universalIdentifier": "8e0e94b7-9c2a-5fda-bbfe-2604a0f9cbb4",
|
||||
},
|
||||
"targetWorkflowRun": {
|
||||
"universalIdentifier": "97910946-04f0-4634-804e-880bc0019225",
|
||||
"universalIdentifier": "13fff327-8fbe-5a91-8d95-4a9ca455cfe9",
|
||||
},
|
||||
"targetWorkflowVersion": {
|
||||
"universalIdentifier": "4a7e3213-afd5-4691-8bba-0a10e8697afb",
|
||||
"universalIdentifier": "c4aa8b50-d9bb-5395-a90a-fa0d36312634",
|
||||
},
|
||||
"workspaceMember": {
|
||||
"universalIdentifier": "20202020-bf01-4b01-8b01-ba5cc01aa013",
|
||||
"universalIdentifier": "09d2d7d9-6809-561b-9dc7-1588b6a18673",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2807,25 +2801,25 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-62be-406c-b9ca-8caa50d51392",
|
||||
"views": {
|
||||
"allWorkflows": {
|
||||
"universalIdentifier": "20202020-a009-4a09-8a09-a0bcf10aa11a",
|
||||
"universalIdentifier": "84dddf6b-edfa-55c4-ab1d-886602c1ca38",
|
||||
"viewFields": {
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af09-4a09-8a09-a0bcf10aa11d",
|
||||
"universalIdentifier": "982cf2c6-a9a2-5557-9733-e3124168ee9f",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-af09-4a09-8a09-a0bcf10aa11a",
|
||||
"universalIdentifier": "d0c96ceb-e6f7-562d-b859-35341481cdf2",
|
||||
},
|
||||
"runs": {
|
||||
"universalIdentifier": "20202020-af09-4a09-8a09-a0bcf10aa11f",
|
||||
"universalIdentifier": "869394ba-f9b4-5ce2-8312-b9a9827baea8",
|
||||
},
|
||||
"statuses": {
|
||||
"universalIdentifier": "20202020-af09-4a09-8a09-a0bcf10aa11b",
|
||||
"universalIdentifier": "47e57811-bc0b-5b77-9936-384590672b71",
|
||||
},
|
||||
"updatedAt": {
|
||||
"universalIdentifier": "20202020-af09-4a09-8a09-a0bcf10aa11c",
|
||||
"universalIdentifier": "22bc20fd-c132-50e0-9bff-b0a405e729db",
|
||||
},
|
||||
"versions": {
|
||||
"universalIdentifier": "20202020-af09-4a09-8a09-a0bcf10aa11e",
|
||||
"universalIdentifier": "4978149a-4ed7-5d59-aafb-2dd69b6cd6fe",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2875,16 +2869,16 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-3319-4234-a34c-7f3b9d2e4d1f",
|
||||
"views": {
|
||||
"allWorkflowAutomatedTriggers": {
|
||||
"universalIdentifier": "a0a9ef79-3d42-417a-8555-3ee54c18ea51",
|
||||
"universalIdentifier": "d53c1b59-4f9c-5647-aaf5-ac8197ca1c3f",
|
||||
"viewFields": {
|
||||
"createdAt": {
|
||||
"universalIdentifier": "bb35e66a-2a1e-416b-8105-5749d91ab65f",
|
||||
"universalIdentifier": "5897f02c-e29d-5085-9bbe-60c48a8360b5",
|
||||
},
|
||||
"type": {
|
||||
"universalIdentifier": "689b4749-aa40-489a-bf0b-475a197ca2e6",
|
||||
"universalIdentifier": "f4456853-dad8-57e8-81a4-6987477a40f7",
|
||||
},
|
||||
"workflow": {
|
||||
"universalIdentifier": "e5a46195-06fe-4f47-8844-128e35151d37",
|
||||
"universalIdentifier": "53a781ed-4cd6-58fd-8de9-26e5cc7f01a7",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2986,25 +2980,16 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-4e28-4e95-a9d7-6c00874f843c",
|
||||
"views": {
|
||||
"allWorkflowRuns": {
|
||||
"universalIdentifier": "20202020-a011-4a11-8a11-a0bcf10abca5",
|
||||
"universalIdentifier": "7f1e3269-5de1-56e9-b89f-4cccaf4d53d6",
|
||||
"viewFields": {
|
||||
"createdBy": {
|
||||
"universalIdentifier": "20202020-af11-4a11-8a11-a0bcf10abcb3",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-af11-4a11-8a11-a0bcf10abcaf",
|
||||
},
|
||||
"startedAt": {
|
||||
"universalIdentifier": "20202020-af11-4a11-8a11-a0bcf10abcb2",
|
||||
"universalIdentifier": "b1ae1446-834a-54bb-b995-04644ee4f0cf",
|
||||
},
|
||||
"status": {
|
||||
"universalIdentifier": "20202020-af11-4a11-8a11-a0bcf10abcb1",
|
||||
"universalIdentifier": "f62369bb-a4cc-5d88-ac8e-7740ea318837",
|
||||
},
|
||||
"workflow": {
|
||||
"universalIdentifier": "20202020-af11-4a11-8a11-a0bcf10abcb0",
|
||||
},
|
||||
"workflowVersion": {
|
||||
"universalIdentifier": "20202020-af11-4a11-8a11-a0bcf10abcb4",
|
||||
"universalIdentifier": "1c323f33-aa9a-5975-8a60-095817bf6412",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -3121,22 +3106,22 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-d65d-4ab9-9344-d77bfb376a3d",
|
||||
"views": {
|
||||
"allWorkflowVersions": {
|
||||
"universalIdentifier": "20202020-a010-4a10-8a10-a0bcf10aae15",
|
||||
"universalIdentifier": "a305b346-a83c-5bdd-880b-7a8e71310bf3",
|
||||
"viewFields": {
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-af10-4a10-8a10-a0bcf10aaeaf",
|
||||
"universalIdentifier": "84a34cf6-7fd8-5972-894d-bc21e026f334",
|
||||
},
|
||||
"runs": {
|
||||
"universalIdentifier": "20202020-af10-4a10-8a10-a0bcf10aaeb3",
|
||||
"universalIdentifier": "255ab204-2ebe-582c-bfbd-4a846490d721",
|
||||
},
|
||||
"status": {
|
||||
"universalIdentifier": "20202020-af10-4a10-8a10-a0bcf10aaeb1",
|
||||
"universalIdentifier": "6ec4080f-d57e-5837-8f99-b36cebbb2fde",
|
||||
},
|
||||
"updatedAt": {
|
||||
"universalIdentifier": "20202020-af10-4a10-8a10-a0bcf10aaeb2",
|
||||
"universalIdentifier": "604b9aaa-ed58-5e44-869a-0e6402c00c64",
|
||||
},
|
||||
"workflow": {
|
||||
"universalIdentifier": "20202020-af10-4a10-8a10-a0bcf10aaeb0",
|
||||
"universalIdentifier": "9c66dd1e-1b6d-5ad9-9e81-25c4c0c20799",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -3280,40 +3265,19 @@ exports[`STANDARD_OBJECTS universal identifiers should never change without an e
|
||||
"universalIdentifier": "20202020-3319-4234-a34c-82d5c0e881a6",
|
||||
"views": {
|
||||
"allWorkspaceMembers": {
|
||||
"universalIdentifier": "20202020-e001-4e01-8e01-a0bcaeabe100",
|
||||
"universalIdentifier": "55546e30-498e-51f8-bcf2-14617c1fd8aa",
|
||||
"viewFields": {
|
||||
"assignedTasks": {
|
||||
"universalIdentifier": "af16226e-6375-4676-8bd9-9d1a57076fc4",
|
||||
},
|
||||
"avatarUrl": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f2",
|
||||
},
|
||||
"colorScheme": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f3",
|
||||
"universalIdentifier": "d401db50-821d-540d-852f-d5ee06d7b2ed",
|
||||
},
|
||||
"createdAt": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f8",
|
||||
},
|
||||
"dateFormat": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f6",
|
||||
},
|
||||
"locale": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f4",
|
||||
"universalIdentifier": "03129632-0c81-576f-884f-65d366c2ca3a",
|
||||
},
|
||||
"name": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f0",
|
||||
"universalIdentifier": "7af9ed3a-b187-5dad-b8c6-451b50fed4d8",
|
||||
},
|
||||
"ownedOpportunities": {
|
||||
"universalIdentifier": "8a0503f3-ba61-453e-86dc-6c79f7bc235b",
|
||||
},
|
||||
"timeFormat": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f7",
|
||||
},
|
||||
"timeZone": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f5",
|
||||
},
|
||||
"userEmail": {
|
||||
"universalIdentifier": "20202020-ef01-4e01-8e01-a0bcaeabe1f1",
|
||||
"universalIdentifier": "e15281a1-9f03-5b59-87d9-7f6a5b7a8d99",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+20
-5
@@ -1,11 +1,17 @@
|
||||
// Object universal identifiers referenced from another object's declaration
|
||||
// (default relation builders need both the host and the source object
|
||||
// identifiers, and an object literal cannot reference its sibling keys).
|
||||
// Each STANDARD_OBJECTS entry involved in the default relations reads its own
|
||||
// universalIdentifier from this record so there is a single source of truth.
|
||||
// Single source of truth for standard object universal identifiers: an object
|
||||
// identifier is referenced from its own STANDARD_OBJECTS entry, from its
|
||||
// STANDARD_OBJECT_FIELDS entry (system fields and INDEX view derivation), and
|
||||
// sometimes from another object's declaration (default relation builders need
|
||||
// both the host and the source object identifiers, and an object literal
|
||||
// cannot reference its sibling keys).
|
||||
export const STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS = {
|
||||
timelineActivity: '20202020-6736-4337-b5c4-8b39fae325a5',
|
||||
attachment: '20202020-bd3d-4c60-8dca-571c71d4447a',
|
||||
blocklist: '20202020-0408-4f38-b8a8-4d5e3e26e24d',
|
||||
calendarChannelEventAssociation: '20202020-491b-4aaa-9825-afd1bae6ae00',
|
||||
calendarEvent: '20202020-8f1d-4eef-9f85-0d1965e27221',
|
||||
calendarEventParticipant: '20202020-a1c3-47a6-9732-27e5b1e8436d',
|
||||
callRecording: 'ce19efb9-710f-45b2-b141-473abbeea60b',
|
||||
noteTarget: '20202020-fff0-4b44-be82-bda313884400',
|
||||
taskTarget: '20202020-5a9a-44e8-95df-771cd06d0fb1',
|
||||
person: '20202020-e674-48e5-a542-72570eee7213',
|
||||
@@ -14,11 +20,20 @@ export const STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS = {
|
||||
note: '20202020-0b00-45cd-b6f6-6cd806fc6804',
|
||||
task: '20202020-1ba1-48ba-bc83-ef7e5990ed10',
|
||||
workflow: '20202020-62be-406c-b9ca-8caa50d51392',
|
||||
workflowAutomatedTrigger: '20202020-3319-4234-a34c-7f3b9d2e4d1f',
|
||||
workflowVersion: '20202020-d65d-4ab9-9344-d77bfb376a3d',
|
||||
workflowRun: '20202020-4e28-4e95-a9d7-6c00874f843c',
|
||||
workspaceMember: '20202020-3319-4234-a34c-82d5c0e881a6',
|
||||
dashboard: '20202020-3840-4b6d-9425-0c5188b05ca8',
|
||||
message: '20202020-3f6b-4425-80ab-e468899ab4b2',
|
||||
messageChannelMessageAssociation: '20202020-ad1e-4127-bccb-d83ae04d2ccb',
|
||||
messageChannelMessageAssociationMessageFolder:
|
||||
'20202020-a1b0-40b0-8ab0-5b6c7d8e9f0a',
|
||||
messageList: '826561ea-4816-411c-baa0-eec5e6ca8866',
|
||||
messageListMember: '27773d24-8ce3-40f8-aa6c-1f590f2c08d2',
|
||||
messageCampaign: '238acb94-dd4c-4036-bc55-19b99d821efd',
|
||||
messageParticipant: '20202020-a433-4456-aa2d-fd9cb26b774a',
|
||||
messageThread: '20202020-849a-4c3e-84f5-a25a7d802271',
|
||||
} as const;
|
||||
|
||||
export type StandardObjectWithUniversalIdentifierName =
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,6 +16,7 @@ export { ALL_METADATA_NAME } from './constants/all-metadata-name.constant';
|
||||
export { DEFAULT_RELATIONS_OBJECTS_STANDARD_IDS } from './constants/default-relations-object-standard-ids.constant';
|
||||
export { IDENTIFIER_MAX_CHAR_LENGTH } from './constants/identifier-max-char-length.constant';
|
||||
export { RESERVED_METADATA_NAME_KEYWORDS } from './constants/reserved-metadata-name-keywords.constant';
|
||||
export { STANDARD_OBJECT_FIELDS } from './constants/standard-object-fields.constant';
|
||||
export type { StandardObjectWithUniversalIdentifierName } from './constants/standard-object-universal-identifiers.constant';
|
||||
export { STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS } from './constants/standard-object-universal-identifiers.constant';
|
||||
export { STANDARD_OBJECTS } from './constants/standard-object.constant';
|
||||
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
import { TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER } from '@/application/constants/TwentyStandardApplicationUniversalIdentifier';
|
||||
import { getSystemViewUniversalIdentifier } from '@/application/deterministic-identifier/get-system-view-universal-identifier.util';
|
||||
import { getViewFieldUniversalIdentifier } from '@/application/deterministic-identifier/get-view-field-universal-identifier.util';
|
||||
import { ViewKey } from '@/types/ViewKey';
|
||||
|
||||
type StandardViewFieldUniversalIdentifier = { universalIdentifier: string };
|
||||
|
||||
export const buildStandardObjectIndexView = <
|
||||
const TViewFieldName extends string,
|
||||
>({
|
||||
objectUniversalIdentifier,
|
||||
fields,
|
||||
viewFieldNames,
|
||||
}: {
|
||||
objectUniversalIdentifier: string;
|
||||
fields: Record<string, StandardViewFieldUniversalIdentifier>;
|
||||
viewFieldNames: readonly TViewFieldName[];
|
||||
}): {
|
||||
universalIdentifier: string;
|
||||
viewFields: Record<TViewFieldName, StandardViewFieldUniversalIdentifier>;
|
||||
} => {
|
||||
const viewUniversalIdentifier = getSystemViewUniversalIdentifier({
|
||||
applicationUniversalIdentifier:
|
||||
TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER,
|
||||
objectUniversalIdentifier,
|
||||
viewKey: ViewKey.INDEX,
|
||||
});
|
||||
|
||||
const viewFields = Object.fromEntries(
|
||||
viewFieldNames.map((viewFieldName) => {
|
||||
const field = fields[viewFieldName];
|
||||
|
||||
if (field === undefined) {
|
||||
throw new Error(
|
||||
`Missing field "${viewFieldName}" for the INDEX view of object ${objectUniversalIdentifier}`,
|
||||
);
|
||||
}
|
||||
|
||||
return [
|
||||
viewFieldName,
|
||||
{
|
||||
universalIdentifier: getViewFieldUniversalIdentifier({
|
||||
applicationUniversalIdentifier:
|
||||
TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER,
|
||||
viewUniversalIdentifier,
|
||||
fieldMetadataUniversalIdentifier: field.universalIdentifier,
|
||||
}),
|
||||
},
|
||||
];
|
||||
}),
|
||||
) as Record<TViewFieldName, StandardViewFieldUniversalIdentifier>;
|
||||
|
||||
return {
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
viewFields,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user