-
Notifications
You must be signed in to change notification settings - Fork 113
WIP: introduce workflow pod #3324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
bobbai00
wants to merge
299
commits into
main
Choose a base branch
from
workflow-pod
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Purpose Address #2810 #2809 There was a bug with the current workflow editor workspace where after page reload, the html element with id="workflow-editor" had an incorrect size. This caused issues such as operators not being visible on the lower part of the page and the minimap window changing size. ## Changes Dispatch "resize" event when workflow editor is loaded to invoke all the relevant resize handlers. ## Demo Before (on texera.ics.uci.edu)  After 
This PR introduces functionality to send an email notification whenever a workflow transitions from a running state to a non-running state (e.g., `Completed`, `Failed`, `Killed`, or `Paused`). This feature was requested by the bioinformatics team at Cornell University to facilitate their long-running workflows. They wanted to be notified once the execution of their workflow is finished. ### Implementation Details A new `sendWorkflowStatusEmail` method has been added to handle the construction of the email notification, which includes details such as the workflow ID, name, state, timestamp, and a link to the dashboard. This method is triggered on the frontend whenever it detects a status change from the backend. ### Setup To enable this functionality, update the following parameters in the core/amber/src/main/resources/application.conf file: 1. Set `user-sys.enabled` to true. 2. Set `user-sys.google.clientId` to your Google API client ID. 3. Set `user-sys.google.smtp.gmail` to your Gmail ID (ensure that IMAP is enabled for this account). 4. Set `user-sys.google.smtp.password` to your Gmail password. https://github.com/user-attachments/assets/dd72af90-b8a8-45ef-9bcc-1ba628e55e9a --------- Co-authored-by: Kunwoo Park <kunwoopark@Kunwoos-MacBook-Pro.local> Co-authored-by: linxinyuan <linxinyuan@gmail.com>
This PR enhances the report generation functionality by adding animation during the process. This PR is a continuation and enhancement of the previous PR: Adding a button to generate a report for a workflow: #2770 Enhancing Report Generation by adding Operator Results: #2792 Enhancing Report Generation by Adding Operator Json and Comments Section : #2807 Ai Flag: #2818 and #2808 Key Changes: **menu.component.ts:** At the start, notification.blank is called to display a message, and notification.remove is used to remove it at the end. Upon successful generation, this.notificationService.success is invoked. **notification.service.ts:** notification.blank and notification.remove have been added. Screenshot of the notification:  
Added a "Select File" button, allowing users to choose a file from a dataset. The button label changes to "Reselect File" after a file is selected, and the selected file path is displayed in a read-only input box. <img width="309" alt="截屏2024-09-18 下午12 47 35" src="https://github.com/user-attachments/assets/923f4945-0452-476f-a11a-4429ad98786f"> <img width="308" alt="截屏2024-09-18 下午12 47 47" src="https://github.com/user-attachments/assets/36838545-1791-4604-9db5-52566f03fc07">
### Purpose: This PR introduces a new visualization operator: **Sunburst Chart**. The Sunburst Chart visualizes hierarchical data, where each segment's size corresponds to a specific value attribute, allowing users to explore data hierarchically. ### Changes: - Implemented the **Sunburst Chart** operator under `operators/visualization`. - Registered the Sunburst Chart in the `LogicalOp` array (located in `edu.uci.ics.texera.workflow.common.operators`). - Added a Sunburst Chart icon under the operator images. ### Testing Instructions: Open Texera workflow editor. Use the following operators: - Use the **CSV File Scan** operator to load the `CountrySalesData.csv` file (available on the Getting Started Wiki). - Use the **Sunburst Chart** operator with the hierarchy: `Region → Country`, and set the value to `Units Sold`. - Use the **HTML Visualizer** to point at the HTML content produced by the Sunburst Chart operator. - Use the **View Results** operator to display the output. ### Expected Result:  
Python Tuple Operator v1 has been deprecated and is no longer supported.
When no user system is enabled, the frontend should not request for persisting workflow. This PR fixes the issue by adding a check on the frontend before sending persisting requests, it also adds a guard on the backend so that it will early fail with the GUEST (Regular role in dev mode).
We recommend to use the DBLP citation format (bib).
This PR updates the `ng build` command in `deploy-daemon.sh`. Before the change, the command is: `ng build --prod --deploy-url=/ --base-href=/` However, `--prod` is deprecated in angular 14 according to https://github.com/angular/angular-cli/blob/main/CHANGELOG.md#breaking-changes-2 <img width="1072" alt="Screenshot 2024-09-19 at 10 02 56 PM" src="https://github.com/user-attachments/assets/03e5052e-d29a-4aeb-9d0c-71239795baef"> And our angular version is angular 16. So I updated it to make it align with current angular: `ng build --configuration production --deploy-url=/ --base-href=/`
… UDF action (#2811) This PR introduces a new AI-based feature called "Add Type Annotation" that enhances the user experience of the Python UDF on top of the Pyright language server. The following are related PR's: -PR for the "Add the pyright language server" : #2797. -PR for the "[1/3] Add AI Assistant Service - Ai Flag" : #2808 -PR for the "[3/3] Add AI Assistant Service - add the "Add All Type Annotation" Python UDF action" : #2812 **Key changes:** Added a Monaco action in the frontend Python UDF editor to allow users to automatically add type annotations for an argument each time they select a single argument in their code. **Add Type Annotation:** This action requires the user to select a single argument in their Python UDF code. A UI with a suggestion for the selected argument will pop up. The user can choose to accept or decline the suggestion from OpenAI. If they accept the suggestion, it will be added to their code; otherwise, the code will remain unchanged. The suggestion is provided by OpenAI. After the backend receives the response from OpenAI, it will be forwarded to the frontend via a RESTful API. Example: https://github.com/user-attachments/assets/29cee6c8-c793-4d83-8b27-db64bcc636ae --------- Co-authored-by: Yicong Huang <17627829+Yicong-Huang@users.noreply.github.com> Co-authored-by: Yicong Huang <yicong.huang@observeinc.com>
…bled (#2853) Now, when userSystemEnabled is false, user can manually type in the file path they want to upload. The file selection button is hidden in this case. <img width="340" alt="截屏2024-09-19 下午11 36 57" src="https://github.com/user-attachments/assets/387993b7-130f-404b-8183-ecc5d29547ce"> when userSystemEnabled is true, user can click on Select File button to choose the file, and input box is read only. <img width="343" alt="截屏2024-09-19 下午11 33 22" src="https://github.com/user-attachments/assets/64193231-7dac-433f-b04b-2209239de371"> <img width="341" alt="截屏2024-09-19 下午11 33 37" src="https://github.com/user-attachments/assets/0e77fd1f-2dec-4255-b692-f54420c16f4a"> --------- Co-authored-by: Jiadong Bai <43344272+bobbai00@users.noreply.github.com>
…2851) ### Purpose: This PR introduces a new visualization operator: **Sankey Diagram**. The Sankey Diagram visualizes flow in a directed graph, where the edges are thicker if the edge weight is larger. ### Changes: - Removed all Sunburst Chart files, which was a duplicate of Hierarchy Chart operator option. - Implemented the **Sankey Diagram** operator under `operators/visualization`. - Registered the Sankey Diagram in the `LogicalOp` array (located in `edu.uci.ics.texera.workflow.common.operators`). - Added a Sankey Diagram icon under the operator images. ### Testing Instructions: Use the following csv dataset: [CountryTrade.csv](https://github.com/user-attachments/files/17069734/CountryTrade.csv) It is a small directed graph representing countries import/export amounts. Open Texera workflow editor. Use the following operators: - Use the **CSV File Scan** operator to load the `CountryTrade.csv` file. - Use the **Sankey Diagram** operator with the source set to "from", target set to "to", and value set to "value". - Use the **HTML Visualizer** pointed at the HTML content produced by the Sankey Diagram operator. - Use the **View Results** operator to display the output. ### Expected Result:  
 One of the shared input parameters for many charts is `pattern_shape` which indicates the texture of the graph based on an attribute. Its another input variable for bar chart that adds texture. We added this attribute to 4 charts: - Bar chart - Filled Area - Gantt chart - Histogram
Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.21.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/expressjs/express/releases">express's releases</a>.</em></p> <blockquote> <h2>4.21.0</h2> <h2>What's Changed</h2> <ul> <li>Deprecate <code>"back"</code> magic string in redirects by <a href="https://github.com/blakeembrey"><code>@blakeembrey</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5935">expressjs/express#5935</a></li> <li>finalhandler@1.3.1 by <a href="https://github.com/wesleytodd"><code>@wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5954">expressjs/express#5954</a></li> <li>fix(deps): serve-static@1.16.2 by <a href="https://github.com/wesleytodd"><code>@wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5951">expressjs/express#5951</a></li> <li>Upgraded dependency qs to 6.13.0 to match qs in body-parser by <a href="https://github.com/agadzinski93"><code>@agadzinski93</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5946">expressjs/express#5946</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/agadzinski93"><code>@agadzinski93</code></a> made their first contribution in <a href="https://redirect.github.com/expressjs/express/pull/5946">expressjs/express#5946</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/expressjs/express/compare/4.20.0...4.21.0">https://github.com/expressjs/express/compare/4.20.0...4.21.0</a></p> <h2>4.20.0</h2> <h2>What's Changed</h2> <h3>Important</h3> <ul> <li>IMPORTANT: The default <code>depth</code> level for parsing URL-encoded data is now <code>32</code> (previously was <code>Infinity</code>)</li> <li>Remove link renderization in html while using <code>res.redirect</code></li> </ul> <h3>Other Changes</h3> <ul> <li>4.19.2 Staging by <a href="https://github.com/wesleytodd"><code>@wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5561">expressjs/express#5561</a></li> <li>remove duplicate location test for data uri by <a href="https://github.com/wesleytodd"><code>@wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5562">expressjs/express#5562</a></li> <li>feat: document beta releases expectations by <a href="https://github.com/marco-ippolito"><code>@marco-ippolito</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5565">expressjs/express#5565</a></li> <li>Cut down on duplicated CI runs by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5564">expressjs/express#5564</a></li> <li>Add a Threat Model by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5526">expressjs/express#5526</a></li> <li>Assign captain of encodeurl by <a href="https://github.com/blakeembrey"><code>@blakeembrey</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5579">expressjs/express#5579</a></li> <li>Nominate jonchurch as repo captain for <code>http-errors</code>, <code>expressjs.com</code>, <code>morgan</code>, <code>cors</code>, <code>body-parser</code> by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5587">expressjs/express#5587</a></li> <li>docs: update Security.md by <a href="https://github.com/inigomarquinez"><code>@inigomarquinez</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5590">expressjs/express#5590</a></li> <li>docs: update triage nomination policy by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5600">expressjs/express#5600</a></li> <li>Add CodeQL (SAST) by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5433">expressjs/express#5433</a></li> <li>docs: add UlisesGascon as triage initiative captain by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5605">expressjs/express#5605</a></li> <li>deps: encodeurl@~2.0.0 by <a href="https://github.com/blakeembrey"><code>@blakeembrey</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5569">expressjs/express#5569</a></li> <li>skip QUERY method test by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5628">expressjs/express#5628</a></li> <li>ignore ETAG query test on 21 and 22, reuse skip util by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5639">expressjs/express#5639</a></li> <li>add support Node.js@22 in the CI by <a href="https://github.com/mertcanaltin"><code>@mertcanaltin</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5627">expressjs/express#5627</a></li> <li>doc: add table of contents, tc/triager lists to readme by <a href="https://github.com/mertcanaltin"><code>@mertcanaltin</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5619">expressjs/express#5619</a></li> <li>List and sort all projects, add captains by <a href="https://github.com/blakeembrey"><code>@blakeembrey</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5653">expressjs/express#5653</a></li> <li>docs: add <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> as captain for cookie-parser by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5666">expressjs/express#5666</a></li> <li>✨ bring back query tests for node 21 by <a href="https://github.com/ctcpip"><code>@ctcpip</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5690">expressjs/express#5690</a></li> <li>[v4] Deprecate <code>res.clearCookie</code> accepting <code>options.maxAge</code> and <code>options.expires</code> by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5672">expressjs/express#5672</a></li> <li>skip QUERY tests for Node 21 only, still not supported by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5695">expressjs/express#5695</a></li> <li>📝 update people, add ctcpip to TC by <a href="https://github.com/ctcpip"><code>@ctcpip</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5683">expressjs/express#5683</a></li> <li>remove minor version pinning from ci by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5722">expressjs/express#5722</a></li> <li>Fix link variable use in attribution section of CODE OF CONDUCT by <a href="https://github.com/IamLizu"><code>@IamLizu</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5762">expressjs/express#5762</a></li> <li>Replace Appveyor windows testing with GHA by <a href="https://github.com/jonchurch"><code>@jonchurch</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5599">expressjs/express#5599</a></li> <li>Add OSSF Scorecard badge by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5436">expressjs/express#5436</a></li> <li>update scorecard link by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5814">expressjs/express#5814</a></li> <li>Nominate <a href="https://github.com/IamLizu"><code>@IamLizu</code></a> to the triage team by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5836">expressjs/express#5836</a></li> <li>deps: path-to-regexp@0.1.8 by <a href="https://github.com/blakeembrey"><code>@blakeembrey</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5603">expressjs/express#5603</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/expressjs/express/blob/4.21.0/History.md">express's changelog</a>.</em></p> <blockquote> <h1>4.21.0 / 2024-09-11</h1> <ul> <li>Deprecate <code>res.location("back")</code> and <code>res.redirect("back")</code> magic string</li> <li>deps: serve-static@1.16.2 <ul> <li>includes send@0.19.0</li> </ul> </li> <li>deps: finalhandler@1.3.1</li> <li>deps: qs@6.13.0</li> </ul> <h1>4.20.0 / 2024-09-10</h1> <ul> <li>deps: serve-static@0.16.0 <ul> <li>Remove link renderization in html while redirecting</li> </ul> </li> <li>deps: send@0.19.0 <ul> <li>Remove link renderization in html while redirecting</li> </ul> </li> <li>deps: body-parser@0.6.0 <ul> <li>add <code>depth</code> option to customize the depth level in the parser</li> <li>IMPORTANT: The default <code>depth</code> level for parsing URL-encoded data is now <code>32</code> (previously was <code>Infinity</code>)</li> </ul> </li> <li>Remove link renderization in html while using <code>res.redirect</code></li> <li>deps: path-to-regexp@0.1.10 <ul> <li>Adds support for named matching groups in the routes using a regex</li> <li>Adds backtracking protection to parameters without regexes defined</li> </ul> </li> <li>deps: encodeurl@~2.0.0 <ul> <li>Removes encoding of <code>\</code>, <code>|</code>, and <code>^</code> to align better with URL spec</li> </ul> </li> <li>Deprecate passing <code>options.maxAge</code> and <code>options.expires</code> to <code>res.clearCookie</code> <ul> <li>Will be ignored in v5, clearCookie will set a cookie with an expires in the past to instruct clients to delete the cookie</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/expressjs/express/commit/7e562c6d8daddff4604f8efaaf9db2cf98c6dcff"><code>7e562c6</code></a> 4.21.0</li> <li><a href="https://github.com/expressjs/express/commit/1bcde96bc87c4704df9a704271d1167064ab56bb"><code>1bcde96</code></a> fix(deps): qs@6.13.0 (<a href="https://redirect.github.com/expressjs/express/issues/5946">#5946</a>)</li> <li><a href="https://github.com/expressjs/express/commit/7d364775688be98aaa973302e066d0da9f438997"><code>7d36477</code></a> fix(deps): serve-static@1.16.2 (<a href="https://redirect.github.com/expressjs/express/issues/5951">#5951</a>)</li> <li><a href="https://github.com/expressjs/express/commit/40d2d8f2c882712a0f2e4603c38d166c79676b2b"><code>40d2d8f</code></a> fix(deps): finalhandler@1.3.1</li> <li><a href="https://github.com/expressjs/express/commit/77ada906dba57fd6e308f0d750e01653dbeaddfc"><code>77ada90</code></a> Deprecate <code>"back"</code> magic string in redirects (<a href="https://redirect.github.com/expressjs/express/issues/5935">#5935</a>)</li> <li><a href="https://github.com/expressjs/express/commit/21df421ebc7a5249bb31101da666bbf22adc3f18"><code>21df421</code></a> 4.20.0</li> <li><a href="https://github.com/expressjs/express/commit/4c9ddc1c47bf579e55c2fe837d76a952e9fd8959"><code>4c9ddc1</code></a> feat: upgrade to serve-static@0.16.0</li> <li><a href="https://github.com/expressjs/express/commit/9ebe5d500d22cbb2b8aaa73446866b084c747971"><code>9ebe5d5</code></a> feat: upgrade to send@0.19.0 (<a href="https://redirect.github.com/expressjs/express/issues/5928">#5928</a>)</li> <li><a href="https://github.com/expressjs/express/commit/ec4a01b6b8814d7b007f36a3023f4dbafdbc3d09"><code>ec4a01b</code></a> feat: upgrade to body-parser@1.20.3 (<a href="https://redirect.github.com/expressjs/express/issues/5926">#5926</a>)</li> <li><a href="https://github.com/expressjs/express/commit/54271f69b511fea198471e6ff3400ab805d6b553"><code>54271f6</code></a> fix: don't render redirect values in anchor href</li> <li>Additional commits viewable in <a href="https://github.com/expressjs/express/compare/4.19.2...4.21.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/Texera/texera/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2855) This PR introduces a "Download" button for binary data in the result panel, which becomes available when the result table contains binary type data. #### User Experience: - When the user clicks the "Download" button, a result exportation modal will appear. - The modal includes an additional input field where the user can specify a filename for the binary data. - A default filename is suggested in the format: [columnName]_[rowNumber], but the user has the option to modify it as desired. - The rest of the modal is similar to the existing result exportation: the user selects a dataset as the destination and clicks the "Save" button to store the file. This enhancement streamlines the handling of binary data exports, making the process more intuitive and user-friendly. <img width="1065" alt="Screenshot 2024-09-22 at 9 58 07 PM" src="https://github.com/user-attachments/assets/0b5620c7-0e41-41b7-9652-8e977edb339f"> https://github.com/user-attachments/assets/19e31782-bd90-405b-b09e-44ffc314d488 --------- Co-authored-by: Kunwoo Park <kunwoopark@Kunwoos-MacBook-Pro.local> Co-authored-by: Kunwoo Park <kunwoopark@dhcp-172-31-184-236.mobile.uci.edu> Co-authored-by: Xinyuan Lin <xinyual3@uci.edu>
fix the path to find the node_modules from ../pyright-language-server/src to ../pyright-language-server
This PR adds functionality for state passing between operators, enabling better coordination and data flow in complex workflows. The changes primarily involve updates to serialization logic and the introduction of mechanisms for operators to share and access the state during execution. Key Highlights: 1. Implementation of state serialization and deserialization. 2. Integration of state passing into operator workflows. This update is essential for a more dynamic and responsive pipeline processing. Introduce `State` as a type of `Marker`. The `State` class has the following methods: 1. `add(key: String, value: Any, valueType: AttributeType): Unit ` 2. `get(key: String): Any`
**Propose:** This pull request introduces a new Hub feature to the Texera platform. **Changes:** - Add new components for the Hub interface. - Updates to the dashboard menu to incorporate Hub navigation. - Numerous updates and fixes to refine the functionality and ensure compatibility. - This enhancement aims to provide a centralized hub for managing various elements within the Texera system, improving user experience and navigation efficiency. **Demo:** Interface before login: previous home interface:  now home interface:  now hub-workflow:  Interface after login: previous workflow-interface:  now workflow-interface:  --------- Co-authored-by: Xinyuan Lin <xinyual3@uci.edu> Co-authored-by: linxinyuan <linxinyuan@gmail.com> Co-authored-by: sixsage <sixsage02@gmail.com> Co-authored-by: gspikehalo <2318002579@qq.com> Co-authored-by: mengw15 <125719918+mengw15@users.noreply.github.com> Co-authored-by: Minchong(Brian) Wu <143851082+IamtherealBrian@users.noreply.github.com> Co-authored-by: Yicong Huang <17627829+Yicong-Huang@users.noreply.github.com> Co-authored-by: Yicong Huang <yicong.huang@observeinc.com> Co-authored-by: GspikeHalo <109092664+GspikeHalo@users.noreply.github.com>
This PR ensures consistency between the result panel and the `RowModalComponent` when displaying binary data. Previously, the result panel showed a trimmed string, while the `RowModalComponent` displayed a trimmed string with a "byte" prefix when a user clicked on a single row in the table. With this update, both components will now display the same trimmed string, improving the user experience by maintaining consistent data presentation across the interface. <img width="1147" alt="Screenshot 2024-09-23 at 10 12 00 AM" src="https://github.com/user-attachments/assets/700e22e0-7537-4916-a724-1aff159cbcbc"> --------- Co-authored-by: Kunwoo Park <kunwoopark@Kunwoos-MacBook-Pro.local>
This PR addresses an issue introduced in PR #2863, where non-string values (e.g., integers, longs) containing only 0 or 1 were incorrectly identified as binary data in the frontend and displayed as such. This fix ensures that non-string values are now correctly handled and displayed according to their actual type, preventing them from being mistakenly rendered as binary data. [Before] <img width="1034" alt="Screenshot 2024-09-24 at 11 30 12 AM" src="https://github.com/user-attachments/assets/f300334c-8df0-4d99-a65f-b05c50816b7e"> [After] <img width="1032" alt="Screenshot 2024-09-24 at 11 30 40 AM" src="https://github.com/user-attachments/assets/dd34ec19-74ac-4b99-b05a-0730d2ea16e1"> Co-authored-by: Kunwoo Park <kunwoopark@Kunwoos-MacBook-Pro.local>
…nel with Improved UI (#2869) This PR builds upon the improvements made in PR #2855. Previously, the download button was limited to binary values in the result panel. However, users may also want to download other types of data, such as long strings, which were not supported in the previous implementation. Key Improvements: - Users can now download any value from the result panel, providing greater flexibility. - This change removes the restriction of downloading only binary data. - To maintain a clean and user-friendly interface, the download button is now hidden by default and will appear when the user hovers over a row. This prevents the UI from becoming cluttered with download buttons in every table cell. https://github.com/user-attachments/assets/e060894e-bd65-4646-8b67-d85585b171d4 --------- Co-authored-by: Kunwoo Park <kunwoopark@Kunwoos-MacBook-Pro.local> Co-authored-by: Xinyuan Lin <xinyual3@uci.edu>
Fix the bug in the Python source operator, caused by a typo in PR #2802.
**Purpose:** The current hub site does not distinguish between private and public workflows. This pr aims to introduce this concept and add methods for hub users to publish workflows from texera hub site. **Description:** 1. Added a toggle button to the workflow list item to help switching between public and private workflow 2. Changed the database schema to add is_public boolean attribute to the workflow table (Added 15.sql for database updates). 3. Implemented access checks so that only users with read or write access can change a workflow to publish Partially fixes #2741 (still need to add a clone button in the detail page). **Demo:** old share access button:  new share access button:  old workspace top bar:  share access button in workspace:  share access button in workspace after click:  --------- Co-authored-by: Xinyuan Lin <xinyual3@uci.edu> Co-authored-by: linxinyuan <linxinyuan@gmail.com> Co-authored-by: YS0meone <timyuan1016@gmail.com> Co-authored-by: sixsage <sixsage02@gmail.com> Co-authored-by: mengw15 <125719918+mengw15@users.noreply.github.com> Co-authored-by: Minchong(Brian) Wu <143851082+IamtherealBrian@users.noreply.github.com> Co-authored-by: Yicong Huang <17627829+Yicong-Huang@users.noreply.github.com> Co-authored-by: Yicong Huang <yicong.huang@observeinc.com>
…2867) ## Purpose Address #2810 #2809 with a different solution from #2834 With the solution in #2834, it is hard to use the workspace-editor components elsewhere as it is based on vh/vw styling. ## Changes Revoke the styling changes made in #2834 (back to using 100% instead of vh/vw and remove overflow: hidden) Dispatch "resize" event when workflow editor is loaded to invoke all the relevant resize handlers. ## Demo Demo is the same as #2834 as they fix the same bug Before (before #2834)  After 
## Purpose Add zoom-in and zoom-out buttons on the minimap. ## Changes Added the zoom-in and zoom-out buttons to the minimap. Removed the zoom-in and zoom-out buttons in the Texera menu ## Demo Texera menu before  Texera menu after  Minimap before  Minimap after 
…#2838) **Propose:** Modify the search results on the Hub Workflow page to use the SearchResultComponent from the general search, and implement different redirection behavior based on the user's login status and access permissions. **Change:** 1. Replaced the search results on the Hub Workflow page with the SearchResult Component used in the general search. 2. Handled different redirection scenarios: a) For users who are not logged in: Clicking on any workflow will redirect to the Workflow Detail page. b) For logged-in users: If the user clicks on a workflow they have access to, they will be redirected to the Workspace. If the user clicks on a workflow they don't have access to, they will be redirected to the Workflow Detail page. **Demo:** old hub-workflow interface:  new hub-workflow interface:  redirect demo: https://github.com/user-attachments/assets/21b70275-9f6b-4a71-b977-b39a58bd6a11 --------- Co-authored-by: Xinyuan Lin <xinyual3@uci.edu> Co-authored-by: linxinyuan <linxinyuan@gmail.com> Co-authored-by: YS0meone <timyuan1016@gmail.com> Co-authored-by: sixsage <sixsage02@gmail.com> Co-authored-by: mengw15 <125719918+mengw15@users.noreply.github.com> Co-authored-by: Minchong(Brian) Wu <143851082+IamtherealBrian@users.noreply.github.com> Co-authored-by: Yicong Huang <17627829+Yicong-Huang@users.noreply.github.com> Co-authored-by: Yicong Huang <yicong.huang@observeinc.com>
# Conflicts: # .gitignore
# Conflicts: # core/build.sbt # core/workflow-core/build.sbt # core/workflow-core/src/main/resources/storage-config.yaml # core/workflow-core/src/main/scala/edu/uci/ics/amber/core/storage/StorageConfig.scala
### PR overview Previously, when terminating a computing unit, the request would go through and return correctly. However, the UI notification displays incorrect message. The fix was in the "workflow-computing-unit-managing-service" where the response returned in was in json format. ### Video showing change https://github.com/user-attachments/assets/05c73672-0f95-4782-a11d-c3dd47abcaf6
# Conflicts: # core/gui/src/app/app.module.ts # core/workflow-core/src/main/resources/storage-config.yaml # core/workflow-core/src/main/scala/edu/uci/ics/amber/core/storage/StorageConfig.scala
# Conflicts: # core/workflow-core/src/main/resources/storage-config.yaml # core/workflow-core/src/main/scala/edu/uci/ics/amber/core/storage/StorageConfig.scala
# Overview The purpose of the PR is to implement creating, selecting, and deleting a workflow computing unit for running workflows. The changes include mainly from the 1) WorkflowComputingUnitManagingService for adding metrics and starting a new compute unit with specified resource 2) power-button component whch is responsible for the UI for starting, selecting, and deleting a compute unit 3) root styles.scss for some of the styling of ng zorro UI # Diagram  # Demo ### Lifecycle of compute unit https://github.com/user-attachments/assets/3e431ade-c617-400d-91d5-85bd1cfd71bf # Instructions To run on the kubernetes cluster 1) Run all 4 scripts under `core/scripts/build-docker-image` to create docker images for a) webserver.sh b) workflow-compiling-service.sh c) workflow-computing-unit.sh d) workflow-computing-unit-managing-service.sh 2) Update the your docker image name appropriately in the `texera-helmchart/values.yaml` 3) Run `helm install texera-helmchart <texera-helmchart path>` - i.e. `helm install texera-helmchart core/scripts/texera-helmchart` 4) Open up `http://texera.example.com:30080/` on your local browser * You may need to add "127.0.0.1 texera.example.com" to `/etc/hosts` to open the application in your browser
Contributor
|
@bobbai00 if this is surpassed (by another PR), please close it. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP