Commit Graph

397 Commits

Author SHA1 Message Date
somebody1234
d995d17dcb
Fix Google Analytics tag injection (#9819)
I missed injecting the Google Analytics tag from the environment at build time...

# Important Notes
None
2024-05-01 11:32:50 +00:00
somebody1234
d58b5f2a7d
Change heuristics for showing missing .env error (#9491)
- Fix #9479

# Important Notes
None
2024-04-29 07:27:00 +00:00
somebody1234
cb31bcaf8e
Remove special-cased injected Google Analytics tag (#9787)
- #9779 introduced (incorrect) detection to determine when to inject the Google Analytics tag. Instead, it should be injected by CI, because sending Google Analytics events is undesirable in development mode.

# Important Notes
None
2024-04-25 19:19:42 +00:00
somebody1234
3a53d470eb
Google Analytics events for opening and closing the app, and opening and closing projects (#9779)
- Closes #9778
- Add `open_app`, `close_app`, `open_workflow`, and `close_workflow` events
- Miscellaneous fixes for Google Analytics:
- Fix `open_chat` and `close_chat` events firing even when chat is not visible
- Add Google Analytics script to GUI2 entrypoint (i.e. the entrypoint used by the desktop app)

Unrelated changes:
- Add Nix development shell to allow Nix users to build GUI2 and the build script
- Java dependencies have *not* been added in this PR to keep things simple

# Important Notes
None
2024-04-25 11:33:59 +00:00
somebody1234
7c571bd460
Fix opening templates on Local Backend (#9748)
- Close #9747
- Fix creating projects from templates on Local Backend

# Important Notes
None
2024-04-19 14:07:23 +00:00
Sergei Garin
30a80db4b0
Refetch user session when it expires (#9632) 2024-04-16 11:21:26 +00:00
Nikita Pekin
f80e0052cc
refr(enso-org/cloud-v2#1088): Make Project fields camelCase (#9653) 2024-04-11 20:02:29 +00:00
somebody1234
3ecc3aebd0
Option to use Data Link in new project (#9644)
- Close https://github.com/enso-org/cloud-v2/issues/1161
- Add context menu option (and associated shortcut) to open a Data Link in a new project

# Important Notes
- The corresponding backend endpoints do not yet exist. The frontend currently passes an additional parameter `dataLinkId: string | null` to the backend's `create_project` endpoint. Note that this is inconsistent with the rest of the backend's terminology which calls Data Links `connector`s, so the parameter name might want to be changed.
2024-04-11 17:13:59 +00:00
somebody1234
0fcb005ff8
Fix dropdowns no longer opening after first open (#9668)
- Fix https://github.com/enso-org/cloud-v2/issues/1178
- Fix dropdowns not reopening after a third click (open -> close -> should open again)

# Important Notes
None
2024-04-10 13:28:49 +00:00
Sergei Garin
21ede86242
Use secret.path rather than secret.id in data link editor (#9667) 2024-04-10 12:52:35 +00:00
Sergei Garin
24644c41a2
Undelete user flow (#9601)
#### Tl;dr
Closes: enso-org/cloud-v2#863
This PR adds the ability to restore user account after deletion(So called soft-deletion)

<details><summary>Demo Presentation</summary>
<p>

#### TODO: video

</p>
</details>

---

#### Context:
This PR closes enso-org/cloud-v2#863, and it's a frontend part of the issue.

#### This Change:
1) Change the texts in settings, clarifying that a user can restore his account in 14 days after deletion.
2) Adds a new page (`/restore-account`)
3) If the user logs into the soft-deleted account, the app navigates him to the restore page.
4) The user can't interact with the dashboard until he restores the account(If the user navigates to the dashboard, the app will redirect him back to the restore page)
5) On the restore page the user can click a "Restore" button to restore his account or log out.
6) If the user restores his account, the app navigates him to the dashboard.

#### Test Plan:
1. Try to delete the account and log back in, expect to see the restore page
2. Try to navigate to protected pages(dashboard, settings, etc)
3. Try to restore the account
4. Try to log out on the restore page
5. (ideally) try to restore the account after 14 days :)

---
2024-04-10 10:11:48 +00:00
Sergei Garin
775ca3722a
Disable everything except restore / hard delete in trash (#9575)
Closes: enso-org/cloud-v2#1084

Tl;dr: This PR disable almost all actions in trash folder, except restore/hard delete.
Context:
Currently, we can do a lot of actions it trash folder: arrange files in folders, create new folders, edit files and so on. We want to disable most of these actions.


This Change:

- Disables d&d support within trash folder, but leaves the ability to drag thigs back to home folder.
- Disables most of the keyboard shortcuts(copy,paste,new...etc) except hard delete/restore
- Disables launching projects
- Disables rename
- Disables assigning labels
- Disabled editing the description & sharing




https://github.com/enso-org/enso/assets/61194245/35c6532d-719f-46b2-a2f7-b54b54856bbd





Test Plan:

This PR expects thorough testing to make sure we have disabled everything except hard delete/restore and the same way we didn't break the home folder :)
2024-04-10 09:31:46 +00:00
Nikita Pekin
7cf512ec6b
impr(enso-org/cloud-v2#1047): Enable Sentry distributed tracing (#9661)
Enables distributed tracing for Sentry. Enables profiling information collection for calls to backend APIs, which means that traces/errors can be correlated across the frontend and backend now.
2024-04-09 16:02:31 +00:00
Sergei Garin
2c78f4eefd
Add prefixes for cloud url params (#9649)
This PR adds an ability to exclude some keys in URLSearchParams from being parsed by GUI.
2024-04-09 07:38:06 +00:00
somebody1234
07793f576b
Fix reloading when the saved project uses the Local Backend (#9627)
- Fix https://github.com/enso-org/cloud-v2/issues/1156
- Fix reloading when the saved project uses the Local Backend

# Important Notes
To reproduce the error:
- Open a project in the Local Backend
- Close and reopen the IDE, or refresh the IDE.
2024-04-08 04:37:52 +00:00
Sergei Garin
c182b303e4
Update organization body param location -> address (#9628)
- Fix https://github.com/enso-org/cloud-v2/issues/1152
2024-04-08 03:52:08 +00:00
somebody1234
0feb987930
Normalize windows paths (#9618)
- Fix #9619
- Fix issue causing the full path to be shown on Windows.

Additional changes:
- Add `npm run watch:windows` script to `lib/client` for developing on Electron.

# Important Notes
Testing instructions:
- Should ideally be tested on Windows. All the following should work:
- Creating, opening and deleting top-level projects
- Creating folders
- Creating, opening and deleting nested projects
- Uploading and deleting top level and nested files
- Moving folders, files and projects
2024-04-08 02:20:28 +00:00
somebody1234
143665d944
Remove obsolete GUI arguments (#9466)
- Close #8610

# Important Notes
QA notes:
- The GUI2 warning screen should not show up - the arguments that GUI2 do not understand have been removed.
- However, it should be tested that the warnings screen should correctly work when invalid arguments really *are* passed in:
- Via URL query parameters (electron, might need to open the electron app then the browser, *or* do `location.href = ` in DevTools in Electron.)
- By editing `Editor.tsx` to inject invalid args to the big configuration object we pass to the GUI entrypoint.
2024-04-05 16:20:56 +00:00
somebody1234
9cf4847a34
Keyboard navigation between components (#9499)
- Close https://github.com/enso-org/cloud-v2/issues/982
- Add keyboard navigation via arrows between different components
- This is achieved by a `Navigator2D` class which keeps track of the closest adjacent elements.

Other changes:
- Switch much of the codebase to use `react-aria-components`
- This *should* (but does not necessarily) give us improved accessibility for free.
- Refactor various common styles into styled components
- `FocusArea` to perform automatic registration with `Navigator2D`
- `Button` and `UnstyledButton` to let buttons participate in keyboard navigation
- `HorizontalMenuBar` - used for buttons below the titles in the Drive page, Keyboard Shortcuts settings page, and Members List settings page
- `SettingsPage` in the settings pages
- `SettingsSection` in the settings page to wrap around `FocusArea` and the heading for each section
- Add debugging utilities
- Add debugging when `body` has the `data-debug` attribute: `document.body.dataset.debug = ''`
- This adds rings around elements (all with different colors):
- That are `FocusArea`s. `FocusArea` is a wrapper component that makes an element participate in `Navigator2D`.
- That are `:focus`ed, and that are `:focus-visible`
- That are `.focus-child`. This is because keyboard navigation via arrows ***ignores*** all focusable elements that are not `.focus-child`.
- Debug `Navigator2D` neighbors when `body` has the `debug-navigator2d` attribute: `document.body.dataset.debugNavigator2d = ''`
- This highlights neighbors of the currently focused element. This is a separate debug option because computing neighbors is potentially quite expensive.

# Important Notes
- ⚠️ Modals and the authentication flow are not yet fully tested.
- Up+Down to navigate through suggestions has been disabled to improve UX when accidentally navigating upwards to the assets search bar.
- There are a number of *known* issues with keyboard navigation. For the most part it's because a proper solution will be quite difficult.
- Focus is lost when a column (from the extra columns selector) is toggled - because the button stops existing
- It's not possible to navigate to the icons on the assets table - so it's current not possible to *hide* columns via the keyboard
- Neighbors of the extra columns selector are not ideal (both when it is being navigated from, and when it is being navigated to)
- The suggestions in the `AssetSearchBar` aren't *quite* fully integrated with arrow keyboard navigation.
- This is *semi*-intentional. I think it makes a lot more sense to integrate them in, *however* it stays like this for now largely because I think pressing `ArrowUp` then `ArrowDown` from the assets table should return to the assets table
- Likewise for the assets table. The reason here, however, is because we want multi-select. While `react-aria-components` has lists which support multi-select, it doesn't allow programmatic focus control, making it not particularly ideal, as we want to focus the topmost element when navigating in from above.
- Clicking on the "New Folder" icon (and the like) do not focus on the newly created child. This one should be pretty easy to do, but I'm not sure whether it's the right thing to do.
2024-04-05 07:21:02 +00:00
somebody1234
256b5b3068
Hide secret values by default (#9631)
- Hide secret values by default using `input type="password"`. They can be shown and hidden using the eye icon, just like regular password inputs.

# Important Notes
None
2024-04-04 11:03:53 +00:00
Paweł Grabarz
ef79474a74
Fix reported content-length in project manager shim. (#9604)
Fixes dashboard errors that prevented the project list from loading when using node shim implementation of project listing commands, such as:
```
Could not list root folder.: Unterminated string in JSON at position 10021 (line 1 column 10022)
```

The issue was caused by a cut-off JSON response, due to incorrect calculation of encoded response byte length.
2024-04-03 09:24:40 +00:00
Sergei Garin
06b416d499
Context menu should have a Edit Description on files (#9530)
Closes: enso-org/cloud-v2#1083

Tl;dr: This PR introduces a new menu entry that allows to open edit description dialog from context menu in dashboard. This supposed to work only in cloud.
When you right-click on an item in Cloud Drive, you can choose "Edit description" option to change the description of the selected item.


https://github.com/enso-org/enso/assets/61194245/53e949df-8a31-401c-ba48-52eddad468fa



Context:
See enso-org/cloud-v2#1083 . I decided to open a dialog insted of the sidebar because latter takes to much time and effort to make it properly.


This Change:



Added new variants for button component(submit & cancel), also - loading state.Added a new dialog that opens when you select "Edit description" in context menu.


Test Plan:

1. We shouldn't allow users to change the description for local files
2. Changes in the Dialog(after save) should reflect in sidebar(Description should update in sidebar)
3. Loading state/Errors should be displayed in dialog.
2024-04-02 16:02:13 +00:00
somebody1234
4c7c20ad08
Send credentials on open_project (#9468)
- Close https://github.com/enso-org/cloud-v2/issues/1038
- Send credentials for libs to use, when opening projects against the Cloud (Remote) backend.

# Important Notes
None
2024-04-02 06:47:35 +00:00
somebody1234
5416462c3c
Fix dateTime.test.ts (#9587)
Fix an issue caused by `dateTime` tests not taking daylight savings into account.

# Important Notes
None
2024-04-01 19:15:49 +00:00
somebody1234
3c5e15bbbd
Prevent context menus from going off the left side of the screen (#9567)
- Occurs when right clicking near the left side of the screen.

# Important Notes
None
2024-04-01 09:05:49 +00:00
Nikita Pekin
fc0269fd6d
refr(enso-org/cloud-v2#1060): Rename OrganizationInfo fields to camelCase (#9511)
- Shortens `OrganizationInfo.organization_name` -> `name`
- Renames `OrganizationInfo.pk` -> `id`

This standardizes the field name casing, removes verbosity in field names, and removes the `pk` implementation detail.
2024-03-27 16:46:15 +00:00
Nikita Pekin
6d73dadcee
impr(enso/cloud-v2#912): Add organization_id and user_id fields to SimpleUser (#9508)
- Updates the model types for the request/response bodies to match the backend.
  - Renames `CreatePermissionRequestBody::userSubjects` to match `CreatePermissionRequestBody::actorsIds` on the backend
  - Renames `UserInfo::organization_id` to camel case
  - Adds `UserInfo::userId` field to match the backend
  - Merges `SimpleUser` into `UserInfo`

Previously, `UserInfo`'s `OrganizationId` was serialized as `pk`. This
is not desired since `pk` is an implementation detail (relating to
DynamoDB). This commit renames the field to accurately reflect the type
of data it contains.

- Renames `User::id` to `User::organizationId`.

Previously, the user's organization ID was under the `id` field. As of
enso-cloud/cloud-v2#1098, this is no longer the case. The
`organizationId` field is no longer a user's primary identifier --
`userId` should be used for that purpose instead. So this field has been
renamed to `organizationId` to more clearly describe the purpose of the
field.

Affects the responses expected from the following endpoints:

- `PUT /users/me/picture`
- `PUT /users/me`
- `GET /users/me`
- `PUT /users/{userId}/usergroups`

- Adds `User::userId` field.

Previously, the user's organization ID was used to uniquely identify a
user. Now that multiple users can be invited to an organization, it is
no longer appropriate to use organization ID to uniquely refer to a
user. For this purpose, the backend has introduced the `userId` field.

Affects the responses expected from the following endpoints:

- `POST /users`
- `PUT  /users/me/picture`
- `PUT  /users/me`
- `GET  /users/me`
- `PUT  /users/{userId}/usergroups`

Removes the `user` param from `tryGetSingletonOwnerPermission`. This
param was previously required. It was required because a `userSubject`
was necessary to optimistically generate a `UserPermission`. With recent
refactors, a `userId` can be used in place of `userSubject` to generate
a `UserPermission`. The existing param `owner` provides the `userId`, so
the `user` param is redundant and can be removed.

- Removes `UserInfo` from the `FullUserSession`.

Previously, `UserInfo` in the `FullUserSession` was required to obtain a
`userSubject`. Now, `userSubject` has been deprecated in favour of
`userId`. `User` provides `userId`, and is present in the
`FullUserSession`. Thus, this commit removes `UserInfo` from the
`FullUserSession` since it is redundant.

- Renames `UserInfo` fields to `camelCase`

Previously, `UserInfo`'s fields were serialized as `snake_case`. This is
not desired since the convention for the frontend is to use `camelCase`
for field names where possible. This commit renames the fields to be
`camelCase`, now that the backend has been updated accordingly.

- Sorts by `userId` rather than `email`
- Compares by `userId` rather than `email`

- Extends `User` from `UserInfo`

After refactoring, `UserInfo` is now a subset of `User`. To remove
duplication, this commit modifies `User` to extend `UserInfo`.
2024-03-27 15:58:08 +01:00
somebody1234
6f7a51470d
Directory management on Local (Project Manager) backend (#9353)
- Implement https://github.com/enso-org/cloud-v2/issues/961
- Allow directory management on Local backend
- Setting a custom root directory is currently *out of scope* of this PR.
- Listing directories
- Deleting directories and files
- Adjust project-related APIs to accept parent directory path (as required by PM when not interacting with root directory)
- QoL improvements related to testing this PR
- New watch script (`npm run watch2`, `npm run watch:linux`) in `app/ide-desktop/lib/client/`) for testing IDE2 on Electron without having to build the entire app
- Adjustments to `gui2`'s `vite.config.ts` to allow React HMR when doing dev in Electron

# Important Notes
- Support for deleting files and folders uses the API introduced by #9359 - so it will not work until that PR is merged in.
- Support for uploading files uses the API specified by #9360 - so it will not work until that issue is closed.
2024-03-27 14:42:23 +00:00
Radosław Waśko
f2d6079ac4
Fix missing AWS region in S3 operations (#9546)
- Closes #9284
- Now our tests run without the default `AWS_` config, thus ensuring that the tested setups work in a clean environment.
- After all, more complicated logic was needed for buckets access - apparently the AWS SDK only allows for some operations on buckets to happen if the client is connected to the correct region. Thus detection of bucket regions had to be implemented.
- Added `AWS_Region` widget based on autoscoping.
- Fixed `AWS_Credential.profile_names` crashing if no AWS config was found. Now it returns no profiles if not found. Added a regression test.
2024-03-27 12:00:15 +00:00
Sergei Garin
3eb47ac2ba
Listing versions on file results in 403 flood (#9531)
Closes: enso-org/cloud-v2#1081

Tl;dr: [optional] 1-liner if the context of the change is long


Context:


This Change:

This PR specifies the amount of retries if the request is sent through ReactQuery.


Test Plan:

Try to reproduce the bug from the issue, see that requests stops after 3 retries.
2024-03-27 10:29:45 +00:00
Sergei Garin
ba6c1c2dc8
Crash when editing secret (#9532)
Closes: enso-org/cloud-v2#1085


Context:
---


This Change:

This PR changes the endpoint for updating a secret from `s3cr3tz` to `secrets`.

Test Plan:

Add a secret on dashboard then right click on it -> edit -> change the value -> check that the secret is updated
2024-03-27 10:05:43 +00:00
Radosław Waśko
af5354b869
Data Link for reading Enso_File (#9525)
- Closes #9282
2024-03-27 04:17:07 +00:00
Adam Obuchowicz
70f847f295
Fix file browser on Linux and Windows (#9538)
Fixes #9503

[The `showFileBrowser` documentation has a note](https://www.electronjs.org/docs/latest/api/dialog#dialogshowopendialogsyncbrowserwindow-options), that Linux and Windows don't support enabling picking dir and file.
2024-03-25 17:07:04 +00:00
somebody1234
770e18768a
Move all user-facing text to a central location (#8831)
- Closes https://github.com/enso-org/cloud-v2/issues/861
- Adds a `getText` function and React Context to abstract away all text that is shown to users

The main immediate benefit is making all text much more discoverable - both being able to know of every piece of text used across the entire application, and making it a lot easier to refactor certain strings when needed rather than having to hunt for strings to replace (and potentially miss one).

The longer term benefit is that this will make it easy to add localization, by simply adding another JSON file with the same keys as the existing one, and adding a little bit of logic.

# Important Notes
None
2024-03-25 08:13:24 +00:00
Sergei Garin
7c3e316239
Diff editor (#9458)
Closes  enso-org/cloud#940
2024-03-23 18:44:56 +00:00
Sergei Garin
6c1ba64671
Implement back and forth navigation (#9301)
- Closes enso-org/cloud-v2#940
2024-03-22 12:36:08 +00:00
James Dunkerley
283c0b61d9
Data link for Snowflake. (#9514)
Adding in Snowflake into the Datalink APIs.
![image](https://github.com/enso-org/enso/assets/4699705/32bd347c-0b2b-47b5-bec2-5c939ecd0594)
2024-03-21 17:06:56 +00:00
Sergei Garin
80e2d68cda
Loose tailwind rules for eslint (#9496) 2024-03-21 09:53:34 +04:00
Michał Wawrzyniec Urbańczyk
55a47dac20
[CI] Fix the notarization (#9506)
The https://github.com/enso-org/enso/pull/9435 broke the notarization, as it adds new binaries to the package that need to be included in our code signing workarounds.
2024-03-21 03:50:43 +00:00
Nikita Pekin
4ed970d9d1
refr(enso/cloud-v2#912): Rename SimpleUser.id to SimpleUser.userSubject (#9490)
This PR updates the model types for the request/response bodies to match the backend.

These changes are for the (yet to be merged) changes to the `User` types:
- https://github.com/enso-org/cloud-v2/pull/1075

Note that this PR must be **merged after the above PRs have been merged and deployed** to the backend.

- Rename `SimpleUser::id` to `SimpleUser::userSubject` to match the backend

# Important Notes
On the backend, `SimpleUser.id` has been renamed to `SimpleUser.userSubject` for consistency.  This commit updates the frontend to account for this change.
2024-03-20 18:48:29 +00:00
Nikita Pekin
ecd56bbba8
impr(enso/cloud-v2#912): Add organization_id and user_id fields to SimpleUser (#9489)
This PR updates the model types for the request/response bodies to match the backend.

Some of these changes are for the (already merged) user groups PRs, (i.e., the switch to `actorsIds`):
- https://github.com/enso-org/cloud-v2/pull/926
- https://github.com/enso-org/cloud-v2/pull/939

Some of these changes are for the (yet to be merged) changes to the `User` types:
- https://github.com/enso-org/cloud-v2/pull/1073

Note that this PR must be **merged after the above PRs have been merged and deployed** to the backend.

- Rename `CreatePermissionRequestBody::userSubjects` to match `CreatePermissionRequestBody::actorsIds` on the backend
- Add `SimpleUser::organizationId` to match the backend
- Add `SimpleUser::userId` to match the backend
- Rename `UserInfo::pk` to `UserInfo::user_subject` to match the backend
- Rename `UserInfo::organization_id` to `UserInfo::pk` to match the backend
- Add `UserInfo::sk: UserId` to match the backend
2024-03-20 18:01:11 +00:00
somebody1234
dfaab53601
Fix project not opening after reopening IDE when on Local backend (#9465)
- Fix #9455
- Also fix minor issue where disabled `Button`s had `cursor: pointer`.

# Important Notes
None
2024-03-19 20:15:20 +00:00
somebody1234
3505893390
Dashboard fixes (#9467)
- Close https://github.com/enso-org/cloud-v2/issues/1037
- Fix downloading files. The issue was that the S3 domain was not whitelisted.
- Fix #9345
- Fix https://github.com/enso-org/cloud-v2/issues/1012
- Make "Update" button in assets panel (right panel) disabled until its value is updated.

# Important Notes
None
2024-03-19 13:31:33 +00:00
somebody1234
4379df7c2d
"Activity log" settings page (#9311)
- Close https://github.com/enso-org/cloud-v2/issues/942
- Add "Activity log" settings page
- Show info common between all events
- Specific event info NOT added yet as the appropriate info is currently lacking
- Add support for multi-select in dropdowns (required for the "Activity log" settings page)
- Animate opening of dropdowns

# Important Notes
None
2024-03-19 06:17:28 +00:00
Michał Wawrzyniec Urbańczyk
de9f2764f9
Remove ensogl-pack (#9407)
This PR removes enso-pack (ensogl-pack) crate.
It still keeps the `enso-runner` JS package, as it is used for CLI argument parser and logger. The runner should be probably refactored (and possible removed altogether).

# Important Notes
I've temporarily extracted the `enso-runner` to `lib/js` directory, as I wanted to avoid keeping pure JS library under `lib/rust`. Attempts at integrating this with `app/ide-desktop` and family caused too much trouble for this PR. The expectation is that the package will be removed or moved elsewhere soon anyway.
2024-03-18 12:18:18 +00:00
somebody1234
703cafa6d9
Fix drag-n-drop onto empty space below asset table (#9446)
- The invisible drop target below the assets table was absent, breaking both drag-n-drop of external files, and drag-n-drop of existing assets to the root directory.

# Important Notes
None
2024-03-18 08:47:01 +00:00
Ilya Bogdanov
c4cb7b9305
Store additional metainformation for defineKeybinds (#9427)
Closes #9411

Based on #9365 

<img width="261" alt="image" src="https://github.com/enso-org/enso/assets/6566674/2b419fde-9f66-455e-804b-1690edfb2883">
2024-03-15 15:48:50 +01:00
somebody1234
515dacfec2
Fix warning in console about the dashboard keybind namespace being rebound (#9214)
- Fix warning showing up in Console
- Adjust behavior of `Enter` in "capture keyboard shortcut" modal
- Fix keyboard shortcuts multiplying on refresh after adding custom shortcuts
- Fix "delete asset" shortcut working even in the Editor page. Repro steps:
- Select a project without opening it
- Open the project
- Press the "delete" key ("backspace" on macOS) to ensure that the keybind works properly
- Press "escape" to close the modal
- Wait for Graph Editor to open
- Press "delete" and verify that the modal no longer appears. (On develop it does appear - this is incorrect behavior.)

# Important Notes
None
2024-03-15 13:16:35 +00:00
somebody1234
87291d5e6c
Fix dashboard bugs (#9378)
- Fix https://github.com/enso-org/cloud-v2/issues/979
- Close https://github.com/enso-org/cloud-v2/issues/946
- Fix https://github.com/enso-org/cloud-v2/issues/974

# Important Notes
None
2024-03-14 20:01:49 +00:00
somebody1234
cd94437f54
Allow downloading Data Links and projects (#9297)
- Close https://github.com/enso-org/cloud-v2/issues/944
- Allow downloading Data Links, not just files, from the Cloud backend.
- Close https://github.com/enso-org/cloud-v2/issues/947
- Also allow downloading projects. This is SAFE to add before the cloud redeploy because the property is optional anyway.

# Important Notes
None
2024-03-14 18:43:11 +00:00