fix(sessions): add an expiration date filter to list sessions api (#10384)

# Which Problems Are Solved

The deletion of expired sessions does not go through even though a
success response is returned to the user. These expired and supposedly
deleted (to the user) sessions are then returned when the `ListSessions`
API is called.

This PR fixes this issue by:
1. Allowing deletion of expired sessions
2. Providing an `expiration_date` filter in `ListSession` API to filter
sessions by expiration date

# How the Problems Are Solved

1. Remove expired session check during deletion
2. Add an `expiration_date` filter to the  `ListSession` API

# Additional Changes
N/A

# Additional Context
- Closes #10045

---------

Co-authored-by: Marco A. <marco@zitadel.com>
This commit is contained in:
Gayathri Vijayan
2025-08-07 14:58:59 +02:00
committed by GitHub
parent 7e184727b0
commit a96f4708cb
8 changed files with 280 additions and 13 deletions

View File

@@ -138,6 +138,7 @@ message SearchQuery {
CreationDateQuery creation_date_query = 3;
CreatorQuery creator_query = 4;
UserAgentQuery user_agent_query = 5;
ExpirationDateQuery expiration_date_query = 6;
}
}
@@ -183,6 +184,16 @@ message UserAgentQuery {
];
}
message ExpirationDateQuery {
google.protobuf.Timestamp expiration_date = 1;
zitadel.v1.TimestampQueryMethod method = 2 [
(validate.rules).enum.defined_only = true,
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
description: "defines which timestamp comparison method is used";
}
];
}
message UserAgent {
optional string fingerprint_id = 1;
optional string ip = 2;