The GitHub Actions job "Required Checks" on 
texera.git/gh-readonly-queue/main/pr-6897-43f26495f36002ed2fa3aa3e0fc0c0e478cf37b0
 has failed.
Run started by GitHub user aicam (triggered by aicam).

Head commit for run:
60a37b1e8495b7d16b1458560ae48d0834f7c513 / ali risheh <[email protected]>
feat(LakeFS-mount): name a model or dataset from a Python UDF parameter (#6897)

### What changes were proposed in this PR?

Lets a Python UDF name a model or dataset version as a parameter and
read it from a local directory. This is the last step of mounting
(#6606).

```python
self.model_dir = self.UiParameter("MODEL", AttributeType.STRING, 
value=Resource.MODEL).value
```

- pytexera gains `Resource` (`MODEL`, `DATASET`), accepted as `value=`
on string parameters only.
- The editor recognizes that declaration, and the parameter row offers a
model or dataset browser instead of a text box. The chosen version is
stored as its path. The model browser is new.
- Resolution happens when the execution starts, not on compile: the
operator carries an execution-time binding that resolves each version
path to its repository and commit, then gives the UDF the mount
directory in the path's place.
- The region scheduler collects the distinct repositories its operators
name and mounts them once, before any worker gets its code. A
reconfiguration mounts the same way.
- The engine asks access-control-service for each mount with the
computing unit's own JWT, and #6896 authorizes the request. The engine
then waits for the mount to appear in the pod. The manager passes the
service's address to the pod, taken from the chart.

The request carries the identity of the computing unit's owner. A WRITE
sharee can therefore mount only what the owner can also read; a version
only the sharee can read is refused with 403.

### Any related issues, documentation, discussions?

Closes #6895. Part of #6606. Follows #6866 and #6896, both merged.

### How was this PR tested?

- Frontend unit tests: the parser, parameter sync, the resource value
editor, the model browser, and the model service.
- pytexera unit tests: `Resource` declarations.
- Scala unit tests:
- The binding: a dataset and a model resolved against a test database,
and a missing version refused.
  - The UDF descriptors.
- The region scheduler: it mounts before initializing workers, fails the
region before any worker starts when a mount is refused, and does not
mount when nothing is named.
  - Reconfiguration.
- End to end on minikube: a source UDF with a dataset parameter and a
model parameter, both picked in the property panel. The run mounted both
through access-control-service and the node mounter, and the UDF read a
file from each directory.

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

Generated-by: Claude Opus 5

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01KCY3USGKcgmf8CbN44trJ5

---------

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>

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

With regards,
GitHub Actions via GitBox

Reply via email to