diff --git a/internal/db/migrations/postgres.gen.go b/internal/db/migrations/postgres.gen.go index 869a880b8..2faf282c1 100644 --- a/internal/db/migrations/postgres.gen.go +++ b/internal/db/migrations/postgres.gen.go @@ -3764,7 +3764,8 @@ begin; immutable_columns before update on session_state - for each row execute procedure immutable_columns('session_id', 'start_time', 'previous_end_time'); + for each row execute procedure immutable_columns('session_id', 'state', 'start_time', 'previous_end_time'); + create or replace function insert_session_state() @@ -4101,7 +4102,7 @@ begin; immutable_columns before update on session_connection_state - for each row execute procedure immutable_columns('connection_id', 'state', 'start_time'); + for each row execute procedure immutable_columns('connection_id', 'state', 'start_time', 'previous_end_time'); create or replace function insert_session_connection_state() diff --git a/internal/db/migrations/postgres/50_session.up.sql b/internal/db/migrations/postgres/50_session.up.sql index 60f4c0a70..e253fff6e 100644 --- a/internal/db/migrations/postgres/50_session.up.sql +++ b/internal/db/migrations/postgres/50_session.up.sql @@ -408,7 +408,8 @@ begin; immutable_columns before update on session_state - for each row execute procedure immutable_columns('session_id', 'start_time', 'previous_end_time'); + for each row execute procedure immutable_columns('session_id', 'state', 'start_time', 'previous_end_time'); + create or replace function insert_session_state() diff --git a/internal/db/migrations/postgres/51_connection.up.sql b/internal/db/migrations/postgres/51_connection.up.sql index d5a490cb4..b7da8a1d4 100644 --- a/internal/db/migrations/postgres/51_connection.up.sql +++ b/internal/db/migrations/postgres/51_connection.up.sql @@ -249,7 +249,7 @@ begin; immutable_columns before update on session_connection_state - for each row execute procedure immutable_columns('connection_id', 'state', 'start_time'); + for each row execute procedure immutable_columns('connection_id', 'state', 'start_time', 'previous_end_time'); create or replace function insert_session_connection_state() diff --git a/internal/session/immutable_fields_test.go b/internal/session/immutable_fields_test.go index 5a0d3d107..0643ec863 100644 --- a/internal/session/immutable_fields_test.go +++ b/internal/session/immutable_fields_test.go @@ -119,6 +119,15 @@ func TestState_ImmutableFields(t *testing.T) { }(), fieldMask: []string{"PublicId"}, }, + { + name: "status", + update: func() *State { + s := new.Clone().(*State) + s.Status = "active" + return s + }(), + fieldMask: []string{"Status"}, + }, { name: "start time", update: func() *State { @@ -258,6 +267,15 @@ func TestConnectionState_ImmutableFields(t *testing.T) { }(), fieldMask: []string{"PublicId"}, }, + { + name: "status", + update: func() *ConnectionState { + s := new.Clone().(*ConnectionState) + s.Status = "closed" + return s + }(), + fieldMask: []string{"Status"}, + }, { name: "start time", update: func() *ConnectionState {