diff --git a/addons/api/addon/generated/models/session-recording.js b/addons/api/addon/generated/models/session-recording.js
index f8d3b7930..aca92a8a6 100644
--- a/addons/api/addon/generated/models/session-recording.js
+++ b/addons/api/addon/generated/models/session-recording.js
@@ -19,16 +19,11 @@ export default class GeneratedSessionRecordingModel extends BaseModel {
type;
@attr({
- description: 'The user who created the session.',
+ description:
+ 'Contains the values of related fields at the time this Session Recording was created',
readOnly: true,
})
- user;
-
- @attr({
- description: 'The target the session connected to.',
- readOnly: true,
- })
- target;
+ create_time_values;
@attr('string', {
description: 'The ID of the Session which this Session Recording recorded.',
@@ -36,6 +31,13 @@ export default class GeneratedSessionRecordingModel extends BaseModel {
})
session_id;
+ @attr('string', {
+ description:
+ 'The ID of the Storage Bucket for the Target of this Session Recording',
+ readOnly: true,
+ })
+ storage_bucket_id;
+
@attr('string', {
description:
'The total number of bytes uploaded from the client in the Session.',
diff --git a/addons/api/addon/models/session-recording.js b/addons/api/addon/models/session-recording.js
index f43b85ff4..b0649845e 100644
--- a/addons/api/addon/models/session-recording.js
+++ b/addons/api/addon/models/session-recording.js
@@ -38,7 +38,10 @@ export default class SessionRecordingModel extends GeneratedSessionRecordingMode
* @type {string}
*/
get targetScopeDisplayName() {
- return this.target?.scope?.name || this.target?.scope?.id;
+ return (
+ this.create_time_values?.target?.scope?.name ||
+ this.create_time_values?.target?.scope?.id
+ );
}
/**
@@ -46,6 +49,8 @@ export default class SessionRecordingModel extends GeneratedSessionRecordingMode
* @type {string}
*/
get userDisplayName() {
- return this.user?.name || this.user?.id;
+ return (
+ this.create_time_values?.user?.name || this.create_time_values?.user?.id
+ );
}
}
diff --git a/addons/api/mirage/factories/session-recording.js b/addons/api/mirage/factories/session-recording.js
index 717a4da52..e77fbb2fe 100644
--- a/addons/api/mirage/factories/session-recording.js
+++ b/addons/api/mirage/factories/session-recording.js
@@ -36,9 +36,12 @@ export default factory.extend({
target.id = 'deleted_target';
sessionRecording.update({
- user: user.attrs,
- target: target.attrs,
sessionId: session.id,
+ storage_bucket_id: target.storage_bucket_id,
+ create_time_values: {
+ user: user.attrs,
+ target: target.attrs,
+ },
});
},
}),
@@ -52,9 +55,12 @@ export default factory.extend({
);
sessionRecording.update({
- user: user.attrs,
- target: target.attrs,
sessionId: session.id,
+ storage_bucket_id: target.storage_bucket_id,
+ create_time_values: {
+ user: user.attrs,
+ target: target.attrs,
+ },
});
},
}),
diff --git a/addons/api/mirage/serializers/session-recording.js b/addons/api/mirage/serializers/session-recording.js
index f6be85e59..dcd1672fe 100644
--- a/addons/api/mirage/serializers/session-recording.js
+++ b/addons/api/mirage/serializers/session-recording.js
@@ -26,18 +26,19 @@ export default ApplicationSerializer.extend({
);
});
}
- if (model.user?.scopeId) {
- const scope = scopes.find(model.user.scopeId);
- json.user.scope = ScopeSerializer.prototype._hashForModel.apply(this, [
- scope,
- ]);
+ const userScopeId = model.create_time_values?.user?.scopeId;
+ if (userScopeId) {
+ const scope = scopes.find(userScopeId);
+ json.create_time_values.user.scope =
+ ScopeSerializer.prototype._hashForModel.apply(this, [scope]);
}
- if (model.target?.scopeId) {
- const scope = scopes.find(model.target.scopeId);
- json.target.scope = ScopeSerializer.prototype._hashForModel.apply(this, [
- scope,
- ]);
+ const targetScopeId = model.create_time_values?.target?.scopeId;
+ if (targetScopeId) {
+ const scope = scopes.find(targetScopeId);
+ json.create_time_values.target.scope =
+ ScopeSerializer.prototype._hashForModel.apply(this, [scope]);
}
+ delete json.create_time_values?.target?.storage_bucket_id;
json.session_id = model.sessionId;
return json;
diff --git a/addons/api/tests/unit/models/session-recording-test.js b/addons/api/tests/unit/models/session-recording-test.js
index fa020322d..c066ed2cc 100644
--- a/addons/api/tests/unit/models/session-recording-test.js
+++ b/addons/api/tests/unit/models/session-recording-test.js
@@ -84,13 +84,22 @@ module('Unit | Model | session-recording', function (hooks) {
const fakeId = 's_123456789';
const modelA = store.createRecord('session-recording', {
- target: {
- scope: { name: fakeName, id: fakeId },
+ create_time_values: {
+ target: {
+ scope: {
+ name: fakeName,
+ id: fakeId,
+ },
+ },
},
});
const modelB = store.createRecord('session-recording', {
- target: {
- scope: { id: fakeId },
+ create_time_values: {
+ target: {
+ scope: {
+ id: fakeId,
+ },
+ },
},
});
@@ -105,11 +114,20 @@ module('Unit | Model | session-recording', function (hooks) {
const fakeUserId = 'userid';
const userModelA = store.createRecord('session-recording', {
- user: { name: fakeUserName, id: fakeUserId },
+ create_time_values: {
+ user: {
+ name: fakeUserName,
+ id: fakeUserId,
+ },
+ },
});
const userModelB = store.createRecord('session-recording', {
- user: { id: fakeUserId },
+ create_time_values: {
+ user: {
+ id: fakeUserId,
+ },
+ },
});
assert.strictEqual(userModelA.userDisplayName, fakeUserName);
diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js
index e81eaf31f..c19452b68 100644
--- a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js
+++ b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js
@@ -27,8 +27,8 @@ export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConne
);
try {
- if (sessionRecording.target?.storage_bucket_id) {
- const { storage_bucket_id } = sessionRecording.target;
+ if (sessionRecording.storage_bucket_id) {
+ const { storage_bucket_id } = sessionRecording;
storageBucket = await this.store.findRecord(
'storage-bucket',
storage_bucket_id
diff --git a/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs b/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs
index c444b55da..9a65b5707 100644
--- a/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs
+++ b/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs
@@ -46,7 +46,7 @@
>
- {{B.data.target.name}}
+ {{B.data.create_time_values.target.name}}
{{t 'resources.session-recording.related'}}
{{! User name }}
- {{#if @model.sessionRecording.user}}
+ {{#if @model.sessionRecording.create_time_values.user}}
{{/if}}
{{! Target name }}
- {{#if @model.sessionRecording.target}}
+ {{#if @model.sessionRecording.create_time_values.target}}
{{#if @model.sessionRecording.target.type}}
diff --git a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs
index ae78f78f2..364e756fc 100644
--- a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs
+++ b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs
@@ -150,32 +150,34 @@
{{t 'resources.session-recording.related'}}
{{! User name }}
- {{#if @model.sessionRecording.user}}
+ {{#if @model.sessionRecording.create_time_values.user}}
{{/if}}
{{! Target name }}
- {{#if @model.sessionRecording.target}}
+ {{#if @model.sessionRecording.create_time_values.target}}
- {{#if @model.sessionRecording.target.type}}
-
+ {{#if @model.sessionRecording.create_time_values.target.type}}
+
{{/if}}
{{/if}}
diff --git a/ui/admin/tests/acceptance/session-recordings/list-test.js b/ui/admin/tests/acceptance/session-recordings/list-test.js
index 30faa21ed..68e6bd06a 100644
--- a/ui/admin/tests/acceptance/session-recordings/list-test.js
+++ b/ui/admin/tests/acceptance/session-recordings/list-test.js
@@ -38,7 +38,9 @@ module('Acceptance | session recordings | list', function (hooks) {
scope: instances.scopes.global,
});
instances.sessionRecording = this.server.create('session-recording', {
- target: instances.scopes.targetModel.attrs,
+ create_time_values: {
+ target: instances.scopes.targetModel.attrs,
+ },
});
urls.globalScope = `/scopes/global`;
urls.sessionRecordings = `${urls.globalScope}/session-recordings`;
diff --git a/ui/admin/tests/acceptance/session-recordings/read-test.js b/ui/admin/tests/acceptance/session-recordings/read-test.js
index e6b0b9f85..9916a4a71 100644
--- a/ui/admin/tests/acceptance/session-recordings/read-test.js
+++ b/ui/admin/tests/acceptance/session-recordings/read-test.js
@@ -44,7 +44,9 @@ module('Acceptance | session recordings | read', function (hooks) {
});
instances.sessionRecording = this.server.create('session-recording', {
scope: instances.scopes.global,
- target: instances.target.attrs,
+ create_time_values: {
+ target: instances.target.attrs,
+ },
});
instances.connectionRecording = this.server.create('connection-recording', {
session_recording: instances.sessionRecording,