mirror of
https://github.com/gitpod-io/gitpod.git
synced 2025-12-08 17:36:30 +00:00
* [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>
162 lines
5.1 KiB
Protocol Buffer
162 lines
5.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package gitpod.v1;
|
|
|
|
import "gitpod/v1/pagination.proto";
|
|
import "gitpod/v1/sorting.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option go_package = "github.com/gitpod-io/gitpod/components/public-api/go/v1";
|
|
option java_package = "io.gitpod.publicapi.v1";
|
|
|
|
service InstallationService {
|
|
// GetInstallationWorkspaceDefaultImage returns the default image for current
|
|
// Gitpod Installation.
|
|
rpc GetInstallationWorkspaceDefaultImage(GetInstallationWorkspaceDefaultImageRequest) returns (GetInstallationWorkspaceDefaultImageResponse) {}
|
|
|
|
// ListBlockedRepositories lists blocked repositories.
|
|
rpc ListBlockedRepositories(ListBlockedRepositoriesRequest) returns (ListBlockedRepositoriesResponse) {}
|
|
|
|
// CreateBlockedRepository creates a new blocked repository.
|
|
rpc CreateBlockedRepository(CreateBlockedRepositoryRequest) returns (CreateBlockedRepositoryResponse) {}
|
|
|
|
// DeleteBlockedRepository deletes a blocked repository.
|
|
rpc DeleteBlockedRepository(DeleteBlockedRepositoryRequest) returns (DeleteBlockedRepositoryResponse) {}
|
|
|
|
// ListBlockedEmailDomains lists blocked email domains.
|
|
rpc ListBlockedEmailDomains(ListBlockedEmailDomainsRequest) returns (ListBlockedEmailDomainsResponse) {}
|
|
|
|
// CreateBlockedEmailDomain creates a new blocked email domain.
|
|
rpc CreateBlockedEmailDomain(CreateBlockedEmailDomainRequest) returns (CreateBlockedEmailDomainResponse) {}
|
|
|
|
// GetOnboardingState returns the onboarding state of the installation.
|
|
rpc GetOnboardingState(GetOnboardingStateRequest) returns (GetOnboardingStateResponse) {}
|
|
|
|
// GetInstallationConfiguration returns configuration of the installation.
|
|
rpc GetInstallationConfiguration(GetInstallationConfigurationRequest) returns (GetInstallationConfigurationResponse) {}
|
|
}
|
|
|
|
message GetOnboardingStateRequest {}
|
|
message GetOnboardingStateResponse {
|
|
OnboardingState onboarding_state = 1;
|
|
}
|
|
|
|
message OnboardingState {
|
|
// Whether at least one organization has completed the onboarding
|
|
bool completed = 1;
|
|
|
|
// The total number of organizations
|
|
int32 organization_count_total = 2;
|
|
}
|
|
|
|
message GetInstallationWorkspaceDefaultImageRequest {}
|
|
|
|
message GetInstallationWorkspaceDefaultImageResponse {
|
|
string default_workspace_image = 1;
|
|
}
|
|
|
|
message ListBlockedRepositoriesRequest {
|
|
// pagination contains the pagination options for listing blocked repositories
|
|
PaginationRequest pagination = 1;
|
|
|
|
// sort contains the sort options for listing blocked repositories
|
|
// BlockedRepositories can be sorted by "urlRegexp"
|
|
repeated Sort sort = 2;
|
|
|
|
// search_term is a search term to filter blocked repositories by url_regexp
|
|
string search_term = 3;
|
|
}
|
|
|
|
message ListBlockedRepositoriesResponse {
|
|
// pagination contains the pagination options for listing blocked repositories
|
|
PaginationResponse pagination = 1;
|
|
|
|
// blocked_repositories are the blocked repositories
|
|
repeated BlockedRepository blocked_repositories = 2;
|
|
}
|
|
|
|
message CreateBlockedRepositoryRequest {
|
|
// url_regexp is the regular expression for the repository URL
|
|
string url_regexp = 1;
|
|
|
|
// block_user indicates if the user should be blocked from accessing the
|
|
// repository
|
|
bool block_user = 2;
|
|
|
|
// block_free_usage indicates if a free tier user may not start a workspace on that repository URL
|
|
bool block_free_usage = 3;
|
|
}
|
|
|
|
message CreateBlockedRepositoryResponse {
|
|
BlockedRepository blocked_repository = 1;
|
|
}
|
|
|
|
message DeleteBlockedRepositoryRequest {
|
|
// blocked_repository_id is the ID of the blocked repository
|
|
uint32 blocked_repository_id = 1;
|
|
}
|
|
|
|
message DeleteBlockedRepositoryResponse {}
|
|
|
|
message ListBlockedEmailDomainsRequest {
|
|
// pagination contains the pagination options for listing blocked email
|
|
// domains
|
|
PaginationRequest pagination = 1;
|
|
}
|
|
|
|
message ListBlockedEmailDomainsResponse {
|
|
// pagination contains the pagination options for listing blocked email
|
|
// domains
|
|
PaginationResponse pagination = 1;
|
|
|
|
// blocked_email_domains are the blocked email domains
|
|
repeated BlockedEmailDomain blocked_email_domains = 2;
|
|
}
|
|
|
|
message CreateBlockedEmailDomainRequest {
|
|
// domain is the blocked email domain
|
|
string domain = 1;
|
|
|
|
bool negative = 2;
|
|
}
|
|
|
|
message CreateBlockedEmailDomainResponse {
|
|
BlockedEmailDomain blocked_email_domain = 1;
|
|
}
|
|
|
|
message BlockedRepository {
|
|
// id is the ID of the blocked repository
|
|
uint32 id = 1;
|
|
|
|
// url_regexp is the regular expression for the repository URL
|
|
string url_regexp = 2;
|
|
|
|
// block_user indicates if the user should be blocked from accessing the
|
|
// repository
|
|
bool block_user = 3;
|
|
|
|
google.protobuf.Timestamp creation_time = 4;
|
|
google.protobuf.Timestamp update_time = 5;
|
|
|
|
// block_free_usage indicates if a free tier user may not start a workspace on that repository URL
|
|
bool block_free_usage = 6;
|
|
}
|
|
|
|
message BlockedEmailDomain {
|
|
// id is the ID of the blocked email domain
|
|
string id = 1;
|
|
|
|
// domain is the blocked email domain
|
|
string domain = 2;
|
|
|
|
bool negative = 3;
|
|
}
|
|
|
|
message GetInstallationConfigurationRequest {}
|
|
message GetInstallationConfigurationResponse {
|
|
InstallationConfiguration configuration = 1;
|
|
}
|
|
message InstallationConfiguration {
|
|
bool is_dedicated_installation = 1;
|
|
}
|