You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`guid`, `fqn` and `obj_id` were grouped together as "instance-local identity
never travels in a portable document". They are not the same kind of thing.
`guid` is a raw cluster UUID. `fqn` is a reference to one -- and this repo's own
schema reference already records that a viz-level `fqn` is DROPPED on import,
leaving the object with no data source. Both are correctly refused.
`obj_id` is the opposite: ThoughtSpot introduced it precisely so objects can be
referenced across environments, and it survives import. It is a readable handle
-- `SampleRetail-Apparel-LH-58435d2b`, the display name plus the GUID's first
segment -- not a bare identifier. Discarding it meant a converted model
re-imported as a NEW object beside the one it came from, rather than updating
it, which breaks the promote-between-environments workflow this converter exists
to serve.
It is now stashed under its own payload key and restored at the document root.
The forbidden-key scan still names `obj_id`, deliberately: that scan stops one
riding along unnoticed inside a block copied wholesale from source TML, while
the stash preserves it on purpose, under a distinct key. The two are not in
conflict and the comment now says so.
`guid` is still stripped at every depth, and the test asserts that.
Observed on a real export while investigating why a converted model could not be
re-imported: the source carried `obj_id: SampleRetail-Apparel-LH-58435d2b` and
the converted document carried nothing.
Mutation-checked. 928 tests pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: converters/thoughtspot/docs/vendor-payload.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,7 @@ Every `custom_extensions` entry this converter writes uses `vendor_name` `THOUGH
38
38
| Key | Scope | Classification | Treatment on the return trip |
39
39
|---|---|---|---|
40
40
|`tml_name`| Shared | shadows_derivable | Restored only if reconstructing it from the live document still agrees with the stashed value (self-verifying — no separate witness key); disagreement re-derives instead. |
41
+
|`tml_obj_id`| Model | information_only | Restored as-is whenever present — nothing on the Ossie side could have diverged from it. |
41
42
|`formula_id`| Field | information_only | Restored as-is whenever present — nothing on the Ossie side could have diverged from it. |
42
43
|`db_column_name`| Field | shadows_derivable | Restored only if its witness companion key still matches the live document's current value; a mismatch means the document changed since the stash was written, so the value is re-derived instead. |
43
44
|`data_type`| Field | shadows_derivable | Restored only if its witness companion key still matches the live document's current value; a mismatch means the document changed since the stash was written, so the value is re-derived instead. |
0 commit comments