Skip to content

Commit 3f1361c

Browse files
authored
Fix ide_project_opened log for local projects (#14619)
Fixes #14137 Cloud didn't accept our local project id as projectId. So now we use the internal project UUID from project.json instead.
1 parent e761ebc commit 3f1361c

File tree

5 files changed

+14
-10
lines changed

5 files changed

+14
-10
lines changed

app/common/src/services/Backend.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
Path,
2525
ProjectId,
2626
SecretId,
27+
UUID,
2728
VirtualParentsPath,
2829
type Address,
2930
type AssetId,
@@ -279,6 +280,8 @@ export interface Project extends CreatedProject {
279280
readonly openedBy?: EmailAddress
280281
/** On the Remote (Cloud) Backend, this is a S3 url that is valid for only 120 seconds. */
281282
readonly url?: HttpsUrl
283+
/** On Local Backend, this is the internal UUID of the project read from `.enso/project.json` */
284+
readonly internalId?: UUID
282285
}
283286

284287
/** A user/organization's project containing and/or currently executing code. */

app/common/src/services/LocalBackend.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,7 @@ export class LocalBackend extends backend.Backend {
391391
},
392392
url: backend.HttpsUrl(this.resolvePath(downloadProjectPath(projectId))),
393393
ensoPath: backend.EnsoPath(`${directoryPath}/${cachedProject.projectNormalizedName}`),
394+
internalId: cachedProject.projectId,
394395
}
395396
}
396397
}

app/common/src/services/ProjectManager/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ export interface CreateProject {
138138

139139
/** The return value of the "open project" endpoint. */
140140
export interface OpenProject {
141+
readonly projectId: UUID
141142
readonly languageServerJsonAddress: IpWithSocket
142143
readonly languageServerBinaryAddress: IpWithSocket
143144
readonly languageServerYdocAddress?: IpWithSocket

app/gui/src/providers/openedProjects/projectStates.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ export function useProjectStates() {
427427
return scope.run(() => {
428428
const graph = createGraphStore(store, suggestionDb, projectNames, module.value)
429429
const widgetRegistry = new WidgetRegistry(graph.db)
430-
const logger = eventLogger(project.info.id)
430+
const logger = eventLogger(project, runDetails.value)
431431

432432
logger.send('ide_project_opened')
433433
onScopeDispose(() => logger.send('ide_project_closed'))
@@ -502,17 +502,14 @@ export function useProjectStates() {
502502
}
503503

504504
/** Create an event logger for given project. */
505-
function eventLogger(projectId: ProjectId) {
506-
const logProjectId = computed(() => {
507-
const prefix = 'project-'
508-
const projectUuid =
509-
projectId.startsWith(prefix) ? projectId.substring(prefix.length) : projectId
510-
return `${prefix}${projectUuid.replace(/-/g, '')}`
511-
})
512-
505+
function eventLogger(project: Opened, runDetails: ProjectDetails) {
506+
const logProjectId =
507+
project.info.mode === 'local' ?
508+
`project-${runDetails.internalId?.replaceAll('-', '')}`
509+
: project.info.id
513510
return {
514511
async send(message: string) {
515-
backends.remoteBackend.logEvent(message, logProjectId.value)
512+
backends.remoteBackend.logEvent(message, logProjectId)
516513
},
517514
}
518515
}

app/project-manager-shim/src/projectService/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export interface CreateProject {
5353

5454
/** The return value of the "open project" endpoint. */
5555
export interface OpenProject {
56+
readonly projectId: UUID
5657
readonly languageServerJsonAddress: Socket
5758
readonly languageServerBinaryAddress: Socket
5859
readonly languageServerYdocAddress: Socket
@@ -206,6 +207,7 @@ export class ProjectService {
206207

207208
// Return the OpenProject response
208209
return {
210+
projectId,
209211
languageServerJsonAddress: sockets.jsonSocket,
210212
languageServerBinaryAddress: sockets.binarySocket,
211213
languageServerYdocAddress: sockets.ydocSocket,

0 commit comments

Comments
 (0)