The GitHub Actions job "Build and push images" on texera.git/main has failed.
Run started by GitHub user bobbai00 (triggered by bobbai00).

Head commit for run:
7deed35fddf58bc910991af920f0cf4d16c46f9b / carloea2 <[email protected]>
feat(workflow-operator): add Python UDF UI parameter injection model (#5141)

### What changes were proposed in this PR?

This PR adds the Scala backend foundation for Python UDF UI parameters.

It introduces:

| Area | Change |
| --- | --- |
| UI parameter model | Adds `UiUDFParameter`, containing
backend-compatible `attribute` metadata and an editable `value`. |
| Python UDF injector | Adds `PythonUdfUiParameterInjector`, which
validates UI parameters and injects a reserved hook method into
supported Python UDF classes. |
| Safe string encoding | Marks `Attribute.getName()` as encodable so UI
parameter names are safely rendered through the Python template builder.
|
| Test coverage | Adds Scala tests for hook injection, validation,
unsupported types, reserved method conflicts, and unchanged behavior
when no UI parameters exist. |

This PR is stacked after the merged frontend foundation PR #5043. It
does not yet wire the injector into operator execution; that wiring is
handled by later PRs in the stack.

Existing Python UDF workflow execution remains unchanged in this PR
because `PythonUDFOpDescV2`, `PythonUDFSourceOpDescV2`, and
`DualInputPortsPythonUDFOpDescV2` are not modified here.

### Any related issues, documentation, discussions?

Part of the Python UDF UI parameter feature split from
`feat/ui-parameter`.

Related tracking issue / stack: #5044

Stack order:

1. Frontend UI parameter building blocks: #5043
2. Scala backend injection model: this PR
3. Python runtime support
4. End-to-end integration

### How was this PR tested?

Commands run:

```bash
sbt "WorkflowOperator / Test / testOnly 
org.apache.texera.amber.operator.udf.python.PythonUdfUiParameterInjectorSpec"
sbt scalafmtAll
sbt scalafmtCheckAll "scalafixAll --check"
```

Results:

- `PythonUdfUiParameterInjectorSpec`: 10 tests passed.
- `scalafmtAll`: no file changes.
- `scalafmtCheckAll` and `scalafixAll --check`: passed.

### Was this PR authored or co-authored using generative AI tooling?

No

---------

Co-authored-by: Xiaozhen Liu <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/26992860430

With regards,
GitHub Actions via GitBox

Reply via email to