6
6
7
7
import { ContainerModule } from "inversify" ;
8
8
9
+ import { RedisPublisher , newRedisClient } from "@gitpod/gitpod-db/lib" ;
9
10
import { IAnalyticsWriter } from "@gitpod/gitpod-protocol/lib/analytics" ;
10
11
import { GitpodFileParser } from "@gitpod/gitpod-protocol/lib/gitpod-file-parser" ;
11
12
import { PrometheusClientCallMetrics } from "@gitpod/gitpod-protocol/lib/messaging/client-call-metrics" ;
@@ -32,8 +33,10 @@ import {
32
33
WorkspaceManagerClientProviderSource ,
33
34
} from "@gitpod/ws-manager/lib/client-provider-source" ;
34
35
import * as grpc from "@grpc/grpc-js" ;
36
+ import { Redis } from "ioredis" ;
35
37
import { createChannel , createClient , createClientFactory } from "nice-grpc" ;
36
38
import { retryMiddleware } from "nice-grpc-client-middleware-retry" ;
39
+ import { APIHelloService } from "./api/dummy" ;
37
40
import { API } from "./api/server" ;
38
41
import { APIStatsService } from "./api/stats" ;
39
42
import { APITeamsService } from "./api/teams" ;
@@ -50,10 +53,14 @@ import { AuthJWT, SignInJWT } from "./auth/jwt";
50
53
import { LoginCompletionHandler } from "./auth/login-completion-handler" ;
51
54
import { VerificationService } from "./auth/verification-service" ;
52
55
import { Authorizer , createInitializingAuthorizer } from "./authorization/authorizer" ;
56
+ import { RelationshipUpdater } from "./authorization/relationship-updater" ;
57
+ import { RelationshipUpdateJob } from "./authorization/relationship-updater-job" ;
53
58
import { SpiceDBClientProvider , spiceDBConfigFromEnv } from "./authorization/spicedb" ;
59
+ import { SpiceDBAuthorizer } from "./authorization/spicedb-authorizer" ;
54
60
import { BillingModes } from "./billing/billing-mode" ;
55
61
import { EntitlementService , EntitlementServiceImpl } from "./billing/entitlement-service" ;
56
62
import { EntitlementServiceUBP } from "./billing/entitlement-service-ubp" ;
63
+ import { StripeService } from "./billing/stripe-service" ;
57
64
import { BitbucketAppSupport } from "./bitbucket/bitbucket-app-support" ;
58
65
import { CodeSyncService } from "./code-sync/code-sync-service" ;
59
66
import { Config , ConfigFile } from "./config" ;
@@ -71,9 +78,12 @@ import { WebhookEventGarbageCollector } from "./jobs/webhook-gc";
71
78
import { WorkspaceGarbageCollector } from "./jobs/workspace-gc" ;
72
79
import { LinkedInService } from "./linkedin-service" ;
73
80
import { LivenessController } from "./liveness/liveness-controller" ;
81
+ import { RedisSubscriber } from "./messaging/redis-subscriber" ;
74
82
import { MonitoringEndpointsApp } from "./monitoring-endpoints" ;
75
83
import { OAuthController } from "./oauth-server/oauth-controller" ;
76
84
import { OneTimeSecretServer } from "./one-time-secret-server" ;
85
+ import { OrganizationService } from "./orgs/organization-service" ;
86
+ import { UsageService } from "./orgs/usage-service" ;
77
87
import { BitbucketApp } from "./prebuilds/bitbucket-app" ;
78
88
import { BitbucketServerApp } from "./prebuilds/bitbucket-server-app" ;
79
89
import { GithubApp } from "./prebuilds/github-app" ;
@@ -85,20 +95,23 @@ import { PrebuildManager } from "./prebuilds/prebuild-manager";
85
95
import { PrebuildStatusMaintainer } from "./prebuilds/prebuilt-status-maintainer" ;
86
96
import { StartPrebuildContextParser } from "./prebuilds/start-prebuild-context-parser" ;
87
97
import { ProjectsService } from "./projects/projects-service" ;
98
+ import { ScmService } from "./projects/scm-service" ;
88
99
import { RedisMutex } from "./redis/mutex" ;
89
100
import { Server } from "./server" ;
90
101
import { SessionHandler } from "./session-handler" ;
91
102
import { ContentServiceStorageClient } from "./storage/content-service-client" ;
92
103
import { StorageClient } from "./storage/storage-client" ;
93
104
import { AuthorizationService , AuthorizationServiceImpl } from "./user/authorization-service" ;
105
+ import { EnvVarService } from "./user/env-var-service" ;
106
+ import { GitpodTokenService } from "./user/gitpod-token-service" ;
94
107
import { NewsletterSubscriptionController } from "./user/newsletter-subscription-controller" ;
95
- import { StripeService } from "./billing/stripe -service" ;
108
+ import { SSHKeyService } from "./user/sshkey -service" ;
96
109
import { TokenProvider } from "./user/token-provider" ;
97
110
import { TokenService } from "./user/token-service" ;
98
- import { UsageService } from "./orgs/usage-service " ;
111
+ import { UserAuthentication } from "./user/user-authentication " ;
99
112
import { ServerFactory , UserController } from "./user/user-controller" ;
100
113
import { UserDeletionService } from "./user/user-deletion-service" ;
101
- import { UserAuthentication } from "./user/user-authentication " ;
114
+ import { UserService } from "./user/user-service " ;
102
115
import { contentServiceBinder } from "./util/content-service-sugar" ;
103
116
import { WebsocketConnectionManager } from "./websocket/websocket-connection-manager" ;
104
117
import { ConfigProvider } from "./workspace/config-provider" ;
@@ -119,21 +132,8 @@ import { SnapshotService } from "./workspace/snapshot-service";
119
132
import { WorkspaceClusterImagebuilderClientProvider } from "./workspace/workspace-cluster-imagebuilder-client-provider" ;
120
133
import { WorkspaceDownloadService } from "./workspace/workspace-download-service" ;
121
134
import { WorkspaceFactory } from "./workspace/workspace-factory" ;
122
- import { WorkspaceStarter } from "./workspace/workspace-starter" ;
123
- import { SpiceDBAuthorizer } from "./authorization/spicedb-authorizer" ;
124
- import { OrganizationService } from "./orgs/organization-service" ;
125
- import { RedisSubscriber } from "./messaging/redis-subscriber" ;
126
- import { Redis } from "ioredis" ;
127
- import { RedisPublisher , newRedisClient } from "@gitpod/gitpod-db/lib" ;
128
- import { UserService } from "./user/user-service" ;
129
- import { RelationshipUpdater } from "./authorization/relationship-updater" ;
130
135
import { WorkspaceService } from "./workspace/workspace-service" ;
131
- import { SSHKeyService } from "./user/sshkey-service" ;
132
- import { GitpodTokenService } from "./user/gitpod-token-service" ;
133
- import { EnvVarService } from "./user/env-var-service" ;
134
- import { ScmService } from "./projects/scm-service" ;
135
- import { RelationshipUpdateJob } from "./authorization/relationship-updater-job" ;
136
- import { APIHelloService } from "./api/dummy" ;
136
+ import { WorkspaceStarter } from "./workspace/workspace-starter" ;
137
137
138
138
export const productionContainerModule = new ContainerModule (
139
139
( bind , unbind , isBound , rebind , unbindAsync , onActivation , onDeactivation ) => {
@@ -331,6 +331,8 @@ export const productionContainerModule = new ContainerModule(
331
331
bind ( RelationshipUpdater ) . toSelf ( ) . inSingletonScope ( ) ;
332
332
333
333
// grpc / Connect API
334
+ API . contribute ( bind ) ;
335
+
334
336
bind ( APIHelloService ) . toSelf ( ) . inSingletonScope ( ) ;
335
337
bind ( APIUserService ) . toSelf ( ) . inSingletonScope ( ) ;
336
338
bind ( APITeamsService ) . toSelf ( ) . inSingletonScope ( ) ;
0 commit comments