* [dashboard] Initial infra rollout page, incl. list running workspaces
* [server, db, dashboard] Allow org-owner to stop workspace on all workspaces in the organization
Also, fix maintenanceMode update
* [public-api, db, server, dashboard] Introduce MaintenanceNofitication banner that can be configured per org
* review comments: use mutation instead of callback for state mutation
* Fix workspace start prevention
* Review comments around banners and rendering
- permissions issues
- add banner to /new page
- a bunch of rendering issues and alignments
- renaming some things for clarity (dropped "Scheduled" prefixes)
- only allow up to 255 characters in notification messages
* [dashboard] Only show Admin entry for dedicated
* [server] Fix permissions for setMaintenanceMode to "maintenance"
* [dashboard] Adjusted copy incl. default notification message
* Review coments: re-use and fix styles, and naming
Co-authored-by: Filip Troníček <filip@gitpod.io>
* Minor copy improvements
* [server] Fix bogus permission check in stopWorkspace
---------
Co-authored-by: Filip Troníček <filip@gitpod.io>
* [docker-up] Minor fixes and add tests
Tool: gitpod/catfood.gitpod.cloud
* [image-builder-bob] Tests&fixes from an experimental PR
Tool: gitpod/catfood.gitpod.cloud
* [supervisor, ws-manager] Write docker credentials into client config file if passed into workspace
Tool: gitpod/catfood.gitpod.cloud
* [server] Introduce project.settings.enableDockerdAuthentication and expose it on the API
Tool: gitpod/catfood.gitpod.cloud
* [dashboard] Add "Docker registry authentication" toggle under projects/env vars
Tool: gitpod/catfood.gitpod.cloud
* [server] Guard project.settings.enableDockerdAuthentication by org write_settings permission
Tool: gitpod/catfood.gitpod.cloud
* review comments with cleanup + small fixes
Tool: gitpod/catfood.gitpod.cloud
* [supervisor] Add Gitpod commit annotation
* server and API changes
* [dashboard] add org setting for commit annotation
* Fix things
* Fix label for annotation switch
* Revert accidental rename
* minor docs fixes
* Add a feature flag for the setting: `commit_annotation_setting_enabled`
* Register hook in the cloned repo instead of under /etc/
* don't override existing hooks
* `gp git-commit-message-helper` to use `git interpret-trailers`
* Test it!
* 🧹 indeed
* Update timestamp of DB migration
* Introduce `max_parallel_running_workspaces` for orgs
* Add migration
* Add UI and org settings server changes
* Rough edges
* Number inputs (:trollface:)
* Move LazyOrganizationService to UBP entitlement service to get rid of circ. dep. errs
* Fix tests
* Update components/gitpod-db/src/typeorm/entity/db-team-settings.ts
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* Rename `isPaidPlan` to `isPaidOrDedicated` and get rid of `update_max_parallel_running_workspaces`
* Update components/server/src/workspace/workspace-service.ts
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* Deduplicate instance counting logic
---------
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* Add WS image metrics to workspace instances
* Update tests
* fix ws-manager-api field description
* [dashboard] Org Insights page
* Pagination, date filters and downloads
* Safety limits for pagination and prettier icons
* UI improvements
* Enhance `from` date to capture whole day
* some more props for the CSVs
* Include git context with workspace responses
* Context url segments in CSV
* ide => editor to align with papi convention
* Remove duplicate fc
* revert route deletion
* Update papi converter tests and revert unecessary changes
* fix error rendering
* partly revert ws api svc changes
* Remove debug lines
* fix proto typo
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* Remove org member listing from frontend
* Shorter == better 😎
* Move workspace.metadata.context onto a top-level `WorkspaceSession` property
---------
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* [server config] Introduce isDedicatedInstallation, and use it to replace isSIngleOrgInstallation
incl. further cleanup around getConfiguration and server config
* [server, dashboard] Remove enableDedicatedOnboardingFlow feature flag and replace is with getInstallationConfiguration.IsDedicatedInstallation
* [dashboard, server] Remove "sinlgeOrgMode"
* [server] OrganizationService: block createTeam consistently for org-owned users
* [server, dashboard] Introduce "enable_multi_org" feature flag to allow admin-user to create organizations
* [dashboard] introduce "/?orgSlug=", which allows to pre-select an org in a "create workspace" URL (e.g. "/?orgSlug=org1#github.com/my/repo")
* [db] Auto-delete container "test-mysql" if it's already present
* fix tests
* [dashboard] Check if localStorage is available before using it
* [dashboard] SSOLogin: fix orgSlug source precedence to: path/search/localStorage
* [server] Deny "joinOrganization" for org-owned users
* Gpl/970-multi-org-tests (#20436)
* fix tests for real
* [server] Create OrgService.createOrgOwnedUser, and use that across tests to fix the "can't join org" permission issues
* Update components/server/src/orgs/organization-service.ts
Co-authored-by: Filip Troníček <filip@gitpod.io>
---------
Co-authored-by: Filip Troníček <filip@gitpod.io>
---------
Co-authored-by: Filip Troníček <filip@gitpod.io>
* Add WS image metrics to workspace instances
* Update tests
* fix ws-manager-api field description
* Prefer existing DB values for metrics
* Copy proto comments over to protocol type
* [context parser] Check current ref for Docker image existence
* Better builder bob errors from supervisor
* Gently soft-fail when the Dockerfile isn't found
* Add warning to ws metadata when starting workspace
* Introduce a magic constant instead of empty strings
* Improve supervisor failed reading bob log error
* Fixup cloning our special SHA
* idk what happened
* let workspaces start even on invalid docker refs
* add proto
* codegen
* impl
* WIP UI
* make it work
* Make it work
* Empty state
* Update copies (thx Fernando!)
* Fix tip flexbox
* fix newline for role restriction empty state
* When arbitrary repos are restricted, don't suggest them
* Add `GetConfigurationWebhookActivityStatus` to proto
* codegen
* `GetConfigurationWebhookActivityStatus` impl
* give it a UI
* Revert trigger strategy on webhook event
* debug: enable webhooks again
* fix UI
* maybe fix build?
* Automatically convert to activity-based prebuilds
* 🤷♂️
* don't limit to a week when converting to activity-based
* Change copy
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* Less cyclic deps
* removing warning and add informative trigger strategy field
* fix sizing of prebuild trigger strategy info
* Revert "debug: enable webhooks again"
This reverts commit 1c47067734b9f19bbe7e72522eab387fec6022b5.
---------
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* proto update
Co-authored-by: Filip Troníček <filip@gitpod.io>
Co-authored-by: Gero Posmyk-Leinemann <32448529+geropl@users.noreply.github.com>
* dashboard + server
---------
Co-authored-by: Filip Troníček <filip@gitpod.io>
Co-authored-by: Gero Posmyk-Leinemann <32448529+geropl@users.noreply.github.com>
* Organization timeout defaults proto
* Generated code
* Implement TimeoutSettings on the API layer
* Add timeout setting UI
* Actually change default workspace timeout based on org settings
workspace starter fixes
* Add alert for free plans
* denyUserTimeouts
* [dashboard] Fix check for "timeout config eligibility" by using BillingMode
* [server] Drop FF "disable_set_timeout"
* fix
* Move to team policies
* don't include `timeoutSettings` if not set
* [dashboard] TeamPolicies: Disable "save" if workspace timeouts are disabled
---------
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* Start prebuilds on started workspaces
* Fix circl dep
* move out to workspace creation
* Do it in the workspace service
* remove webhook tests
* remove webhook handling code
* Revert "remove webhook handling code"
This reverts commit d7c4550ec6b16091344607bfeee234b1f0e5705b.
* Anotate new setups with an `activity-based` activation strategy
* Update tests
* Alert banner
* add correct changelog path
* fix tests
* Remove code for registering prebuilds
* Still pass prebuild preconditions in order to run
* Re-add link to prebuild history of a repo
* Rename to trigger strategy and change project activity indicator
* redirect in the offline case
* [public-api] generate noise
* [server] Refactor Prebuild resolution to happen in a single place
* [dashboard, api] Show Prebuild details
* fixup! [server] Refactor Prebuild resolution to happen in a single place
* [bridge] Revive Prebuild QUEUED state: it's everything before running
* [server] Fix dead-end for streaming logs when starting too early
* [dashboard] Adds SHA + duration, fix re-rendering when prebuildId changes, and uses the new/old streaming logic
WIP because still has the "duplicate (sometimes triple!) logs" react re-rendering issue
* Prevent unnecessary re-renders of task output
* remove double-comment
* Duration display improvements
* Properly dismiss toasts and render durations
* Remove SHA from prebuild list
* Clean up and implement the `reset` event for workspace logs
* fix comment
* Tiny cleanup
---------
Co-authored-by: Filip Troníček <filip@gitpod.io>
* Image builds in prebuilds UI
* update java gitignore
* Introduce a public API `watchWorkspaceImageBuildLogs`
* Use papi impl in prebuild logs
* Special case for missing prebuild tasks
* Add route handler for image build logs
* remove the papi method
* 404 if nothing was written
* remove unused converter changes
* update golden files
* Remove unused hook
* reset backoff when imagebuild logs are not ready
* Handle unavailable logs better
* revert adding unused dep
* Fix test
* Do not use `null`s and refactor disposables
* revert disposable changes
* Add gero's comments
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
---------
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
* Fix handling multiple repos with same context URL
* Fix projects name in import view
* list items fix
* Exclude projs when excluding projs!
* Make it work™
* update tests real quick
* Figure stuff out
Merge ws projects with project projects and clean up ws projects whose projects no longer exist
* 💄
* Revert ordering to keep things stable
* Add repo migrate coachmark
* Public API: `coachmarksDismissals`
* Early exit for new signups
* Try to inject dismissal to link
* Dismiss on path visit
* Align to the left
* Dismiss on trigger
* Simplify show logic
Co-authored-by: Siddhant Khare <siddhant@gitpod.io>
* Consider `showPrebuildsMenuItem` when hiding projects
* update tests
* Adjust date for testing
* fix projects hide condition
* Fix repo link id ref
* Do not dismiss accidentally
* up-date
* move prebuild detail to correct folder
* Make sure errors are displayed properly for prebuilds list
* don't throw
* Report dismiss
---------
Co-authored-by: Siddhant Khare <siddhant@gitpod.io>
* Init prebuilds list
* Text size and color tweaks
* Dropdown filtering UI
* wip changes
* File renames and such
* Filter by state
* fix path
* Add configuration ID filtering
* Prebuild list error state
* Protobuf sorting definition
* API-level sorting
* Simplify pagination
* Fix undefined inference
* Dashboard adopt sort behavior
* make sorting required
* Move ordering 🤷♂️
This will most definetely not solve anything, but...
* Hopefully fix sorting 🤷♂️
* less `as`
* Simplify state check
* Repeated sorting
* Sort out sorting
Sorry :/
* Configuration dropdown WIP
* Make configuration filter disableable
* Use in in SQL
* Minor styling adjustements
* Nav item
* Rename menu item
* Const 🤷♂️
* Always display filter reset opt
* Add prebuild link to prebuild settings
* Simplify
* Don't throw errors
All my homies hate throwing in `server`
* FF hook
* Name failed to load state
* typo
* Better unknown inference
* Add ConfigurationField component to display repository name and link
* Do not retry configuration load
* Move prebuild utils
* Unify sort types
* Refactor PrebuildTable to use arrow function syntax for mapping prebuilds
* fix imports
* Widen triggered column
* Widen even more
* Shorten status labels
* Init ws db tests
* Rename list item comp accordingly
T'was an oopsie doopsie
* Test configuration ids and branches filtering
* Define `ListOrganizationPrebuilds`
* Fix because of name changes
* Add unimplemented `listOrganizationPrebuilds`
* Crazy stuff right here
* Address huiwen's comments
* Fix more types
* sad™
* trrr
* WIP API changes
* Add configuration id and search term filtering
* Filtering
* Offload prebuild listing to prebuild manager
* unused thingy delete
* Add filtering by status
* `listPrebuilds` -> `listOrganizationPrebuilds`
* Configuration filtering could be done with a branch
... what do you say?
* Implement branch filtering
* Update pagination rules
* Fix pagination limit validation error
* Migrate one more
* Fix org id for prebuild listing
* Update components/gitpod-db/src/typeorm/workspace-db-impl.ts
Co-authored-by: Siddhant Khare <siddhant@gitpod.io>
* Apply code suggestions
* Align pagination with config service
* Status filter validation
* Align org id usage
* Revert back to `listPrebuilds`
* Update components/gitpod-db/src/typeorm/workspace-db-impl.ts
Co-authored-by: Siddhant Khare <siddhant@gitpod.io>
* Bring in search
* Fix proj id instead of org id
* Fix search query‽‽‽
* nit 💄
---------
Co-authored-by: Siddhant Khare <siddhant@gitpod.io>
Co-authored-by: Huiwen Huang <huiwen@gitpod.io>
* Define `ListOrganizationPrebuilds`
* Fix because of name changes
* Add unimplemented `listOrganizationPrebuilds`
* Crazy stuff right here
* Address huiwen's comments
* Fix more types
* sad™
* Add configuration id and search term filtering
* Update spicedb schema
* SpiceDB gen code
* [server] add collaborator
* Update papi
* Dashboard
* nit
* Complete TODOs
* server dataops pass teamId
* Add test cases for collaborator's PAT and cookie API fetch
* Add test case description
* remove unnecessary export
* Redirect to dashboard after join an org
* Hide settings for collaborator
* dataops join via oidc should be collaborator
* Fix test
* Goes back to /workspaces
* Setting up saving and error state on prebuild settings
* cherry picking in backend work that updates some of the scm errors when installing webhooks for prebuilds
* updating tests
* adding placeholders for prebuild error cases
* adding isMissingScopes to error
* updating error messaging
* update tests
* adding toasts to projects settings for prebuild errors
* updating generic message styles
* Update components/dashboard/src/projects/ProjectSettings.tsx
Co-authored-by: Filip Troníček <filip@gitpod.io>
* Apply suggestions from code review
Co-authored-by: Filip Troníček <filip@gitpod.io>
* adjusting enabled state lookup
* updating again
* adding missing deps
---------
Co-authored-by: Filip Troníček <filip@gitpod.io>