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
