├── .editorconfig ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── config.yml │ └── new_issue.md ├── dependabot.yml └── workflows │ ├── acceptance-tests.yml │ ├── cleanup-old-deployments.js │ ├── cleanup-old-deployments.yml │ ├── github-project.yml │ ├── prepare-release.yml │ └── test-and-ci.yml ├── .gitignore ├── .husky └── pre-commit ├── CHANGELOG.md ├── CODING_GUIDELINES.md ├── LICENSE ├── README.md ├── chartpress.yaml ├── client ├── .dockerignore ├── .eslintignore ├── .eslintrc.json ├── .prettierignore ├── .rtk │ ├── README.md │ ├── emptyTemplate.ts │ └── openapi-config.ts ├── .storybook │ ├── main.ts │ ├── manager.ts │ └── preview.tsx ├── Dockerfile ├── README.md ├── docker-entrypoint.sh ├── index.html ├── nginx.vh.default.conf ├── package-lock.json ├── package.json ├── public │ ├── ads.txt │ ├── android-chrome-128x128.png │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── apple-touch-icon-180x180.png │ ├── clock-rotate-left-icon.svg │ ├── connect.svg │ ├── connectGreen.svg │ ├── dashboardHeader1080x280.png │ ├── dashboardHeader1920x280.png │ ├── dashboardHeader2560x280.png │ ├── dashboardHeader3840x280.png │ ├── dashboardHeader640x200.png │ ├── dashboardHeader750x200.png │ ├── dashboardV2header.png │ ├── dataset-icon.png │ ├── dataset-icon.svg │ ├── earlyAccessDark.png │ ├── earlyAccessDark.svg │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-48x48.png │ ├── favicon-maskable.svg │ ├── favicon.ico │ ├── favicon.svg │ ├── manifest.json │ ├── project-icon.png │ ├── project-icon.svg │ ├── renku-badge.svg │ ├── safari-pinned-tab.svg │ ├── static │ │ └── public │ │ │ ├── img │ │ │ ├── 404@0.25x.png │ │ │ ├── 404@0.5x.png │ │ │ ├── 404@0.75x.png │ │ │ ├── earlyAccessDark.png │ │ │ ├── earlyAccessDark.svg │ │ │ ├── earlyAccessLight.svg │ │ │ ├── logo-yellow.svg │ │ │ ├── logo.svg │ │ │ ├── redirect │ │ │ │ └── frog │ │ │ │ │ ├── Large_1.png │ │ │ │ │ ├── Large_2.png │ │ │ │ │ ├── Large_3.png │ │ │ │ │ ├── Large_4.png │ │ │ │ │ ├── Large_5.png │ │ │ │ │ ├── Small_1.png │ │ │ │ │ ├── Small_2.png │ │ │ │ │ ├── Small_3.png │ │ │ │ │ ├── Small_4.png │ │ │ │ │ ├── Small_5.png │ │ │ │ │ ├── X-Large_1.png │ │ │ │ │ ├── X-Large_2.png │ │ │ │ │ ├── X-Large_3.png │ │ │ │ │ ├── X-Large_4.png │ │ │ │ │ ├── X-Large_5.png │ │ │ │ │ ├── X-Small_1.png │ │ │ │ │ ├── X-Small_2.png │ │ │ │ │ ├── X-Small_3.png │ │ │ │ │ ├── X-Small_4.png │ │ │ │ │ └── X-Small_5.png │ │ │ ├── renku2.0Logo.svg │ │ │ └── renku2.0LogoDark.svg │ │ │ └── theme.css │ └── stockimages │ │ ├── Zurich.jpg │ │ ├── dataset1.svg │ │ ├── dataset2.svg │ │ ├── dataset3.png │ │ └── templatePlaceholder.svg ├── run-telepresence.sh ├── scripts │ ├── generate_sitemap.sh │ └── update_api_spec.js ├── src │ ├── App.css │ ├── App.jsx │ ├── api-client │ │ ├── dataset.js │ │ ├── errors.js │ │ ├── graph.js │ │ ├── index.js │ │ ├── instance.js │ │ ├── job.js │ │ ├── notebook-servers.js │ │ ├── pagination.js │ │ ├── pipeline.js │ │ ├── project.js │ │ ├── repository.js │ │ ├── templates.js │ │ ├── test-client.js │ │ ├── test-samples │ │ │ ├── index.js │ │ │ ├── namespaces.js │ │ │ ├── project-samples.js │ │ │ ├── statuspage.js │ │ │ └── user.js │ │ ├── user.js │ │ └── utils.js │ ├── authentication │ │ ├── Authentication.container.js │ │ ├── Authentication.test.js │ │ ├── index.js │ │ └── useLoginUrl.hook.ts │ ├── components │ │ ├── Alert.constants.ts │ │ ├── Alert.jsx │ │ ├── ExternalLinks.tsx │ │ ├── FieldGroups.tsx │ │ ├── FileExplorer.tsx │ │ ├── InformativeIcon.tsx │ │ ├── LinkWithTooltip.tsx │ │ ├── List.jsx │ │ ├── Loader.module.scss │ │ ├── Loader.tsx │ │ ├── Logs.module.scss │ │ ├── Logs.tsx │ │ ├── LogsV2.tsx │ │ ├── MoreInfo.tsx │ │ ├── PageLoader.tsx │ │ ├── PageNav.tsx │ │ ├── Pagination.tsx │ │ ├── PaginationLegacy.tsx │ │ ├── PrimaryAlert.module.scss │ │ ├── PrimaryAlert.tsx │ │ ├── RenkuNavLinkV2.tsx │ │ ├── SelectAutosuggestInput.jsx │ │ ├── TimeCaption.tsx │ │ ├── Tree.tsx │ │ ├── addDatasetButtons │ │ │ └── AddDatasetButtons.tsx │ │ ├── buttons │ │ │ ├── Button.tsx │ │ │ └── Buttons.module.scss │ │ ├── clamped │ │ │ └── ClampedParagraph.tsx │ │ ├── clipboard │ │ │ └── Clipboard.tsx │ │ ├── commandCopy │ │ │ ├── CommandCopy.module.scss │ │ │ └── CommandCopy.tsx │ │ ├── commitSelector │ │ │ ├── CommitSelector.scss │ │ │ └── CommitSelector.tsx │ │ ├── commits │ │ │ ├── Commits.css │ │ │ └── Commits.jsx │ │ ├── container │ │ │ └── ContainerWrap.tsx │ │ ├── dateFilter │ │ │ └── DateFilter.tsx │ │ ├── entities │ │ │ ├── Buttons.tsx │ │ │ ├── Children.tsx │ │ │ ├── Creators.tsx │ │ │ ├── Description.tsx │ │ │ ├── Duration.tsx │ │ │ ├── Entities.css │ │ │ ├── Executions.tsx │ │ │ ├── Label.tsx │ │ │ ├── LinkedEntitiesByItemType.tsx │ │ │ ├── Slug.tsx │ │ │ ├── Tags.tsx │ │ │ ├── VisibilityIcon.tsx │ │ │ └── entities.types.ts │ │ ├── entityHeader │ │ │ ├── EntityHeader.scss │ │ │ └── EntityHeader.tsx │ │ ├── entitySearchFilter │ │ │ ├── EntitySearchFilter.css │ │ │ └── EntitySearchFilter.tsx │ │ ├── entityWatermark │ │ │ ├── EntityWatermark.tsx │ │ │ └── entityWatermark.module.scss │ │ ├── errors │ │ │ ├── CoreErrorAlert.jsx │ │ │ ├── CoreErrorHelpers.js │ │ │ └── RtkErrorAlert.tsx │ │ ├── form-field │ │ │ ├── CkEditor.jsx │ │ │ ├── CreatorsInput.tsx │ │ │ ├── DropzoneFileUploader.jsx │ │ │ ├── FileUploaderInput.tsx │ │ │ ├── FormGeneratorImageInput.jsx │ │ │ ├── FormLabel.tsx │ │ │ ├── HelpText.tsx │ │ │ ├── ImageInput.tsx │ │ │ ├── KeywordsInput.tsx │ │ │ ├── LazyCkEditor.tsx │ │ │ ├── TextAreaInput.tsx │ │ │ ├── TextInput.tsx │ │ │ ├── form-field.types.ts │ │ │ └── stockimages │ │ │ │ └── index.js │ │ ├── formlabels │ │ │ ├── FormLabels.css │ │ │ └── FormLabels.tsx │ │ ├── formschema │ │ │ ├── FormSchema.css │ │ │ └── FormSchema.tsx │ │ ├── icons │ │ │ ├── BootstrapCopyIcon.tsx │ │ │ ├── BootstrapGitLabIcon.tsx │ │ │ ├── ChevronFlippedIcon.module.scss │ │ │ ├── ChevronFlippedIcon.tsx │ │ │ ├── CrosshairIcon.tsx │ │ │ ├── EnvironmentIcon.tsx │ │ │ ├── JupyterIcon.tsx │ │ │ ├── RenkuIcon.tsx │ │ │ ├── SearchEntityIcon.tsx │ │ │ └── SessionPausedIcon.tsx │ │ ├── imageEditor │ │ │ └── ImageEditor.tsx │ │ ├── inlineSubmitImageInput │ │ │ └── InlineSubmitImageInput.tsx │ │ ├── inlineSubmitInput │ │ │ └── InlineSubmitInput.tsx │ │ ├── kgStatus │ │ │ └── KgStatus.tsx │ │ ├── list │ │ │ ├── EntityCardSkeleton.module.scss │ │ │ ├── EntityCardSkeleton.tsx │ │ │ ├── ListBar.scss │ │ │ ├── ListBar.tsx │ │ │ ├── ListBarSessions.tsx │ │ │ ├── ListCard.css │ │ │ ├── ListCard.tsx │ │ │ ├── PinnedBadge.tsx │ │ │ └── list.types.tsx │ │ ├── loginAlert │ │ │ └── LoginAlert.tsx │ │ ├── markdown │ │ │ ├── LazyMarkdownTextExcerpt.tsx │ │ │ ├── LazyRenkuMarkdown.tsx │ │ │ ├── RenkuMarkdown.jsx │ │ │ ├── RenkuMarkdownWithPathTranslation.tsx │ │ │ └── utils.tsx │ │ ├── modal │ │ │ ├── ModalHeader.tsx │ │ │ ├── ScrollableModal.module.scss │ │ │ └── ScrollableModal.tsx │ │ ├── navbar │ │ │ ├── AnnounceV2Banner.tsx │ │ │ ├── AnonymousNavBar.tsx │ │ │ ├── Graphics │ │ │ │ └── AnnounceV2.svg │ │ │ ├── LoggedInNavBar.tsx │ │ │ ├── NavBarItem.module.scss │ │ │ ├── NavBarItems.tsx │ │ │ └── navbar.constants.ts │ │ ├── notebook │ │ │ ├── LazyNotebookRender.tsx │ │ │ ├── NotebookRender.tsx │ │ │ └── modules.d.ts │ │ ├── progress │ │ │ ├── Progress.css │ │ │ ├── Progress.tsx │ │ │ └── ProgressSteps.tsx │ │ ├── quicknav │ │ │ ├── QuickNav.container.jsx │ │ │ ├── QuickNav.present.jsx │ │ │ ├── QuickNav.style.css │ │ │ └── index.js │ │ ├── searchResultsContent │ │ │ └── SearchResultsContent.tsx │ │ ├── searchResultsHeader │ │ │ └── SearchResultsHeader.tsx │ │ ├── shareLinkSession │ │ │ └── ShareLinkSession.tsx │ │ ├── sortingEntities │ │ │ ├── SortingEntities.css │ │ │ └── SortingEntities.tsx │ │ ├── ssh │ │ │ └── ssh.tsx │ │ ├── templateSelector │ │ │ ├── TemplateSelector.module.scss │ │ │ └── TemplateSelector.tsx │ │ ├── typeEntityFilter │ │ │ ├── TypeEntityFilter.css │ │ │ └── TypeEntityFilter.tsx │ │ ├── userRolesFilter │ │ │ ├── UserRolesFilter.tsx │ │ │ ├── userRoles.utils.ts │ │ │ └── userRolesFilter.types.ts │ │ ├── visibility │ │ │ ├── Visibility.css │ │ │ └── Visibility.tsx │ │ └── visibilityFilter │ │ │ ├── VisibilityFilter.css │ │ │ └── VisibilityFilter.tsx │ ├── dataset │ │ ├── Dataset.container.jsx │ │ ├── Dataset.present.jsx │ │ ├── Dataset.state.js │ │ ├── DatasetError.jsx │ │ ├── DatasetFunctions.js │ │ ├── Datasets.test.js │ │ ├── LazyShowDataset.tsx │ │ ├── addtoproject │ │ │ ├── DatasetAdd.present.tsx │ │ │ ├── DatasetAdd.types.ts │ │ │ ├── DatasetAddToExistingProject.tsx │ │ │ ├── DatasetAddToNewProject.tsx │ │ │ ├── DatasetAddToProject.tsx │ │ │ ├── DatasetAddToProjectStatus.tsx │ │ │ └── LazyDatasetAddToProject.tsx │ │ └── index.js │ ├── error-boundary │ │ └── ErrorBoundary.tsx │ ├── features │ │ ├── ProjectPageV2 │ │ │ ├── LazyProjectPageV2Show.tsx │ │ │ ├── ProjectPageContainer │ │ │ │ └── ProjectPageContainer.tsx │ │ │ ├── ProjectPageContent │ │ │ │ ├── CodeRepositories │ │ │ │ │ ├── AddCodeRepositoryModal.tsx │ │ │ │ │ ├── CodeRepositoryDisplay.tsx │ │ │ │ │ ├── RepositoriesBox.tsx │ │ │ │ │ ├── repositories.utils.test.ts │ │ │ │ │ └── repositories.utils.ts │ │ │ │ ├── DataConnectors │ │ │ │ │ ├── ProjectConnectDataConnectorsModal.tsx │ │ │ │ │ └── ProjectDataConnectorsBox.tsx │ │ │ │ ├── Documentation │ │ │ │ │ ├── Documentation.tsx │ │ │ │ │ └── DocumentationInput.tsx │ │ │ │ ├── LazyProjectPageOverview.tsx │ │ │ │ ├── LazyProjectPageSettings.tsx │ │ │ │ ├── ProjectInformation │ │ │ │ │ ├── ProjectInformation.module.scss │ │ │ │ │ ├── ProjectInformation.tsx │ │ │ │ │ └── ProjectInformationButton.tsx │ │ │ │ ├── ProjectOverviewPage.tsx │ │ │ │ ├── SessionSecrets │ │ │ │ │ ├── AddSessionSecretButton.tsx │ │ │ │ │ ├── ProjectSessionSecrets.tsx │ │ │ │ │ ├── ProvideSessionSecretModalContent.tsx │ │ │ │ │ ├── SecretsMountDirectoryComponent.tsx │ │ │ │ │ ├── SessionSecretActions.tsx │ │ │ │ │ ├── SessionSecretSlotItem.tsx │ │ │ │ │ ├── SessionViewSessionSecrets.tsx │ │ │ │ │ ├── fields │ │ │ │ │ │ ├── DescriptionField.tsx │ │ │ │ │ │ ├── FilenameField.tsx │ │ │ │ │ │ ├── NameField.tsx │ │ │ │ │ │ ├── SelectUserSecretField.module.scss │ │ │ │ │ │ ├── SelectUserSecretField.tsx │ │ │ │ │ │ └── fields.types.ts │ │ │ │ │ ├── sessionSecrets.constants.ts │ │ │ │ │ ├── sessionSecrets.types.ts │ │ │ │ │ └── sessionSecrets.utils.ts │ │ │ │ └── Settings │ │ │ │ │ ├── ProjectDelete.tsx │ │ │ │ │ ├── ProjectSettings.tsx │ │ │ │ │ ├── ProjectSettingsMembers.tsx │ │ │ │ │ └── ProjectUnlinkTemplate.tsx │ │ │ ├── ProjectPageHeader │ │ │ │ ├── ProjectCopyBanner.tsx │ │ │ │ ├── ProjectCopyButton.tsx │ │ │ │ ├── ProjectCopyModal.tsx │ │ │ │ ├── ProjectPageHeader.tsx │ │ │ │ ├── ProjectTemplateInfoBanner.module.css │ │ │ │ └── ProjectTemplateInfoBanner.tsx │ │ │ ├── ProjectPageNav │ │ │ │ ├── ProjectPageNav.module.scss │ │ │ │ └── ProjectPageNav.tsx │ │ │ ├── settings │ │ │ │ ├── ProjectDeleteConfirmation.tsx │ │ │ │ └── projectSettings.types.ts │ │ │ └── utils │ │ │ │ ├── roleUtils.test.ts │ │ │ │ ├── roleUtils.ts │ │ │ │ └── useProjectPermissions.hook.ts │ │ ├── admin │ │ │ ├── AddConnectedServiceButton.tsx │ │ │ ├── AddManyUsersToResourcePoolButton.module.scss │ │ │ ├── AddManyUsersToResourcePoolButton.tsx │ │ │ ├── AddResourceClassButton.tsx │ │ │ ├── AddResourcePoolButton.tsx │ │ │ ├── AddSessionEnvironmentButton.tsx │ │ │ ├── AddUserToResourcePoolButton.tsx │ │ │ ├── AdminPage.tsx │ │ │ ├── ConnectedServiceFormContent.tsx │ │ │ ├── ConnectedServicesSection.tsx │ │ │ ├── DeleteConnectedServiceButton.tsx │ │ │ ├── DeleteResourceClassButton.tsx │ │ │ ├── DeleteSessionEnvironmentButton.tsx │ │ │ ├── IncidentsAndMaintenanceSection.tsx │ │ │ ├── LazyAdminPage.tsx │ │ │ ├── SessionEnvironmentAdvancedFields.tsx │ │ │ ├── SessionEnvironmentFormContent.tsx │ │ │ ├── SessionEnvironmentsSection.tsx │ │ │ ├── UpdateConnectedServiceButton.tsx │ │ │ ├── UpdateResourceClassButton.module.scss │ │ │ ├── UpdateResourceClassButton.tsx │ │ │ ├── UpdateResourcePoolQuotaButton.tsx │ │ │ ├── UpdateResourcePoolThresholdsButton.tsx │ │ │ ├── UpdateSessionEnvironmentButton.tsx │ │ │ ├── adminComputeResources.types.ts │ │ │ ├── adminKeycloak.api.ts │ │ │ ├── adminKeycloak.types.ts │ │ │ ├── adminSessions.api.ts │ │ │ ├── adminSessions.types.ts │ │ │ ├── adminSessions.utils.ts │ │ │ └── useKeycloakRealm.hook.ts │ │ ├── connectedServices │ │ │ ├── ConnectedServicesPage.tsx │ │ │ ├── ContactUsCard.module.scss │ │ │ ├── ContactUsCard.tsx │ │ │ ├── LazyConnectedServicesPage.tsx │ │ │ ├── api │ │ │ │ ├── connectedServices.api-config.ts │ │ │ │ ├── connectedServices.api.ts │ │ │ │ ├── connectedServices.empty-api.ts │ │ │ │ ├── connectedServices.generated-api.ts │ │ │ │ ├── connectedServices.openapi.json │ │ │ │ └── connectedServices.types.ts │ │ │ └── connectedServices.constants.ts │ │ ├── dashboard │ │ │ ├── Dashboard.scss │ │ │ ├── Dashboard.tsx │ │ │ ├── LazyDashboard.tsx │ │ │ ├── components │ │ │ │ ├── DashboardMessage.module.scss │ │ │ │ ├── DashboardMessage.tsx │ │ │ │ ├── DatasetsDashboard.tsx │ │ │ │ ├── InactiveKgProjects.tsx │ │ │ │ └── ProjectsDashboard.tsx │ │ │ └── message │ │ │ │ ├── DashboardMessage.types.ts │ │ │ │ └── dashboardMessageSlice.ts │ │ ├── dashboardV2 │ │ │ ├── DashboardV2.module.scss │ │ │ ├── DashboardV2.tsx │ │ │ ├── DashboardV2Sessions.module.scss │ │ │ ├── DashboardV2Sessions.tsx │ │ │ ├── HelpV2.tsx │ │ │ ├── LazyDashboardV2.tsx │ │ │ └── LazyHelpV2.tsx │ │ ├── dataConnectorsV2 │ │ │ ├── api │ │ │ │ ├── data-connectors.api-config.ts │ │ │ │ ├── data-connectors.api.ts │ │ │ │ ├── data-connectors.empty-api.ts │ │ │ │ ├── data-connectors.enhanced-api.ts │ │ │ │ ├── data-connectors.openapi.json │ │ │ │ ├── doiResolver.api-config.ts │ │ │ │ ├── doiResolver.api.ts │ │ │ │ ├── doiResolver.empty-api.ts │ │ │ │ ├── doiResolver.generated-api.ts │ │ │ │ └── doiResolver.openapi.json │ │ │ ├── components │ │ │ │ ├── DataConnectorActions.tsx │ │ │ │ ├── DataConnectorCredentialsModal.tsx │ │ │ │ ├── DataConnectorModal │ │ │ │ │ ├── DataConnectorModal.module.scss │ │ │ │ │ ├── DataConnectorModalBody.tsx │ │ │ │ │ ├── DataConnectorModalFooter.tsx │ │ │ │ │ ├── DataConnectorModalResult.tsx │ │ │ │ │ ├── DataConnectorSaveCredentialsInfo.tsx │ │ │ │ │ ├── dataConnectorModalButtons.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── DataConnectorView.tsx │ │ │ │ ├── DataConnectorsBox.tsx │ │ │ │ ├── DataConnectorsBoxListDisplay.tsx │ │ │ │ ├── dataConnector.constants.ts │ │ │ │ ├── dataConnector.utils.ts │ │ │ │ ├── useDataConnectorConfiguration.hook.ts │ │ │ │ └── useDataConnectorProjects.hook.ts │ │ │ ├── dataConnectors.types.ts │ │ │ ├── state │ │ │ │ └── dataConnectors.slice.ts │ │ │ └── utils │ │ │ │ └── useDataConnectorPermissions.hook.ts │ │ ├── dataServices │ │ │ ├── computeResources.api.ts │ │ │ └── dataServices.types.ts │ │ ├── datasets │ │ │ ├── datasets.types.ts │ │ │ └── datasetsCore.api.ts │ │ ├── display │ │ │ ├── display.types.ts │ │ │ ├── displaySlice.ts │ │ │ └── index.ts │ │ ├── favicon │ │ │ └── Favicon.tsx │ │ ├── groupsV2 │ │ │ ├── LazyGroupContainer.tsx │ │ │ ├── LazyGroupV2Overview.tsx │ │ │ ├── LazyGroupV2Settings.tsx │ │ │ ├── fields │ │ │ │ ├── AddGroupMemberModal.tsx │ │ │ │ ├── EditGroupMemberModal.tsx │ │ │ │ └── RemoveGroupMemberModal.tsx │ │ │ ├── members │ │ │ │ └── GroupV2MemberListDisplay.tsx │ │ │ ├── new │ │ │ │ ├── CreateGroupButton.tsx │ │ │ │ ├── GroupNew.tsx │ │ │ │ └── createGroup.constants.ts │ │ │ ├── settings │ │ │ │ ├── GroupSettingsMembers.tsx │ │ │ │ ├── GroupSettingsMetadata.tsx │ │ │ │ └── GroupV2Settings.tsx │ │ │ ├── show │ │ │ │ ├── GroupPageContainer.tsx │ │ │ │ ├── GroupV2Information.tsx │ │ │ │ └── GroupV2Show.tsx │ │ │ └── utils │ │ │ │ └── useGroupPermissions.hook.ts │ │ ├── inactiveKgProjects │ │ │ ├── InactiveKgProjects.tsx │ │ │ ├── InactiveKgProjectsApi.ts │ │ │ ├── LazyInactiveKGProjectsPage.tsx │ │ │ ├── components │ │ │ │ ├── ActivationProgress.tsx │ │ │ │ └── KgActivationHeader.tsx │ │ │ ├── inactiveKgProjects.css │ │ │ ├── inactiveKgProjects.types.ts │ │ │ ├── inactiveKgProjects.utils.ts │ │ │ ├── inactiveKgProjectsSlice.ts │ │ │ └── index.ts │ │ ├── kgSearch │ │ │ ├── KgSearch.types.ts │ │ │ ├── KgSearchApi.ts │ │ │ ├── KgSearchContext.tsx │ │ │ ├── KgSearchPage.tsx │ │ │ ├── KgSearchState.ts │ │ │ ├── LazySearchPage.tsx │ │ │ └── index.ts │ │ ├── landing │ │ │ ├── AnonymousHome.tsx │ │ │ ├── LazyAnonymousHome.tsx │ │ │ ├── anonymousHome.types.ts │ │ │ ├── assets │ │ │ │ ├── EPFL.svg │ │ │ │ ├── ETH.svg │ │ │ │ ├── SDSC.svg │ │ │ │ ├── Visual_Head.svg │ │ │ │ ├── boxes.svg │ │ │ │ ├── btnJupyter.png │ │ │ │ ├── btnJupyterSelected.png │ │ │ │ ├── btnR.png │ │ │ │ ├── btnRSelected.png │ │ │ │ ├── btnVS.png │ │ │ │ ├── btnVSSelected.png │ │ │ │ ├── communityIcon.svg │ │ │ │ ├── computing.svg │ │ │ │ ├── connectIcon.svg │ │ │ │ ├── dividerDots.svg │ │ │ │ ├── educatorIcon.svg │ │ │ │ ├── getStarted.svg │ │ │ │ ├── heroBoxes.svg │ │ │ │ ├── individualsIcon.svg │ │ │ │ ├── logo-black.svg │ │ │ │ ├── logo-symbol.svg │ │ │ │ ├── network.svg │ │ │ │ ├── organizerIcon.svg │ │ │ │ ├── puzzleIcon.svg │ │ │ │ ├── renkuBlack.svg │ │ │ │ ├── renkuColor.svg │ │ │ │ ├── research.png │ │ │ │ ├── researcherIcon.svg │ │ │ │ ├── teamsIcon.svg │ │ │ │ ├── templateJupyter.png │ │ │ │ ├── templateR.png │ │ │ │ └── templateVS.png │ │ │ ├── components │ │ │ │ ├── AdminDropdownItem.tsx │ │ │ │ ├── Benefits │ │ │ │ │ ├── Benefits.module.scss │ │ │ │ │ └── Benefits.tsx │ │ │ │ ├── Dividier │ │ │ │ │ ├── Divider.module.css │ │ │ │ │ └── Divider.tsx │ │ │ │ ├── GetStarted │ │ │ │ │ ├── GetStarted.module.scss │ │ │ │ │ └── GetStarted.tsx │ │ │ │ ├── HeroLanding │ │ │ │ │ └── HeroLanding.tsx │ │ │ │ ├── Introduction │ │ │ │ │ ├── Introduction.module.scss │ │ │ │ │ └── Introduction.tsx │ │ │ │ ├── NavBar │ │ │ │ │ ├── NavBar.css │ │ │ │ │ ├── NavBar.jsx │ │ │ │ │ └── NavBarWarnings.jsx │ │ │ │ ├── RenkuUsers │ │ │ │ │ └── RenkuUsers.tsx │ │ │ │ ├── ResourcesSupport │ │ │ │ │ ├── Resources.module.scss │ │ │ │ │ └── ResourcesAndSupport.tsx │ │ │ │ ├── TemplateSlider │ │ │ │ │ ├── TemplateSlider.module.scss │ │ │ │ │ └── TemplateSlider.tsx │ │ │ │ ├── WhatIsRenku │ │ │ │ │ └── WhatIsRenku.tsx │ │ │ │ ├── WhoWeAre │ │ │ │ │ ├── WhoWeAre.module.scss │ │ │ │ │ └── WhoWeAre.tsx │ │ │ │ └── anonymousHomeNav.tsx │ │ │ └── hooks │ │ │ │ └── useCustomHomePageProjectUrl.hook.ts │ │ ├── maintenance │ │ │ └── Maintenance.tsx │ │ ├── permissionsV2 │ │ │ ├── PermissionsGuard.tsx │ │ │ ├── permissions.constants.ts │ │ │ └── permissions.types.ts │ │ ├── platform │ │ │ ├── api │ │ │ │ ├── platform-empty.api.ts │ │ │ │ ├── platform.api-config.ts │ │ │ │ ├── platform.api.ts │ │ │ │ ├── platform.generated-api.ts │ │ │ │ └── platform.openapi.json │ │ │ ├── components │ │ │ │ ├── StatusBanner.tsx │ │ │ │ ├── StatusPageIncidentUpdates.tsx │ │ │ │ └── StatusSummary.tsx │ │ │ └── statuspage-api │ │ │ │ ├── statuspage-empty.api.ts │ │ │ │ ├── statuspage.api.ts │ │ │ │ └── statuspage.types.ts │ │ ├── project │ │ │ ├── GitLab.constants.ts │ │ │ ├── GitLab.types.ts │ │ │ ├── components │ │ │ │ ├── File.tsx │ │ │ │ ├── ProjectEntityHeader.tsx │ │ │ │ ├── ProjectPageTitle.tsx │ │ │ │ ├── ProjectSettingAvatar.tsx │ │ │ │ ├── ProjectSettings.tsx │ │ │ │ ├── ProjectSettingsCloudStorage.tsx │ │ │ │ ├── ProjectSettingsDescription.tsx │ │ │ │ ├── ProjectSettingsGeneral.tsx │ │ │ │ ├── ProjectSettingsGeneralDeleteProject.tsx │ │ │ │ ├── ProjectSettingsSessions.module.scss │ │ │ │ ├── ProjectSettingsSessions.tsx │ │ │ │ ├── ProjectSettingsUtils.tsx │ │ │ │ ├── ProjectWarningForMerge.tsx │ │ │ │ ├── cloudStorage │ │ │ │ │ ├── AddOrEditCloudStorage.tsx │ │ │ │ │ ├── AddOrEditCloudStorageButton.tsx │ │ │ │ │ ├── AddStorageBreadcrumbNavbar.tsx │ │ │ │ │ ├── AddStorageMountSaveCredentialsInfo.tsx │ │ │ │ │ ├── CloudStorage.module.scss │ │ │ │ │ ├── CloudStorageItem.tsx │ │ │ │ │ ├── CloudStorageModal.tsx │ │ │ │ │ ├── api │ │ │ │ │ │ ├── projectCloudStorage.api-config.ts │ │ │ │ │ │ ├── projectCloudStorage.api.ts │ │ │ │ │ │ ├── projectCloudStorage.empty-api.ts │ │ │ │ │ │ ├── projectCloudStorage.generated-api.ts │ │ │ │ │ │ └── projectCloudStorage.openapi.json │ │ │ │ │ ├── cloudStorageModalComponents.tsx │ │ │ │ │ ├── projectCloudStorage.constants.ts │ │ │ │ │ └── projectCloudStorage.types.ts │ │ │ │ ├── migrations │ │ │ │ │ ├── MigrationHelpers.tsx │ │ │ │ │ ├── ProjectCoreMigrations.tsx │ │ │ │ │ ├── ProjectKgStatus.tsx │ │ │ │ │ ├── ProjectStatusIcon.tsx │ │ │ │ │ └── migrations.module.scss │ │ │ │ └── projectMigration │ │ │ │ │ ├── MigrationV1Modal.tsx │ │ │ │ │ ├── ProjectEntityMigration.tsx │ │ │ │ │ ├── ProjectMigration.types.ts │ │ │ │ │ ├── ProjectMigrationAlert.tsx │ │ │ │ │ ├── ProjectMigrationDetails.tsx │ │ │ │ │ ├── ProjectMigrationFooter.tsx │ │ │ │ │ ├── ProjectMigrationForm.tsx │ │ │ │ │ ├── ProjectMigrationFormInputs.tsx │ │ │ │ │ └── hooks │ │ │ │ │ └── useMigrationForm.ts │ │ │ ├── dataset │ │ │ │ ├── DatasetModify.tsx │ │ │ │ ├── ProjectDatasetImport.tsx │ │ │ │ ├── ProjectDatasetNewEdit.tsx │ │ │ │ ├── ProjectDatasetShow.tsx │ │ │ │ ├── ProjectDatasetsListView.tsx │ │ │ │ ├── ProjectDatasetsView.tsx │ │ │ │ ├── dataset.types.ts │ │ │ │ ├── datasetCore.api.ts │ │ │ │ ├── datasetForm.slice.ts │ │ │ │ └── index.ts │ │ │ ├── hook │ │ │ │ └── useGetSessionLauncherData.ts │ │ │ ├── index.ts │ │ │ ├── project.types.ts │ │ │ ├── projectCoreApi.ts │ │ │ ├── projectEnums.ts │ │ │ ├── projectGitLab.api.ts │ │ │ ├── projectKg.api.ts │ │ │ ├── projectKg.types.ts │ │ │ ├── tests │ │ │ │ ├── ProjectSettings.testData.json │ │ │ │ └── migrations.test.ts │ │ │ ├── useProjectCoreSupport.ts │ │ │ └── utils │ │ │ │ ├── migrations.ts │ │ │ │ ├── projectCloudStorage.utils.test.ts │ │ │ │ └── projectCloudStorage.utils.ts │ │ ├── projectMigrationV2 │ │ │ ├── GitlabProjectList.tsx │ │ │ ├── MigrationV2Modal.tsx │ │ │ ├── ProjectMigration.types.ts │ │ │ └── ProjectMigrationBanner.tsx │ │ ├── projects │ │ │ ├── projects.api.ts │ │ │ └── projects.types.ts │ │ ├── projectsV2 │ │ │ ├── LazyProjectV2ShowByProjectId.tsx │ │ │ ├── api │ │ │ │ ├── namespace.api-config.ts │ │ │ │ ├── namespace.api.ts │ │ │ │ ├── namespace.openapi.json │ │ │ │ ├── projectV2-empty.api.ts │ │ │ │ ├── projectV2.api-config.ts │ │ │ │ ├── projectV2.api.ts │ │ │ │ ├── projectV2.enhanced-api.ts │ │ │ │ └── projectV2.openapi.json │ │ │ ├── fields │ │ │ │ ├── AddProjectMemberModal.tsx │ │ │ │ ├── DescriptionFormField.tsx │ │ │ │ ├── EditProjectMemberModal.tsx │ │ │ │ ├── NameFormField.tsx │ │ │ │ ├── ProjectDescriptionFormField.tsx │ │ │ │ ├── ProjectNameFormField.tsx │ │ │ │ ├── ProjectNamespaceFormField.module.scss │ │ │ │ ├── ProjectNamespaceFormField.tsx │ │ │ │ ├── ProjectOwnerSlugFormField.tsx │ │ │ │ ├── ProjectVisibilityFormField.tsx │ │ │ │ ├── RemoveProjectMemberModal.tsx │ │ │ │ ├── RenkuV1FormFields.module.scss │ │ │ │ ├── SecretsMountDirectoryField.tsx │ │ │ │ ├── SlugFormField.tsx │ │ │ │ ├── SlugPreviewFormField.tsx │ │ │ │ ├── UserSelector.tsx │ │ │ │ └── formField.types.ts │ │ │ ├── list │ │ │ │ ├── GroupList.tsx │ │ │ │ └── ProjectV2ListDisplay.tsx │ │ │ ├── new │ │ │ │ ├── CreateProjectV2Button.tsx │ │ │ │ ├── ProjectV2New.tsx │ │ │ │ ├── createProjectV2.constants.ts │ │ │ │ └── projectV2New.types.ts │ │ │ ├── notFound │ │ │ │ ├── GroupNotFound.tsx │ │ │ │ ├── ProjectNotFound.tsx │ │ │ │ └── UserNotFound.tsx │ │ │ ├── projectV2.types.ts │ │ │ ├── shared │ │ │ │ ├── LearnAboutV2Button.tsx │ │ │ │ ├── ProjectMemberDisplay.tsx │ │ │ │ ├── SunsetV1Button.tsx │ │ │ │ ├── WipBadge.module.scss │ │ │ │ └── WipBadge.tsx │ │ │ └── show │ │ │ │ ├── GroupShortHandDisplay.tsx │ │ │ │ ├── ProjectShortHandDisplay.tsx │ │ │ │ ├── ProjectV2ShowByProjectId.tsx │ │ │ │ └── projectV2Show.types.ts │ │ ├── recentUserActivity │ │ │ └── RecentUserActivityApi.ts │ │ ├── repositories │ │ │ ├── repositories.api.ts │ │ │ └── repositories.types.ts │ │ ├── rootV1 │ │ │ ├── LazyRootV1.tsx │ │ │ ├── ProjectRootV1.tsx │ │ │ └── RootV1.tsx │ │ ├── rootV2 │ │ │ ├── LazyRootV2.tsx │ │ │ ├── NavbarV2.tsx │ │ │ └── RootV2.tsx │ │ ├── searchV2 │ │ │ ├── LazySearchV2.tsx │ │ │ ├── SearchV2.tsx │ │ │ ├── api │ │ │ │ ├── search.openapi.json │ │ │ │ ├── searchV2-empty.api.ts │ │ │ │ ├── searchV2.api-config.ts │ │ │ │ ├── searchV2Api.api.ts │ │ │ │ └── searchV2Api.generated-api.ts │ │ │ ├── components │ │ │ │ ├── SearchV2Bar.tsx │ │ │ │ ├── SearchV2DateFilters.tsx │ │ │ │ ├── SearchV2Filters.tsx │ │ │ │ ├── SearchV2Filters.types.ts │ │ │ │ ├── SearchV2Header.tsx │ │ │ │ └── SearchV2Results.tsx │ │ │ ├── hooks │ │ │ │ ├── useClampSearchPage.hook.ts │ │ │ │ └── useSearch.hook.ts │ │ │ ├── searchV2.constants.ts │ │ │ ├── searchV2.slice.ts │ │ │ ├── searchV2.types.ts │ │ │ ├── searchV2.utils.test.ts │ │ │ └── searchV2.utils.ts │ │ ├── secrets │ │ │ ├── GeneralSecretNew.tsx │ │ │ ├── LazySecrets.tsx │ │ │ ├── Secrets.tsx │ │ │ ├── SecretsList.tsx │ │ │ ├── SecretsListItem.tsx │ │ │ └── secrets.constants.ts │ │ ├── secretsV2 │ │ │ ├── DataConnectorSecretItem.tsx │ │ │ ├── GeneralSecretItem.tsx │ │ │ ├── LazySecretsV2.tsx │ │ │ ├── ReplaceSecretValueModal.tsx │ │ │ ├── SecretItemActions.tsx │ │ │ ├── SecretsV2.tsx │ │ │ ├── fields │ │ │ │ ├── FilenameField.tsx │ │ │ │ ├── NameField.tsx │ │ │ │ ├── SecretValueField.tsx │ │ │ │ └── fields.types.ts │ │ │ ├── secrets.utils.ts │ │ │ └── useGetRelatedProjects.hook.ts │ │ ├── session │ │ │ ├── components │ │ │ │ ├── AboutSessionModal.tsx │ │ │ │ ├── AnonymousSessionsDisabledNotice.tsx │ │ │ │ ├── AnonymousSessionsList.tsx │ │ │ │ ├── LazyAnonymousSessionsList.tsx │ │ │ │ ├── PauseOrDeleteSessionModal.tsx │ │ │ │ ├── ProjectSessionsList.tsx │ │ │ │ ├── ProjectSessionsRouter.tsx │ │ │ │ ├── PullSessionModal.tsx │ │ │ │ ├── ResourcesSessionModal.tsx │ │ │ │ ├── SaveSessionModal.tsx │ │ │ │ ├── SessionButton.tsx │ │ │ │ ├── SessionFileButton.tsx │ │ │ │ ├── SessionHibernated.tsx │ │ │ │ ├── SessionJupyter.tsx │ │ │ │ ├── SessionModals.module.scss │ │ │ │ ├── SessionRowCommitInfo.tsx │ │ │ │ ├── SessionSaveWarning.tsx │ │ │ │ ├── SessionUnavailable.tsx │ │ │ │ ├── SessionsList.tsx │ │ │ │ ├── ShowSession.module.scss │ │ │ │ ├── ShowSession.tsx │ │ │ │ ├── SimpleSessionButton.tsx │ │ │ │ ├── StartNewSession.tsx │ │ │ │ ├── StartSessionProgressBar.tsx │ │ │ │ ├── UnsavedWorkWarning.tsx │ │ │ │ ├── options │ │ │ │ │ ├── AutostartSessionOptions.tsx │ │ │ │ │ ├── SessionBranchOption.module.scss │ │ │ │ │ ├── SessionBranchOption.tsx │ │ │ │ │ ├── SessionClassOption.module.scss │ │ │ │ │ ├── SessionClassOption.tsx │ │ │ │ │ ├── SessionCloudStorageOption.tsx │ │ │ │ │ ├── SessionCommitOption.module.scss │ │ │ │ │ ├── SessionCommitOption.tsx │ │ │ │ │ ├── SessionDockerImage.tsx │ │ │ │ │ ├── SessionEnvironmentVariables.tsx │ │ │ │ │ ├── SessionPinnedDockerImage.tsx │ │ │ │ │ ├── SessionProjectDockerImage.md │ │ │ │ │ ├── SessionProjectDockerImage.tsx │ │ │ │ │ ├── SessionStorageOption.module.scss │ │ │ │ │ ├── SessionStorageOption.tsx │ │ │ │ │ ├── SessionUserSecrets.tsx │ │ │ │ │ ├── StartNotebookServerOptions.module.scss │ │ │ │ │ ├── StartNotebookServerOptions.tsx │ │ │ │ │ └── fetchMore.types.ts │ │ │ │ └── status │ │ │ │ │ ├── SessionHibernationStatusDetails.tsx │ │ │ │ │ ├── SessionStatusBadge.tsx │ │ │ │ │ ├── SessionStatusIcon.tsx │ │ │ │ │ └── SessionStatusText.tsx │ │ │ ├── hooks │ │ │ │ └── options │ │ │ │ │ ├── useDefaultAutoFetchLfsOption.hook.ts │ │ │ │ │ ├── useDefaultBranchOption.hook.ts │ │ │ │ │ ├── useDefaultCloudStorageOption.hook.ts │ │ │ │ │ ├── useDefaultCommitOption.hook.ts │ │ │ │ │ ├── useDefaultSessionClassOption.hook.ts │ │ │ │ │ ├── useDefaultStorageOption.hook.ts │ │ │ │ │ └── useDefaultUrlOption.hook.ts │ │ │ ├── sessions.api.ts │ │ │ ├── sessions.api.utils.ts │ │ │ ├── sessions.types.ts │ │ │ ├── sessions.utils.test.ts │ │ │ ├── sessions.utils.ts │ │ │ ├── sidecar.api.ts │ │ │ ├── sidecar.types.ts │ │ │ ├── startSession.slice.ts │ │ │ ├── startSession.types.ts │ │ │ ├── startSessionOptions.constants.ts │ │ │ ├── startSessionOptions.types.ts │ │ │ ├── startSessionOptionsSlice.ts │ │ │ ├── useWaitForSessionStatus.hook.ts │ │ │ └── utils │ │ │ │ ├── sessionOptions.utils.test.ts │ │ │ │ ├── sessionOptions.utils.ts │ │ │ │ └── sessionStatus.utils.ts │ │ ├── sessionsV2 │ │ │ ├── AddSessionLauncherButton.tsx │ │ │ ├── DataConnectorSecretsModal.tsx │ │ │ ├── DeleteSessionLauncherModal.tsx │ │ │ ├── LazySessionStartPage.tsx │ │ │ ├── LazyShowSessionPage.tsx │ │ │ ├── PauseOrDeleteSessionModal.tsx │ │ │ ├── SessionLauncherFormContent.tsx │ │ │ ├── SessionList │ │ │ │ ├── Session.module.scss │ │ │ │ ├── SessionCard.tsx │ │ │ │ ├── SessionItem.tsx │ │ │ │ ├── SessionItemDisplay.tsx │ │ │ │ ├── SessionLauncherCard.tsx │ │ │ │ └── SessionLauncherDisplay.tsx │ │ │ ├── SessionSecretsModal.tsx │ │ │ ├── SessionShowPage │ │ │ │ ├── SessionIframe.tsx │ │ │ │ ├── SessionPaused.tsx │ │ │ │ ├── SessionUnavailable.tsx │ │ │ │ └── ShowSessionPage.tsx │ │ │ ├── SessionStartPage.tsx │ │ │ ├── SessionStyles.constants.ts │ │ │ ├── SessionView │ │ │ │ ├── EnvVariablesCard.tsx │ │ │ │ ├── EnvVariablesModal.tsx │ │ │ │ ├── EnvironmentCard.tsx │ │ │ │ ├── SessionLaunchLinkModal.tsx │ │ │ │ └── SessionView.tsx │ │ │ ├── SessionsV2.tsx │ │ │ ├── StartSessionButton.tsx │ │ │ ├── api │ │ │ │ ├── sessionLaunchersV2.api-config.ts │ │ │ │ ├── sessionLaunchersV2.api.ts │ │ │ │ ├── sessionLaunchersV2.empty-api.ts │ │ │ │ ├── sessionLaunchersV2.generated-api.ts │ │ │ │ ├── sessionLaunchersV2.openapi.json │ │ │ │ ├── sessionsV2.api-config.ts │ │ │ │ ├── sessionsV2.api.ts │ │ │ │ ├── sessionsV2.empty-api.ts │ │ │ │ ├── sessionsV2.generated-api.ts │ │ │ │ └── sessionsV2.openapi.json │ │ │ ├── components │ │ │ │ ├── BuildLauncherButtons.tsx │ │ │ │ ├── BuildStatusComponents.tsx │ │ │ │ ├── SessionButton │ │ │ │ │ └── ActiveSessionButton.tsx │ │ │ │ ├── SessionForm │ │ │ │ │ ├── AdvancedSettingsFields.tsx │ │ │ │ │ ├── BuilderEnvironmentFields.tsx │ │ │ │ │ ├── BuilderFrontendSelector.tsx │ │ │ │ │ ├── BuilderSelectorCommon.tsx │ │ │ │ │ ├── BuilderTypeSelector.tsx │ │ │ │ │ ├── CodeRepositorySelector.tsx │ │ │ │ │ ├── CustomEnvironmentFields.tsx │ │ │ │ │ ├── EditLauncherFormContent.tsx │ │ │ │ │ ├── EnvironmentField.tsx │ │ │ │ │ ├── EnvironmentKindField.tsx │ │ │ │ │ ├── GlobalEnvironmentFields.tsx │ │ │ │ │ ├── LauncherDetailsFields.tsx │ │ │ │ │ ├── LauncherEnvironmentIcon.tsx │ │ │ │ │ ├── Select.module.scss │ │ │ │ │ └── SessionEnvironmentItem.tsx │ │ │ │ ├── SessionLauncherButtons.tsx │ │ │ │ ├── SessionModals │ │ │ │ │ ├── ModifyResourcesLauncher.tsx │ │ │ │ │ ├── NewSessionLauncherModal.tsx │ │ │ │ │ ├── ResourceClassWarning.tsx │ │ │ │ │ ├── SelectResourceClass.tsx │ │ │ │ │ ├── UpdateSessionLauncherMetadataModal.tsx │ │ │ │ │ └── UpdateSessionLauncherModal.tsx │ │ │ │ └── SessionStatus │ │ │ │ │ └── SessionStatus.tsx │ │ │ ├── session.constants.tsx │ │ │ ├── session.utils.ts │ │ │ ├── sessionsV2.types.ts │ │ │ ├── startSessionOptionsV2.slice.ts │ │ │ ├── startSessionOptionsV2.types.ts │ │ │ ├── useSessionLaunchState.hook.ts │ │ │ ├── useSessionResourceClass.hook.ts │ │ │ └── useSessionSecrets.hook.ts │ │ ├── terms │ │ │ └── terms.api.ts │ │ ├── user │ │ │ └── userPreferences.types.old.ts │ │ ├── usersV2 │ │ │ ├── LazyUserRedirect.tsx │ │ │ ├── LazyUserShow.tsx │ │ │ ├── api │ │ │ │ ├── users.api-config.ts │ │ │ │ ├── users.api.ts │ │ │ │ ├── users.empty-api.ts │ │ │ │ ├── users.generated-api.ts │ │ │ │ ├── users.openapi.json │ │ │ │ └── users.types.ts │ │ │ └── show │ │ │ │ ├── UserAvatar.module.scss │ │ │ │ ├── UserAvatar.tsx │ │ │ │ ├── UserRedirect.tsx │ │ │ │ └── UserShow.tsx │ │ ├── versions │ │ │ ├── versions.api.ts │ │ │ └── versions.types.ts │ │ └── workflows │ │ │ ├── WorkflowsApi.ts │ │ │ ├── WorkflowsSlice.ts │ │ │ └── workflows.types.ts │ ├── file │ │ ├── CodePreview.tsx │ │ ├── File.container.jsx │ │ ├── File.module.scss │ │ ├── File.present.jsx │ │ ├── File.test.js │ │ ├── FileAndLineageComponents.tsx │ │ ├── FilePreview.tsx │ │ ├── LazyCodePreview.tsx │ │ ├── LazyFileLineage.tsx │ │ ├── LazyPDFViewer.tsx │ │ ├── Lineage.container.jsx │ │ ├── Lineage.css │ │ ├── Lineage.present.jsx │ │ └── PDFViewer.tsx │ ├── help │ │ ├── Help.tsx │ │ ├── HelpRelease.tsx │ │ ├── LazyHelp.tsx │ │ ├── PrivacyPolicy.tsx │ │ ├── TermsOfService.tsx │ │ ├── relase.utils.test.ts │ │ └── release.utils.ts │ ├── index.jsx │ ├── job │ │ └── Job.js │ ├── model │ │ ├── GlobalSchema.js │ │ ├── Model.example.js │ │ ├── Model.js │ │ ├── Model.test.jsx │ │ ├── RenkuModels.js │ │ ├── RenkuModels.test.js │ │ ├── index.js │ │ └── renkuModels.types.ts │ ├── namespace │ │ ├── Namespace.container.jsx │ │ ├── Namespace.present.jsx │ │ ├── Namespace.test.jsx │ │ └── index.js │ ├── not-found │ │ ├── LazyNotFound.tsx │ │ ├── NotFound.css │ │ └── NotFound.tsx │ ├── notebooks │ │ ├── Notebooks.css │ │ ├── Notebooks.present.js │ │ ├── Notebooks.state.js │ │ ├── Notebooks.test.js │ │ ├── README.md │ │ ├── components │ │ │ ├── SessionButtons.tsx │ │ │ ├── SessionCheatSheet.css │ │ │ ├── SessionCheatSheet.tsx │ │ │ ├── SessionListStatus.tsx │ │ │ ├── Sidecar.tsx │ │ │ ├── cheatsheet.json │ │ │ └── session.types.ts │ │ └── index.js │ ├── notifications │ │ ├── LazyNotificationsPage.tsx │ │ ├── Notifications.constants.ts │ │ ├── Notifications.container.jsx │ │ ├── Notifications.css │ │ ├── Notifications.present.jsx │ │ ├── Notifications.state.js │ │ ├── Notifications.test.js │ │ ├── NotificationsManager.jsx │ │ ├── NotificationsMenu.jsx │ │ └── notifications.types.ts │ ├── privacy │ │ ├── Cookie.tsx │ │ ├── Privacy.test.jsx │ │ └── RoutedContent.tsx │ ├── project │ │ ├── LazyProjectView.tsx │ │ ├── Project-Route.test.js │ │ ├── Project.css │ │ ├── Project.jsx │ │ ├── Project.present.jsx │ │ ├── Project.state.js │ │ ├── Project.test.js │ │ ├── ProjectV2.tsx │ │ ├── clone │ │ │ ├── CloneButton.tsx │ │ │ └── CloneSettings.tsx │ │ ├── components │ │ │ ├── GitLabConnect.tsx │ │ │ └── ProjectViewNotFound.tsx │ │ ├── datasets │ │ │ ├── delete │ │ │ │ ├── DeleteDataset.tsx │ │ │ │ └── index.js │ │ │ └── import │ │ │ │ ├── DatasetImport.tsx │ │ │ │ └── index.ts │ │ ├── filestreeview │ │ │ ├── FilesTreeView.jsx │ │ │ └── treeviewstyle.css │ │ ├── list │ │ │ ├── LazyProjectList.tsx │ │ │ ├── ProjectList.container.jsx │ │ │ ├── ProjectList.present.jsx │ │ │ └── ProjectList.test.js │ │ ├── new │ │ │ ├── LazyNewProject.tsx │ │ │ ├── Project.style.css │ │ │ ├── ProjectNew.container.jsx │ │ │ ├── ProjectNew.present.jsx │ │ │ ├── ProjectNew.state.js │ │ │ ├── ProjectNew.test.jsx │ │ │ ├── components │ │ │ │ ├── Automated.tsx │ │ │ │ ├── Description.tsx │ │ │ │ ├── FormValidations.tsx │ │ │ │ ├── Namespaces.jsx │ │ │ │ ├── NewProjectAvatar.tsx │ │ │ │ ├── ProjectIdentifier.tsx │ │ │ │ ├── ShareLinkModal.jsx │ │ │ │ ├── SubmitFormButton.tsx │ │ │ │ ├── Template.tsx │ │ │ │ ├── TemplateSource.tsx │ │ │ │ ├── TemplateVariables.jsx │ │ │ │ ├── Title.tsx │ │ │ │ ├── UserTemplate.jsx │ │ │ │ ├── Visibility.tsx │ │ │ │ └── newProject.types.ts │ │ │ └── index.js │ │ ├── overview │ │ │ ├── ProjectOverview.container.jsx │ │ │ ├── ProjectOverview.present.jsx │ │ │ └── index.js │ │ ├── settings │ │ │ └── ProjectSettings.present.js │ │ └── shared │ │ │ ├── ProjectKeywords.tsx │ │ │ └── index.js │ ├── routing │ │ └── routes.constants.ts │ ├── setupTests.js │ ├── statuspage │ │ ├── Statuspage.container.jsx │ │ ├── Statuspage.present.jsx │ │ ├── StatuspageAPI.js │ │ ├── index.js │ │ └── statuspage.css │ ├── storybook │ │ └── bootstrap │ │ │ ├── Accordion.stories.tsx │ │ │ ├── Alert.stories.tsx │ │ │ ├── Badge.stories.tsx │ │ │ ├── BadgeInfo.stories.tsx │ │ │ ├── Button.stories.tsx │ │ │ ├── Card.stories.tsx │ │ │ ├── CardWithList.stories.tsx │ │ │ ├── ColorPalette.module.scss │ │ │ ├── ColorPalette.stories.tsx │ │ │ ├── ListGroup.stories.tsx │ │ │ ├── Loader.stories.tsx │ │ │ ├── Modal.stories.tsx │ │ │ ├── Navbar.stories.tsx │ │ │ ├── Offcanvas.stories.tsx │ │ │ ├── Pagination.stories.tsx │ │ │ ├── Spacing.stories.tsx │ │ │ └── Tooltips.stories.tsx │ ├── styleguide │ │ ├── ButtonsGuide.jsx │ │ ├── ColorsGuide.jsx │ │ ├── FormsGuide.jsx │ │ ├── LazyStyleGuide.tsx │ │ ├── ListsGuide.jsx │ │ ├── StyleGuide.jsx │ │ └── index.js │ ├── styles │ │ ├── .gitignore │ │ ├── assets │ │ │ ├── 404@0.25x.png │ │ │ ├── 404@0.5x.png │ │ │ ├── 404@0.75x.png │ │ │ ├── SkeletonCard.svg │ │ │ ├── block.svg │ │ │ ├── check.svg │ │ │ ├── chevron-down.svg │ │ │ ├── datasetBackgroundLarge.png │ │ │ ├── datasetBackgroundSmall.png │ │ │ ├── env.svg │ │ │ ├── error-background@0.50x.png │ │ │ ├── error-background@1.00x.png │ │ │ ├── failed.svg │ │ │ ├── favicon │ │ │ │ ├── Favicon.ico │ │ │ │ ├── Favicon.svg │ │ │ │ ├── Favicon16px.png │ │ │ │ ├── Favicon32px.png │ │ │ │ ├── FaviconError.ico │ │ │ │ ├── FaviconError.svg │ │ │ │ ├── FaviconError16px.png │ │ │ │ ├── FaviconError32px.png │ │ │ │ ├── FaviconPause.ico │ │ │ │ ├── FaviconPause.svg │ │ │ │ ├── FaviconPause16px.png │ │ │ │ ├── FaviconPause32px.png │ │ │ │ ├── FaviconRunning.ico │ │ │ │ ├── FaviconRunning.svg │ │ │ │ ├── FaviconRunning16px.png │ │ │ │ ├── FaviconRunning32px.png │ │ │ │ ├── FaviconWaiting.ico │ │ │ │ ├── FaviconWaiting.svg │ │ │ │ ├── FaviconWaiting16px.png │ │ │ │ └── FaviconWaiting32px.png │ │ │ ├── globalEnvironment.svg │ │ │ ├── lineBlock.png │ │ │ ├── lineBlock.svg │ │ │ ├── lineFailed.png │ │ │ ├── lineFailed.svg │ │ │ ├── linePaused.png │ │ │ ├── linePaused.svg │ │ │ ├── linePlaying.png │ │ │ ├── linePlaying.svg │ │ │ ├── lineStopped.png │ │ │ ├── lineStopped.svg │ │ │ ├── not-found.svg │ │ │ ├── not-foundV2.svg │ │ │ ├── oops.svg │ │ │ ├── oopsV2.svg │ │ │ ├── paused.svg │ │ │ ├── playing.svg │ │ │ ├── projectBackgroundLarge.png │ │ │ ├── projectBackgroundSmall.png │ │ │ ├── projectImagePreview.svg │ │ │ ├── puzzlePieces.png │ │ │ ├── stopped.svg │ │ │ ├── workflowBackgroundLarge.png │ │ │ └── workflowBackgroundSmall.png │ │ ├── bootstrap │ │ │ ├── _custom_bootstrap.scss │ │ │ ├── _custom_bootstrap_variables.scss │ │ │ └── _custom_bootstrap_variables2.0.scss │ │ ├── bootstrap_ext │ │ │ ├── _alert.scss │ │ │ ├── _badge.scss │ │ │ ├── _button.scss │ │ │ ├── _nav.scss │ │ │ ├── _nav_bar.scss │ │ │ └── _underline_pill_nav.scss │ │ ├── components │ │ │ ├── _bootstrap_icons.scss │ │ │ ├── _file_uploader.scss │ │ │ ├── _input_tag.scss │ │ │ ├── _jupyter_notebook.scss │ │ │ ├── _project_display.scss │ │ │ ├── _renku_cards.scss │ │ │ ├── _renku_files.scss │ │ │ ├── _renku_form.scss │ │ │ ├── _renku_general.scss │ │ │ ├── _renku_home.scss │ │ │ ├── _renku_modals.scss │ │ │ ├── _renku_search.scss │ │ │ ├── _renku_styleguide.scss │ │ │ └── _renku_tree.scss │ │ ├── fonts │ │ │ ├── Inter │ │ │ │ ├── Inter-Black.woff │ │ │ │ ├── Inter-Black.woff2 │ │ │ │ ├── Inter-BlackItalic.woff │ │ │ │ ├── Inter-BlackItalic.woff2 │ │ │ │ ├── Inter-Bold.woff │ │ │ │ ├── Inter-Bold.woff2 │ │ │ │ ├── Inter-BoldItalic.woff │ │ │ │ ├── Inter-BoldItalic.woff2 │ │ │ │ ├── Inter-ExtraBold.woff │ │ │ │ ├── Inter-ExtraBold.woff2 │ │ │ │ ├── Inter-ExtraBoldItalic.woff │ │ │ │ ├── Inter-ExtraBoldItalic.woff2 │ │ │ │ ├── Inter-ExtraLight.woff │ │ │ │ ├── Inter-ExtraLight.woff2 │ │ │ │ ├── Inter-ExtraLightItalic.woff │ │ │ │ ├── Inter-ExtraLightItalic.woff2 │ │ │ │ ├── Inter-Italic.woff │ │ │ │ ├── Inter-Italic.woff2 │ │ │ │ ├── Inter-Light.woff │ │ │ │ ├── Inter-Light.woff2 │ │ │ │ ├── Inter-LightItalic.woff │ │ │ │ ├── Inter-LightItalic.woff2 │ │ │ │ ├── Inter-Medium.woff │ │ │ │ ├── Inter-Medium.woff2 │ │ │ │ ├── Inter-MediumItalic.woff │ │ │ │ ├── Inter-MediumItalic.woff2 │ │ │ │ ├── Inter-Regular.woff │ │ │ │ ├── Inter-Regular.woff2 │ │ │ │ ├── Inter-SemiBold.woff │ │ │ │ ├── Inter-SemiBold.woff2 │ │ │ │ ├── Inter-SemiBoldItalic.woff │ │ │ │ ├── Inter-SemiBoldItalic.woff2 │ │ │ │ ├── Inter-Thin.woff │ │ │ │ ├── Inter-Thin.woff2 │ │ │ │ ├── Inter-ThinItalic.woff │ │ │ │ ├── Inter-ThinItalic.woff2 │ │ │ │ ├── Inter-italic.var.woff2 │ │ │ │ ├── Inter-roman.var.woff2 │ │ │ │ ├── Inter.var.woff2 │ │ │ │ ├── LICENSE.txt │ │ │ │ └── inter.scss │ │ │ └── _fonts.scss │ │ ├── icons │ │ │ ├── assets │ │ │ │ ├── danger.svg │ │ │ │ ├── info.svg │ │ │ │ ├── success.svg │ │ │ │ └── warning.svg │ │ │ ├── icons.scss │ │ │ ├── sessions.svg │ │ │ ├── ssh-cross.svg │ │ │ ├── ssh-remove.svg │ │ │ ├── ssh-ticked.svg │ │ │ ├── ssh.svg │ │ │ └── start-with-options.svg │ │ ├── index.scss │ │ ├── renku_additional_classes.scss │ │ ├── renku_bootstrap.scss │ │ ├── renku_bootstrap_customization.scss │ │ └── renku_navy_theme.scss │ ├── user │ │ ├── User.state.js │ │ ├── User.test.js │ │ └── index.js │ ├── utils │ │ ├── Utils.test.jsx │ │ ├── constants │ │ │ ├── Dataset.js │ │ │ ├── Docs.js │ │ │ ├── Media.js │ │ │ ├── Migrations.ts │ │ │ └── Repositories.ts │ │ ├── context │ │ │ ├── appContext.ts │ │ │ ├── appParams.constants.ts │ │ │ ├── appParams.types.ts │ │ │ └── appParams.utils.ts │ │ ├── customHooks │ │ │ ├── UseGetInactiveProjects.ts │ │ │ ├── UseGetNamespaces.ts │ │ │ ├── UseGetProjects.ts │ │ │ ├── UseGetSessionLogs.ts │ │ │ ├── UseGetVisibilities.ts │ │ │ ├── UseSliceSelector.ts.remove │ │ │ ├── useAppDispatch.hook.ts │ │ │ ├── useAppSelector.hook.ts │ │ │ ├── useGetRecentlyVisitedProjects.ts │ │ │ ├── useLegacySelector.hook.ts │ │ │ ├── useLocationHash.hook.ts │ │ │ └── useNow.hook.ts │ │ ├── feature-flags │ │ │ ├── featureFlags.constants.ts │ │ │ ├── featureFlags.slice.ts │ │ │ ├── featureFlags.types.ts │ │ │ └── useFeatureFlagSync.hook.ts │ │ ├── helpers │ │ │ ├── ApiErrors.ts │ │ │ ├── ArrayUtils.ts │ │ │ ├── Dataset.utils.ts │ │ │ ├── DatasetUtils.test.ts │ │ │ ├── DateTimeUtils.test.ts │ │ │ ├── DateTimeUtils.ts │ │ │ ├── DurationUtils.test.ts │ │ │ ├── DurationUtils.ts │ │ │ ├── Encoding.js │ │ │ ├── EnhancedState.ts │ │ │ ├── HelperFunctions.js │ │ │ ├── HelperFunctionsV2.ts │ │ │ ├── KgSearchFunctions.ts │ │ │ ├── ProjectFunctions.ts │ │ │ ├── RtkQueryErrorsContext.tsx │ │ │ ├── ServiceWorker.js │ │ │ ├── SessionFunctions.ts │ │ │ ├── TextUtils.test.ts │ │ │ ├── TextUtils.ts │ │ │ ├── UseWindowsSize.tsx │ │ │ ├── kgPagination.utils.ts │ │ │ ├── markdown.utils.js │ │ │ ├── markdownUtils.test.js │ │ │ ├── pagination.utils.ts │ │ │ ├── safeNewUrl.utils.ts │ │ │ ├── sentry │ │ │ │ ├── Sentry.js │ │ │ │ ├── Sentry.test.js │ │ │ │ └── index.js │ │ │ ├── url │ │ │ │ ├── NotebookUrl.test.ts │ │ │ │ ├── NotebookUrl.ts │ │ │ │ ├── Url.js │ │ │ │ ├── Url.test.js │ │ │ │ ├── index.ts │ │ │ │ ├── versionedUrls.test.ts │ │ │ │ └── versionedUrls.ts │ │ │ └── verifyTitleCharacters.utils.ts │ │ └── types │ │ │ ├── coreService.types.ts │ │ │ └── pagination.types.ts │ ├── vite-env.d.ts │ ├── websocket │ │ ├── README.md │ │ ├── WsMessages.ts │ │ ├── handlers │ │ │ ├── kgActivationStatusHandler.ts │ │ │ ├── sessionStatusHandler.ts │ │ │ ├── sessionStatusHandlerV2.ts │ │ │ ├── userHandlers.test.ts │ │ │ └── userHandlers.ts │ │ ├── index.test.ts │ │ └── index.ts │ └── workflows │ │ ├── Workflows.container.tsx │ │ ├── Workflows.present.tsx │ │ ├── Workflows.scss │ │ └── index.ts ├── testSetup.ts ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── vitest.config.ts ├── dev └── telepresence-showcase-projects.json ├── github_deploy_key.enc ├── helm-chart ├── README.rst └── renku-ui │ ├── .helmignore │ ├── Chart.yaml │ └── values.yaml ├── package-lock.json ├── package.json ├── server ├── .dockerignore ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── .prettierignore ├── Dockerfile ├── README.md ├── docker-entrypoint.sh ├── jest.config.js ├── package-lock.json ├── package.json ├── public │ ├── server-flow-auth.png │ └── server-flow-request.png ├── run-telepresence.sh ├── src │ ├── api-client │ │ └── index.ts │ ├── authentication │ │ ├── authentication.types.ts │ │ └── authenticator.ts │ ├── config.ts │ ├── index.ts │ ├── logger.ts │ ├── routes │ │ ├── apis.interfaces.ts │ │ ├── apis.ts │ │ ├── helperFunctions.ts │ │ ├── index.ts │ │ └── internal.ts │ ├── storage │ │ ├── RedisStorage.ts │ │ └── index.ts │ ├── utils │ │ ├── apiError.ts │ │ ├── asyncSemaphore.ts │ │ ├── baseError.ts │ │ ├── errorHandler.ts │ │ ├── index.ts │ │ ├── middlewares │ │ │ ├── errorHandlerMiddleware.ts │ │ │ ├── lastProjectsMiddleware.ts │ │ │ ├── lastSearchQueriesMiddleware.ts │ │ │ ├── requestHandlerMiddleware.ts │ │ │ └── uploadFileMiddleware.ts │ │ ├── prometheus │ │ │ └── prometheus.ts │ │ ├── sentry │ │ │ └── sentry.ts │ │ ├── url-join.ts │ │ └── url.ts │ └── websocket │ │ ├── README.md │ │ ├── WsMessages.ts │ │ ├── handlers │ │ ├── activationKgStatus.ts │ │ ├── clientVersion.ts │ │ ├── handlers.types.ts │ │ ├── sessions.ts │ │ └── sessionsV2.ts │ │ └── index.ts ├── tests │ ├── storage │ │ └── index.test.ts.old │ ├── utils │ │ ├── index.test.ts │ │ └── url.test.ts │ └── websocket │ │ └── index.test.ts └── tsconfig.json └── tests ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── README.md ├── cypress.config.ts ├── cypress ├── e2e │ ├── addDatasetToProject.spec.ts │ ├── adminPage.spec.ts │ ├── autostartSession.spec.ts │ ├── connectedServicesV2.spec.ts │ ├── coreServiceVersion.spec.ts │ ├── dashboard.spec.ts │ ├── dashboardV2.spec.ts │ ├── datasets.spec.ts │ ├── groupV2.spec.ts │ ├── groupV2DataConnectorCredentials.spec.ts │ ├── home.spec.ts │ ├── kgSearch.spec.ts │ ├── maintenance.spec.ts │ ├── navV2.spec.ts │ ├── newDataset.spec.ts │ ├── newProject.spec.ts │ ├── newSession.spec.ts │ ├── project.spec.ts │ ├── projectDatasets.spec.ts │ ├── projectSettings.spec.ts │ ├── projectStatus.spec.ts │ ├── projectV2.spec.ts │ ├── projectV2DataConnectorCredentials.spec.ts │ ├── projectV2Session.spec.ts │ ├── projectV2SessionSecrets.spec.ts │ ├── projectV2setup.spec.ts │ ├── searchV2.spec.ts │ ├── secrets.spec.ts │ ├── session.spec.ts │ └── workflows.spec.ts ├── fixtures │ ├── admin │ │ └── user-1.json │ ├── avatars │ │ └── avatar.png │ ├── cloudStorage │ │ ├── cloud-storage-multiple.json │ │ ├── cloud-storage-secrets-empty.json │ │ ├── cloud-storage-secrets-partial.json │ │ ├── cloud-storage-secrets.json │ │ ├── cloud-storage-with-secrets-values-empty.json │ │ ├── cloud-storage-with-secrets-values-full.json │ │ ├── cloud-storage-with-secrets-values-partial.json │ │ ├── cloud-storage-with-secrets.json │ │ ├── cloud-storage.json │ │ ├── new-cloud-storage.json │ │ ├── new-cloud-storage_v2.json │ │ ├── storage-schema-s3.json │ │ └── storage-schema.json │ ├── config-session-class-email-us.json │ ├── config.json │ ├── config_maintenance.json │ ├── connectedServicesV2 │ │ ├── account.json │ │ ├── connections.json │ │ ├── installationsFull.json │ │ ├── installationsSuspended.json │ │ └── providers.json │ ├── dashboard │ │ ├── dismissible-simple-info-message.json │ │ └── non-dismissible-read-more-success-message.json │ ├── data-service-admin-user.json │ ├── data-service-user.json │ ├── dataConnector │ │ ├── data-connector-global.json │ │ ├── data-connector-multiple.json │ │ ├── data-connector-permissions.json │ │ ├── data-connector-public.json │ │ ├── data-connector-secrets-empty.json │ │ ├── data-connector-secrets-partial.json │ │ ├── data-connector-secrets.json │ │ ├── data-connector-webdav.json │ │ ├── data-connector.json │ │ ├── empty-list.json │ │ ├── new-data-connector.json │ │ ├── project-data-connector-links-multiple.json │ │ └── project-data-connector-links.json │ ├── dataServices │ │ ├── resource-class.json │ │ ├── resource-pool-users.json │ │ └── resource-pools.json │ ├── datasets │ │ ├── add-file.json │ │ ├── create-dataset-title-error.json │ │ ├── create-dataset.json │ │ ├── dataset-files.json │ │ ├── dataset-list-error.json │ │ ├── dataset_1ad4e4dbb8eb47209dc21e27e18b88fd.json │ │ ├── dataset_4577b68957b7478bba1f07d6513b43d2.json │ │ ├── dataset_897ee9effb9b42efab454011a8fba5e4.json │ │ ├── datasets-import.json │ │ ├── files │ │ │ ├── bigFile.bin │ │ │ ├── count_flights.txt │ │ │ ├── datasetFiles.zip │ │ │ └── sdsc.jpeg │ │ ├── import-job-completed.json │ │ ├── import-job-error.json │ │ ├── import-job-in-process.json │ │ ├── no-dataset.json │ │ ├── project-dataset-kg-list.json │ │ ├── project-dataset-list.json │ │ ├── upload-dataset-file.json │ │ └── upload-dataset-multiple-files.json │ ├── errors │ │ ├── core-error-1101.json │ │ ├── core-error-1102.json │ │ ├── core-error-2001.json │ │ ├── core-error-2200.json │ │ └── core-error-old.json │ ├── groupV2 │ │ ├── create-groupV2.json │ │ ├── groupV2-permissions-none.json │ │ ├── groupV2-permissions.json │ │ ├── list-groupV2-members.json │ │ ├── list-groupV2-post-delete.json │ │ ├── list-groupV2.json │ │ ├── read-groupV2-namespace.json │ │ ├── read-groupV2.json │ │ ├── update-groupV2-metadata.json │ │ └── update-groupV2-namespace.json │ ├── kgSearch │ │ ├── datasetsSearch.json │ │ ├── emptySearch.json │ │ ├── lastSearch.json │ │ ├── no-active-projects.json │ │ └── search.json │ ├── landing-user-projects.json │ ├── namespaceV2 │ │ ├── list-namespaceV2.json │ │ └── namespaceV2-user1.json │ ├── namespaces.json │ ├── project │ │ ├── cache-project-list-empty.json │ │ ├── cache-project-list.json │ │ ├── config-show.json │ │ ├── create-project.json │ │ ├── edit │ │ │ ├── edit-project-confirm.json │ │ │ └── project-kg-description.json │ │ ├── files │ │ │ ├── 01-CountFlights.json │ │ │ ├── Historical-Use.json │ │ │ ├── latex-notebook.json │ │ │ ├── project-files-git-attributes │ │ │ ├── project-files-root.json │ │ │ └── random_py_file.json │ │ ├── kgStatus │ │ │ ├── kgStatus404.json │ │ │ ├── kgStatusIndexedFailure.json │ │ │ ├── kgStatusIndexedSuccess.json │ │ │ └── kgStatusIndexing.json │ │ ├── migrationStatus │ │ │ ├── level1-all-good.json │ │ │ ├── level2-template-core-cache.json │ │ │ ├── level3-only-template.json │ │ │ ├── level3-version-minor-and-template.json │ │ │ ├── level4-old-updatable.json │ │ │ ├── level5-old-updatable.json │ │ │ ├── level5-old-version.json │ │ │ ├── levelX-too-new.json │ │ │ └── version-core.json │ │ ├── project-kg-edited.json │ │ ├── project-kg.json │ │ ├── project-status-done.json │ │ ├── project-status-processing.json │ │ ├── test-project-branches.json │ │ ├── test-project-commits.json │ │ ├── test-project-readme-commits.json │ │ ├── test-project-readme.md │ │ ├── test-project.json │ │ ├── test-project_config.json │ │ ├── test-project_migration_update-optional.json │ │ ├── test-project_migration_update-recommended.json │ │ ├── test-project_migration_update-required.json │ │ ├── update-project-internal.json │ │ ├── update-project-tag-description.json │ │ ├── update-project.json │ │ └── visibility │ │ │ ├── error-update-visibility.json │ │ │ └── visibility-change-accepted.json │ ├── projectV2 │ │ ├── create-projectV2.json │ │ ├── list-projectV2-members-many.json │ │ ├── list-projectV2-members.json │ │ ├── list-projectV2-post-delete.json │ │ ├── list-projectV2.json │ │ ├── projectV2-permissions-editor.json │ │ ├── projectV2-permissions-viewer.json │ │ ├── projectV2-permissions.json │ │ ├── read-projectV2-empty.json │ │ ├── read-projectV2-one-github-repo.json │ │ ├── read-projectV2-without-documentation.json │ │ ├── read-projectV2.json │ │ ├── session-launchers-global.json │ │ ├── session-launchers-without-env-vars.json │ │ ├── session-launchers.json │ │ ├── update-projectV2-metadata.json │ │ ├── update-projectV2-one-repository.json │ │ └── update-projectV2-repositories.json │ ├── projectV2SessionSecrets │ │ ├── empty_list.json │ │ ├── patch_secret_slot.json │ │ ├── patch_secrets_clear_value.json │ │ ├── patch_secrets_with_new_value.json │ │ ├── patched_secret_slots.json │ │ ├── patched_secrets_with_cleared_value.json │ │ ├── patched_secrets_with_new_value.json │ │ ├── post_secret_slot.json │ │ ├── secret_slots.json │ │ ├── secret_slots_with_new_slot.json │ │ ├── secrets.json │ │ ├── shortened_secret_slots.json │ │ └── user_secrets.json │ ├── projects.json │ ├── projects │ │ ├── cache-project-list.json │ │ ├── change-visibility.json │ │ ├── empty-last-visited-projects.json │ │ ├── last-visited-projects-5.json │ │ ├── last-visited-projects.json │ │ ├── member-projects.json │ │ ├── migration-check_43781-old.json │ │ ├── migration-check_43781.json │ │ ├── namespace-128.json │ │ ├── namespace-129.json │ │ ├── no-project.json │ │ ├── project-limited-permissions.json │ │ ├── project.json │ │ ├── projectLanding.json │ │ ├── project_30929.json │ │ ├── project_39646.json │ │ ├── project_43781.json │ │ ├── project_44966.json │ │ ├── project_44967.json │ │ ├── project_44968.json │ │ ├── project_55402.json │ │ └── project_78277.json │ ├── repositories │ │ ├── repository-metadata-token-error.json │ │ └── repository-metadata.json │ ├── searchV2 │ │ └── search-response.json │ ├── session │ │ ├── ci-image-missing.json │ │ ├── ci-image.json │ │ ├── ci-jobs-failed.json │ │ ├── ci-jobs-missing.json │ │ ├── ci-jobs-running.json │ │ ├── ci-jobs.json │ │ ├── ci-pipelines.json │ │ ├── ci-registry.json │ │ ├── pipeline-jobs.json │ │ ├── pipelines.json │ │ ├── renku.ini │ │ └── server-options.json │ ├── sessions │ │ ├── cleanLogs.json │ │ ├── empty-sessions.json │ │ ├── emptyLogs.json │ │ ├── environments.json │ │ ├── logs.json │ │ ├── sessionError.json │ │ ├── sessionStopping.json │ │ ├── sessionV2.json │ │ ├── sessions.json │ │ ├── sessionsV2.json │ │ └── sessionsWithError.json │ ├── statuspage │ │ ├── statuspage-operational.json │ │ └── statuspage-outage.json │ ├── templates.json │ ├── user-preferences │ │ ├── user-preferences-1-pin.json │ │ ├── user-preferences-3-pins.json │ │ └── user-preferences-default.json │ ├── user.json │ ├── version-core.json │ ├── version-notebooks.json │ ├── version-ui.json │ └── workflows │ │ ├── workflow-show-details-notexists.json │ │ ├── workflow-show-links-mappings.json │ │ ├── workflow-show-outdated.json │ │ ├── workflow-show-params.json │ │ ├── workflows-list-links-mappings-inactive.json │ │ └── workflows-list-links-mappings.json └── support │ ├── commands │ ├── datasets.ts │ ├── general.ts │ ├── projects.ts │ ├── react-select.ts │ ├── sessions.ts │ └── workflows.ts │ ├── e2e.ts │ └── renkulab-fixtures │ ├── admin.ts │ ├── cloudStorage.ts │ ├── connectedServices.ts │ ├── dashboard.ts │ ├── dataConnectors.ts │ ├── dataServices.ts │ ├── datasets.ts │ ├── fixtures.ts │ ├── fixtures.types.ts │ ├── global.ts │ ├── index.ts │ ├── kgSearch.ts │ ├── namespaceV2.ts │ ├── newProject.ts │ ├── newSession.ts │ ├── projectV2.ts │ ├── projects.ts │ ├── searchV2.ts │ ├── secrets.ts │ ├── sessions.ts │ ├── terms.ts │ ├── user-preferences.ts │ ├── user.ts │ └── workflows.ts ├── package-lock.json ├── package.json └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright 2017 - Swiss Data Science Center (SDSC) 4 | # A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 5 | # Eidgenössische Technische Hochschule Zürich (ETHZ). 6 | # 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | root = true 20 | 21 | # Dockerfile 22 | [Dockerfile] 23 | indent_size = 4 24 | 25 | # Makefile 26 | [Makefile] 27 | indent_size = 4 28 | indent_style = tab 29 | 30 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @SwissDataScienceCenter/renku-ui-maintainers 2 | /docs/ @SwissDataScienceCenter/documentation-reviewers 3 | *.rst @SwissDataScienceCenter/documentation-reviewers 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | # Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser 2 | blank_issues_enabled: false 3 | contact_links: 4 | - name: "Report a UI bug 🐛" 5 | url: https://github.com/SwissDataScienceCenter/renku-ui/discussions/new?category=bugs 6 | about: | 7 | If you have found a bug, please report it in the Discussions section. A maintainer will later create an issue or update existing ones. 8 | - name: "Suggest new ideas 💡" 9 | url: https://github.com/SwissDataScienceCenter/renku-ui/discussions/new?category=ideas 10 | about: | 11 | If you have an idea for a new feature or improvement, please share it in the Discussions section. 12 | - name: "Renku discussions 💬" 13 | url: https://renku.discourse.group/ 14 | about: | 15 | Do you have questions about Renku? You can start a discussion in our forum. 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/new_issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "New issue - for UI maintainers" 3 | about: Create a new UI issue. This template is for UI maintainers. 4 | title: "" 5 | labels: "" 6 | assignees: "" 7 | --- 8 | 9 | 14 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | -------------------------------------------------------------------------------- /.github/workflows/cleanup-old-deployments.yml: -------------------------------------------------------------------------------- 1 | name: Cleanup old deployments 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | cleanup-old-deployments-from-github: 8 | runs-on: ubuntu-24.04 9 | steps: 10 | - uses: actions/checkout@v4 11 | with: 12 | fetch-depth: 0 13 | - uses: actions/github-script@v7 14 | with: 15 | script: | 16 | const script = require('./.github/workflows/cleanup-old-deployments.js') 17 | await script({ core, github }) 18 | -------------------------------------------------------------------------------- /.github/workflows/github-project.yml: -------------------------------------------------------------------------------- 1 | name: Add Issues to triage 2 | on: 3 | issues: 4 | types: 5 | - opened 6 | jobs: 7 | add_to_project: 8 | runs-on: ubuntu-24.04 9 | steps: 10 | - name: Add to triage board 11 | uses: actions/add-to-project@main 12 | with: 13 | project-url: https://github.com/orgs/SwissDataScienceCenter/projects/51 14 | github-token: ${{ secrets.RENKUBOT_GITHUB_TOKEN }} 15 | labeled: status/triage 16 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | set -e 5 | 6 | cd ./client 7 | npm run format-commit 8 | cd .. 9 | 10 | cd ./server 11 | npm run format-commit 12 | cd .. 13 | 14 | cd ./tests 15 | npm run format-commit 16 | cd .. 17 | -------------------------------------------------------------------------------- /CODING_GUIDELINES.md: -------------------------------------------------------------------------------- 1 | # Coding Guidelines 2 | 3 | This page is deprecated. 4 | 5 | The guidelines have been moved [to our wiki](https://github.com/SwissDataScienceCenter/renku-ui/wiki/Develop#coding-rules-). 6 | -------------------------------------------------------------------------------- /client/.dockerignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /gitlab 3 | /doc 4 | /helm-chart 5 | .editorconfig 6 | .eslintignore 7 | .eslintrc.json 8 | .gitignore 9 | .travis.yml 10 | docker-compose.yml 11 | Dockerfile 12 | Makefile 13 | README.md 14 | -------------------------------------------------------------------------------- /client/.eslintignore: -------------------------------------------------------------------------------- 1 | *.css 2 | *.svg 3 | # Generated files should not be linted 4 | src/features/dataConnectorsV2/api/data-connectors.api.ts 5 | src/features/dataConnectorsV2/api/doiResolver.generated-api.ts 6 | src/features/project/components/cloudStorage/api/projectCloudStorage.generated-api.ts 7 | src/features/projectsV2/api/projectV2.api.ts 8 | src/features/sessionsV2/api/sessionLaunchersV2.generated-api.ts 9 | src/features/sessionsV2/api/sessionsV2.generated-api.ts 10 | src/features/usersV2/api/users.generated-api.ts 11 | src/features/searchV2/api/searchV2Api.generated-api.ts 12 | -------------------------------------------------------------------------------- /client/.prettierignore: -------------------------------------------------------------------------------- 1 | build/ 2 | -------------------------------------------------------------------------------- /client/.rtk/emptyTemplate.ts: -------------------------------------------------------------------------------- 1 | import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; 2 | 3 | // initialize an empty api service that we'll inject endpoints into later as needed 4 | export const emptySplitApi = createApi({ 5 | baseQuery: fetchBaseQuery({ baseUrl: "" }), 6 | endpoints: () => ({}), 7 | }); 8 | -------------------------------------------------------------------------------- /client/.storybook/manager.ts: -------------------------------------------------------------------------------- 1 | import { addons } from "@storybook/manager-api"; 2 | import { create } from "@storybook/theming"; 3 | 4 | const renkuTheme = create({ 5 | base: "light", 6 | colorSecondary: "#009568", 7 | brandTitle: "Renku Storybook", 8 | brandUrl: "/storybook/", 9 | brandImage: "/static/public/img/logo.svg", 10 | brandTarget: "_self", 11 | }); 12 | 13 | addons.setConfig({ 14 | theme: renkuTheme, 15 | }); 16 | -------------------------------------------------------------------------------- /client/README.md: -------------------------------------------------------------------------------- 1 | # renku-ui/client 2 | 3 | The React-based client for renku. The primary source of documentation for renku UI is in the [root of the repo](../). This readme is focused on some particular details about the client. 4 | 5 | ## package.json/overrides 6 | 7 | The project is now using [rect-18](https://github.com/facebook/react/blob/main/CHANGELOG.md), but the current version of [storybook](https://github.com/storybookjs/storybook), 6.5.15, is not fully compatible it. As a result, some packages need to be overridden to prevent peer-dependency complaints. This should hopefully be fixed when [storybook 7](https://github.com/storybookjs/storybook/issues/13491) is released. 8 | 9 | ## RTK Query Code Generation 10 | 11 | Please refer to the [README file in the .rtk folder](./.rtk/README.md) for more details. 12 | -------------------------------------------------------------------------------- /client/public/ads.txt: -------------------------------------------------------------------------------- 1 | placeholder.example.com, placeholder, DIRECT, placeholder -------------------------------------------------------------------------------- /client/public/android-chrome-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/android-chrome-128x128.png -------------------------------------------------------------------------------- /client/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /client/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /client/public/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /client/public/clock-rotate-left-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /client/public/dashboardHeader1080x280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dashboardHeader1080x280.png -------------------------------------------------------------------------------- /client/public/dashboardHeader1920x280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dashboardHeader1920x280.png -------------------------------------------------------------------------------- /client/public/dashboardHeader2560x280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dashboardHeader2560x280.png -------------------------------------------------------------------------------- /client/public/dashboardHeader3840x280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dashboardHeader3840x280.png -------------------------------------------------------------------------------- /client/public/dashboardHeader640x200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dashboardHeader640x200.png -------------------------------------------------------------------------------- /client/public/dashboardHeader750x200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dashboardHeader750x200.png -------------------------------------------------------------------------------- /client/public/dashboardV2header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dashboardV2header.png -------------------------------------------------------------------------------- /client/public/dataset-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/dataset-icon.png -------------------------------------------------------------------------------- /client/public/dataset-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/public/earlyAccessDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/earlyAccessDark.png -------------------------------------------------------------------------------- /client/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/favicon-16x16.png -------------------------------------------------------------------------------- /client/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/favicon-32x32.png -------------------------------------------------------------------------------- /client/public/favicon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/favicon-48x48.png -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/project-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/project-icon.png -------------------------------------------------------------------------------- /client/public/project-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /client/public/static/public/img/404@0.25x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/404@0.25x.png -------------------------------------------------------------------------------- /client/public/static/public/img/404@0.5x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/404@0.5x.png -------------------------------------------------------------------------------- /client/public/static/public/img/404@0.75x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/404@0.75x.png -------------------------------------------------------------------------------- /client/public/static/public/img/earlyAccessDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/earlyAccessDark.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Large_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Large_1.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Large_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Large_2.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Large_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Large_3.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Large_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Large_4.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Large_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Large_5.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Small_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Small_1.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Small_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Small_2.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Small_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Small_3.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Small_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Small_4.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/Small_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/Small_5.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Large_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Large_1.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Large_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Large_2.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Large_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Large_3.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Large_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Large_4.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Large_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Large_5.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Small_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Small_1.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Small_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Small_2.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Small_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Small_3.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Small_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Small_4.png -------------------------------------------------------------------------------- /client/public/static/public/img/redirect/frog/X-Small_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/static/public/img/redirect/frog/X-Small_5.png -------------------------------------------------------------------------------- /client/public/stockimages/Zurich.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/stockimages/Zurich.jpg -------------------------------------------------------------------------------- /client/public/stockimages/dataset3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/public/stockimages/dataset3.png -------------------------------------------------------------------------------- /client/src/api-client/job.js: -------------------------------------------------------------------------------- 1 | export default function addJobMethods(client) { 2 | /** 3 | * Get status for the target job in the core service 4 | * @param {string} job_id - core job id 5 | * @param {string} versionUrl - target core version to identify the proper jobs queue 6 | */ 7 | client.getJobStatus = (job_id, versionUrl = null) => { 8 | let headers = client.getBasicHeaders(); 9 | headers.append("Content-Type", "application/json"); 10 | headers.append("X-Requested-With", "XMLHttpRequest"); 11 | 12 | const url = client.versionedCoreUrl("jobs", versionUrl); 13 | return client 14 | .clientFetch(`${url}/${job_id}`, { 15 | method: "GET", 16 | headers: headers, 17 | }) 18 | .then((response) => { 19 | return response.data?.result; 20 | }); 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /client/src/api-client/test-samples/index.js: -------------------------------------------------------------------------------- 1 | import { namespaces } from "./namespaces"; 2 | import { 3 | projects, 4 | projectReadme, 5 | projectNotebookFile, 6 | } from "./project-samples"; 7 | import { statuspage } from "./statuspage"; 8 | import { user } from "./user"; 9 | 10 | export { 11 | namespaces, 12 | projects, 13 | projectReadme, 14 | projectNotebookFile, 15 | statuspage, 16 | user, 17 | }; 18 | -------------------------------------------------------------------------------- /client/src/api-client/test-samples/namespaces.js: -------------------------------------------------------------------------------- 1 | export const namespaces = [ 2 | { 3 | id: 3, 4 | name: "myUser", 5 | path: "myUser", 6 | kind: "user", 7 | full_path: "myUser", 8 | parent_id: null, 9 | }, 10 | { 11 | id: 36, 12 | name: "team", 13 | path: "team", 14 | kind: "group", 15 | full_path: "team", 16 | parent_id: null, 17 | members_count_with_descendants: 1, 18 | }, 19 | ]; 20 | -------------------------------------------------------------------------------- /client/src/api-client/test-samples/user.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export const user = { 3 | id: 1, 4 | name: "Test User", 5 | username: "tuser", 6 | state: "active", 7 | avatar_url: "", 8 | web_url: "https://renkulab.io/gitlab/tuser", 9 | created_at: "2018-06-19T10:11:04.058Z", 10 | bio: null, 11 | location: null, 12 | public_email: "", 13 | skype: "", 14 | linkedin: "", 15 | twitter: "", 16 | website_url: "", 17 | organization: null, 18 | last_sign_in_at: "2019-01-04T11:11:00.509Z", 19 | confirmed_at: "2018-06-19T10:11:04.027Z", 20 | last_activity_on: "2018-12-19", 21 | email: "tuser@dummy.com", 22 | theme_id: 1, 23 | color_scheme_id: 1, 24 | projects_limit: 100000, 25 | current_sign_in_at: "2019-01-04T12:47:31.611Z", 26 | identities: [ 27 | { 28 | provider: "oauth2_generic", 29 | extern_uid: "aaaabbbbccceeee", 30 | }, 31 | ], 32 | can_create_group: true, 33 | can_create_project: true, 34 | two_factor_enabled: false, 35 | external: false, 36 | private_profile: null, 37 | }; 38 | -------------------------------------------------------------------------------- /client/src/authentication/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2017 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | import { LoginHelper } from "./Authentication.container.js"; 20 | 21 | export { LoginHelper }; 22 | -------------------------------------------------------------------------------- /client/src/components/Alert.constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const ALERT_ICON_SIZE = 32; 20 | -------------------------------------------------------------------------------- /client/src/components/Logs.module.scss: -------------------------------------------------------------------------------- 1 | .modalHeader { 2 | & :global(.modal-title) { 3 | font-size: 27px; 4 | font-weight: 600; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /client/src/components/PrimaryAlert.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/variables-dark"; 4 | @import "../styles/renku_bootstrap_customization.scss"; 5 | 6 | .primaryAlert { 7 | --bs-primary-bg-subtle: #{tint-color($primary, 90%)}; 8 | } 9 | -------------------------------------------------------------------------------- /client/src/components/commandCopy/CommandCopy.module.scss: -------------------------------------------------------------------------------- 1 | @import "/src/styles/bootstrap/_custom_bootstrap_variables.scss"; 2 | 3 | .main { 4 | background: $rk-background-1; 5 | border-color: $rk-border-input; 6 | } 7 | 8 | .clipboardBtn { 9 | transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, 10 | border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 11 | 12 | &:hover, 13 | &:focus { 14 | background-color: $rk-background-0 !important; 15 | color: $rk-green-highlight !important; 16 | border-color: $rk-green !important; 17 | } 18 | &:active { 19 | color: $rk-white !important; 20 | background-color: $rk-green !important; 21 | } 22 | &:disabled { 23 | color: $rk-green !important; 24 | opacity: 0.6 !important; 25 | } 26 | 27 | svg { 28 | margin: unset !important; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /client/src/components/commits/Commits.css: -------------------------------------------------------------------------------- 1 | .commit-object, 2 | .commit-date { 3 | padding: 0.5rem; 4 | border: 1px solid #e4e7ea; 5 | } 6 | 7 | .commit-object .commit-cut-message { 8 | text-overflow: ellipsis; 9 | overflow: hidden; 10 | white-space: nowrap; 11 | } 12 | 13 | .commit-date { 14 | background-color: rgba(0, 0, 0, 0.01); 15 | font-size: 80%; 16 | font-weight: bold; 17 | padding-top: 0.25rem; 18 | padding-bottom: 0.25rem; 19 | background-color: #f5f5f5; 20 | } 21 | 22 | .commit-object { 23 | line-height: 1.5rem; 24 | } 25 | 26 | .commit-cut-message > a { 27 | text-decoration: none; 28 | } 29 | 30 | .commit-buttons > .last-item-button-group { 31 | border-radius: 0 8px 8px 0; 32 | } 33 | 34 | .commit-buttons button code { 35 | font-size: 14px !important; 36 | } 37 | -------------------------------------------------------------------------------- /client/src/components/entitySearchFilter/EntitySearchFilter.css: -------------------------------------------------------------------------------- 1 | .filter-label { 2 | font-size: small; 3 | font-weight: normal; 4 | color: var(--bs-rk-text-light); 5 | } 6 | 7 | .filter-title { 8 | font-size: large; 9 | font-weight: bold; 10 | } 11 | 12 | .filter-title { 13 | font-size: large; 14 | font-weight: bold; 15 | } 16 | 17 | .filter-box { 18 | display: flex; 19 | flex-direction: column; 20 | gap: 40px; 21 | padding-top: 8px; 22 | } 23 | 24 | .input-filter-box { 25 | background-color: white; 26 | border: 1px solid #dce4ec; 27 | border-radius: 8px; 28 | padding: 15px 20px; 29 | } 30 | 31 | .button-filter-box { 32 | background-color: white; 33 | border: 1px solid #dce4ec; 34 | border-radius: 8px; 35 | padding: 7px 20px; 36 | } 37 | 38 | .search-result-header { 39 | padding: 0 20px; 40 | } 41 | -------------------------------------------------------------------------------- /client/src/components/entityWatermark/entityWatermark.module.scss: -------------------------------------------------------------------------------- 1 | .EntityWatermark { 2 | font-size: 150px; 3 | line-height: 0; 4 | color: rgba(0, 0, 0, 0.1); 5 | } 6 | -------------------------------------------------------------------------------- /client/src/components/form-field/FormLabel.tsx: -------------------------------------------------------------------------------- 1 | import { Label } from "reactstrap"; 2 | import { InputLabel } from "../formlabels/FormLabels"; 3 | 4 | type FormLabelProps = { 5 | name: string; 6 | label: string; 7 | required?: boolean; 8 | }; 9 | 10 | function FormLabel({ name, label, required }: FormLabelProps) { 11 | return ( 12 | 15 | ); 16 | } 17 | 18 | export default FormLabel; 19 | -------------------------------------------------------------------------------- /client/src/components/form-field/form-field.types.ts: -------------------------------------------------------------------------------- 1 | export type SetInputsValue = { target: unknown; type: unknown }; 2 | -------------------------------------------------------------------------------- /client/src/components/formlabels/FormLabels.css: -------------------------------------------------------------------------------- 1 | .helper-label { 2 | font-style: italic; 3 | padding-right: 10px; 4 | } 5 | 6 | .error-feedback { 7 | line-height: 16px; 8 | color: var(--bs-danger); 9 | padding-top: 6px; 10 | display: block; 11 | } 12 | 13 | .success-feedback { 14 | line-height: 16px; 15 | color: var(--bs-success); 16 | padding-top: 6px; 17 | font-size: medium; 18 | display: inline; 19 | width: auto; 20 | min-width: 100px; 21 | text-align: center; 22 | } 23 | 24 | .input-hint { 25 | line-height: 16px; 26 | padding-top: 5px; 27 | display: block; 28 | } 29 | -------------------------------------------------------------------------------- /client/src/components/formschema/FormSchema.css: -------------------------------------------------------------------------------- 1 | .rk-forms { 2 | max-width: 650px; 3 | } 4 | 5 | @media (min-width: 1200px) { 6 | .col-xl-forms--header { 7 | position: absolute; 8 | width: 250px !important; 9 | flex: none; 10 | } 11 | 12 | .rk-forms { 13 | margin: auto; 14 | } 15 | } 16 | 17 | @media (min-width: 1440px) { 18 | .col-xl-forms--header { 19 | width: 300px !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /client/src/components/icons/ChevronFlippedIcon.module.scss: -------------------------------------------------------------------------------- 1 | /* Reuse the accordion CSS styles for the chevron */ 2 | .chevron { 3 | transition: var(--bs-accordion-btn-icon-transition); 4 | 5 | &IsOpen { 6 | transform: var(--bs-accordion-btn-icon-transform); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /client/src/components/list/ListCard.css: -------------------------------------------------------------------------------- 1 | .visibility-icon { 2 | position: relative; 3 | top: -3px; 4 | } 5 | 6 | .list-card { 7 | max-width: 400px; 8 | margin: auto; 9 | } 10 | 11 | .card-title { 12 | font-size: 24px; 13 | } 14 | 15 | .card-footer { 16 | background-color: white; 17 | height: 70px; 18 | } 19 | 20 | /*tmp styles*/ 21 | .text-rk-text { 22 | color: var(--bs-rk-text); 23 | } 24 | .bg-rk-text { 25 | background-color: var(--bs-rk-text); 26 | } 27 | -------------------------------------------------------------------------------- /client/src/components/modal/ScrollableModal.module.scss: -------------------------------------------------------------------------------- 1 | .modal :global(.modal-content) { 2 | height: unset !important; 3 | 4 | & :global(.modal-body) { 5 | max-height: 75vh; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /client/src/components/navbar/NavBarItem.module.scss: -------------------------------------------------------------------------------- 1 | .dropdownMenu { 2 | z-index: 1100; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/navbar/navbar.constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2023 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const RENKU_LOGO = "/static/public/img/logo.svg"; 20 | -------------------------------------------------------------------------------- /client/src/components/notebook/modules.d.ts: -------------------------------------------------------------------------------- 1 | declare module "react-katex"; 2 | declare module "rehype-katex"; // eslint-disable-line spellcheck/spell-checker 3 | declare module "rehype-stringify"; // eslint-disable-line spellcheck/spell-checker 4 | declare module "remark-math"; 5 | declare module "remark-rehype"; // eslint-disable-line spellcheck/spell-checker 6 | -------------------------------------------------------------------------------- /client/src/components/quicknav/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2017 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | import { QuickNavContainer as QuickNav } from "./QuickNav.container"; 20 | export default QuickNav; 21 | -------------------------------------------------------------------------------- /client/src/components/sortingEntities/SortingEntities.css: -------------------------------------------------------------------------------- 1 | .sorting-label { 2 | font-size: larger; 3 | font-weight: bold; 4 | } 5 | 6 | .sorting-label--desk { 7 | min-width: 60px; 8 | } 9 | 10 | .sorting--mobile { 11 | margin-top: 40px; 12 | } 13 | 14 | .sorting-input { 15 | max-width: 230px; 16 | } 17 | -------------------------------------------------------------------------------- /client/src/components/typeEntityFilter/TypeEntityFilter.css: -------------------------------------------------------------------------------- 1 | .filter-label { 2 | font-size: medium; 3 | font-weight: bold; 4 | } 5 | 6 | .type-entity-label { 7 | width: 100px; 8 | margin-top: 0.2rem; 9 | } 10 | 11 | .type-entity-icon { 12 | margin-top: 0.5rem; 13 | width: 24px; 14 | } 15 | -------------------------------------------------------------------------------- /client/src/components/userRolesFilter/userRolesFilter.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export interface UserRoles { 20 | owner: boolean; 21 | maintainer: boolean; 22 | reader: boolean; 23 | } 24 | -------------------------------------------------------------------------------- /client/src/components/visibility/Visibility.css: -------------------------------------------------------------------------------- 1 | .visibilities-box { 2 | display: flex; 3 | flex-wrap: wrap; 4 | justify-content: space-between; 5 | margin: 0; 6 | } 7 | 8 | .visibility-box { 9 | margin: 5px 0; 10 | } 11 | 12 | .visibility-box label { 13 | padding: 0 5px 0 0; 14 | } 15 | 16 | .visibility-box input { 17 | cursor: pointer; 18 | } 19 | 20 | .visibility-input { 21 | border: solid 1px var(--bs-primary); 22 | } 23 | 24 | .visibility-input--error { 25 | border: solid 1px var(--bs-danger); 26 | } 27 | -------------------------------------------------------------------------------- /client/src/components/visibilityFilter/VisibilityFilter.css: -------------------------------------------------------------------------------- 1 | .filter-label { 2 | font-size: medium; 3 | font-weight: bold; 4 | } 5 | 6 | .visibility-label { 7 | margin-top: 0.2rem; 8 | } 9 | 10 | .visibility-icon { 11 | margin-top: 0.5rem; 12 | } 13 | -------------------------------------------------------------------------------- /client/src/dataset/addtoproject/DatasetAdd.types.ts: -------------------------------------------------------------------------------- 1 | import { IDataset } from "../../features/project/project.types"; 2 | 3 | interface AddDatasetDataset extends IDataset { 4 | fetchError: unknown; 5 | project?: ExistingProject; 6 | } 7 | type AddDatasetHandlers = { 8 | setCurrentStatus: (status: AddDatasetStatus | null) => void; 9 | submitCallback: (project: SubmitProject) => void; 10 | validateProject: (project: SubmitProject, isDatasetValid: boolean) => void; 11 | }; 12 | 13 | type AddDatasetStatus = { status: string; text?: string }; 14 | 15 | type SubmitProject = { 16 | name: string; 17 | value: string; 18 | default_branch: string; 19 | }; 20 | 21 | interface ExistingProject extends SubmitProject { 22 | access_level: number; 23 | http_url_to_repo: string; 24 | id: string; 25 | path: string; 26 | path_with_namespace: string; 27 | } 28 | 29 | export type { 30 | AddDatasetDataset, 31 | AddDatasetHandlers, 32 | AddDatasetStatus, 33 | ExistingProject, 34 | SubmitProject, 35 | }; 36 | -------------------------------------------------------------------------------- /client/src/features/ProjectPageV2/ProjectPageContent/ProjectInformation/ProjectInformation.module.scss: -------------------------------------------------------------------------------- 1 | .projectPageImgPlaceholder img { 2 | max-width: 200px; 3 | height: auto; 4 | background-color: var(--bs-gray); 5 | } 6 | -------------------------------------------------------------------------------- /client/src/features/ProjectPageV2/ProjectPageContent/SessionSecrets/fields/SelectUserSecretField.module.scss: -------------------------------------------------------------------------------- 1 | .option { 2 | &:hover, 3 | &IsFocused { 4 | background-color: #e4e7ea; 5 | } 6 | 7 | &IsSelected { 8 | background-color: #e4e7ea80; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /client/src/features/ProjectPageV2/ProjectPageContent/SessionSecrets/sessionSecrets.constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const SESSION_SECRETS_CARD_ID = "project-settings-session-secrets"; 20 | -------------------------------------------------------------------------------- /client/src/features/ProjectPageV2/ProjectPageHeader/ProjectTemplateInfoBanner.module.css: -------------------------------------------------------------------------------- 1 | .modalBody { 2 | max-height: 50vh; 3 | } 4 | 5 | /* this is needed for correct alignment */ 6 | .projectCopiesButton { 7 | position: relative; 8 | top: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /client/src/features/ProjectPageV2/ProjectPageNav/ProjectPageNav.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/variables-dark"; 4 | @import "~bootstrap/scss/maps"; 5 | @import "~bootstrap/scss/mixins"; 6 | 7 | .navLink { 8 | color: var(--bs-rk-text); 9 | &:hover { 10 | text-decoration: underline; 11 | text-underline-offset: 5px; 12 | } 13 | &:global(.active) { 14 | font-weight: bold; 15 | text-decoration: underline; 16 | text-underline-offset: 5px; 17 | padding: 0; 18 | margin-bottom: 0; 19 | color: var(--bs-rk-text); 20 | } 21 | @include media-breakpoint-up(lg) { 22 | & { 23 | color: var(--bs-rk-text-light); 24 | &:hover { 25 | color: var(--bs-rk-text); 26 | } 27 | } 28 | &:global(.active) { 29 | color: var(--bs-rk-text); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /client/src/features/ProjectPageV2/settings/projectSettings.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | import type { ProjectPatch } from "../../projectsV2/api/projectV2.api"; 20 | 21 | export type ProjectV2Metadata = Omit; 22 | -------------------------------------------------------------------------------- /client/src/features/admin/AddManyUsersToResourcePoolButton.module.scss: -------------------------------------------------------------------------------- 1 | .modal :global(.modal-content) { 2 | height: unset !important; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/features/admin/UpdateResourceClassButton.module.scss: -------------------------------------------------------------------------------- 1 | .modal :global(.modal-content) { 2 | height: unset !important; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/features/connectedServices/ContactUsCard.module.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | background-color: rgba(var(--bs-primary-rgb), 0.1) !important; 3 | 4 | &:hover { 5 | background-color: var(--bs-primary-bg-subtle) !important; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /client/src/features/connectedServices/connectedServices.constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const INTERNAL_GITLAB_PROVIDER_ID = "INTERNAL_GITLAB"; 20 | -------------------------------------------------------------------------------- /client/src/features/dashboard/components/DashboardMessage.module.scss: -------------------------------------------------------------------------------- 1 | .plainAlert { 2 | --bs-alert-bg: var(--bs-rk-white); 3 | } 4 | 5 | .readMore { 6 | color: unset; 7 | text-decoration: unset; 8 | border-bottom: 1px solid transparent; 9 | 10 | &:hover { 11 | border-bottom-color: var(--bs-body-color); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /client/src/features/dashboardV2/DashboardV2.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/variables-dark"; 4 | @import "~bootstrap/scss/maps"; 5 | @import "~bootstrap/scss/mixins"; 6 | 7 | .DashboardHeader { 8 | height: auto; 9 | } 10 | 11 | .DashboardHeaderImg { 12 | height: 150px; 13 | background-image: url("/dashboardV2header.png"); 14 | background-size: cover; 15 | background-position: top center; 16 | overflow: hidden; 17 | } 18 | 19 | .AnonymousAvatar { 20 | width: 64px; 21 | height: 64px; 22 | } 23 | 24 | .DashboardCard { 25 | background-color: rgba(var(--bs-primary-rgb), 0.1) !important; 26 | 27 | &:hover { 28 | background-color: var(--bs-primary-bg-subtle) !important; 29 | } 30 | } 31 | 32 | .FooterCard { 33 | a svg, 34 | a img { 35 | transition: all 0.3s linear; 36 | } 37 | a:hover svg, 38 | a:focus svg, 39 | a:hover img, 40 | a:focus img { 41 | transform: scale(1.3); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /client/src/features/dashboardV2/DashboardV2Sessions.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/variables-dark"; 4 | @import "~bootstrap/scss/maps"; 5 | @import "~bootstrap/scss/mixins"; 6 | 7 | .sessionButton { 8 | bottom: 0; 9 | margin-bottom: 1rem; 10 | 11 | @include media-breakpoint-up(md) { 12 | top: 0; 13 | margin-top: 1rem; 14 | right: 0; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /client/src/features/dataConnectorsV2/components/DataConnectorModal/DataConnectorModal.module.scss: -------------------------------------------------------------------------------- 1 | @import "/src/styles/bootstrap/_custom_bootstrap_variables.scss"; 2 | 3 | .modal :global(.modal-content) { 4 | height: unset !important; 5 | } 6 | 7 | .listGroupItemActive { 8 | border: 1px solid $rk-green !important; 9 | color: $rk-green; 10 | &:hover { 11 | color: $rk-green; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /client/src/features/dataConnectorsV2/components/dataConnector.constants.ts: -------------------------------------------------------------------------------- 1 | export const DATA_CONNECTORS_VISIBILITY_WARNING = 2 | "Some members of this project may not be able to access this data connector"; 3 | 4 | export const DATA_CONNECTORS_DOI_DOCS_URL = 5 | "https://renku.notion.site/How-to-connect-data-from-data-repositories-such-as-Zenodo-1eb0df2efafc802ab3bef1c47c8c45b4"; 6 | -------------------------------------------------------------------------------- /client/src/features/display/index.ts: -------------------------------------------------------------------------------- 1 | import { Display, ProjectConfig } from "./display.types"; 2 | import { 3 | displaySlice, 4 | hideSshModal, 5 | reset, 6 | resetFavicon, 7 | setFavicon, 8 | showSshModal, 9 | toggleSshModal, 10 | } from "./displaySlice"; 11 | 12 | export { 13 | displaySlice, 14 | hideSshModal, 15 | reset, 16 | resetFavicon, 17 | setFavicon, 18 | showSshModal, 19 | toggleSshModal, 20 | }; 21 | export type { Display, ProjectConfig }; 22 | -------------------------------------------------------------------------------- /client/src/features/groupsV2/new/createGroup.constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const GROUP_CREATION_HASH = "create-group"; 20 | -------------------------------------------------------------------------------- /client/src/features/inactiveKgProjects/inactiveKgProjects.css: -------------------------------------------------------------------------------- 1 | .inactive-kg-projects-table th { 2 | font-weight: normal; 3 | vertical-align: middle; 4 | } 5 | 6 | .inactive-kg-projects-table td { 7 | vertical-align: middle; 8 | } 9 | 10 | .inactive-kg-projects-table svg { 11 | min-width: 24px; 12 | } 13 | 14 | .inactive-kg-projects-table thead th { 15 | border-color: white; 16 | } 17 | 18 | .inactive-kg-projects-table tr:hover { 19 | background-color: var(--bs-rk-background-0); 20 | } 21 | 22 | .activationHeader { 23 | font-size: 27px; 24 | } 25 | .project-title-table { 26 | max-width: 300px; 27 | } 28 | -------------------------------------------------------------------------------- /client/src/features/kgSearch/index.ts: -------------------------------------------------------------------------------- 1 | import { kgSearchApi } from "./KgSearchApi"; 2 | import { 3 | EntityType, 4 | KgSearchResultLink, 5 | KgSearchResult, 6 | } from "./KgSearch.types"; 7 | import { stateToSearchString } from "./KgSearchState"; 8 | 9 | export { kgSearchApi, EntityType, stateToSearchString }; 10 | export type { KgSearchResult, KgSearchResultLink }; 11 | -------------------------------------------------------------------------------- /client/src/features/landing/assets/btnJupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/btnJupyter.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/btnJupyterSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/btnJupyterSelected.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/btnR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/btnR.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/btnRSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/btnRSelected.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/btnVS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/btnVS.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/btnVSSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/btnVSSelected.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/research.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/research.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/templateJupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/templateJupyter.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/templateR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/templateR.png -------------------------------------------------------------------------------- /client/src/features/landing/assets/templateVS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/landing/assets/templateVS.png -------------------------------------------------------------------------------- /client/src/features/landing/components/Benefits/Benefits.module.scss: -------------------------------------------------------------------------------- 1 | .BenefitsIcon { 2 | top: -65px; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/features/landing/components/Dividier/Divider.module.css: -------------------------------------------------------------------------------- 1 | .dividerLandingPage { 2 | background-image: url("../../assets/dividerDots.svg"); 3 | min-height: 252px; 4 | background-attachment: fixed; 5 | background-position: center; 6 | background-repeat: repeat; 7 | background-size: 1500px; 8 | } 9 | -------------------------------------------------------------------------------- /client/src/features/landing/components/GetStarted/GetStarted.module.scss: -------------------------------------------------------------------------------- 1 | .GetStartedImg { 2 | max-width: 470px; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/features/landing/components/Introduction/Introduction.module.scss: -------------------------------------------------------------------------------- 1 | .IntroductionRenku20Bg { 2 | background-image: url("../../assets/dividerDots.svg"); 3 | } 4 | 5 | .IntroductionRenku20Sections { 6 | max-width: 1200px; 7 | margin: auto; 8 | } 9 | -------------------------------------------------------------------------------- /client/src/features/landing/components/NavBar/NavBar.css: -------------------------------------------------------------------------------- 1 | /* DO WE NEED THIS??? */ 2 | .footer .navbar .nav-link { 3 | padding: 0.5rem; 4 | white-space: nowrap; 5 | } 6 | 7 | .icons-menu a { 8 | vertical-align: middle; 9 | outline-style: none; 10 | } 11 | .icons-menu svg { 12 | outline-style: none; 13 | } 14 | 15 | .menu-right { 16 | margin: auto; 17 | flex-grow: 0; 18 | } 19 | 20 | .menu-right ul { 21 | justify-content: space-between; 22 | } 23 | -------------------------------------------------------------------------------- /client/src/features/landing/components/ResourcesSupport/Resources.module.scss: -------------------------------------------------------------------------------- 1 | .RenkuCard:hover img { 2 | content: url("../../assets/renkuColor.svg"); 3 | } 4 | -------------------------------------------------------------------------------- /client/src/features/landing/components/TemplateSlider/TemplateSlider.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/variables-dark"; 4 | @import "~bootstrap/scss/maps"; 5 | @import "~bootstrap/scss/mixins"; 6 | 7 | .templateSlideContainer { 8 | position: relative; 9 | display: flex; 10 | justify-content: center; 11 | } 12 | 13 | .templateSliderBtn { 14 | display: flex; 15 | flex-direction: row; 16 | gap: 10px; 17 | justify-content: space-between; 18 | position: absolute; 19 | bottom: -30px; 20 | } 21 | 22 | .templateSliderProgress { 23 | margin: 2px; 24 | margin-right: 6px; 25 | margin-top: 2px; 26 | margin-bottom: 6px; 27 | border-end-start-radius: 8px; 28 | border-end-end-radius: 8px; 29 | } 30 | 31 | .templateSliderProgressBar { 32 | height: 8px; 33 | --#{$prefix}progress-bar-transition: "none"; 34 | } 35 | -------------------------------------------------------------------------------- /client/src/features/permissionsV2/permissions.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export type RequestedPermission = "write" | "delete" | "change_membership"; 20 | 21 | export type Permissions = { 22 | [key in RequestedPermission]: boolean; 23 | }; 24 | -------------------------------------------------------------------------------- /client/src/features/project/GitLab.constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2023 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const RENKU_CONFIG_FILE_PATH = ".renku/renku.ini"; 20 | 21 | export const MAX_GITLAB_REPOSITORY_BRANCH_PAGES = 10; 22 | export const MAX_GITLAB_REPOSITORY_COMMIT_PAGES = 10; 23 | -------------------------------------------------------------------------------- /client/src/features/project/components/ProjectSettingsSessions.module.scss: -------------------------------------------------------------------------------- 1 | .accordion { 2 | --bs-accordion-btn-padding-x: 0; 3 | --bs-accordion-body-padding-x: 0; 4 | 5 | --bs-accordion-btn-bg: transparent; 6 | --bs-accordion-active-bg: transparent; 7 | 8 | --bs-accordion-btn-color: var(--bs-body-color); 9 | --bs-accordion-active-color: var(--bs-body-color); 10 | 11 | --bs-accordion-btn-focus-box-shadow: inset 0 12 | calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-rk-green); 13 | } 14 | 15 | .pinnedImageButton { 16 | margin-left: -1px !important; 17 | } 18 | 19 | .unknownOptionGroup { 20 | & :global(.form-control) { 21 | border-radius: 0; 22 | } 23 | } 24 | 25 | .inputNumber { 26 | :global(.input-group) & { 27 | border-radius: 0; 28 | } 29 | 30 | &Group { 31 | max-width: 200px; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /client/src/features/project/components/cloudStorage/CloudStorage.module.scss: -------------------------------------------------------------------------------- 1 | @import "/src/styles/bootstrap/_custom_bootstrap_variables.scss"; 2 | 3 | .modal :global(.modal-content) { 4 | height: unset !important; 5 | } 6 | 7 | .listGroupItemActive { 8 | border: 1px solid $rk-green !important; 9 | color: $rk-green; 10 | &:hover { 11 | color: $rk-green; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /client/src/features/project/components/migrations/migrations.module.scss: -------------------------------------------------------------------------------- 1 | .projectStatusSection { 2 | display: flex; 3 | padding: 0.5rem 0; 4 | } 5 | 6 | .projectStatusDetailsSection { 7 | padding: 1rem 0 1rem 1rem; 8 | border-bottom: black 1px dashed; 9 | 10 | &:first-child { 11 | border-top: black 1px dashed; 12 | } 13 | } 14 | 15 | .sectionTitle { 16 | border-bottom: 1px solid transparent; 17 | 18 | &Expandable:hover { 19 | border-bottom-color: var(--bs-body-color); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /client/src/features/project/components/projectMigration/ProjectEntityMigration.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/project/components/projectMigration/ProjectEntityMigration.tsx -------------------------------------------------------------------------------- /client/src/features/project/dataset/dataset.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2023 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export type DatasetImage = { 20 | content_url?: string; 21 | file_id?: string; 22 | position: number; 23 | mirror_locally: boolean; 24 | }; 25 | -------------------------------------------------------------------------------- /client/src/features/project/dataset/index.ts: -------------------------------------------------------------------------------- 1 | import { datasetFormSlice, setFiles, reset } from "./datasetForm.slice"; 2 | 3 | import type { 4 | DatasetFormState, 5 | DatasetUploaderFile, 6 | } from "./datasetForm.slice"; 7 | 8 | export { datasetFormSlice, setFiles, reset }; 9 | export type { DatasetFormState, DatasetUploaderFile }; 10 | -------------------------------------------------------------------------------- /client/src/features/project/index.ts: -------------------------------------------------------------------------------- 1 | import ProjectDatasetsListView from "./dataset/ProjectDatasetsListView"; 2 | import ProjectDatasetsView from "./dataset/ProjectDatasetsView"; 3 | import ProjectDatasetShow from "./dataset/ProjectDatasetShow"; 4 | import { ProjectEntityHeader } from "./components/ProjectEntityHeader"; 5 | import { ProjectFileLineage, ProjectFileView } from "./components/File"; 6 | 7 | export { ProjectEntityHeader }; 8 | export { ProjectDatasetsListView, ProjectDatasetShow, ProjectDatasetsView }; 9 | export { ProjectFileLineage, ProjectFileView }; 10 | -------------------------------------------------------------------------------- /client/src/features/projects/projects.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2023 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export interface GetProjectsFromSlugsParams { 20 | projectSlugs: string[]; 21 | } 22 | -------------------------------------------------------------------------------- /client/src/features/projectsV2/fields/ProjectNamespaceFormField.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | 4 | .control { 5 | cursor: pointer !important; 6 | } 7 | 8 | .option { 9 | cursor: pointer !important; 10 | 11 | &:hover, 12 | &IsFocused { 13 | background-color: #e4e7ea; 14 | } 15 | 16 | &IsSelected { 17 | background-color: #e4e7ea80; 18 | } 19 | } 20 | 21 | .zDropdown { 22 | z-index: $zindex-dropdown !important; 23 | } 24 | -------------------------------------------------------------------------------- /client/src/features/projectsV2/fields/RenkuV1FormFields.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "../../../styles/bootstrap/_custom_bootstrap_variables.scss"; 4 | 5 | .RenkuV1btnCheck:checked + label { 6 | background-color: #{$rk-green} !important; 7 | color: white !important; 8 | border-color: #{$rk-green} !important; 9 | } 10 | 11 | .RenkuV1inputGroup { 12 | border-top-left-radius: 0 !important; 13 | border-bottom-left-radius: 0 !important; 14 | } 15 | 16 | .RenkuV1input:focus { 17 | border: 1px solid var(--bs-rk-green) !important; 18 | } 19 | -------------------------------------------------------------------------------- /client/src/features/projectsV2/list/GroupList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/projectsV2/list/GroupList.tsx -------------------------------------------------------------------------------- /client/src/features/projectsV2/new/createProjectV2.constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const PROJECT_CREATION_HASH = "create-project"; 20 | -------------------------------------------------------------------------------- /client/src/features/projectsV2/projectV2.types.ts: -------------------------------------------------------------------------------- 1 | import type { Role, Visibility } from "./api/projectV2.api"; 2 | 3 | export type ProjectVisibility = Visibility; 4 | export type ProjectRole = Role; 5 | 6 | export interface Project { 7 | access: { 8 | members: ProjectMember[]; 9 | visibility: ProjectVisibility; 10 | }; 11 | content: { 12 | repositories: Repository[]; 13 | }; 14 | metadata: { 15 | name: string; 16 | namespace: string; 17 | slug: string; 18 | description: string; 19 | }; 20 | } 21 | 22 | export interface ProjectMember { 23 | providerId?: string; 24 | email: string; 25 | role: ProjectRole; 26 | } 27 | 28 | export interface Repository { 29 | url: string; 30 | } 31 | -------------------------------------------------------------------------------- /client/src/features/projectsV2/shared/WipBadge.module.scss: -------------------------------------------------------------------------------- 1 | .EarlyAccessBadge { 2 | background-color: #ca4e86 !important; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/features/projectsV2/show/projectV2Show.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2023 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export type SettingEditOption = "metadata" | "members" | "repositories" | null; 20 | -------------------------------------------------------------------------------- /client/src/features/searchV2/components/SearchV2Filters.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License 17 | */ 18 | 19 | export type SearchV2Visualization = "accordion" | "list"; 20 | -------------------------------------------------------------------------------- /client/src/features/session/components/SessionModals.module.scss: -------------------------------------------------------------------------------- 1 | .sessionModal :global(.modal-title) { 2 | font-weight: 600; 3 | } 4 | 5 | .aboutModal, 6 | .resourcesModal { 7 | :global(.modal-title) { 8 | font-size: 27px; 9 | font-weight: 600; 10 | } 11 | 12 | :global(h3) { 13 | font-size: 16px; 14 | } 15 | } 16 | 17 | .aboutModal { 18 | max-width: 850px; 19 | } 20 | 21 | .aboutBox { 22 | gap: 30px; 23 | } 24 | 25 | .resourcesHeaderNav { 26 | font-weight: normal; 27 | font-size: 16px; 28 | } 29 | 30 | .resourcesCard { 31 | padding: 20px; 32 | overflow: auto; 33 | } 34 | -------------------------------------------------------------------------------- /client/src/features/session/components/ShowSession.module.scss: -------------------------------------------------------------------------------- 1 | .fullscreenHeader { 2 | height: 42px; 3 | box-shadow: 0 4px 10px rgb(0 0 0 / 10%); 4 | } 5 | 6 | .fullscreenContent { 7 | height: calc(100vh - 42px); 8 | background-color: var(--bs-rk-background-0); 9 | } 10 | -------------------------------------------------------------------------------- /client/src/features/session/components/options/SessionBranchOption.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/variables-dark"; 4 | @import "~bootstrap/scss/maps"; 5 | @import "~bootstrap/scss/mixins"; 6 | 7 | .formSelect { 8 | --bs-border-color: var(--bs-rk-border-input); 9 | } 10 | 11 | .control { 12 | background: var(--bs-rk-white); 13 | --bs-border-color: var(--bs-rk-border-input); 14 | 15 | cursor: pointer !important; 16 | 17 | &:hover { 18 | --bs-border-color: var(--bs-rk-green); 19 | } 20 | 21 | &IsOpen { 22 | --bs-border-color: var(--bs-rk-green); 23 | } 24 | } 25 | 26 | .menu { 27 | background: var(--bs-rk-white); 28 | --bs-border-color: var(--bs-rk-green); 29 | z-index: 10 !important; 30 | } 31 | 32 | .option { 33 | cursor: pointer !important; 34 | 35 | &:hover, 36 | &IsFocused { 37 | background-color: #e4e7ea; 38 | } 39 | 40 | &IsSelected { 41 | background-color: #e4e7ea80; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /client/src/features/session/components/options/fetchMore.types.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2024 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export interface PaginatedState { 20 | data: T[] | undefined; 21 | fetchedPages: number; 22 | hasMore: boolean; 23 | currentRequestId: string; 24 | } 25 | -------------------------------------------------------------------------------- /client/src/features/sessionsV2/SessionLauncherFormContent.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/features/sessionsV2/SessionLauncherFormContent.tsx -------------------------------------------------------------------------------- /client/src/features/sessionsV2/SessionList/Session.module.scss: -------------------------------------------------------------------------------- 1 | .SessionLauncherCard { 2 | &:hover { 3 | box-shadow: rgba(50, 50, 93, 0.25) 0 2px 10px -1px, 4 | rgba(0, 0, 0, 0.3) 0px 1px 3px -1px !important; 5 | } 6 | } 7 | 8 | .SessionLine { 9 | left: 40px; 10 | } 11 | -------------------------------------------------------------------------------- /client/src/features/sessionsV2/components/SessionForm/Select.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | 4 | .control { 5 | cursor: pointer !important; 6 | } 7 | 8 | .option { 9 | cursor: pointer !important; 10 | 11 | &:hover, 12 | &IsFocused { 13 | background-color: #e4e7ea; 14 | } 15 | 16 | &IsSelected { 17 | background-color: #e4e7ea80; 18 | } 19 | 20 | &IsDisabled { 21 | cursor: not-allowed !important; 22 | &:hover { 23 | background-color: unset; 24 | } 25 | } 26 | } 27 | 28 | .zDropdown { 29 | z-index: $zindex-dropdown !important; 30 | } 31 | -------------------------------------------------------------------------------- /client/src/features/usersV2/show/UserAvatar.module.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/variables-dark"; 4 | @import "~bootstrap/scss/maps"; 5 | @import "~bootstrap/scss/mixins"; 6 | 7 | .avatar { 8 | --size: 28px; 9 | --font-size: 14px; 10 | 11 | height: var(--size); 12 | width: var(--size); 13 | font-size: var(--font-size); 14 | 15 | &.medium { 16 | --size: 43px; 17 | --font-size: 20px; 18 | } 19 | 20 | &.large { 21 | --size: 56px; 22 | --font-size: 24px; 23 | } 24 | 25 | &.extraLarge { 26 | --size: 56px; 27 | --font-size: 24px; 28 | } 29 | 30 | &.extraLarge { 31 | --size: 56px; 32 | --font-size: 24px; 33 | } 34 | } 35 | 36 | .typeBadge { 37 | width: 75px; 38 | height: 65px; 39 | } 40 | -------------------------------------------------------------------------------- /client/src/file/File.module.scss: -------------------------------------------------------------------------------- 1 | .fileIconLinks { 2 | :global(.icon-link) { 3 | margin-left: 0; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /client/src/job/Job.js: -------------------------------------------------------------------------------- 1 | const JobStatusMap = { 2 | ENQUEUED: "ENQUEUED", 3 | IN_PROGRESS: "IN_PROGRESS", 4 | COMPLETED: "COMPLETED", 5 | FAILED: "FAILED", 6 | }; 7 | 8 | //WE SHOULD ADD HERE GENERAL JOB MONITORING FUNCTIONS/COMPONENTS (IN THE FUTURE) 9 | 10 | export { JobStatusMap }; 11 | -------------------------------------------------------------------------------- /client/src/not-found/NotFound.css: -------------------------------------------------------------------------------- 1 | .not-found-box { 2 | background-position: center; 3 | background-size: cover; 4 | /* calc 100vh - footer height - header height */ 5 | height: calc(100vh - 60px - 66px); 6 | background-image: url("../styles/assets/404@0.25x.png"); 7 | color: var(--bs-rk-pink); 8 | overflow: auto; 9 | width: 100%; 10 | } 11 | 12 | .not-found-box-text { 13 | padding: 20px; 14 | background-color: rgba(var(--bs-rk-blue-rgb), 0.7); 15 | } 16 | .not-found-box-text:first-of-type { 17 | padding: 20px; 18 | max-width: 700px; 19 | } 20 | 21 | @media (min-width: 1024px) { 22 | .not-found-box-text { 23 | margin: 0 50px; 24 | } 25 | } 26 | 27 | @media (min-width: 1500px) { 28 | .not-found-box { 29 | background-image: url("../styles/assets/404@0.5x.png"); 30 | } 31 | } 32 | 33 | @media (min-width: 2200px) { 34 | .not-found-box { 35 | background-image: url("../styles/assets/404@0.75x.png"); 36 | padding: 0 4rem; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /client/src/notebooks/Notebooks.css: -------------------------------------------------------------------------------- 1 | .header-multiline h5 { 2 | line-height: 1.2; 3 | } 4 | 5 | .header-multiline small { 6 | font-size: 70%; 7 | font-style: italic; 8 | } 9 | -------------------------------------------------------------------------------- /client/src/notebooks/components/SessionCheatSheet.css: -------------------------------------------------------------------------------- 1 | div.commands { 2 | display: flex; 3 | flex-direction: column; 4 | min-width: 300px; 5 | padding: 10px; 6 | } 7 | div.commands .break { 8 | flex-basis: 100%; 9 | width: 0; 10 | } 11 | 12 | .commands h1 { 13 | border-bottom: 2px solid rgba(0, 0, 0, 0.2); 14 | } 15 | 16 | .command { 17 | flex-grow: 1; 18 | padding: 0 20px 5px 0; 19 | } 20 | 21 | .commands div.commands-row div:not(.command) { 22 | flex-basis: 0; 23 | flex-grow: 1; 24 | padding: 0 20px 5px 0; 25 | } 26 | 27 | .commands div.commands-row div h2 { 28 | font-size: 1.5rem; 29 | font-weight: bold; 30 | } 31 | 32 | .renku-info { 33 | color: rgb(90, 90, 90); 34 | } 35 | -------------------------------------------------------------------------------- /client/src/project/settings/ProjectSettings.present.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/project/settings/ProjectSettings.present.js -------------------------------------------------------------------------------- /client/src/project/shared/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/project/shared/index.js -------------------------------------------------------------------------------- /client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // ? reference: https://www.npmjs.com/package/jest-localstorage-mock#in-create-react-app 2 | import "jest-localstorage-mock"; 3 | 4 | if (global.document) { 5 | document.createRange = () => ({ 6 | setStart: () => { 7 | // eslint-disable-line @typescript-eslint/no-empty-function 8 | }, 9 | setEnd: () => { 10 | // eslint-disable-line @typescript-eslint/no-empty-function 11 | }, 12 | commonAncestorContainer: { 13 | nodeName: "BODY", 14 | ownerDocument: document, 15 | }, 16 | createContextualFragment: (html) => { 17 | const div = document.createElement("div"); 18 | div.innerHTML = html; 19 | return div.children[0]; // so hokey it's not even funny 20 | }, 21 | }); 22 | } 23 | if (global.console) { 24 | global.console = { 25 | ...console, 26 | log: jest.fn(), 27 | debug: jest.fn(), 28 | }; 29 | } 30 | global.IS_REACT_ACT_ENVIRONMENT = true; 31 | -------------------------------------------------------------------------------- /client/src/statuspage/statuspage.css: -------------------------------------------------------------------------------- 1 | .loud { 2 | font-size: "larger"; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/storybook/bootstrap/ColorPalette.module.scss: -------------------------------------------------------------------------------- 1 | .colorPalette { 2 | display: flex; 3 | flex-direction: column; 4 | } 5 | 6 | .colorItem { 7 | width: 100%; 8 | height: 100px; 9 | display: flex; 10 | align-items: center; 11 | justify-content: center; 12 | margin: 10px; 13 | color: #000; 14 | font-weight: bold; 15 | text-align: center; 16 | border-radius: 8px; 17 | 18 | .colorInfo { 19 | padding: 5px; 20 | border-radius: 4px; 21 | 22 | .colorName, 23 | .colorHex { 24 | display: block; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /client/src/styles/.gitignore: -------------------------------------------------------------------------------- 1 | index.css 2 | index.css.map 3 | icons.css 4 | icons.css.map 5 | -------------------------------------------------------------------------------- /client/src/styles/assets/404@0.25x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/404@0.25x.png -------------------------------------------------------------------------------- /client/src/styles/assets/404@0.5x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/404@0.5x.png -------------------------------------------------------------------------------- /client/src/styles/assets/404@0.75x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/404@0.75x.png -------------------------------------------------------------------------------- /client/src/styles/assets/block.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/src/styles/assets/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/src/styles/assets/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /client/src/styles/assets/datasetBackgroundLarge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/datasetBackgroundLarge.png -------------------------------------------------------------------------------- /client/src/styles/assets/datasetBackgroundSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/datasetBackgroundSmall.png -------------------------------------------------------------------------------- /client/src/styles/assets/error-background@0.50x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/error-background@0.50x.png -------------------------------------------------------------------------------- /client/src/styles/assets/error-background@1.00x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/error-background@1.00x.png -------------------------------------------------------------------------------- /client/src/styles/assets/failed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/Favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/Favicon.ico -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/Favicon16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/Favicon16px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/Favicon32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/Favicon32px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconError.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconError.ico -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconError16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconError16px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconError32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconError32px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconPause.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconPause.ico -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconPause16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconPause16px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconPause32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconPause32px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconRunning.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconRunning.ico -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconRunning16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconRunning16px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconRunning32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconRunning32px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconWaiting.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconWaiting.ico -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconWaiting16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconWaiting16px.png -------------------------------------------------------------------------------- /client/src/styles/assets/favicon/FaviconWaiting32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/favicon/FaviconWaiting32px.png -------------------------------------------------------------------------------- /client/src/styles/assets/lineBlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/lineBlock.png -------------------------------------------------------------------------------- /client/src/styles/assets/lineBlock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/src/styles/assets/lineFailed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/lineFailed.png -------------------------------------------------------------------------------- /client/src/styles/assets/lineFailed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/src/styles/assets/linePaused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/linePaused.png -------------------------------------------------------------------------------- /client/src/styles/assets/linePaused.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/src/styles/assets/linePlaying.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/linePlaying.png -------------------------------------------------------------------------------- /client/src/styles/assets/linePlaying.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/src/styles/assets/lineStopped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/lineStopped.png -------------------------------------------------------------------------------- /client/src/styles/assets/lineStopped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/src/styles/assets/paused.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/src/styles/assets/playing.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/src/styles/assets/projectBackgroundLarge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/projectBackgroundLarge.png -------------------------------------------------------------------------------- /client/src/styles/assets/projectBackgroundSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/projectBackgroundSmall.png -------------------------------------------------------------------------------- /client/src/styles/assets/puzzlePieces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/puzzlePieces.png -------------------------------------------------------------------------------- /client/src/styles/assets/stopped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/src/styles/assets/workflowBackgroundLarge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/workflowBackgroundLarge.png -------------------------------------------------------------------------------- /client/src/styles/assets/workflowBackgroundSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/assets/workflowBackgroundSmall.png -------------------------------------------------------------------------------- /client/src/styles/bootstrap/_custom_bootstrap.scss: -------------------------------------------------------------------------------- 1 | $colors: map-merge($colors, $rk-colors); 2 | -------------------------------------------------------------------------------- /client/src/styles/bootstrap_ext/_alert.scss: -------------------------------------------------------------------------------- 1 | .alert { 2 | padding: 29px; 3 | border: none; 4 | } 5 | 6 | .alert-dismissible { 7 | padding-right: 3rem; 8 | } 9 | 10 | .alert-info { 11 | color: $rk-info-text; 12 | border: 1px solid $rk-info-border; 13 | } 14 | 15 | .alert-success { 16 | color: $rk-success-text; 17 | border: 1px solid $rk-success-border; 18 | } 19 | 20 | .alert-warning { 21 | color: $rk-warning-text; 22 | border: 1px solid $rk-warning-border; 23 | } 24 | 25 | .alert-danger { 26 | color: $rk-danger-text; 27 | border: 1px solid $rk-danger-border; 28 | } 29 | -------------------------------------------------------------------------------- /client/src/styles/bootstrap_ext/_badge.scss: -------------------------------------------------------------------------------- 1 | .badge { 2 | border-radius: 5px; 3 | &.bg-warning { 4 | color: var(--bs-dark); 5 | } 6 | } 7 | 8 | .badge--entity-card { 9 | margin-right: 2px; 10 | } 11 | 12 | .lfs-badge { 13 | border-color: $rk-text; 14 | border-width: 1.3px; 15 | border-style: solid; 16 | margin-right: 7px; 17 | color: $rk-text; 18 | } 19 | -------------------------------------------------------------------------------- /client/src/styles/bootstrap_ext/_nav.scss: -------------------------------------------------------------------------------- 1 | .nav.nav-light { 2 | .nav-link { 3 | padding-left: 0em; 4 | color: $rk-text; 5 | } 6 | 7 | .nav-link:hover { 8 | color: $rk-dark; 9 | } 10 | 11 | .nav-link.active { 12 | color: $rk-dark; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /client/src/styles/components/_bootstrap_icons.scss: -------------------------------------------------------------------------------- 1 | .bi { 2 | width: 1em; 3 | height: 1em; 4 | 5 | display: inline-block; 6 | vertical-align: -0.125em; 7 | fill: currentcolor; 8 | } 9 | -------------------------------------------------------------------------------- /client/src/styles/components/_project_display.scss: -------------------------------------------------------------------------------- 1 | .rk-project-header { 2 | .col { 3 | min-height: 1.75rem; 4 | vertical-align: middle; 5 | } 6 | 7 | .rk-project-description { 8 | p { 9 | margin-bottom: 0rem; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /client/src/styles/components/_renku_files.scss: -------------------------------------------------------------------------------- 1 | .fileBarIconButton { 2 | .icon-link { 3 | color: $rk-text; 4 | &hover { 5 | background-color: red; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /client/src/styles/components/_renku_modals.scss: -------------------------------------------------------------------------------- 1 | .modal-content { 2 | border-radius: 8px; 3 | border: 0; 4 | background-color: var(--bs-rk-background-0); 5 | height: 100%; 6 | } 7 | 8 | .modal-header, 9 | .modal-footer { 10 | border: none; 11 | } 12 | -------------------------------------------------------------------------------- /client/src/styles/components/_renku_styleguide.scss: -------------------------------------------------------------------------------- 1 | .color-table { 2 | tbody { 3 | tr { 4 | td { 5 | padding: 2px 4px; 6 | font-family: monospace; 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Black.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Black.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-BlackItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-BlackItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Bold.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Bold.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-BoldItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-BoldItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraBold.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraBold.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraBoldItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraBoldItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraLight.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraLight.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraLight.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraLight.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraLightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraLightItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ExtraLightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ExtraLightItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Italic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Italic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Light.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Light.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-LightItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-LightItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Medium.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Medium.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-MediumItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-MediumItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-MediumItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Regular.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Regular.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-SemiBold.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-SemiBold.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-SemiBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-SemiBoldItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Thin.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-Thin.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ThinItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ThinItalic.woff -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-ThinItalic.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-italic.var.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-italic.var.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter-roman.var.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter-roman.var.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/Inter/Inter.var.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/client/src/styles/fonts/Inter/Inter.var.woff2 -------------------------------------------------------------------------------- /client/src/styles/fonts/_fonts.scss: -------------------------------------------------------------------------------- 1 | @import "./Inter/inter"; 2 | -------------------------------------------------------------------------------- /client/src/styles/icons/assets/danger.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /client/src/styles/icons/assets/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /client/src/styles/icons/assets/success.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /client/src/styles/icons/assets/warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /client/src/styles/icons/start-with-options.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /client/src/styles/renku_additional_classes.scss: -------------------------------------------------------------------------------- 1 | // Renku specific classes. 2 | // ? Add new one only when strictly necessary. Prefer combining existing bootstrap classes in all 3 | // ? other cases. 4 | 5 | // align boostrap icons when used inline as/with text 6 | .bi { 7 | display: inline-flex; 8 | height: 1em; 9 | vertical-align: -0.125em; 10 | width: 1em; 11 | } 12 | 13 | // Force the cursor to be a pointer 14 | .cursor-pointer { 15 | cursor: pointer !important; 16 | } 17 | -------------------------------------------------------------------------------- /client/src/styles/renku_bootstrap.scss: -------------------------------------------------------------------------------- 1 | // ? Bootstrap customization reference: 2 | // ? https://getbootstrap.com/docs/5.3/customize/sass/ 3 | 4 | // 1: Optional default variable overrides here (functions unavailable) 5 | 6 | @import "renku_bootstrap_customization.scss"; // Changes to bootstrap variables 7 | 8 | // 2: Import Bootstrap 9 | 10 | @import "~bootstrap/scss/bootstrap"; 11 | 12 | // 3: Optional custom code here 13 | 14 | @import "icons/icons.scss"; // Icons will be temporarily pahsed out and re-imported 15 | @import "renku_additional_classes.scss"; // Additional classes 16 | @import "renku_navy_theme.scss"; // Additional navy theme 17 | -------------------------------------------------------------------------------- /client/src/user/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2020 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | /** 20 | * renku-ui 21 | * 22 | * Components for interacting with user 23 | */ 24 | 25 | import { UserCoordinator } from "./User.state"; 26 | 27 | export { UserCoordinator }; 28 | -------------------------------------------------------------------------------- /client/src/utils/constants/Migrations.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2023 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | export const TemplateSourceRenku = "renku"; 20 | -------------------------------------------------------------------------------- /client/src/utils/helpers/ArrayUtils.ts: -------------------------------------------------------------------------------- 1 | export function arrayStringEquals(a: string[], b: string[]): boolean { 2 | return a.length === b.length && a.every((v, i) => v === b[i]); 3 | } 4 | -------------------------------------------------------------------------------- /client/src/utils/helpers/sentry/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2021 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | /** 20 | * renku-ui 21 | * 22 | * utils/sentry 23 | * Components for Sentry 24 | */ 25 | 26 | import { Sentry } from "./Sentry"; 27 | 28 | export { Sentry }; 29 | -------------------------------------------------------------------------------- /client/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line spellcheck/spell-checker 2 | /// 3 | -------------------------------------------------------------------------------- /client/src/workflows/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2022 - Swiss Data Science Center (SDSC) 3 | * A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 4 | * Eidgenössische Technische Hochschule Zürich (ETHZ). 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | import { WorkflowsList } from "./Workflows.container"; 20 | 21 | export { WorkflowsList }; 22 | -------------------------------------------------------------------------------- /client/testSetup.ts: -------------------------------------------------------------------------------- 1 | globalThis.IS_REACT_ACT_ENVIRONMENT = true; 2 | -------------------------------------------------------------------------------- /client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2021", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2021", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true, 22 | 23 | /* JavaScript support */ 24 | "allowJs": true 25 | }, 26 | "include": ["src"], 27 | "references": [{ "path": "./tsconfig.node.json" }] 28 | } 29 | -------------------------------------------------------------------------------- /client/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /client/vite.config.ts: -------------------------------------------------------------------------------- 1 | import eslintPlugin from "@nabla/vite-plugin-eslint"; 2 | import react from "@vitejs/plugin-react"; 3 | import { resolve } from "path"; 4 | import { defineConfig } from "vite"; 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | build: { 9 | outDir: "build", 10 | sourcemap: true, 11 | }, 12 | server: { 13 | allowedHosts: [".dev.renku.ch"], 14 | }, 15 | plugins: [react({ include: "/index.html" }), eslintPlugin()], 16 | resolve: { 17 | alias: { 18 | "~bootstrap": resolve(__dirname, "node_modules/bootstrap"), 19 | }, 20 | }, 21 | }); 22 | -------------------------------------------------------------------------------- /client/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import react from "@vitejs/plugin-react"; 2 | import { defineConfig } from "vitest/config"; 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | test: { 7 | globals: true, 8 | environment: "jsdom", 9 | singleThread: true, 10 | setupFiles: "./testSetup.ts", 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /github_deploy_key.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/github_deploy_key.enc -------------------------------------------------------------------------------- /helm-chart/README.rst: -------------------------------------------------------------------------------- 1 | Renku UI Helm Chart 2 | =================== 3 | 4 | Provide a basic chart for deploying Renku UI application. 5 | 6 | Configuration 7 | ------------- 8 | 9 | - `client.url` define the URL on the application will be available 10 | (default: `http://localhost:3000`) 11 | - `gitlabUrl` define the URL of a running GitLab instance 12 | (default: `http://gitlab.renku.build`) 13 | - `jupyterhubUrl` define the URL of a running JupyterHub instance 14 | (default: `http://jupyterhub.renku.build`) 15 | 16 | Usage 17 | ----- 18 | 19 | In the `helm-chart` directory: 20 | 21 | .. code-block:: console 22 | 23 | helm upgrade --install renku-ui --values minikube-values.yaml renku-ui 24 | 25 | 26 | To rebuild the images and update the chart you can run 27 | 28 | .. code-block:: console 29 | 30 | pip install chartpress 31 | chartpress 32 | -------------------------------------------------------------------------------- /helm-chart/renku-ui/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | .vscode/ 23 | -------------------------------------------------------------------------------- /helm-chart/renku-ui/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "1.0" 3 | description: A Helm chart for the Renku UI 4 | name: renku-ui 5 | icon: https://github.com/SwissDataScienceCenter/renku-sphinx-theme/raw/master/renku_sphinx_theme/static/favicon.png 6 | version: 3.59.1 7 | -------------------------------------------------------------------------------- /helm-chart/renku-ui/values.yaml: -------------------------------------------------------------------------------- 1 | ui: 2 | client: 3 | image: 4 | repository: renku/renku-ui 5 | tag: "3.59.1" 6 | 7 | server: 8 | image: 9 | repository: renku/renku-ui-server 10 | tag: "3.59.1" 11 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "renku-ui-root", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "name": "renku-ui-root", 8 | "devDependencies": { 9 | "husky": "^8.0.0" 10 | } 11 | }, 12 | "node_modules/husky": { 13 | "version": "8.0.3", 14 | "dev": true, 15 | "license": "MIT", 16 | "bin": { 17 | "husky": "lib/bin.js" 18 | }, 19 | "engines": { 20 | "node": ">=14" 21 | }, 22 | "funding": { 23 | "url": "https://github.com/sponsors/typicode" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "renku-ui-root", 3 | "private": true, 4 | "devDependencies": { 5 | "husky": "^8.0.0" 6 | }, 7 | "scripts": { 8 | "prepare": "husky install" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /server/.dockerignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /gitlab 3 | /doc 4 | /helm-chart 5 | .editorconfig 6 | .eslintignore 7 | .eslintrc.json 8 | .gitignore 9 | .travis.yml 10 | docker-compose.yml 11 | Dockerfile 12 | Makefile 13 | README.md 14 | -------------------------------------------------------------------------------- /server/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /server/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "parserOptions": { 5 | "project": "tsconfig.json", 6 | "sourceType": "module" 7 | }, 8 | "rules": { 9 | "no-eval": "error", 10 | "no-unused-vars": [ 11 | "warn", 12 | { 13 | "vars": "all", 14 | "args": "none", 15 | "ignoreRestSiblings": false 16 | } 17 | ], 18 | "no-console": "warn", 19 | "max-nested-callbacks": ["warn", 3], 20 | "no-alert": "error", 21 | "no-else-return": "warn", 22 | "jest/expect-expect": "off" 23 | }, 24 | "plugins": ["@typescript-eslint"], 25 | "extends": [ 26 | "eslint:recommended", 27 | "plugin:@typescript-eslint/eslint-recommended", 28 | "plugin:@typescript-eslint/recommended", 29 | "prettier" 30 | ], 31 | "ignorePatterns": "jest.config.js" 32 | } 33 | -------------------------------------------------------------------------------- /server/.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | -------------------------------------------------------------------------------- /server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:22 AS builder 2 | 3 | WORKDIR /app 4 | 5 | #: Use only required files. 6 | COPY package.json package-lock.json tsconfig.json /app/ 7 | COPY src /app/src/ 8 | 9 | # ENV NODE_OPTIONS="--max-old-space-size=4096" 10 | 11 | RUN npm install --silent && \ 12 | npm run-script build 13 | 14 | FROM node:22-alpine 15 | 16 | COPY --from=builder /app/dist app/dist 17 | COPY --from=builder /app/node_modules app/node_modules 18 | COPY --from=builder /app/package.json app/package.json 19 | COPY docker-entrypoint.sh /app/docker-entrypoint.sh 20 | 21 | # HEALTHCHECK --interval=20s --timeout=10s --retries=5 CMD test -e /var/run/nginx.pid 22 | 23 | ARG SHORT_SHA 24 | ENV RENKU_UI_SHORT_SHA=$SHORT_SHA 25 | 26 | ENTRYPOINT ["/bin/sh", "/app/docker-entrypoint.sh"] 27 | CMD ["node", "--use-openssl-ca", "app"] 28 | -------------------------------------------------------------------------------- /server/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright 2017-2018 - Swiss Data Science Center (SDSC) 4 | # A partnership between École Polytechnique Fédérale de Lausanne (EPFL) and 5 | # Eidgenössische Technische Hochschule Zürich (ETHZ). 6 | # 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | exec -- "$@" 20 | -------------------------------------------------------------------------------- /server/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | transform: { 3 | "^.+\\.ts?$": "ts-jest", 4 | }, 5 | testRegex: "tests/.*\\.(test|spec)?\\.(ts|tsx)$", 6 | moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], 7 | collectCoverage: true, 8 | collectCoverageFrom: ["src/**/*.ts"], 9 | coverageReporters: ["text"], 10 | coverageProvider: "v8", 11 | }; 12 | -------------------------------------------------------------------------------- /server/public/server-flow-auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/server/public/server-flow-auth.png -------------------------------------------------------------------------------- /server/public/server-flow-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/server/public/server-flow-request.png -------------------------------------------------------------------------------- /server/src/routes/apis.interfaces.ts: -------------------------------------------------------------------------------- 1 | export interface CheckURLResponse { 2 | isIframeValid: boolean; 3 | url: string; 4 | error?: string; 5 | detail?: string; 6 | } 7 | -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "esModuleInterop": true, 5 | "target": "es6", 6 | "noImplicitAny": true, 7 | "moduleResolution": "node", 8 | "sourceMap": true, 9 | "outDir": "dist", 10 | "baseUrl": "." 11 | }, 12 | "include": ["src", "tests"] 13 | } 14 | -------------------------------------------------------------------------------- /tests/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependency directories 2 | node_modules/ 3 | jspm_packages/ 4 | 5 | # Typescript v1 declaration files 6 | typings/ 7 | 8 | # Optional npm cache directory 9 | .npm 10 | 11 | # Optional eslint cache 12 | .eslintcache 13 | 14 | # dotenv environment variables file 15 | .env 16 | 17 | # dependencies 18 | /node_modules 19 | 20 | # misc 21 | .DS_Store 22 | .env.local 23 | .env.development.local 24 | .env.test.local 25 | .env.production.local 26 | 27 | npm-debug.log* 28 | yarn-debug.log* 29 | yarn-error.log* 30 | 31 | 32 | # Jet Brains IDE specifics 33 | .idea 34 | 35 | # VS Code IDE stuff 36 | .vscode 37 | 38 | # Video and screenshots local tests 39 | videos/ 40 | screenshots/ 41 | 42 | # Machine-specific configuration 43 | cypress.env.json 44 | -------------------------------------------------------------------------------- /tests/cypress.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "cypress"; 2 | 3 | export default defineConfig({ 4 | e2e: { 5 | baseUrl: "http://localhost:3000", 6 | specPattern: "cypress/e2e/**/*.{js,jsx,ts,tsx}", 7 | }, 8 | retries: { 9 | runMode: 2, 10 | openMode: 0, 11 | }, 12 | video: false, 13 | viewportWidth: 1600, 14 | viewportHeight: 1200, 15 | }); 16 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/admin/user-1.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "user-1", 3 | "createdTimestamp": 1696326933258, 4 | "username": "user1@renku.ch", 5 | "enabled": true, 6 | "totp": false, 7 | "emailVerified": false, 8 | "firstName": "User", 9 | "lastName": "One", 10 | "email": "user1@renku.ch", 11 | "disableableCredentialTypes": [], 12 | "requiredActions": [], 13 | "notBefore": 0, 14 | "access": { 15 | "manageGroupMembership": false, 16 | "view": true, 17 | "mapRoles": false, 18 | "impersonate": false, 19 | "manage": false 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/avatars/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/tests/cypress/fixtures/avatars/avatar.png -------------------------------------------------------------------------------- /tests/cypress/fixtures/cloudStorage/cloud-storage-secrets-empty.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/cloudStorage/cloud-storage-secrets-partial.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "secret_access_key", 4 | "secret_id": "ULID1" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/cloudStorage/cloud-storage-secrets.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "access_key_id", 4 | "secret_id": "ULID2" 5 | }, 6 | { 7 | "name": "secret_access_key", 8 | "secret_id": "ULID1" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/cloudStorage/cloud-storage.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "storage": { 4 | "configuration": { 5 | "type": "s3", 6 | "provider": "Other", 7 | "endpoint": "https://s3.example.com" 8 | }, 9 | "name": "example-storage", 10 | "private": true, 11 | "project_id": 1, 12 | "readonly": true, 13 | "source_path": "bucket/source", 14 | "storage_id": "1", 15 | "storage_type": "s3", 16 | "target_path": "mount/path" 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/cloudStorage/new-cloud-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "storage": { 3 | "configuration": { 4 | "provider": "AWS", 5 | "region": "eu-central-2" 6 | }, 7 | "name": "fake-storage", 8 | "private": true, 9 | "project_id": 1, 10 | "readonly": false, 11 | "source_path": "bucket/my-source", 12 | "storage_id": "2", 13 | "storage_type": "s3", 14 | "target_path": "external_storage/webdav" 15 | }, 16 | "sensitive_fields": [ 17 | { "help": "First credential", "name": "first" }, 18 | { "help": "Second credential", "name": "second" } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/cloudStorage/new-cloud-storage_v2.json: -------------------------------------------------------------------------------- 1 | { 2 | "storage": { 3 | "configuration": { 4 | "provider": "AWS", 5 | "region": "eu-central-2" 6 | }, 7 | "name": "example-storage", 8 | "private": true, 9 | "project_id": 1, 10 | "readonly": false, 11 | "source_path": "bucket/my-source", 12 | "storage_id": "2", 13 | "storage_type": "s3", 14 | "target_path": "external_storage/aws" 15 | }, 16 | "sensitive_fields": [ 17 | { "help": "First credential", "name": "first" }, 18 | { "help": "Second credential", "name": "second" } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/connectedServicesV2/account.json: -------------------------------------------------------------------------------- 1 | { 2 | "username": "my-github-user", 3 | "web_url": "https://github.com/my-github-user" 4 | } 5 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/connectedServicesV2/connections.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "0100933QTQVNX4R5CC8P177VTC", 4 | "provider_id": "github.com", 5 | "status": "connected" 6 | } 7 | ] 8 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/connectedServicesV2/installationsFull.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 99998951, 4 | "account_login": "my-github-user", 5 | "account_web_url": "https://github.com/my-github-user", 6 | "repository_selection": "all" 7 | } 8 | ] 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/connectedServicesV2/installationsSuspended.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 99998951, 4 | "account_login": "my-github-user", 5 | "account_web_url": "https://github.com/my-github-user", 6 | "repository_selection": "all", 7 | "suspended_at": "2024-10-17T12:55:59Z" 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/connectedServicesV2/providers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "github.com", 4 | "kind": "github", 5 | "app_slug": "renkulab-ci-test", 6 | "client_id": "MYSPECIALID", 7 | "client_secret": "redacted", 8 | "display_name": "GitHub.com", 9 | "scope": "", 10 | "url": "https://github.com", 11 | "use_pkce": false 12 | }, 13 | { 14 | "id": "gitlab-com", 15 | "kind": "gitlab", 16 | "app_slug": "gitlab-com", 17 | "client_id": "MYOTHERID", 18 | "client_secret": "redacted", 19 | "display_name": "Gitlab.com", 20 | "scope": "", 21 | "url": "https://gitlab.com", 22 | "use_pkce": false 23 | } 24 | ] 25 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dashboard/dismissible-simple-info-message.json: -------------------------------------------------------------------------------- 1 | { 2 | "DASHBOARD_MESSAGE": { 3 | "enabled": true, 4 | "text": "# Welcome to Renku! 🐸\nThis is an example welcome message ✨.\n", 5 | "style": "info", 6 | "dismissible": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dashboard/non-dismissible-read-more-success-message.json: -------------------------------------------------------------------------------- 1 | { 2 | "DASHBOARD_MESSAGE": { 3 | "enabled": true, 4 | "text": "# Welcome to Renku! 🐸\nThis is an example welcome message ✨.\n", 5 | "additionalText": "This is some more text", 6 | "style": "success", 7 | "dismissible": false 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/data-service-admin-user.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "0945f006-e117-49b7-8966-4c0842146313", 3 | "username": "e2e", 4 | "email": "e2e@renku.ch", 5 | "last_name": "User", 6 | "first_name": "E2E", 7 | "is_admin": true 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/data-service-user.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "0945f006-e117-49b7-8966-4c0842146313", 3 | "username": "e2e", 4 | "email": "e2e@renku.ch", 5 | "last_name": "User", 6 | "first_name": "E2E", 7 | "is_admin": false 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/data-connector-permissions.json: -------------------------------------------------------------------------------- 1 | { 2 | "write": true, 3 | "delete": true, 4 | "change_membership": true 5 | } 6 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/data-connector-public.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "ULID-1", 4 | "name": "example storage", 5 | "namespace": "user1-uuid", 6 | "slug": "example-storage", 7 | "storage": { 8 | "storage_type": "s3", 9 | "configuration": { 10 | "type": "s3", 11 | "provider": "AWS" 12 | }, 13 | "source_path": "bucket/my-source", 14 | "target_path": "external_storage/aws", 15 | "readonly": true, 16 | "sensitive_fields": [] 17 | }, 18 | "creation_date": "2023-11-15T09:55:59Z", 19 | "created_by": { "id": "user1-uuid" }, 20 | "visibility": "public", 21 | "description": "Example storage description" 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/data-connector-secrets-empty.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/data-connector-secrets-partial.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "access_key_id", 4 | "secret_id": "ULID1" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/data-connector-secrets.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "access_key_id", 4 | "secret_id": "ULID2" 5 | }, 6 | { 7 | "name": "secret_access_key", 8 | "secret_id": "ULID1" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/empty-list.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/new-data-connector.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "ULID-5", 3 | "name": "example-storage", 4 | "namespace": "user1-uuid", 5 | "slug": "example-storage", 6 | "storage": { 7 | "storage_type": "s3", 8 | "configuration": { 9 | "provider": "AWS", 10 | "region": "eu-central-2" 11 | }, 12 | 13 | "source_path": "bucket/my-source", 14 | "target_path": "external_storage/aws", 15 | "readonly": false, 16 | "sensitive_fields": [ 17 | { "help": "First credential", "name": "first" }, 18 | { "help": "Second credential", "name": "second" } 19 | ] 20 | }, 21 | "creation_date": "2023-11-15T09:55:59Z", 22 | "created_by": { "id": "user1-uuid" }, 23 | "visibility": "private", 24 | "description": "Data connector 5 description" 25 | } 26 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/project-data-connector-links-multiple.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "LINK-ULID-1", 4 | "data_connector_id": "ULID-1", 5 | "project_id": "PROJECT-ULID-1", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": { "id": "user1-uuid" } 8 | }, 9 | { 10 | "id": "LINK-ULID-2", 11 | "data_connector_id": "ULID-2", 12 | "project_id": "PROJECT-ULID-2", 13 | "creation_date": "2023-11-15T09:55:59Z", 14 | "created_by": { "id": "user1-uuid" } 15 | }, 16 | { 17 | "id": "LINK-ULID-3", 18 | "data_connector_id": "ULID-3", 19 | "project_id": "PROJECT-ULID-3", 20 | "creation_date": "2023-11-15T09:55:59Z", 21 | "created_by": { "id": "user1-uuid" } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataConnector/project-data-connector-links.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "LINK-ULID-1", 4 | "data_connector_id": "ULID-1", 5 | "project_id": "PROJECT-ULID-1", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": { "id": "user1-uuid" } 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataServices/resource-class.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "small", 3 | "cpu": 0.1, 4 | "memory": 1, 5 | "gpu": 0, 6 | "max_storage": 4, 7 | "default_storage": 1, 8 | "id": 2, 9 | "default": false, 10 | "tolerations": [], 11 | "node_affinities": [] 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/dataServices/resource-pool-users.json: -------------------------------------------------------------------------------- 1 | [{ "id": "user-1" }] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/add-file.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "files": [ 4 | { 5 | "file_id": "73d07bafc1f848b9afe231c39d43266c" 6 | } 7 | ], 8 | "slug": "new-dataset-completed", 9 | "project_id": "c91864edc3c84a3190579b18fe02b1f0", 10 | "remote_branch": "master" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/create-dataset-title-error.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": 2200, 4 | "devMessage": "Unexpected Renku exception from a service operation: Invalid parameter value - Dataset name 'test@' is not valid (Hint: 'test' is valid).", 5 | "devReference": "https://renku-python.readthedocs.io/en/latest/service_errors.html#renku.ui.service.errors.ProgramRenkuError", 6 | "userMessage": "Our servers could not process the requested operation. The following details may help: Invalid parameter value - Dataset name 'test@' is not valid (Hint: 'test' is valid)." 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/create-dataset.json: -------------------------------------------------------------------------------- 1 | { "result": { "slug": "new-dataset-completed", "remote_branch": "master" } } 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/dataset-files.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "files": [ 4 | { 5 | "path": "data/abcd/W.txt", 6 | "added": "2022-02-02T12:58:56+00:00", 7 | "name": "W.txt" 8 | }, 9 | { 10 | "path": "data/abcd/air_quality_no2.txt", 11 | "added": "2022-02-02T12:58:56+00:00", 12 | "name": "air_quality_no2.txt" 13 | } 14 | ], 15 | "slug": "abcd" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/dataset-list-error.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": -32100, 4 | "project_initialization_required": true, 5 | "reason": "/svc/cache/projects/00000000005jYXZhenppLnRlY2hnbWFpbC5jb20=/000000000035476597e68f5cd78f5737/lee.gavin.k/renku-mls-demo does not seem to be a Renku project.\nInitialize it with \"renku init\"" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/datasets-import.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "job_id": "2d24760f2dc1484e972f81cc150d69eb", 4 | "created_at": "2022-02-21T12:43:59.001037" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/files/bigFile.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/tests/cypress/fixtures/datasets/files/bigFile.bin -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/files/count_flights.txt: -------------------------------------------------------------------------------- 1 | example file 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/files/datasetFiles.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/tests/cypress/fixtures/datasets/files/datasetFiles.zip -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/files/sdsc.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwissDataScienceCenter/renku-ui/0ab62578de23fab2515b9e826ac58e7939e7d3a4/tests/cypress/fixtures/datasets/files/sdsc.jpeg -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/import-job-completed.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "client_extras": "", 4 | "project": { 5 | "name": "local-test-project", 6 | "email": "e2e@renku.ch", 7 | "project_id": "693591cdfbad4e58978deacef2d272a1", 8 | "fullname": "e2e User", 9 | "owner": "e2e" 10 | }, 11 | "state": "COMPLETED", 12 | "extras": { 13 | "remote_branch": "master" 14 | }, 15 | "updated_at": "2022-02-21T12:43:59.000867", 16 | "job_id": "2d24760f2dc1484e972f81cc150d69eb", 17 | "created_at": "2022-02-21T12:43:59.001037", 18 | "renku_op": "dataset_import" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/import-job-error.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "client_extras": "", 4 | "project": { 5 | "name": "local-test-project", 6 | "email": "e2e@renku.ch", 7 | "project_id": "693591cdfbad4e58978deacef2d272a1", 8 | "fullname": "e2e User", 9 | "owner": "e2e" 10 | }, 11 | "state": "FAILED", 12 | "extras": { 13 | "error": "Something fail" 14 | }, 15 | "updated_at": "2022-02-21T12:43:59.000867", 16 | "job_id": "2d24760f2dc1484e972f81cc150d69eb", 17 | "created_at": "2022-02-21T12:43:59.001037", 18 | "renku_op": "dataset_import" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/import-job-in-process.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "client_extras": "", 4 | "project": { 5 | "name": "local-test-project", 6 | "email": "e2e@renku.ch", 7 | "project_id": "693591cdfbad4e58978deacef2d272a1", 8 | "fullname": "e2e User", 9 | "owner": "e2e" 10 | }, 11 | "state": "IN_PROGRESS", 12 | "extras": null, 13 | "updated_at": "2022-02-21T12:43:59.000867", 14 | "job_id": "2d24760f2dc1484e972f81cc150d69eb", 15 | "created_at": "2022-02-21T12:43:59.001037", 16 | "renku_op": "dataset_import" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/no-dataset.json: -------------------------------------------------------------------------------- 1 | { "message": "No dataset with '99a46c10c94a40359181965e5c4cdabc' id found" } 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/datasets/upload-dataset-file.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "files": [ 4 | { 5 | "relative_path": "filter_flights.txt", 6 | "is_archive": false, 7 | "created_at": "2022-06-17T12:42:35.386017", 8 | "is_dir": false, 9 | "file_name": "filter_flights.txt", 10 | "file_id": "268cbd72195d427db67f80a425484b0a", 11 | "file_size": 539, 12 | "content_type": "unknown", 13 | "unpack_archive": false 14 | } 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/errors/core-error-1101.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": 1101, 4 | "userMessage": "The target repository is not a valid Renku template repository.", 5 | "devMessage": "Target repository is not a valid template.", 6 | "devReference": "https://renku-python.readthedocs.io/en/latest/service_errors.html#renku.service.errors.UserTemplateInvalidError", 7 | "sentry": "https://sentry.dev.renku.ch/organizations/sentry?query=228c34f108344c3c9e8e0669871d1a41" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/errors/core-error-1102.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": 1102, 4 | "userMessage": "There is an error with a project field: the template 'NONEXISTING' does not exist in the target template's repository.", 5 | "devMessage": "Project creation from a Renku template failed. The user provided wrong field(s): the template 'NONEXISTING' does not exist in the target template's repository.", 6 | "devReference": "https://renku-python.readthedocs.io/en/latest/service_errors.html#renku.service.errors.UserProjectCreationError", 7 | "sentry": "https://sentry.dev.renku.ch/organizations/sentry?query=c511c29793724d5689364a54dc6f8b0e" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/errors/core-error-2001.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": 2001, 4 | "userMessage": "There was an unexpected error while handling project data.", 5 | "devMessage": "Unexpected fields have been provided: 'fake': Unknown field.", 6 | "devReference": "https://renku-python.readthedocs.io/en/latest/service_errors.html#renku.service.errors.ProgramInvalidGenericFieldsError", 7 | "sentry": "https://sentry.dev.renku.ch/organizations/sentry?query=38558d7711e44e1aa39e04e744b00e20" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/errors/core-error-2200.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": 2200, 4 | "devMessage": "Unexpected Renku exception from a service operation: Git command failed: /svc/cache/projects/Y3JhbWFrcmlldGh6LmNo/namespace/project", 5 | "devReference": "https://renku-python.readthedocs.io/en/latest/service_errors.html#renku.ui.service.errors.ProgramRenkuError", 6 | "sentry": "https://sentry.dev.renku.ch/organizations/sentry?query=7861661cc9794a2c98eb267dcc462302", 7 | "userMessage": "Our servers could not process the requested operation. The following details may help: Git command failed: /svc/cache/projects/Y3JhbWFrcmlldGh6LmNo/namespace/project" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/errors/core-error-old.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": -32602, 4 | "reason": "Validation error: `gitUrl` - Unknown field." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/create-groupV2.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "New Group", 4 | "slug": "new-group", 5 | "created_by": { 6 | "id": "owner-KC-id" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/groupV2-permissions-none.json: -------------------------------------------------------------------------------- 1 | { 2 | "write": false, 3 | "delete": false, 4 | "change_membership": false 5 | } 6 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/groupV2-permissions.json: -------------------------------------------------------------------------------- 1 | { 2 | "write": true, 3 | "delete": true, 4 | "change_membership": true 5 | } 6 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/list-groupV2-members.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "0945f006-e117-49b7-8966-4c0842146313", 4 | "first_name": "User", 5 | "last_name": "1", 6 | "namespace": "user1", 7 | "role": "owner" 8 | }, 9 | { 10 | "id": "user2-uuid", 11 | "namespace": "user2", 12 | "role": "editor" 13 | }, 14 | { 15 | "id": "user3-uuid", 16 | "first_name": "user3-uuid", 17 | "namespace": "user3", 18 | "role": "viewer" 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/list-groupV2-post-delete.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01HF96BXZ3JF9DX88B7XB405S5", 4 | "name": "test 1 group-v2", 5 | "slug": "test-1-group-v2", 6 | "creation_date": "2023-11-15T09:52:59Z", 7 | "created_by": "user1-uuid", 8 | "description": "Group 1 description" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/list-groupV2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "THEPROJECTULID26CHARACTERS", 4 | "name": "test 2 group-v2", 5 | "slug": "test-2-group-v2", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": { "id": "user1-uuid" }, 8 | "description": "Group 2 description" 9 | }, 10 | { 11 | "id": "01HF96BXZ3JF9DX88B7XB405S5", 12 | "name": "test 1 group-v2", 13 | "slug": "test-1-group-v2", 14 | "creation_date": "2023-11-15T09:52:59Z", 15 | "created_by": { "id": "user1-uuid" }, 16 | "description": "Group 1 description" 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/read-groupV2-namespace.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "namespace-id", 3 | "name": "test 2 group-v2", 4 | "slug": "test-2-group-v2", 5 | "path": "test-2-group-v2", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user-id", 8 | "namespace_kind": "group" 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/read-groupV2.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "test 2 group-v2", 4 | "slug": "test-2-group-v2", 5 | "creation_date": "2023-11-15T09:55:59Z", 6 | "created_by": { "id": "user1-uuid" }, 7 | "description": "Group 2 description" 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/update-groupV2-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "new name", 4 | "slug": "new-slug", 5 | "creation_date": "2023-11-15T09:55:59Z", 6 | "created_by": { "id": "user1-uuid" }, 7 | "description": "new description" 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/groupV2/update-groupV2-namespace.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "namespace-id", 3 | "name": "new name", 4 | "slug": "new-slug", 5 | "path": "new-slug", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user-id", 8 | "namespace_kind": "group" 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/kgSearch/emptySearch.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/kgSearch/lastSearch.json: -------------------------------------------------------------------------------- 1 | { "queries": ["*flight*", "*covid*", "*"] } 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/kgSearch/no-active-projects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 1, 4 | "name": "test-project", 5 | "path": "e2e/test-project", 6 | "description": "", 7 | "visibility": "public" 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/namespaceV2/list-namespaceV2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "AB0134CD43Z3JF9DX88B7XB405N0", 4 | "slug": "user1-uuid", 5 | "path": "user1-uuid", 6 | "created_by": "user1-uuid", 7 | "namespace_kind": "user" 8 | }, 9 | { 10 | "id": "AB0134CD43Z3JF9DX88B7XB405N0", 11 | "slug": "e2e", 12 | "path": "e2e", 13 | "created_by": "user1-uuid", 14 | "namespace_kind": "user" 15 | }, 16 | { 17 | "id": "THEPROJECTULID26CHARACTERS", 18 | "name": "test 2 group-v2", 19 | "slug": "test-2-group-v2", 20 | "path": "test-2-group-v2", 21 | "creation_date": "2023-11-15T09:55:59Z", 22 | "created_by": "user1-uuid", 23 | "namespace_kind": "group" 24 | }, 25 | { 26 | "id": "01HF96BXZ3JF9DX88B7XB405S5", 27 | "name": "test 1 group-v2", 28 | "slug": "test-1-group-v2", 29 | "path": "test-1-group-v2", 30 | "creation_date": "2023-11-15T09:52:59Z", 31 | "created_by": "user1-uuid", 32 | "namespace_kind": "group" 33 | } 34 | ] 35 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/namespaceV2/namespaceV2-user1.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "AB0134CD43Z3JF9DX88B7XB405N0", 3 | "slug": "user1-uuid", 4 | "path": "user1-uuid", 5 | "created_by": "user1-uuid", 6 | "namespace_kind": "user", 7 | "name": "user1" 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/namespaces.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 117, 4 | "name": "E2E User", 5 | "path": "e2e", 6 | "kind": "user", 7 | "full_path": "e2e", 8 | "parent_id": null, 9 | "avatar_url": "https://secure.gravatar.com/avatar/67294be6fc8a46e7dd5ae6a3cf11a0ae?s=80\u0026d=identicon", 10 | "web_url": "https://dev.renku.ch/gitlab/e2e" 11 | }, 12 | { 13 | "id": 128, 14 | "name": "internal-space", 15 | "path": "internal-space", 16 | "kind": "group", 17 | "full_path": "internal-space", 18 | "parent_id": null, 19 | "avatar_url": null, 20 | "web_url": "https://dev.renku.ch/gitlab/groups/internal-space", 21 | "members_count_with_descendants": 1 22 | }, 23 | { 24 | "id": 129, 25 | "name": "private-space", 26 | "path": "private-space", 27 | "kind": "group", 28 | "full_path": "private-space", 29 | "parent_id": null, 30 | "avatar_url": null, 31 | "web_url": "https://dev.renku.ch/gitlab/groups/private-space", 32 | "members_count_with_descendants": 1 33 | } 34 | ] 35 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/cache-project-list-empty.json: -------------------------------------------------------------------------------- 1 | { "result": {} } 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/cache-project-list.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "projects": [ 4 | { 5 | "project_id": "afc0206e87d6455b9b4cfdebf0d9ccb8", 6 | "initialized": true, 7 | "git_url": "https://dev.renku.ch/gitlab/e2e/local-test-project.git" 8 | } 9 | ] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/config-show.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "config": { 4 | "interactive.default_url": "/lab", 5 | "interactive.cpu_request": "0.5", 6 | "renku.autocommit_lfs": "false", 7 | "renku.lfs_threshold": "100kb" 8 | }, 9 | "default": { 10 | "interactive.default_url": "/lab", 11 | "renku.autocommit_lfs": "false", 12 | "renku.lfs_threshold": "100kb" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/create-project.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "slug": "new-project", 4 | "name": "new-project", 5 | "namespace": "e2e", 6 | "project_id": "53ae233f201047eaa3aa16b876596ae8", 7 | "url": "https://dev.renku.ch/gitlab/e2e/nuevo-projecto" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/edit/edit-project-confirm.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "edited": { "description": "description abcde" }, 4 | "remote_branch": "master", 5 | "warning": null 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/files/project-files-git-attributes: -------------------------------------------------------------------------------- 1 | data/electricity-statistics-2020/10090-Mittwochproduktion_2020.xlsx filter=lfs diff=lfs merge=lfs -text 2 | data/electricity-statistics-2021/10481-Mittwochproduktion_2021.xlsx filter=lfs diff=lfs merge=lfs -text 3 | data/electricity-statistics-2022/10897-Mittwochproduktion_2022.xlsx filter=lfs diff=lfs merge=lfs -text 4 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/kgStatus/kgStatus404.json: -------------------------------------------------------------------------------- 1 | { 2 | "message": "Info about project cannot be found" 3 | } 4 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/kgStatus/kgStatusIndexedFailure.json: -------------------------------------------------------------------------------- 1 | { 2 | "activated": true, 3 | "progress": { 4 | "done": 5, 5 | "total": 5, 6 | "percentage": 100.0 7 | }, 8 | "details": { 9 | "status": "failure", 10 | "message": "generation non recoverable failure" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/kgStatus/kgStatusIndexedSuccess.json: -------------------------------------------------------------------------------- 1 | { 2 | "activated": true, 3 | "progress": { 4 | "done": 5, 5 | "total": 5, 6 | "percentage": 100.0 7 | }, 8 | "details": { 9 | "status": "success", 10 | "message": "no message" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/kgStatus/kgStatusIndexing.json: -------------------------------------------------------------------------------- 1 | { 2 | "activated": true, 3 | "progress": { 4 | "done": 2, 5 | "total": 5, 6 | "percentage": 40.0 7 | }, 8 | "details": { 9 | "status": "in-progress", 10 | "message": "some message" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/migrationStatus/version-core.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "renku-core", 3 | "versions": [ 4 | { 5 | "version": "v2.4.0", 6 | "data": { 7 | "metadata_version": "10" 8 | } 9 | }, 10 | { 11 | "version": "v1.11.3", 12 | "data": { 13 | "metadata_version": "9" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/project-status-done.json: -------------------------------------------------------------------------------- 1 | { 2 | "activated": true, 3 | "progress": { 4 | "done": 5, 5 | "total": 5, 6 | "percentage": 100.0 7 | }, 8 | "details": { 9 | "status": "success", 10 | "message": "triples store" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/project-status-processing.json: -------------------------------------------------------------------------------- 1 | { 2 | "activated": true, 3 | "progress": { 4 | "done": 2, 5 | "total": 5, 6 | "percentage": 40.0 7 | }, 8 | "details": { 9 | "status": "in-progress", 10 | "message": "generating triples" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/test-project-commits.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "172a784d465a7bd45bacc165df2b64a591ac6b18", 4 | "short_id": "172a784d", 5 | "created_at": "2022-01-20T14:14:54.000+00:00", 6 | "parent_ids": [], 7 | "title": "service: renku init -n \"local-test-project\" -s \"https://github.com/SwissDataScienceCenter/renku-p...", 8 | "message": "service: renku init -n \"local-test-project\" -s \"https://github.com/SwissDataScienceCenter/renku-p...", 9 | "author_name": "e2e User", 10 | "author_email": "e2e@renku.ch", 11 | "authored_date": "2022-01-20T14:14:54.000+00:00", 12 | "committer_name": "renku 0.16.2", 13 | "committer_email": "https://github.com/swissdatasciencecenter/renku-python/tree/v0.16.2", 14 | "committed_date": "2022-01-20T14:14:54.000+00:00", 15 | "trailers": {}, 16 | "web_url": "https://dev.renku.ch/gitlab/e2e/local-test-project/-/commit/172a784d465a7bd45bacc165df2b64a591ac6b18" 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/test-project-readme-commits.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "172a784d465a7bd45bacc165df2b64a591ac6b18", 4 | "short_id": "172a784d", 5 | "created_at": "2022-01-20T14:14:54.000+00:00", 6 | "parent_ids": [], 7 | "title": "service: renku init -n \"local-test-project\" -s \"https://github.com/SwissDataScienceCenter/renku-p...", 8 | "message": "service: renku init -n \"local-test-project\" -s \"https://github.com/SwissDataScienceCenter/renku-p...", 9 | "author_name": "e2e User", 10 | "author_email": "e2e@renku.ch", 11 | "authored_date": "2022-01-20T14:14:54.000+00:00", 12 | "committer_name": "renku 0.16.2", 13 | "committer_email": "https://github.com/swissdatasciencecenter/renku-python/tree/v0.16.2", 14 | "committed_date": "2022-01-20T14:14:54.000+00:00", 15 | "trailers": {}, 16 | "web_url": "https://dev.renku.ch/gitlab/e2e/local-test-project/-/commit/172a784d465a7bd45bacc165df2b64a591ac6b18" 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/test-project-readme.md: -------------------------------------------------------------------------------- 1 | # local test project 2 | 3 | A project for testing locally 4 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/test-project_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "default": { 4 | "interactive.default_url": "/lab", 5 | "renku.autocommit_lfs": "false", 6 | "renku.lfs_threshold": "100kb" 7 | }, 8 | "config": { 9 | "interactive.default_url": "/lab", 10 | "interactive.cpu_request": "0.1", 11 | "renku.autocommit_lfs": "false", 12 | "renku.lfs_threshold": "100kb" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/test-project_migration_update-required.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "core_compatibility_status": { 4 | "migration_required": true, 5 | "project_metadata_version": "7", 6 | "current_metadata_version": "9" 7 | }, 8 | "core_renku_version": "1.0.2", 9 | "dockerfile_renku_status": { 10 | "newer_renku_available": null, 11 | "automated_dockerfile_update": false, 12 | "dockerfile_renku_version": null, 13 | "latest_renku_version": "1.0.2" 14 | }, 15 | "project_supported": true, 16 | "project_renku_version": "0.11.3", 17 | "template_status": { 18 | "newer_template_available": false, 19 | "project_template_version": null, 20 | "template_ref": null, 21 | "template_source": null, 22 | "latest_template_version": null, 23 | "template_id": null, 24 | "automated_template_update": false 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/visibility/error-update-visibility.json: -------------------------------------------------------------------------------- 1 | { 2 | "visibility_level": [ 3 | "internal is not allowed in a private group.", 4 | "internal is not allowed since the fork source project has lower visibility." 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/project/visibility/visibility-change-accepted.json: -------------------------------------------------------------------------------- 1 | { "severity": "Info", "message": "Project update accepted" } 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/create-projectV2.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "Renku R Project", 4 | "namespace": "owner-kc-id", 5 | "slug": "r-project", 6 | "created_by": { 7 | "id": "owner-KC-id" 8 | }, 9 | "visibility": "public", 10 | "secrets_mount_directory": "/secrets" 11 | } 12 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/list-projectV2-members-many.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "0945f006-e117-49b7-8966-4c0842146313", 4 | "first_name": "User", 5 | "last_name": "One", 6 | "namespace": "user1", 7 | "role": "owner" 8 | }, 9 | { 10 | "id": "user2-uuid", 11 | "first_name": "User", 12 | "last_name": "Two", 13 | "namespace": "user2", 14 | "role": "viewer" 15 | }, 16 | { 17 | "first_name": "User", 18 | "last_name": "Three", 19 | "id": "user3-uuid", 20 | "role": "editor", 21 | "namespace": "user3" 22 | }, 23 | { 24 | "id": "user4-uuid", 25 | "namespace": "user4", 26 | "first_name": "User", 27 | "last_name": "Four", 28 | "role": "viewer" 29 | }, 30 | { 31 | "id": "user5-uuid", 32 | "role": "viewer", 33 | "namespace": "user5" 34 | }, 35 | { 36 | "id": "user6-uuid", 37 | "role": "owner", 38 | "first_name": "UserSix" 39 | } 40 | ] 41 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/list-projectV2-members.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "0945f006-e117-49b7-8966-4c0842146313", 4 | "first_name": "user", 5 | "last_name": "1", 6 | "namespace": "user1", 7 | "role": "owner" 8 | }, 9 | { 10 | "id": "user2-uuid", 11 | "first_name": "user", 12 | "last_name": "2", 13 | "namespace": "user2", 14 | "role": "viewer" 15 | }, 16 | { 17 | "id": "user3-uuid", 18 | "first_name": "user", 19 | "last_name": "3", 20 | "namespace": "user3", 21 | "role": "editor" 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/list-projectV2-post-delete.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01HF96BXZ3JF9DX88B7XB405S5", 4 | "name": "test 1 v2-project", 5 | "slug": "test-1-v2-project", 6 | "namespace": "user1-uuid", 7 | "creation_date": "2023-11-15T09:52:59Z", 8 | "created_by": "user1-uuid", 9 | "repositories": [], 10 | "visibility": "private", 11 | "description": "Project 1 description" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/list-projectV2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "THEPROJECTULID26CHARACTERS", 4 | "name": "test 2 v2-project", 5 | "slug": "test-2-v2-project", 6 | "namespace": "user1-uuid", 7 | "creation_date": "2023-11-15T09:55:59Z", 8 | "created_by": "user1-uuid", 9 | "repositories": [ 10 | "https://domain.name/repo1.git", 11 | "https://domain.name/repo2.git" 12 | ], 13 | "visibility": "public", 14 | "description": "Project 2 description", 15 | "secrets_mount_directory": "/secrets" 16 | }, 17 | { 18 | "id": "01HF96BXZ3JF9DX88B7XB405S5", 19 | "name": "test 1 v2-project", 20 | "slug": "test-1-v2-project", 21 | "namespace": "namespace1", 22 | "creation_date": "2023-11-15T09:52:59Z", 23 | "created_by": { "id": "user1-uuid" }, 24 | "repositories": [], 25 | "visibility": "private", 26 | "description": "Project 1 description", 27 | "secrets_mount_directory": "/secrets" 28 | } 29 | ] 30 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/projectV2-permissions-editor.json: -------------------------------------------------------------------------------- 1 | { 2 | "write": true, 3 | "delete": false, 4 | "change_membership": false 5 | } 6 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/projectV2-permissions-viewer.json: -------------------------------------------------------------------------------- 1 | { 2 | "write": false, 3 | "delete": false, 4 | "change_membership": false 5 | } 6 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/projectV2-permissions.json: -------------------------------------------------------------------------------- 1 | { 2 | "write": true, 3 | "delete": true, 4 | "change_membership": true 5 | } 6 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/read-projectV2-empty.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "test 2 v2-project", 4 | "slug": "test-2-v2-project", 5 | "namespace": "user1-uuid", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user1-uuid", 8 | "repositories": [], 9 | "visibility": "public", 10 | "description": "Project 2 description", 11 | "secrets_mount_directory": "/secrets" 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/read-projectV2-one-github-repo.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "test 2 v2-project", 4 | "slug": "test-2-v2-project", 5 | "namespace": "user1-uuid", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user1-uuid", 8 | "repositories": ["https://github.com/renku/url-repo.git"], 9 | "visibility": "public", 10 | "description": "Project 2 description", 11 | "secrets_mount_directory": "/secrets", 12 | "documentation": "A description of this project, supporting **markdown** and math symbols like: $\\sqrt 2$." 13 | } 14 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/read-projectV2-without-documentation.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "test 2 v2-project", 4 | "slug": "test-2-v2-project", 5 | "namespace": "user1-uuid", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user1-uuid", 8 | "repositories": [ 9 | "https://domain.name/repo1.git", 10 | "https://domain.name/repo2.git" 11 | ], 12 | "visibility": "public", 13 | "description": "Project 2 description" 14 | } 15 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/read-projectV2.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "test 2 v2-project", 4 | "slug": "test-2-v2-project", 5 | "namespace": "user1-uuid", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user1-uuid", 8 | "repositories": [ 9 | "https://domain.name/repo1.git", 10 | "https://domain.name/repo2.git" 11 | ], 12 | "visibility": "public", 13 | "description": "Project 2 description", 14 | "secrets_mount_directory": "/secrets", 15 | "documentation": "A description of this project, supporting **markdown** and math symbols like: $\\sqrt 2$." 16 | } 17 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/session-launchers-global.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01HYMTVR7TZXX1FQJDZD5XPEFW", 4 | "project_id": "01HYJE5FR1JV4CWFMBFJQFQ4RM", 5 | "name": "Jupyter Notebook", 6 | "creation_date": "2024-05-24T08:18:15Z", 7 | "resource_class_id": 2, 8 | "environment": { 9 | "id": "01HYMSPE2D9K4Q3WAME1NN4244", 10 | "name": "Jupyter Notebook", 11 | "creation_date": "2024-11-05T09:03:12.977947Z", 12 | "container_image": "renku/renkulab-py:latest", 13 | "default_url": "/jdbqksdgsahd/bsajhfdjhsdv/jasgdjhf/lab", 14 | "uid": 1000, 15 | "gid": 1000, 16 | "working_directory": "/", 17 | "mount_directory": "", 18 | "port": 8080, 19 | "environment_kind": "GLOBAL" 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/session-launchers-without-env-vars.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01HYJE99XEKWNKPYN8WRB6QA8Z", 4 | "project_id": "01HYJE5FR1JV4CWFMBFJQFQ4RM", 5 | "name": "Session-custom", 6 | "creation_date": "2024-05-23T09:59:59Z", 7 | "environment": { 8 | "id": "01JBXS0N2RESJP9W7ZWGZV3A2K", 9 | "name": "Session-custom", 10 | "creation_date": "2024-11-05T09:03:12.977947Z", 11 | "container_image": "renku/renkulab-py:latest", 12 | "default_url": "/jdbqksdgsahd/bsajhfdjhsdv/jasgdjhf/lab", 13 | "uid": 1000, 14 | "gid": 1000, 15 | "working_directory": "/", 16 | "mount_directory": "", 17 | "port": 8080, 18 | "environment_kind": "CUSTOM" 19 | }, 20 | "resource_class_id": 2, 21 | "env_variables": [] 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/session-launchers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01HYJE99XEKWNKPYN8WRB6QA8Z", 4 | "project_id": "01HYJE5FR1JV4CWFMBFJQFQ4RM", 5 | "name": "Session-custom", 6 | "creation_date": "2024-05-23T09:59:59Z", 7 | "environment": { 8 | "id": "01JBXS0N2RESJP9W7ZWGZV3A2K", 9 | "name": "Session-custom", 10 | "creation_date": "2024-11-05T09:03:12.977947Z", 11 | "container_image": "renku/renkulab-py:latest", 12 | "default_url": "/jdbqksdgsahd/bsajhfdjhsdv/jasgdjhf/lab", 13 | "uid": 1000, 14 | "gid": 1000, 15 | "working_directory": "/", 16 | "mount_directory": "", 17 | "port": 8080, 18 | "environment_kind": "CUSTOM" 19 | }, 20 | "resource_class_id": 2, 21 | "env_variables": [ 22 | { 23 | "name": "VAR_1", 24 | "value": "value1" 25 | }, 26 | { 27 | "name": "VAR_WITH_LONGER_NAME", 28 | "value": "value2" 29 | } 30 | ] 31 | } 32 | ] 33 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/update-projectV2-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "new name", 4 | "slug": "test-2-v2-project", 5 | "namespace": "user1-uuid", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user1-uuid", 8 | "repositories": [ 9 | "https://domain.name/repo1.git", 10 | "https://domain.name/repo2.git" 11 | ], 12 | "visibility": "public", 13 | "description": "new description", 14 | "is_template": true, 15 | "secrets_mount_directory": "/secrets" 16 | } 17 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/update-projectV2-one-repository.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "test 2 v2-project", 4 | "slug": "test-2-v2-project", 5 | "namespace": "user1-uuid", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user1-uuid", 8 | "repositories": ["https://gitlab.dev.renku.ch/url-repo.git"], 9 | "visibility": "public", 10 | "description": "Project 2 description", 11 | "secrets_mount_directory": "/secrets" 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2/update-projectV2-repositories.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "THEPROJECTULID26CHARACTERS", 3 | "name": "test 2 v2-project", 4 | "slug": "test-2-v2-project", 5 | "namespace": "test-2-group-v2", 6 | "creation_date": "2023-11-15T09:55:59Z", 7 | "created_by": "user1-uuid", 8 | "repositories": [ 9 | "https://domain.name/repo1.git", 10 | "https://domain.name/repo2.git", 11 | "https://domain.name/repo3.git" 12 | ], 13 | "visibility": "public", 14 | "description": "Project 2 description", 15 | "secrets_mount_directory": "/secrets" 16 | } 17 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/empty_list.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/patch_secret_slot.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "01JD9W4EGSZD85K3BY8AVPX6KW", 3 | "project_id": "THEPROJECTULID26CHARACTERS", 4 | "name": "A Secret", 5 | "filename": "updated_filename", 6 | "etag": "\"8A40AEE7169CD0910FF1E27FCD35E17E\"" 7 | } 8 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/patch_secrets_clear_value.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/patch_secrets_with_new_value.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "secret_slot": { 4 | "id": "01JDHA7JKXAFMTWZRAZVQSSEMT", 5 | "project_id": "THEPROJECTULID26CHARACTERS", 6 | "name": "Another Secret", 7 | "filename": "another_secret", 8 | "etag": "\"19F6A10983905629A64B12B3390587B0\"" 9 | }, 10 | "secret_id": "01JDHEQNQ8S3E3815EHQZZQ3QC" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/patched_secret_slots.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01JD9W4EGSZD85K3BY8AVPX6KW", 4 | "project_id": "THEPROJECTULID26CHARACTERS", 5 | "name": "A Secret", 6 | "filename": "updated_filename", 7 | "etag": "\"8A40AEE7169CD0910FF1E27FCD35E17E\"" 8 | }, 9 | { 10 | "id": "01JDHA7JKXAFMTWZRAZVQSSEMT", 11 | "project_id": "THEPROJECTULID26CHARACTERS", 12 | "name": "Another Secret", 13 | "filename": "another_secret", 14 | "etag": "\"19F6A10983905629A64B12B3390587B0\"" 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/patched_secrets_with_cleared_value.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/patched_secrets_with_new_value.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "secret_slot": { 4 | "id": "01JD9W4EGSZD85K3BY8AVPX6KW", 5 | "project_id": "THEPROJECTULID26CHARACTERS", 6 | "name": "A Secret", 7 | "filename": "a_secret", 8 | "etag": "\"EF7B0E9AB61AA4A0A14595FE442EA662\"" 9 | }, 10 | "secret_id": "01JDHA7RPTKFS71HZG4WEZX3XT" 11 | }, 12 | { 13 | "secret_slot": { 14 | "id": "01JDHA7JKXAFMTWZRAZVQSSEMT", 15 | "project_id": "THEPROJECTULID26CHARACTERS", 16 | "name": "Another Secret", 17 | "filename": "another_secret", 18 | "etag": "\"19F6A10983905629A64B12B3390587B0\"" 19 | }, 20 | "secret_id": "01JDHEQNQ8S3E3815EHQZZQ3QC" 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/post_secret_slot.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "01JDHBXABJJJ5HKYCV2HDWHV6F", 3 | "project_id": "THEPROJECTULID26CHARACTERS", 4 | "name": "A new secret", 5 | "description": "This is a new secret.", 6 | "filename": "a_new_secret", 7 | "etag": "\"A30E38964CCBA132EDE9D61C55EF4F56\"" 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/secret_slots.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01JD9W4EGSZD85K3BY8AVPX6KW", 4 | "project_id": "THEPROJECTULID26CHARACTERS", 5 | "name": "A Secret", 6 | "filename": "a_secret", 7 | "etag": "\"EF7B0E9AB61AA4A0A14595FE442EA662\"" 8 | }, 9 | { 10 | "id": "01JDHA7JKXAFMTWZRAZVQSSEMT", 11 | "project_id": "THEPROJECTULID26CHARACTERS", 12 | "name": "Another Secret", 13 | "filename": "another_secret", 14 | "etag": "\"19F6A10983905629A64B12B3390587B0\"" 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/secret_slots_with_new_slot.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01JD9W4EGSZD85K3BY8AVPX6KW", 4 | "project_id": "THEPROJECTULID26CHARACTERS", 5 | "name": "A Secret", 6 | "filename": "a_secret", 7 | "etag": "\"EF7B0E9AB61AA4A0A14595FE442EA662\"" 8 | }, 9 | { 10 | "id": "01JDHA7JKXAFMTWZRAZVQSSEMT", 11 | "project_id": "THEPROJECTULID26CHARACTERS", 12 | "name": "Another Secret", 13 | "filename": "another_secret", 14 | "etag": "\"19F6A10983905629A64B12B3390587B0\"" 15 | }, 16 | { 17 | "id": "01JDHBXABJJJ5HKYCV2HDWHV6F", 18 | "project_id": "THEPROJECTULID26CHARACTERS", 19 | "name": "A new secret", 20 | "description": "This is a new secret.", 21 | "filename": "a_new_secret", 22 | "etag": "\"A30E38964CCBA132EDE9D61C55EF4F56\"" 23 | } 24 | ] 25 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/secrets.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "secret_slot": { 4 | "id": "01JD9W4EGSZD85K3BY8AVPX6KW", 5 | "project_id": "THEPROJECTULID26CHARACTERS", 6 | "name": "A Secret", 7 | "filename": "a_secret", 8 | "etag": "\"EF7B0E9AB61AA4A0A14595FE442EA662\"" 9 | }, 10 | "secret_id": "01JDHA7RPTKFS71HZG4WEZX3XT" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/shortened_secret_slots.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01JDHA7JKXAFMTWZRAZVQSSEMT", 4 | "project_id": "THEPROJECTULID26CHARACTERS", 5 | "name": "Another Secret", 6 | "filename": "another_secret", 7 | "etag": "\"19F6A10983905629A64B12B3390587B0\"" 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projectV2SessionSecrets/user_secrets.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01JDHA7RPTKFS71HZG4WEZX3XT", 4 | "name": "a-secret-wxgu39gu", 5 | "modification_date": "2024-11-25T09:25:26.968394Z", 6 | "kind": "general" 7 | } 8 | ] 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projects/cache-project-list.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "projects": [ 4 | { 5 | "initialized": true, 6 | "project_id": "fabe2de762e5423a8acf63e4e0cfdb80", 7 | "git_url": "https://dev.renku.ch/gitlab/e2e/testing-datasets.git" 8 | } 9 | ] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projects/empty-last-visited-projects.json: -------------------------------------------------------------------------------- 1 | { 2 | "projects": [] 3 | } 4 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projects/last-visited-projects-5.json: -------------------------------------------------------------------------------- 1 | { 2 | "projects": [ 3 | "lorenzo.cavazzi.tech/readme-file-dev", 4 | "e2e/nuevo-project", 5 | "e2e/testing-datasets", 6 | "e2e/local-test-project", 7 | "e2e/local-test-project-2" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projects/last-visited-projects.json: -------------------------------------------------------------------------------- 1 | { 2 | "projects": [ 3 | "lorenzo.cavazzi.tech/readme-file-dev", 4 | "e2e/nuevo-projecto", 5 | "e2e/testing-datasets", 6 | "e2e/local-test-project" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projects/namespace-128.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 128, 3 | "web_url": "https://dev.renku.ch/gitlab/groups/internal-space", 4 | "name": "internal-space", 5 | "path": "internal-space", 6 | "description": "", 7 | "visibility": "internal", 8 | "share_with_group_lock": false, 9 | "require_two_factor_authentication": false, 10 | "two_factor_grace_period": 48, 11 | "project_creation_level": "developer", 12 | "auto_devops_enabled": null, 13 | "subgroup_creation_level": "maintainer", 14 | "emails_disabled": null, 15 | "mentions_disabled": null, 16 | "lfs_enabled": true, 17 | "default_branch_protection": 2, 18 | "avatar_url": null, 19 | "request_access_enabled": true, 20 | "full_name": "internal-space", 21 | "full_path": "internal-space", 22 | "created_at": "2022-04-08T12:53:58.197Z", 23 | "parent_id": null, 24 | "shared_with_groups": [], 25 | "runners_token": "EUPMtcaQGntAf6V2sYpR", 26 | "prevent_sharing_groups_outside_hierarchy": false, 27 | "projects": [], 28 | "shared_projects": [] 29 | } 30 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projects/namespace-129.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 129, 3 | "web_url": "https://dev.renku.ch/gitlab/groups/private-space", 4 | "name": "private-space", 5 | "path": "private-space", 6 | "description": "", 7 | "visibility": "private", 8 | "share_with_group_lock": false, 9 | "require_two_factor_authentication": false, 10 | "two_factor_grace_period": 48, 11 | "project_creation_level": "developer", 12 | "auto_devops_enabled": null, 13 | "subgroup_creation_level": "maintainer", 14 | "emails_disabled": null, 15 | "mentions_disabled": null, 16 | "lfs_enabled": true, 17 | "default_branch_protection": 2, 18 | "avatar_url": null, 19 | "request_access_enabled": true, 20 | "full_name": "private-space", 21 | "full_path": "private-space", 22 | "created_at": "2022-04-08T12:54:20.028Z", 23 | "parent_id": null, 24 | "shared_with_groups": [], 25 | "runners_token": "nDzA2yWDNxX1PtwZUm5v", 26 | "prevent_sharing_groups_outside_hierarchy": false, 27 | "projects": [], 28 | "shared_projects": [] 29 | } 30 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/projects/no-project.json: -------------------------------------------------------------------------------- 1 | { "message": "No project with abc id found" } 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/repositories/repository-metadata-token-error.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": 1401, 4 | "message": "The refresh token for the repository has expired or is invalid." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/repositories/repository-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "provider_id": "github.com", 3 | "connection_id": "0100933QTQVNX4R5CC8P177VTC", 4 | "repository_metadata": { 5 | "git_http_url": "https://github.com/renku/url-repo.git", 6 | "web_url": "https://github.com/renku/url-repo", 7 | "permissions": { 8 | "pull": true, 9 | "push": true 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/searchV2/search-response.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "Project", 4 | "id": "0caf4c73-f50d-4514-a041-c9eddb025a36", 5 | "name": "2nd-project", 6 | "slug": "2nd-Xs9GL", 7 | "repositories": ["https://gh/2nd-project"], 8 | "visibility": "public", 9 | "description": "2nd project desc", 10 | "createdBy": { "id": "ee53f3b7-f808-4a81-84f4-8290e874b9a7" }, 11 | "creationDate": "2024-02-16T10:14:28.430Z", 12 | "members": [{ "id": "ee53f3b7-f808-4a81-84f4-8290e874b9a7" }] 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/session/ci-image-missing.json: -------------------------------------------------------------------------------- 1 | { 2 | "message": "404 Tag Not Found" 3 | } 4 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/session/ci-image.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "172a784", 3 | "path": "e2e/local-test-project", 4 | "location": "registry.dev.renku.ch/e2e/local-test-project:172a784", 5 | "revision": "11cd537a06aa934e5a067f6e1d39f97fc49658991a3c46287bc57467fb911111", 6 | "short_revision": "11cd537a0", 7 | "digest": "sha256:11ee14eb835f261ab3c32cc91d2bd41bc3f1ca0070d16c922c73b63f54811111", 8 | "created_at": "2022-03-02T09:36:23.401+00:00", 9 | "total_size": 636111111 10 | } 11 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/session/ci-pipelines.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 182743, 4 | "project_id": 39646, 5 | "sha": "172a784d465a7bd45bacc165df2b64a591ac6b18", 6 | "ref": "master", 7 | "status": "success", 8 | "source": "push", 9 | "created_at": "2022-01-20T14:14:58.405Z", 10 | "updated_at": "2022-01-20T14:16:03.339Z", 11 | "web_url": "https://dev.renku.ch/gitlab/e2e/local-test-project/-/pipelines/182743" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/session/ci-registry.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 1, 4 | "name": "", 5 | "path": "e2e/local-test-project", 6 | "project_id": 39646, 7 | "location": "registry.dev.renku.ch/e2e/local-test-project", 8 | "created_at": "2022-03-02T15:27:23.839Z", 9 | "cleanup_policy_started_at": null 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/session/pipelines.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 182743, 4 | "project_id": 39646, 5 | "sha": "172a784d465a7bd45bacc165df2b64a591ac6b18", 6 | "ref": "master", 7 | "status": "success", 8 | "source": "push", 9 | "created_at": "2022-01-20T14:14:58.405Z", 10 | "updated_at": "2022-01-20T14:16:03.339Z", 11 | "web_url": "https://dev.renku.ch/gitlab/e2e/local-test-project/-/pipelines/182743" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/session/renku.ini: -------------------------------------------------------------------------------- 1 | [renku "interactive"] 2 | default_url = /lab 3 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/sessions/cleanLogs.json: -------------------------------------------------------------------------------- 1 | { 2 | "image-download": "" 3 | } 4 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/sessions/empty-sessions.json: -------------------------------------------------------------------------------- 1 | { 2 | "servers": {} 3 | } 4 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/sessions/emptyLogs.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/sessions/environments.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "01HYMSPE2D9K4Q3WAME1NN4244", 4 | "name": "Jupyter Notebook", 5 | "creation_date": "2024-05-24T07:57:53Z", 6 | "container_image": "renku/renkulab-py:latest" 7 | }, 8 | { 9 | "id": "01HYMSPZ5TZ4M4D3QNJVQZRMD6", 10 | "name": "PyTorch Data Science", 11 | "creation_date": "2024-05-24T07:58:10Z", 12 | "container_image": "renku/renkulab-py:latest" 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/sessions/sessionsV2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "image": "renku/renkulab-py:3.10-0.15.0", 4 | "name": "renku-2-86688c93091df68dffdc594bfd022ce3", 5 | "resources": { 6 | "cpu": 0.1, 7 | "memory": "1G", 8 | "storage": "1G" 9 | }, 10 | "started": "2024-04-19T09:44:38+00:00", 11 | "status": { 12 | "state": "running", 13 | "will_hibernate_at": "", 14 | "ready_containers": 3, 15 | "total_containers": 3 16 | }, 17 | "url": "https://dev.renku.ch/sessions/renku-2-86688c93091df68dffdc594bfd022ce3", 18 | "project_id": "THEPROJECTULID26CHARACTERS", 19 | "launcher_id": "01HVTVWBGE2P5HSNKRYC2MG8B7", 20 | "resource_class_id": 3 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/user-preferences/user-preferences-1-pin.json: -------------------------------------------------------------------------------- 1 | { 2 | "user_id": "0945f006-e117-49b7-8966-4c0842146313", 3 | "pinned_projects": { 4 | "project_slugs": ["e2e/nuevo-project"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/user-preferences/user-preferences-3-pins.json: -------------------------------------------------------------------------------- 1 | { 2 | "user_id": "0945f006-e117-49b7-8966-4c0842146313", 3 | "pinned_projects": { 4 | "project_slugs": [ 5 | "e2e/nuevo-project", 6 | "lorenzo.cavazzi.tech/readme-file-dev", 7 | "e2e/testing-datasets" 8 | ] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/user-preferences/user-preferences-default.json: -------------------------------------------------------------------------------- 1 | { 2 | "user_id": "0945f006-e117-49b7-8966-4c0842146313", 3 | "pinned_projects": { 4 | "project_slugs": [] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/version-core.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": { 3 | "name": "renku-core", 4 | "versions": [ 5 | { 6 | "version": "v2.4.1", 7 | "data": { 8 | "metadata_version": "10" 9 | } 10 | }, 11 | { 12 | "version": "v1.11.3", 13 | "data": { 14 | "metadata_version": "9" 15 | } 16 | } 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/version-notebooks.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "renku-notebooks", 3 | "versions": [ 4 | { 5 | "data": { 6 | "anonymousSessionsEnabled": true, 7 | "cloudstorageEnabled": true, 8 | "defaultCullingThresholds": { 9 | "registered": { 10 | "idle": 86400, 11 | "hibernation": 259200 12 | }, 13 | "anonymous": { 14 | "idle": 1, 15 | "hibernation": 43200 16 | } 17 | }, 18 | "sshEnabled": false 19 | }, 20 | "version": "1.22.0" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/version-ui.json: -------------------------------------------------------------------------------- 1 | { "ui-short-sha": "b26aa16" } 2 | -------------------------------------------------------------------------------- /tests/cypress/fixtures/workflows/workflow-show-details-notexists.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "code": 3150, 4 | "userMessage": "The workflow '1234c0e72966478ba61eaad737c6ce8e' could not be found. Check that the name/id is correct and try again.", 5 | "devMessage": "Unexpected error on workflow '1234c0e72966478ba61eaad737c6ce8e', possibly caused by concurrent actions.", 6 | "devReference": "https://renku-python.readthedocs.io/en/latest/service_errors.html#renku.ui.service.errors.IntermittentWorkflowNotFound", 7 | "sentry": "https://sentry.dev.renku.ch/organizations/sentry?query=123474a28e9a4d1b80c37a083f485fdc" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tests/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["node_modules/cypress", "cypress/**/*.ts", "cypress*.config.ts"], 3 | "compilerOptions": { 4 | "target": "es5", 5 | "types": ["cypress", "node", "cypress-file-upload"], 6 | "lib": ["es2015", "dom"], 7 | "skipLibCheck": true, 8 | "noEmit": true 9 | } 10 | } 11 | --------------------------------------------------------------------------------