apache / apache/ossie

Evaluate a ThoughtSpot TML converter

Open
#269 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
2.1k
Forks
267
Avg merge
4d 20h
Merged PRs (30d)
24

Description

Hi all,

I would like to ask whether the community has existing plans for, or would welcome, a converter between Apache Ossie and ThoughtSpot Modeling Language (TML).

## Why this may be useful

ThoughtSpot represents metadata objects as TML in YAML or JSON. Tables, worksheets, and views can carry columns, formulas, joins, descriptions, and modeling properties that overlap with Ossie datasets, fields, metrics, and relationships. ThoughtSpot also exposes supported TML import/export operations through its API, so static TML is a possible interchange boundary.

Official references:

- https://developers.thoughtspot.com/codespot/tml-python-library
- https://developers.thoughtspot.com/
- https://github.com/thoughtspot/thoughtspot_rest_api_v1_python

I searched the open and closed Ossie issues and pull requests and did not find an existing ThoughtSpot or TML converter proposal.

## Possible v1 boundary

If the project considers this integration appropriate, I suggest investigating a dependency-free static converter first:

- Read and write static TML YAML or JSON without requiring access to a ThoughtSpot instance.
- Initially limit the supported TML object types to the smallest set that represents semantic modeling, likely tables plus either worksheets or models/views, based on representative exports.
- Map columns and formulas to Ossie fields, reusable aggregate definitions to metrics where unambiguous, and representable joins to Ossie relationships.
- Preserve TML-specific properties in a versioned `THOUGHTSPOT` custom extension.
- Report unsupported or ambiguous constructs explicitly.
- Validate generated Ossie documents against `core-spec/osi-schema.json`.
- Keep live ThoughtSpot REST API access outside the static converter's runtime scope.

## Licensing question

The official `thoughtspot_tml` Python repository is public but is distributed under a ThoughtSpot Development Tools EULA rather than an OSI-approved open-source license. Its restrictions also require careful review for a format converter. I therefore do **not** propose depending on, copying from, or distributing that library.

Before implementation, we would need to confirm:

1. Whether a converter based only on publicly documented TML and independently written parsing is appropriate for Apache Ossie.
2. Whether representative TML fixtures can be contributed under Apache-compatible terms.
3. Whether any ASF licensing or legal review is required before proceeding.

## Questions for maintainers and contributors

- Is a ThoughtSpot TML converter something the Ossie community would welcome?
- Is anyone already planning or prototyping this integration so that work can be coordinated rather than duplicated?
- If welcome, which TML object types should define the initial semantic scope?
- Should the licensing questions be resolved on the dev mailing list before any code is written?

I have not started implementation because I would like to confirm community interest, existing plans, and the licensing boundary first.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the proposed boundary, the ThoughtSpot TML documentation, and core-spec/osi-schema.json. Before coding, confirm community interest and the licensing boundary on the appropriate Apache mailing list, then identify representative TML fixtures and an initial supported object scope. Done means the project has an agreed, legally acceptable converter direction and defined v1 semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.