Skip to content

Carry Studio Pro content on create or modify of workflow, external entity, OData client and OData service; add TestApp to the round-trip test #743

Description

@ako

Found in the review of #738 (#731). For these four types, running unchanged describe output as create or modify silently loses Studio Pro-authored content. Examples come from the Studio Pro-authored ako/TestApp; the BSON diffs are in #738 (comment).

  • Workflow (workflow.Workflow1_2):
    • EventSubProcesses are dropped entirely.
    • Outcome Flows are dropped.
    • Activity names are re-spelled (start1 → Start).
  • External entity (Clients.Orders):
    • Each attribute's Rest$ODataMappedValue becomes a DomainModels$StoredValue, so the OData mapping is lost.
    • Attribute $IDs are re-minted.
    • DateTime LocalizeDate is dropped.
  • OData client (Clients.OrderODataClient):
    • UseQuerySegment changes from true to false.
    • ApplicationId, EndpointId, CatalogUrl, Icon, the proxy settings, ErrorHandlingMicroflow and HeaderListMicroflow are dropped.
  • OData service (MyFirstModule.CarOdataApi):
    • EntitySet PageSize changes from 10000 to 0, because describe prints PageSize only with UsePaging.
    • ExportLevel is dropped.

Until each rewrite carries what describe cannot print, describe keeps emitting a plain create for these four types. That is a safe refusal on an existing document (ADR-0012: carry or refuse). #738 pins this behaviour with tests.

Scope

  1. Add ako/TestApp as a git submodule (decided by the maintainer). Extend mdl/roundtrip to cover it, including workflow, OData and external-entity mappings in unitKeywords. With the submodule uninitialised, the test skips with a clear message. PedApp has none of these four types, so the harness cannot see these losses today.
  2. Carry the content for each type, or refuse it: make each rewrite carry the listed properties, or refuse with a clear error when it cannot.
  3. Switch the verb to create or modify for each type only after its round trip passes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions