yangzhang75 opened a new pull request, #8304: URL: https://github.com/apache/texera/pull/8304
### What changes were proposed in this PR? Part of the Form View feature stack (parent issue #8011). This slice adds `FormBindingService`, the single reader and writer of a workflow's Form View definition. It builds on PR3 (#8275), which adds the shared types and collaboration model, so until that one merges this diff also shows PR3's files; PR4's own change is only the two form-binding files. The service: * Resolves each exposed operator property against the live graph, pairing a binding with its current value and schema, and flagging bindings whose operator was deleted or whose property no longer exists so the author can repair them while readers never see them. * Reads and writes filled in values through the same `setOperatorProperty` edit the operator canvas makes, so both views stay in sync and a run started from either behaves identically. * Manages which properties are exposed (add, remove, reorder), per sub field overrides (rename, hide), and which operators' results the form shows, keeping the graph's view result set in step so a form that promises a result actually produces one. The definition is presentation only and never affects execution: a workflow still runs the same even when its form is empty or broken. ### Any related issues, documentation, discussions? Parent issue #8011 (Form View). Stacked on PR3 (#8275); the shared types (`FormFieldBinding`, `FormBindingConfig`) and collaboration model support come from there. ### How was this PR tested? 35 unit tests (vitest) covering resolution against the live graph (healthy, deleted operator, missing property), value read and write through the operator, exposing and reordering, sub field overrides, result operator syncing, and the dynamic then static schema fallback. Coverage is 100% of statements, branches, and functions for the service. ### Was this PR authored or co-authored using generative AI tooling? Yes. Co-authored with Claude (Anthropic), reviewed line by line by the author before submission. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
