919 Commits

Author SHA1 Message Date
Manuel Alejandro de Brito Fontes
5992b0f614
Update go dependencies (#19577)
* Update go dependencies

* Update S3

* Caddy plugins cannot use 1.22

* Update controller runtime signatures

* Update webhook suite test

* Update IPFS signatures

* Update go modules

* Update ipfs-cluster to v1.0.8

* Fix node-labeler build

* Fix IPFS CID parsing

* Update ipfs-cluster version

* Update controller-runtime signature

* Update statefulset signature

* Disable controller-runtime metrics

* Add comments
2024-03-26 20:55:35 +01:00
Filip Troníček
f83df85d13
Introduce /quickstart (#19567)
* necessary changes for github to comply

* try automating the popup

* Simplify with an effect

* try redirecting

* try redirecting somewhere authenticated

* pass the original search and hash

* Fix `TypeError: setting getter-only property "searchParams"`

* allow scm redirect

* Auomatically redirect git after signin

* quickstart the quickstart page

* Use unauthed router for quickstart

* Include the leading slash

* Redirect to new WS page on sucess

* Do not require OIDC signing, allow git login

* Do not be too clever around git auth

* Clear `message` from search params on success

* 🐬

* Retain hash when clearing message

* don't use URL.parse

It does not work in all browsers

* Make sure we properly handle all errors on `/quickstart`

* Revert ssologinform changes

* Tidy up

* Re-enable first-class git auth

* Do not require git api response for scm auth

* Enable logging in with SCM properly

* keep pathname for redirect functions

* Remove routing in multiple places

* Document empty org

* Allow `quickstart/`

* Use react's location

* Group routes registerings

* Try registering router in the query error boundary

* Try not using location 🤷‍♂️

* Revert "Try registering router in the query error boundary"

This reverts commit 228c1606d77550fab24089557aa7b4eed48257b4.

* Revert "Try not using location 🤷‍♂️"

This reverts commit 28ca3574820f958cd6936e1627662f376348408d.

* Make sure to load user first before acting on sideeffect

* Reapply "Try registering router in the query error boundary"

This reverts commit a73ac8fc732fa231fefa8ba9190451642fb55185.

* Fix position for only rendering when not authed

* do not retry auth fetch calls

* Do not cache the query

* Remove user cache on login begin

* Do not allow empty auths

* Try refetching auth providers when authed

* Try no queries
2024-03-25 22:30:34 +01:00
Huiwen
7bde766789
White list GITPOD_IMAGE_AUTH env var name (#19579)
* White list `GITPOD_IMAGE_AUTH` env var name

* Add link to doc
2024-03-25 18:00:34 +01:00
Huiwen
f9d6077523
Add repo-level editor restriction (#19564)
* Implement repo-level editor restriction relates APIs

* hack

* address feedback

* Reset option load after context changed

* Address feedback

* 💄

---------

Co-authored-by: Jean Pierre <jeanpierre@gitpod.io>
2024-03-22 06:05:31 +01:00
Huiwen
ae09aca59a
Add editor restriction on organization-level (#19542)
* [server] allow to update org settings

* [dashboard] allow org-level editor restriction

* Org owned user's editor settings should be restricted too

* Never pass empty array

* Fix user onboarding editors always loading

* Fix incorrect loading state of ide versions

* Show available editors for org owned users

* Update components/dashboard/src/user-settings/SelectIDE.tsx

Co-authored-by: Filip Troníček <filip@gitpod.io>

* Address feedback

* Revert version pin on user settings page

* Add json rpc checking

---------

Co-authored-by: Filip Troníček <filip@gitpod.io>
2024-03-20 14:07:29 +01:00
Huiwen
3f20297034
Respond bad_request with reserved env var name prefix GITPOD_ (#19547)
Co-authored-by: Filip Troníček <filip@gitpod.io>
2024-03-19 14:47:28 +01:00
Jean Pierre
9e6419c3f4
Add pin editor version (#19479)
* Add pin editor version

* Put it behind feature flag

* Fix tests

* 💄

* 💄

* Add pin icon

* 💄

* Put version pinning behind feature flag
2024-03-15 18:35:25 +01:00
Jean Pierre
475be1259b
Add db migration (#19510) 2024-03-07 17:51:17 +02:00
Huiwen
718353ef90
[papi] add restricted_workspace_classes in repository settings (#19480)
* [papi] add `restricted_workspace_classes` in repository settings

* Update components/public-api/gitpod/v1/configuration.proto

Co-authored-by: Filip Troníček <filip@gitpod.io>

* generate

* Fix build

---------

Co-authored-by: Filip Troníček <filip@gitpod.io>
2024-02-28 13:23:09 +02:00
Huiwen
e80714a733
Fix duration validation (#19476) 2024-02-27 21:10:09 +02:00
Filip Troníček
6e8cd3ed89
Configuration coachmark (#19413)
* 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>
2024-02-19 23:47:01 +02:00
Jean Pierre
d0b5b873ec
Add invalid billing address notification (#19349)
* Add webhook events

* Properly set AutomaticTax

* Use address element

* 💄

* Update susbcription on address update

* Try scroll modal

* Fix

* try fix modal scroll

* Add toast notification

* Add invalidBillingAddress column to d_b_stripe_customer

* 💄

* 💄

* Fix

* Try fix update

* Address feedback
2024-01-29 11:12:05 +02:00
Huiwen
7094f19ee8
Add collaborator role to organization (#19311)
* 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
2024-01-12 10:53:49 +02:00
Sven Efftinge
0a3e22ba3d
[usage] track email for free allowance (#19303)
* [usage] track email for free allowance

* [db] d_b_free_credits: Add indexes for userId and email

---------

Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
2024-01-04 10:49:41 +02:00
Huiwen
6c0a978eee
Revert "Revert "Add org-level workspace class restrictions"" - Server (#19275)
* Revert "Revert "Add org-level workspace class restrictions (#19191)" (#19272)"

This reverts commit 2c805ad0fcad05aa3c3983c08302ad4f16dc1e69.

* Fix build
2023-12-15 15:24:22 +02:00
Alex Tugarev
2c805ad0fc
Revert "Add org-level workspace class restrictions (#19191)" (#19272)
This reverts commit 653d858fa8d5edef1717a2319bc02cf356a10fc9.
2023-12-15 12:43:22 +02:00
Huiwen
653d858fa8
Add org-level workspace class restrictions (#19191)
* Add org-level maxmium workspace class limit

* [papi] add ListOrganizationWorkspaceClasses method

* Use papi in dashboard

* Validate when updating

* Fix bug

* Make it select default

* Align figma

* Option checking

* fixup

* Use switch button

* Add feature flag

* `invaldiator2` => `invalidateWorkspaceClasses`

* Don't allow to all if selected ones are removed from installation

* Update respond error msg

* dashboard show error msg

* fixup

* update proto doc

* Apply suggestions from code review

Updated error wording.

* update order

* Fix edge case

* Hide delete scope if not owner

* Update error msg

* Not cache org ws cls

* Force update org info

* Rename query file

* Add todos

* Remove refetch

---------

Co-authored-by: Filip Troníček <filip@gitpod.io>
Co-authored-by: Laurie T. Malau <laurie@gitpod.io>
2023-12-15 08:48:22 +02:00
Anton Kosyakov
521e6a5aab
[dashboard] use HTTP endpoint for telemetry (#19223)
* [dashboard] use HTTP endpoint for telemetry

* 💄

---------

Co-authored-by: Jean Pierre <jeanpierre@gitpod.io>
2023-12-12 14:56:19 +02:00
Huiwen
633f9915fc
Migrate instanceUpdate on service.tsx (#19213)
* Migrate instanceUpdate on service.tsx

* Remove useless code

* Fix build
2023-12-08 13:14:15 +02:00
Pudong
6ecc991ff5
[experimental] add ssh certificate authorities as feature flags (#19208) 2023-12-07 22:59:14 +02:00
Alex Tugarev
e4ccbf0b4d
GetAuthenticatedUser in Dashboard (#19142)
* [dashboard] remove unused service mock

* [dashboard] use `GetAuthenticatedUser` instead of `getLoggedInUser`

* fixup: override workspaceAutostartOptions

also fix toDurationString call

* fixup: move `isOnboardingUser` to dashboard

* fixup: move getProfile from protocol to common

* fixup fromWorkspaceAutostartOption

* move getPrimaryEmail to common and clean up

* rm getProfile from protocol, use ProfileDetails

* fixup missing leeway dependencies

* fix getPrimaryEmail

* fix resetting workspace timeout

* [gitpod-db] remove dependency to `@gitpod/public-api-common`

* cleanup BUILD.yaml
2023-12-06 17:42:14 +02:00
Anton Kosyakov
5a55a7a6ff
[dashboard] proactively reconnect grpc streams (#19185) 2023-12-04 16:05:11 +02:00
Filip Troníček
7bcc749da0
Configuration Variables page (#19128)
* `updateConfiguration`

* typdate

* Try with no deeply nested property

* JKADFkosaNcISADFuisabnfhjl hjkafb ashjdbjbhj

* Constrain even further

* Return the configuration

* Fix update mutation

* Only update necessary properties

* Implement name changes

* typastuff

* 🙄

* Mutation update

* 🤷‍♂️

* init

* Remove method present in upstream

* newlines and imports

* Address env var API changes

* fixies

* Fix list query key

* Fix for new router

* Fix list vars key? 🤷‍♂️

* Simplify return

* Adding stuff

* Add path

* Single variable component

* Use mutation callbacks for success and errs

* Typography and layout

* Do not store variable data in-browser

* Edit variable modal

* De-center

* Small fixes with admission init

* Spacing and alignment of menu items

* 🤷‍♂️

* Error reporting for creation/edit

* Update copy

* Verboserer output

* Fix missing argument 😱

* Pass in all properties of variables

* Provide ID when updating

* Fix changing admission

* Simplify

* Update table copy

* Text sizes

* Format

* Typo

* rename

* Simplify

* Copy update

* Rename comp

* Duplicate error printing

* Use `TextInputField`!

* Clean up TextInputField

* Break instead of truncate

* Fixed width table headers

Co-authored-by: Brad Harris <bmharris@gmail.com>

* Simplify route setup

---------

Co-authored-by: Brad Harris <bmharris@gmail.com>
2023-12-02 00:31:09 +02:00
Anton Kosyakov
2f14d7a2fe
decouple gitpod-protocol from public-api (#19151)
to prevent rebuilding of components which dependent on gitpod-protocol, but not public-api on an API change
2023-11-29 10:36:06 +02:00
Alex Tugarev
4c6cc4fb01
[papi] add user.proto and GetAuthenticatedUser – EXP-845 (#19132)
* [papi] add user.proto and GetAuthenticatedUser

* [papi] (generate.sh) Run end-of-file-fixer

* rename to EditoSettings

* clean up proto

* fix import

* update WorkspaceTimeoutSettings

* fix typo

* update WorkspaceTimeoutSettings

* clarify User.name is full name in doc line
2023-11-28 12:42:06 +02:00
Anton Kosyakov
180f648782
[dashboard] enable grpc migration per service (#19140) 2023-11-27 10:42:04 +02:00
Jean Pierre
c201a2d9df
[public-api] migrate ssh service (#19110)
* migrate ssh service

* 💄

* 💄

* fix build

* Fix

---------

Co-authored-by: Huiwen <mhqnwt@gmail.com>
2023-11-23 07:12:00 +02:00
Alex Tugarev
79666cd24d
[dashboard] Use SCM Service (gRPC) (#19101)
* [dashboard] Use SCM Service (gRPC)

* address review comments

* bump cache version
2023-11-22 18:26:00 +02:00
Huiwen
fa3cca46c0
Migrate CreateAndStartWorkspace method in dashboard (#19076)
* Migrate WorkspaceService.CreateAndStartWorkspace

* Add unit tests

* Fix rebase build error
2023-11-22 18:23:59 +02:00
Anton Kosyakov
70517fbd5a
[dashboard/server] app error conversion based on error details (#19103) 2023-11-22 17:49:59 +02:00
Alex Tugarev
612b919699
[server] Extract ScmService to be used by both APIs (#19098)
* [server] add ScmService to be used by ScmServiceAPI (and WS API)

* add simple test for `getToken`

* refactor `ScmService.getToken` to return token of undefined

* fix duplicata validation

* add api converter tests

* just some docs
2023-11-22 16:27:00 +02:00
Sven Efftinge
602fd5edcb
[build] fix tsconfig (#19111) 2023-11-22 10:10:59 +02:00
Sven Efftinge
6ff405b964
[build] make build incremental (#19106) 2023-11-22 08:17:00 +02:00
Filip Troníček
6f7ff4f7f4
updateConfiguration (#19080)
* `updateConfiguration`

* typdate

* Try with no deeply nested property

* JKADFkosaNcISADFuisabnfhjl hjkafb ashjdbjbhj

* Constrain even further

* Return the configuration

* Fix update mutation

* Only update necessary properties

* Implement name changes

* typastuff

* 🙄

* Mutation update

* 🤷‍♂️

* Type fixes

* Conditionally pass in name

* Partials

* Fix type mishap

* Update mutation name

* Tweak types

* Reduce abstractions

* Only supply name if applicable

* Better partial assignment

* Deepmerge with originals

* Only update fully when necessary

* Fix name conversion in papi converter

Co-authored-by: Gero Posmyk-Leinemann <32448529+geropl@users.noreply.github.com>

* Assert some converted properties to not exist

* Disallow empty configuration names

* Add cache update todo

* fix type vs class

* Error toasts

* Be less strict about value of name

* Toast the actual updated name

* Fix tests :-)

---------

Co-authored-by: Gero Posmyk-Leinemann <32448529+geropl@users.noreply.github.com>
2023-11-21 22:42:00 +02:00
Anton Kosyakov
6933bab2b6
[public-api] migrate PrebuildService (#19062) 2023-11-21 17:14:58 +02:00
Alex Tugarev
3b85bf13e1
[server] remove unused getFeaturedRepositories (#19100) 2023-11-21 16:42:59 +02:00
Gero Posmyk-Leinemann
9be1fec2c0
[ts] Add metric gitpod_logs_total(level) for TS components (#19093) 2023-11-21 16:39:59 +02:00
Jean Pierre
4ac04ee19e
[public-api] Migrate envvarService (#19067)
* Migrate envvarService

* update

* fix tests

* nit

* Fix

* Fix

* 💄

---------

Co-authored-by: Huiwen <mhqnwt@gmail.com>
2023-11-20 17:27:57 +02:00
Alex Tugarev
4b78a99f20
Remove obsolete New Project page (#19077)
* [dashboard] Remove New Project page

* remove unused query

* [server] make unused getProviderRepositoriesForUser a no-op

* [server] remove unused scm provider code
2023-11-17 12:12:54 +02:00
Huiwen
4324fcb0a0
[papi] migrate ListWorkspaces and WatchWorkspaceStatus (#19022)
* [papi] migrate ListWorkspaces and WatchWorkspaceStatus

* bump up cache version
2023-11-16 20:44:54 +02:00
Alex Tugarev
21bb3c1d55
Use AuthProviderService API in Dashboard – EXP-847 (#19057)
* convert Login.ts

* extract auth provider utils into protocol

* complete migration from useAuthProviders to  useAuthProviderDescriptions

* fixup import of scopes util

* revert rename

* migrate useDeleteOrgAuthProviderMutation

* migrate Org Git Integrations

* fix label for authprovider types

* wip migration user-level git integrations

* WIP updateProviderEntry

* wip migration

* fixup: label of auth provider types

* fixup: dont render Unknown type

* fix label

* fix this undefined

* bump CACHE_VERSION

* fixup allow to change the `clientId` only

* fixup add AuthProviderClasses to supported messages

---------

Co-authored-by: Huiwen <mhqnwt@gmail.com>
2023-11-16 17:53:54 +02:00
Gero Posmyk-Leinemann
453392bd14
[server] Introduce RequestContext (#19023)
* [server] Introduce RequestContext

* [server] Improve (repeated) Docker build times

* fix AuthProviderService.createAuthProvider
2023-11-16 14:54:54 +02:00
Alex Tugarev
feb9fa2597
🌇 GitHub App in Dashboard (#19070)
* [dashboard] compute `useIsGithubAppEnabled` on FE

* [dashboard] update Install GitHub App

* [server] make GH App methods no-op (compat)
2023-11-16 13:18:54 +02:00
Alex Tugarev
0907ff51e1
[server] remove obsolete and unused getSuggestedContextURLs (#19074)
* [server] remove obsolete and unused `getSuggestedContextURLs`

* fixup papi
2023-11-16 13:17:54 +02:00
Brad Harris
eaae6cc6f4
Repository Config list page (#19039)
* fixing pagination logic

* wip

* flushing out rows

* adding missing creationTime

* adjusting result count copy

* fix offset... again

* Flushing out table UI a bit more

* Flushing out table UI a bit more

* comment for remembering to use search params

* more comments

* fix pages count

* copy/responsive adjustments

* updating search project query & service

* pass org id along and check permission in service

* Extracting table components

* cleanup

* fix menu copy
2023-11-14 18:49:52 +02:00
Alex Tugarev
aa691ddf01
Remove Prebuild Events page and jsonrpc methods (#19069) 2023-11-14 14:13:52 +02:00
Anton Kosyakov
0ec003754e
[public-api] align with API guidelines (#19038) 2023-11-14 13:09:51 +02:00
Alex Tugarev
0e00e3daa1
[public-api] Add AuthProviderService service (#19008)
* add Unauthenticated decorator for public-api

* [server] add AuthProviderServiceAPI

* [dashboard] add client facade (JsonRpcAuthProviderClient)

* use uuidValidate

* update UpdateAuthProviderResponse to return provider

* return updated provider in UpdateAuthProviderResponse

* handle pagination for ListAuthProvider(Description)s

* add simple conversion tests for auth providers

* relax param validation on updateAuthProvider

allow to update clientId or clientSecret separately.
2023-11-13 15:38:51 +02:00
Christian Weichel
bb51f07988
Collect workspace classes from workspace cluster (#19003)
* Extend ws-manager API to support workspace class descriptions

fixes ENG-1065

* Extend  DescribeCluster in ws-manager-mk2

to acurately report the available workspace classes

fixes ENG-1066

* Add workspace classes to cluster in DB

* Intergrate workspace cluster collection in ws-manager-bridge

* Feature flag off discovered workspace class usage

* Fix build

* Add unittest for getSupportedWorkspaceClasses

* Fix workspace class storage

* Adress review feedback
2023-11-10 13:13:48 +02:00
Alex Tugarev
b2d501842f
[server] move FGA calls into AuthProviderService (#19017)
* [server] move FGA calls into AuthProviderService

* split internal upsert method `updateAuthProvider` into create and update
* refactor: move `getAuthProviders` logic from gitpod-server-impl to auth-provider-service
* adding db tests for auth provider server
* use redacted results in service

* Fix typos

* extract helper functions for scopes

* add more tests

* as regular member, should find org-level providers if no built-in providers present
* as regular member, should find only built-in providers if present

---------

Co-authored-by: Huiwen <mhqnwt@gmail.com>
2023-11-10 10:25:47 +02:00