Skip to content
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

[ENG-4687] Add v2 models, adapters, and serializers #2045

Conversation

brianjgeiger
Copy link
Contributor

@brianjgeiger brianjgeiger commented Nov 7, 2023

Purpose

Add models, adapters, and serializers for various v2 endpoints we'll need for addons. Note that some of this does not reflect the BE as it exists today, but is a bit aspirational. That being said, it does not include all the changes we ultimately want, just the ones that are necessary to make this function in a sane manner.

Summary of Changes

  1. Add addon, external-account, node-addon, and user-addon models, adapters, and serializers

Comment on lines 8 to 10
@attr('string') external_account_id!: string;
@attr('string') folder_id?: string;
@attr('string') folder_path?: string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to leave these snake_case? If so, we may need to override the default behavior in app/serializers/node-addon.ts

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ha! Whoops.

Comment on lines 7 to 8
@attr('string') profileUrl?: string;
@attr('string') displayName!: string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this will be a problem, but might be safer to use @attr('fixstring') for these.

Copy link
Contributor

@futa-ikeda futa-ikeda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🌱

@brianjgeiger brianjgeiger merged commit c8c2ed9 into CenterForOpenScience:feature/addon-services Nov 8, 2023
9 checks passed
@brianjgeiger brianjgeiger deleted the addons/v2-models branch November 8, 2023 19:58
adlius added a commit that referenced this pull request Jan 29, 2025
* Add addon service routes (#2042)

## Purpose
- Add routes and placeholder templates for new addon service routes

## Summary of Changes
- Update app/router.ts
- Add route and template file for new routes
- Add unit tests for new routes

* [ENG-4687] Add v2 models, adapters, and serializers (#2045)

Purpose

Add models, adapters, and serializers for various v2 endpoints we'll need for addons. Note that some of this does not reflect the BE as it exists today, but is a bit aspirational. That being said, it does not include all the changes we ultimately want, just the ones that are necessary to make this function in a sane manner.

Summary of Changes

Add addon, external-account, node-addon, and user-addon models, adapters, and serializers

* [ENG-4688] Addon service models (#2048)

* Add config variable for new addon service

* WIP models for addon service

* More WIP models

* WIP

* Remove unneeded model

* [ENG-4681] Add mirage for v2 api (#2051)

## Purpose

Make the v2 endpoints work with mirage. This includes a lot of normalization of the API but not the extra features such as extended attributes for providers nor getting the folder lists.

## Summary of Changes

1. Add mirage
2. Adjust models

* [ENG-4682] Mirage for addons (#2062)

* Implement basic management component and providers (#2084)

Purpose

Start the development of the management component. This includes the mixing and sorting of the various provider types, creating abstracted providers for each api, and filling out some of the v2 api functionality.

Summary of Changes

Create management component
Create Provider and LegacyProvider
Add parent relationships to some models
Modify the addon model for the new way of serializing the addon category

* [ENG-4964] Addon cards (#2092)

## Purpose
- Add addon-cards component to configure, enable, and disable addons

## Summary of Changes
- Update adapters, addons route page, and manager
- Add addons card component

* [ENG-5031] Service methods (#2096)

Purpose

Add addon service methods to manager and provider class

* [ENG-5033] Test legacy provider code (#2097)

Purpose

Test the legacy-provider code

Summary of Changes

Add tests
Fix what was broken
DRY _cacheNodeAddonIfNecessary

* Add proxy-properties to node-addon model (#2099)

## Purpose
- Add properties to v2 `node-addon` model to match what is found on the new addons service's `configured-storage-addon` model properties

## Summary of Changes
- Added the following properties to the node-addon model
  - `externalUserId`
  - `externalUserDisplayName`
  - `rootFolder`
- Add test

* [No ticket] Updates to the addons templates (#2101)

## Purpose
- Update route structure for addons

## Summary of Changes
- Move addons list page to `guid-node.addons.index` from `guid-node.addons`
- Update left nav link to use in-app transition
  - Will now show active route state

* [ENG-5109] Add tests for Addon Provider Class (#2107)

* [ENG-5034] Test manager and remove v2 addons changes (#2113)

## Purpose
- Test manager component for addons service

## Summary of Changes
- Add test
- Remove V2 API updates for Addons
- Remove unused property for AuthorizedStorageAccount model
- Remove unneeded provider icons

* Add waffled user addons settings page to app (#2116)

-   Ticket: [ENG-5164]
-   Feature flag: `gravy_waffle`

## Purpose

Add a user settings addon page and start the waffling process.

## Summary of Changes

1. Add gravy_waffle flag
2. Add route to settings.addons
3. Add template to settings.addons
4. Adjust menu item for settings.addons to conditionally route to new page if the flag is set

* Add waffling to guid-node.addons page and link (#2117)

-   Ticket: [ENG-5162]
-   Feature flag: `gravy_waffle`

## Purpose

Waffle the rest of the app that we'll be modifying

## Summary of Changes

1. Added feature flag to `guid-node.addons` page
2. Added feature flag to the tab link to the node addons page

* [ENG-5110] Routing for node addons setup and config (#2119)

-   Ticket: [ENG-5110]
-   Feature flag: gravy_waffle

## Purpose
- Handle when users interrupt the setup/config process
- Users will now just have the option of going to the addons page
- Specific steps in the setup/config process are controlled by flags on the manager component

## Summary of Changes
- Handle addon setup/config on one route
- Remove all addon-specific subroutes

* [ENG-5160] Add ability to filter (#2124)

-   Ticket: [ENG-5160]
-   Feature flag: gravy_waffle

## Purpose
- Allow users to filter addon types and names

## Summary of Changes
- Add `FilterTypes` enum for addons
- Use enum to create buttons to filter by
- Use enum to control which list of addon providers is shown (hypothetically)
- Add textbox to control filtering by name
- Style 💅

- [x] get actual empty list placeholder text

* [ENG-5148] Add ability to select or create account (#2129)

-   Ticket: [ENG-5148]
-   Feature flag: `gravy_waffle`

## Purpose

Add into the workflow the ability to select if you're going to create a new account or use an existing account.

## Summary of Changes

1. Add new panels for workflow
2. Have provider be able to get accounts
3. Update `getConfiguredStorageAddon` to use filtering
4. Update manager to handle new panels
5. Update mirage scenarios to make it easy to get to the workflows this enables
6. Update addons views to handle filtering

* [ENG-5263] Add different addon types (#2125)

-   Ticket: [ENG-5263] 
-   Feature flag: `gravy_waffle`

## Purpose
- Add new addon types

## Summary of Changes
- Add citation service models
- Add cloud computing service models
- Add serializers/adapters/endpoints for aforementioned models
- Update addon service serializers to use an `AddonServiceSerializer` superclass
- Update mirage to add endpoints for these new models

* [ENG-5256] Refactor internal model names (#2131)

-   Ticket: [ENG-5256]
-   Feature flag: `gravy_waffle`

## Purpose
- Rename `internal-user` and `internal-resource` to `user-reference` and `resource-reference` respectively

## Summary of Changes
- Update file names, model names, variable names etc

* [ENG-5157] Make disableAddon disable the addon (#2133)

-   Ticket: [ENG-5157]
-   Feature flag: `gravy_waffle`

## Purpose

Make the disable addon workflow work.

## Summary of Changes

1. Performed the task

* [ENG-5149] Choose account workflow for addons (#2134)

-   Ticket: [ENG-5149]
-   Feature flag: `gravy_waffle`

## Purpose
- Allow users to select an existing account to enable for a project

## Summary of Changes
- Update AccountSelect view of addons page to support selection of existing account
- Update Confirm view of addons page to support confirming selected account
  - Add `createConfiguredStorageAddon` on the Provider class when a user configures a storage-addon to a node

* Add user-addons-manager component (#2142)

-   Ticket: [ENG-5165]
-   Feature flag: `gravy_waffle`

## Purpose
- Add manager componenet for user-addons
## Summary of Changes
- Add user-addon-manager component

* Scaffolding for addon account creation (#2148)

-   Ticket: [ENG-5150]
-   Feature flag: n/a

## Purpose
- Create scaffolding for addon account creation/connection

## Summary of Changes
- Update node addon's `accountCreate` page to show input boxes for username/password and/or OAuth link

* Show user enabled addons (#2157)

* Extra addon models (#2158)

## Purpose
- Add extra models needed to support other addon types (citation managers and remote computing services)

## Summary of Changes
- Add authorized account models for other types
- Add configured account models for other types
- updates to mirage and other existing models

* Addons/waffle files menu (#2159)

-   Ticket: [ENG-5163]
-   Feature flag: `gravy_waffle`

## Purpose

Make the file menu on the node files page use the configured storage addons as the source of truth rather than the api v2 guid-node/files endpoint.

## Summary of Changes

1. Componentize the file provider list
2. Add in waffled section for checking vs. configured storage addons
3. Simplify registrations, which only and always have osfstorage, to just show osfstorage in the files menu
4. Fix tests
5. Update the caniuse-lite database (incidentally)

* [ENG-5165] Filter user addons (#2160)

-   Ticket: [ENG-5165]
-   Feature flag: `gravy_waffle`

## Purpose
- Allow users to filter addons on user settings page

## Summary of Changes
- Add filter logic to user addons manager
- Update user settings addon page template
- Update user-addon-manager component to support different addon types
- Update addon manager component to support different addon types
- Update Provider class to support differnt addon types

* [ENG-5153] Support logging into addon service using username/password creds (#2165)

-   Ticket: [ENG-5153]
-   Feature flag: `gravy_waffle`

## Purpose
- Support addon service login using username/password

## Summary of Changes
- Generalize how login is handled between provider types

* [No ticket] Rename addon models (#2168)

## Purpose
- Rename models for different addon types

## Summary of Changes
- cloud-computing service models
  - cloud-computing-service -> external-computing-service
  - configured-cloud-computing-addon -> configured-computing-addon
  - authorized-cloud-computing-account -> authorized-computing-addon
- citation service related models
  - citation-service -> external-citation-service
  - configured-citation-service-addon -> configured-citation-addon
  - authorized-citation-service-account -> authorized-citation-account

* [ENG-5151] Addon credentials (#2170)

* Add credentials to models; Reset credentials object

* Update relationship names

* [ENG-5155] Pretend check addon auth credentials in mirage (#2172)

* Pretend check addon auth credentials in mirage

* Reset connectAccountError flag better

* Update mirage credential validations

* Use color variable

* [ENG-5159] Oauth (#2174)

-   Ticket: [ENG-5159]
-   Feature flag: `gravy_waffle`

## Purpose
- Support OAuth workflow on Node Addons page

## Summary of Changes
- Add `authUrl` and `isAuthorized` attributes to AuthorizedStorageAccount models and its friends
- Update account-setup-manager component to handle OAuth workflow
- Update addons-service/manager component to handle OAuth workflow
- Update Node Addons page to handle OAuth workflow
- Add mirage views
- Fix some bad patterns I introduced into Provider class

* [ENG-5174] Service files (#2178)

-   Ticket: [ENG-5174]
-   Feature flag:`gravy_waffle`

## Purpose

Allow the files page to work with the addons service.

## Summary of Changes

1. Add service-file and service-provider-file classes to take advantage of having configuredStorageAddons
2. Use service-file and service-provider-file classes when `gravy_waffle` flag is active and not using `osfstorage` as a provider.
3. Update mirage
4. Add ConnectedCapabilities and ConnectedOperationNames enums and use them
5. Fix breadcrumbs
6. Fix move/copy dialog
7. Fix left sidebar menu
8. Fix tests

* [ENG-5168] User addon credentials (#2183)

-   Ticket: [ENG-5168]
-   Feature flag: 'gravy_waffle'

## Purpose
- Allow users to add new addon accounts in their user settings page

## Summary of Changes
- Make node argument optional for Provider class
- Update user-addons-manager to handle auth workflows
- Update external-service models
- Update user-settings addon page to allow for auth workflows

* Model updates per addons open house discussion (#2190)

* Rename isAuthorized on AuthorzedAccount models to credentialAvailable
* Add configurableApiRoot to externalStorageModel
* Add apiBaseUrl to AuthorizedStorageAccount

* [ENG-4963] Addon terms (#2189)

* Add new attribute to external service models

* Add capabilities to mirage fixtures; Add some providers

* Add terms-of-service component

* Fix test

* Styling for addon terms of service pages

* Use new color variables in existing places

* Reset addon text filter when changing addon filter type

* Prevent word break on small screens for terms of service

* Remove old defunct model fields for external storage service

* Use more appropriate attr transforms

* [ENG-5455] User settings tab (#2198)

## Purpose
- Add tabs on user settings addon page

## Summary of Changes
- Add tabs to User Settings Addons page
  - Hide whitespace is advised on the templates
- Update user-settings-manager to support these tabs, and update method names to make a bit more sense
- Update delete-button component to be able to render a new size

* [ENG-5539] Multiple configured addons per addon (#2201)

## Purpose

Start to build the infrastructure for having multiple configured addons per external service.

## Summary of Changes

1. Have tasks get multiple addons
2. Add placeholder in state machine for the configuration list

## Side Effects

This is not really tested and shouldn't do a lot just yet. Will need work for [ENG-5454] to make it do stuff.

* Add tabs to node addons page (#2204)

-   Ticket: []
-   Feature flag: n/a

## Purpose
- Add tabs to the node addons page for all-addons and just addons that have accounts connected to the project

## Summary of Changes
- Add tabs to node addons page
- Update some wording
- Add "Cancel" buttons to pages that have a "Back" button as well
- Update Addon Service models to use OsfSerializer (for now)
- Update Addon Service models to use Application Serializer in Mirage (for now)
- Misc updates needed for AddonCard to work properly

* Do better at getting the configured addons (#2211)

## Purpose

Do better at getting the configured addons

## Summary of Changes

1. Fix typo for ConnectedOp~a~erationNames
2. Get all configured addons at once for a node
3. Mirage up some endpoints and views
4. Fix configuration
5. Move manager constructor tasks to an initialize function so they can be done synchronously


## Side Effects

This passed the addons-services tests locally, and it runs, so it probably doesn't have a lot of side effects.

* [ENG-5570] Update Addon models and serializers (#2212)

## Purpose
- Update inheritance patterns for new addon service models
- Update the serializer used by new addon service models

## Summary of Changes
- Update mirage serializers for addon service models
- Update addon service models to just use standard `Model` instead of `OsfModel`
- Update addon service models to use a new GravyValetSerialzer
- Update inheritance pattern for authorized-accounts, external-services, and configured-addons
- Refactor anything that was using `OsfModel` specific methods (e.g. `queryHasMany`)

* [ENG-5454] Addons/multiple configured addons part 3 (#2218)

-   Ticket: [ENG-5454]
-   Feature flag: `gravy_waffle`

## Purpose

Allow multiple addons to be configurable. This updates the template and supporting ts files.

## Summary of Changes

1. Add configurationList page mode to the template
2. Update some text to match mockups
3. Style
4. Add function to remove a configured addon

* [ENG-5170] Addon account reauthorization (#2214)

-   Ticket: [ENG-5170]
-   Feature flag: gravy_waffle

## Purpose
- Allow users to reauthorize an addon service account after the credentials have expired

## Summary of Changes
- Update account-setup-manager to handle reauthorization workflow
- Update user-addon-manager and addon settings page to support reauthorization workflow
- Some misc things:
  - Rename `Provider.createAccountForNodeAddon` to `Provider.createAuthorizedAccount` for clarity
  - Move `AuthorizedAccount.configuringUser` relationship to the subclasses as the inverse relationships vary based on service type
  - Allow creation of multiple configuredAddons for a given addon
  - Remove unused `Provider.setNodeAddonCredentials`

* Addons/update disable addon flow (#2221)

-   Ticket: [ENG-5626]
-   Feature flag: `gravy_waffle`

## Purpose

Update the addon-card to not have the disable addon workflow anymore. Also perform miscellaneous fixes.

## Summary of Changes

1. Remove the disable addon workflow from project addons page
2. Update the disconnect addon dialog box to match mockups
3. Make the 'add another location' button do something
4. Ensure we have authorized accounts for account adding another location

* Make changes based on user feedback (#2226)

-   Ticket: [ENG-5582]
-   Feature flag: `gravy_waffle`

## Purpose

Make changes based on user feedback. Details in the Jira ticket.

## Summary of Changes

1. Update ember aria tabs
2. After adding an account, switch tabs to the connected accounts tab
3. Change wording from 'authorize' to 'connect'
4. Make forms look right (stacked labels with instructions between label and field)
5. Add in temporary text for the display name field

* [ENG-5624] Add mirage endpoint for addon-operation-invocation (#2224)

-   Ticket: [ENG-5624]
-   Feature flag: `gravy_waffle`

## Purpose
- Add mirage support for addon-operations

## Summary of Changes
- Add mirage endpoint for POSTing addon-operation-invocation

* [ENG-5145] converge with gravyvalet backend (#2234)

-   Ticket: [ENG-5145]
-   Feature flag: n/a

## Purpose
- converge with [gravyvalet backend](CenterForOpenScience/gravyvalet#64)

## Summary of Changes
- `addons_service` adapter: include auth cookies with requests
- consistent `displayName` attr on external services, authorized accounts, and configured addons
- add `thruAccount` relation to addon-operation-invocations (to allow the account owner to e.g. choose an authorized root folder without having configured an addon yet)
- some renames for consistency
- skip unused `credentials` members (allow/default to `{}`)

* [ENG-5172] User settings addons tests (#2240)

-   Ticket: [ENG-5172]
-   Feature flag: `gravy_waffle`

## Purpose

Test the user settings addons page.

## Summary of Changes

1. Add tests
2. Add test selectors
3. Fix problem with accountOwner

* [ENG-5173] Root folder picker (#2246)

-   Ticket: [ENG-5173]
-   Feature flag: n/a

## Purpose
- Create root-folder-picker for configured storage addons

## Summary of Changes
- Make updates to mirage to support root-folder-picker

* [ENG-5156] Allow display name edit (#2248)

-   Ticket: [ENG-5156]
-   Feature flag: n/a

## Purpose
- Allow users to update the configured addon's display name

## Summary of Changes
- Update `root-folder-picker` component to allow display name update
- Update addon manager's `saveConfiguration` method to take in an object to generalize which fields should be updated

* Update class name (#2249)

* Node addons analytics (#2256)

* Add tests for user-addon-manager component (#2260)

* assorted fixes for gravyvalet staging

- update CredentialsFormat values to match backend
- camelize snake-case keys in invocation kwargs and results
- stop creating credentials objects with all possible keys

* registries discover with local SHARE

use existing environment variables instead of hard-coded URLs
    SHARE_BASE_URL
    SHARE_API_URL
    SHARE_SEARCH_URL

* default to local share/trove

* remove unused SHARE_API_URL config

* [ENG-5158] Add node addons acceptance tests (#2264)

-   Ticket: [ENG-5158]
-   Feature flag: n/a

## Purpose
- Add acceptance tests for node addons workflows

## Summary of Changes
- Add tests
- Add data-test selectors
- Some minor bugfixes discovered along the way
- Discovered an issue where adding a configured account doesn't show up on the addons page. Will address this in a later PR

* [ENG-5950]Configured addon bugs (#2272)

-   Ticket: [ENG-5950]
-   Feature flag: n/a

## Purpose
- Address a bug where adding a new configured account for a provider with no configured account does not update the Addon-card to indicate it has a configured account

## Summary of Changes
- After creating a configured addon, add this new configuredAddon to the list of Provider's `configuredAddons` list
- Remove unused `listOfFolders` method
- Rewrite how `Provider.configuredAddons` gets set to make it less weird and confusing

* [ENG-5951] Authorized account bugs (#2273)

-   Ticket: [ENG-5951]
-   Feature flag: n/a

## Purpose
- Address some bugs in the authorized-account creation process
  - Need to remove `AuthorizedAccount.credentials.url` and `AuthorizedAccount.credentials.repo` out and use `AuthorizedAccount.apiBaseUrl` instead
  - Should be able to rename accounts when reconnecting

* Add try-catch when getting addons (#2276)

* fix citation bugs (#2294)

* Don't send kwargs when its fetching root items (#2303)

* dont send kwargs when its fetching root items

* fix tests

* Fix get root items again (#2304)

* dont send kwargs when its fetching root items

* fix tests

* fix again

* fix a bunch of things (#2305)

* fix ServiceProviderFile getFolderItems (#2322)

* Comment out button to add new configured addon for a given provider (#2329)

-   Ticket: []
-   Feature flag: n/a

## Purpose
- Disallow configuring multiple accounts for a given external-storage-services

## Summary of Changes
- Comment out button that allows users to connect another account for a given external-storage-service

* Loosen criteria for disabling save button for configured addons (#2330)

-   Ticket: []
-   Feature flag: n/a

## Purpose
- Loosen criteria for save button being disabled when creating and configuring a configured addon

## Summary of Changes
- Allow any non-empty name for display name
  - Previous logic included a condition that the save button would be disabled if the display name had not been changed
- Allow rootFolder to be empty

* Feature/addon services fix bad merge (#2343)

## Purpose

Fix a bad merge

## Summary of Changes

1. Updated the translations file to remove duplicate strings
2. Updated caniuse

* Underscore accessKey and secretKey (#2274)

* underscore accessKey and secretKey

* Update tests

---------

Co-authored-by: futa-ikeda <51409893+futa-ikeda@users.noreply.github.com>
Co-authored-by: Futa Ikeda <futa.ikeda@gmail.com>

* [ENG-6346] Update logic to set initial folder id in file manager (#2356)

-   Ticket: [ENG-6346]
-   Feature flag: n/a

## Purpose
- Address a bug where the root folder picker doesn't show the correct folder content when widget loads (shows root folder's parent, not root folder's contents). See video in ticket for better description

## Summary of Changes
- Update types
- Set currentFolder to be the explicit Id of the starting folder
- Always show Home option in breadcrumbs

* fixed dataverse and gitlab setup pages (#2365)

* [ENG-6428] Allow citation addons to pick root folder (#2367)

-   Ticket: [ENG-6428]
-   Feature flag: n/a

## Purpose
- Allow root-folder to be chosen for configured-citation-addons

## Summary of Changes
- Move tasks for creating `addon-operation-invocations` to the `configured-addons` superclass
  - Update imports and such

## Screenshot(s)
For setting up Mendeley for example:
![image](https://github.com/user-attachments/assets/bda539e5-59e4-4c91-ba7c-c4d70eba0976)

* Show link to start oauth (#2368)

-   Ticket: [ENG-6320]
-   Feature flag: n/a

## Purpose
- Show a link to open the OAuth window in case the new window gets blocked

## Summary of Changes
- Add a new link when the page is pending OAuth
- Add some language letting folks know that there hould be an OAuth window opening

* Include root folder in configured addon POST request (#2369)

* Add logic to handle failed oauth flow (#2372)

-   Ticket: [ENG-6345]
-   Feature flag: n/a

## Purpose
- Add logic to prevent moving forward in account creation if OAuth flow fails

## Summary of Changes
- check `credentialsAvailable` flag in oauthRefocus callback and proceed or don't based on this flag
- Add some message to show that OAuth failed

* [No ticket] Prevent 400 errors when PATCHing configured addons (#2373)

## Purpose
- Prevent 400 errors when PATCHing configured addons 

## Summary of Changes
- Remove the `authorizedResourceUri` attr in PATCH requests to configured-xyz-addons if `authorizedResourceUri` is `null`

* [ENG-6514] TOS page integration (#2374)

-   Ticket: [ENG-6514]
-   Feature flag: n/a

## Purpose
- Have the Terms of Service page populate with the correct info from the GV API

## Summary of Changes
- Update `ExternalService.termsOfService` to `supportedFeatures`
- Rename `TermsOfServiceCapabilities` to `ExternalServiceCapabilities`

* Add neww canBeRoot and mayContainRootCandidates flags (#2376)

-   Ticket: [ENG-6436]
-   Feature flag: n/a

## Purpose
- Add logic to prevent users from selecting or navigating into an inappropriate item when selecting a root folder

## Summary of Changes
- Add `canBeRoot` and `mayContainRootCandidates` flags to addon-operation-invocation item-results
- Use these flags to control whether a user can navigate into that item (`mayContainRootCandidates`), or select an item as a root folder (`canBeRoot`)
- Relevant GV PR CenterForOpenScience/gravyvalet#139

* Fix imports to make files show up on addons (#2378)

* [ENG-6345] Prevent users from using unauthorized accounts to make a configured-addon (#2380)

-   Ticket: [ENG-6345]
-   Feature flag: n/a

## Purpose
- Prevent users from creating a new unauthorized account and then selecting it later as an "Existing account"
- Send users to the "Connect acccount" page if a user selects an unauthorized account
  - Fix issues `addon-account-setup` component's reconnect workflow
- Follow-up to this prior PR #2372

## Summary of Changes
- Delete newly created account if the auth workflow hasn't succeeded and the user cancels out of the account creation process
  - Will not delete account if it is a "Reconnect"/Reauthorize workflow (checks if `account` is passed into `addon-account-setup` component
- Miscellaneous whitespace changes

* Fix partial feature support detection (#2385)

-   Ticket: [ENG-6525]
-   Feature flag: n/a

## Purpose
- Fix Terms widget to show partial feature support

## Summary of Changes
- Fix typo in logic to detect partial feature detection

* [ENG-6312][ENG-6315] Move copy (#2397)

* [ENG-6587] ownCloud setup (#2410)

-   Ticket: [ENG-6587]
-   Feature flag: n/a

## Purpose
- Allow users to add url when connecting an ownCloud account

## Summary of Changes
- Update logic for when to show URL input box
- Remove unused credentials format
- Update language to make URL input more generic and less bound to ownCloud

* [ENG-6538] Require root folder to be selected when configuring addon (#2412)

-   Ticket: [ENG-6538]
-   Feature flag: n/a

# TODO
- [x] Allow `getFolderItems` and `getItemInfo` to be done with the `thruAccount` arg (Right now it only uses the `thruAddon` arg which is for configured-addons)
  - [x] Have the `<AddonsService::FileManager>` be able to use either the `configuredAddon` or the `authorizedAccount` to get files
- [x] Prevent configured-addon creation when a user confirms the authorized-account they want to use
- [x] Save or create the configured-addon when user's click the "Save" button in the `<AddonService::ConfiguredAddonEdit>` component
- [x] Update tests

## Purpose
- Disallow users from saving if there is no root folder selected


## Summary of Changes
- Disable "Save" button if no root folder is selected
- Update default behavior to prevent a `configure-addon` from being created until after all the configuring has finished
- Update tests

* fix ConnectedCapabilities import (#2414)

* [ENG-6630] Fix citation addons (#2424)

* fix citation addons

* add authorizedResource relationship to ConfiguredComputingAddon

* fetch authorized citation accounts upon filter change on user settings page (#2428)

* make sure rootFolder is set (#2430)

* check for whether the provider allows add/update (#2431)

* added response detail to configuration error toast (#2432)

* implement getFolderItems and getItemInfo in configurated-citiation/storage-addon child classes (#2434)

* implement getFolderItems and getItemInfo in configurated-citiation/storage-addon child classes

* fix

* fix again

* fixed provider icons not being displayed (#2435)

* fixed api token field (#2439)

* fix test (#2440)

* [ENG-6424][ENG-6425] Enforce max length for displayName inputs (#2441)

* enforece max length on displayName inputs

* stop long name overflow

* white space normal on item names (#2442)

* [ENG-6744] FE: Contributors can "configure" others' addons (#2438)

* fixed configure button displayed when user won't be able to configure addon, fixed user and resource reference reuest swarm

* reverted removal of accountOwner

* added isOwned to some failing tests

* fixed tests

* fixed connect button not appearing if not admin

* removed pencil for admin while viewing addon configured by other user

* fixed addon edit tests

* [ENG-6633] |  fixed display name on page load error (#2443)

* - ENG-6633 fixed display name on page load error

* - ENG-6633 fixed display name on page load error

* - ENG-6633 fixed display name on page load error

* [ENG-6774] fix computing model / service names (and some citations, too!) (#2437)

* tidy up citation names

* fix up/clean up computing model names

* set default capabilities for computing

* fix key typo in en-us translations

* don't show root folder selector for computing addons

 * Add hasRootFolder getter to detect if root folder selector should
   be shown.

 * Rename `selectedAccount` to `authorizedAccount` to match the
   invocation syntax.

* better save disable checking

 * Responding to code review, improve disableSaveButton check

 * Responding to code review, {{#if}} around the entire FileManager

* don't show root folder for configured compute addons

* fixed back button behaviour (#2446)

* use render modifiers to invoke getRootFolderName task; add tracked property to model (#2451)

* [ENG-6615] FE: Connect button should be disabled if required fields are empty (#2445)

* fixed connect button to be disabled when not all fields are present

* fixed redundant @value

* fixed inputType for dataverse

* - ENG-6824 fixed blank screen Back button error (#2453)

* add draft/published suffix to displayName (#2452)

* add apibaseurloptions (#2459)

* fixed loading other providers durong copy/move with gv enabled (#2464)

* [ENG-6879] Disable cloud computing filter for addons (#2463)

* disable cloud computing filter for addons

* fix tests

* fix another test

* [ENG-6848] Fix folder icon (#2462)

* fix folder icon

* filter items

---------

Co-authored-by: futa-ikeda <51409893+futa-ikeda@users.noreply.github.com>
Co-authored-by: Brian J. Geiger <bgeiger@cos.io>
Co-authored-by: Brian J. Geiger <bgeiger@pobox.com>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
Co-authored-by: abram axel booth <boothaa@gmail.com>
Co-authored-by: Futa Ikeda <futa.ikeda@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>
Co-authored-by: Fitz Elliott <fitz@cos.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants