From 8ddb9ca98e92439600160192b8cf2bcaee1f0007 Mon Sep 17 00:00:00 2001 From: stevenGravy Date: Wed, 20 Nov 2024 07:21:58 -0500 Subject: [PATCH 1/4] [web] update user participants for k8s non-interactive in recorded sessions --- .../teleport/src/services/recordings/makeRecording.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/packages/teleport/src/services/recordings/makeRecording.ts b/web/packages/teleport/src/services/recordings/makeRecording.ts index 3a9264f3630f3..3eaec4c403880 100644 --- a/web/packages/teleport/src/services/recordings/makeRecording.ts +++ b/web/packages/teleport/src/services/recordings/makeRecording.ts @@ -66,6 +66,7 @@ function makeDesktopRecording({ function makeSshOrKubeRecording({ participants, + kubernetes_users, time, session_start, session_stop, @@ -84,9 +85,13 @@ function makeSshOrKubeRecording({ ); let hostname = server_hostname || 'N/A'; + // SSH interactive/non-interactive and k8s interative sessions user participants are in the participants field. + let userParticipants = participants; // For Kubernetes sessions, put the full pod name as 'hostname'. if (proto === 'kube') { hostname = `${kubernetes_cluster}/${kubernetes_pod_namespace}/${kubernetes_pod_name}`; + // For non-interactive k8s sessions the user participants are in kubernetes_users + if (!interactive) userParticipants = kubernetes_users; } // Description set to play for interactive so users can search by "play". @@ -101,7 +106,7 @@ function makeSshOrKubeRecording({ durationText, sid, createdDate: new Date(time), - users: participants ? participants.join(', ') : [], + users: userParticipants ? userParticipants.join(', ') : [], hostname, description, recordingType: kubernetes_cluster ? 'k8s' : 'ssh', From 5c33fdf3ae12fca10fd4152b3952807bfc4ca6be Mon Sep 17 00:00:00 2001 From: stevenGravy Date: Wed, 20 Nov 2024 07:24:27 -0500 Subject: [PATCH 2/4] fix comment spelling --- web/packages/teleport/src/services/recordings/makeRecording.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/packages/teleport/src/services/recordings/makeRecording.ts b/web/packages/teleport/src/services/recordings/makeRecording.ts index 3eaec4c403880..aa0379d7375cb 100644 --- a/web/packages/teleport/src/services/recordings/makeRecording.ts +++ b/web/packages/teleport/src/services/recordings/makeRecording.ts @@ -85,7 +85,7 @@ function makeSshOrKubeRecording({ ); let hostname = server_hostname || 'N/A'; - // SSH interactive/non-interactive and k8s interative sessions user participants are in the participants field. + // SSH interactive/non-interactive and k8s interactive sessions user participants are in the participants field. let userParticipants = participants; // For Kubernetes sessions, put the full pod name as 'hostname'. if (proto === 'kube') { From c2b6119416c7f932cd21da2360ff5d6b8fdaff28 Mon Sep 17 00:00:00 2001 From: stevenGravy Date: Wed, 20 Nov 2024 07:36:23 -0500 Subject: [PATCH 3/4] update test for recorded sessions --- .../teleport/src/services/recordings/recordings.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/packages/teleport/src/services/recordings/recordings.test.ts b/web/packages/teleport/src/services/recordings/recordings.test.ts index 248d6199b10da..0ae7a530bb119 100644 --- a/web/packages/teleport/src/services/recordings/recordings.test.ts +++ b/web/packages/teleport/src/services/recordings/recordings.test.ts @@ -51,7 +51,7 @@ test('fetch session recordings, response formatting', async () => { playable: false, recordingType: 'k8s', sid: '456b933c-4ec4-59f1-862c-90ca9f7648b1', - users: [], + users: 'wov@esde.ro', }, ], startKey: '', From 2a197ca1aa396b96de44f4e90270199b8de82c0d Mon Sep 17 00:00:00 2001 From: stevenGravy Date: Wed, 20 Nov 2024 08:07:22 -0500 Subject: [PATCH 4/4] update user source for non-interactive k8s session listing --- .../teleport/src/services/recordings/makeRecording.ts | 6 +++--- .../teleport/src/services/recordings/recordings.test.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web/packages/teleport/src/services/recordings/makeRecording.ts b/web/packages/teleport/src/services/recordings/makeRecording.ts index aa0379d7375cb..3b69c2508fa41 100644 --- a/web/packages/teleport/src/services/recordings/makeRecording.ts +++ b/web/packages/teleport/src/services/recordings/makeRecording.ts @@ -66,7 +66,7 @@ function makeDesktopRecording({ function makeSshOrKubeRecording({ participants, - kubernetes_users, + user, time, session_start, session_stop, @@ -90,8 +90,8 @@ function makeSshOrKubeRecording({ // For Kubernetes sessions, put the full pod name as 'hostname'. if (proto === 'kube') { hostname = `${kubernetes_cluster}/${kubernetes_pod_namespace}/${kubernetes_pod_name}`; - // For non-interactive k8s sessions the user participants are in kubernetes_users - if (!interactive) userParticipants = kubernetes_users; + // For non-interactive k8s sessions the participant is the Teleport user running the command + if (!interactive) userParticipants = [user]; } // Description set to play for interactive so users can search by "play". diff --git a/web/packages/teleport/src/services/recordings/recordings.test.ts b/web/packages/teleport/src/services/recordings/recordings.test.ts index 0ae7a530bb119..507828e3a9490 100644 --- a/web/packages/teleport/src/services/recordings/recordings.test.ts +++ b/web/packages/teleport/src/services/recordings/recordings.test.ts @@ -51,7 +51,7 @@ test('fetch session recordings, response formatting', async () => { playable: false, recordingType: 'k8s', sid: '456b933c-4ec4-59f1-862c-90ca9f7648b1', - users: 'wov@esde.ro', + users: 'onuweeme@wiuke.mh', }, ], startKey: '',