Keep converter outputs aligned with root schema - #306
LiangRuoShui wants to merge 1 commit into
Conversation
|
Gentle ping on #306, #307, and #308. I noticed the workflows for #306 and #308 are waiting for maintainer approval ( For review order, #307 and #308 are related:
#306 is independent and keeps converter/Python output aligned with the published root schema. Happy to adjust or split further if the direction looks off. |
|
Hey @LiangRuoShui Could you please resolve the merge conflicts because of the rename ? |
08e8141 to
ad69857
Compare
|
Thanks for the reminder! I have rebased this PR on the latest main and resolved the merge conflicts caused by the rename. I also ran the relevant local tests to make sure the changes still behave as expected. Please let me know if there is anything else you would like me to adjust. |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| # KIND, either express or implied. See the License for the | ||
| # specific language governing permissions and limitations | ||
| # under the License. |
There was a problem hiding this comment.
The header shoudln't have been removed ?
|
#397 has taken the two root properties out of the schema and out of the Sigma converter, so the premise here holds on main again. One data point for the rebase: on main as it was before #397, the |
|
Closing this PR for now. Thank you for the time and review. |
Why
The published core JSON Schema only allows
versionandsemantic_modelat the document root and setsadditionalProperties: false. dbt and Honeydew could still emit root-level advertisement fields (dialects/vendors), and the PythonOSIDocumentmodel accepted those fields, which allowed generated OSI documents to fail the official validator.What changed
dialectsemission from the dbt MSI-to-OSI converter.vendorsemission from the Honeydew-to-OSI converter.vendorsanddialectson OSI input.OSIDocumentmodel reject schema-invalid root extra fields.Tests added/updated
dialectsandvendorswhile preserving expression-level dialects.vendors/dialectsare rejected.dialectsis rejected.Verification
uv run validation/validate.py examples/tpcds_semantic_model.yamlcd python && uv run --with pytest pytest -qcd converters/dbt && uv run pytest -qcd converters/honeydew && uv run pytest -q