The GitHub Actions job "Build" on texera.git/master has succeeded.
Run started by GitHub user aicam (triggered by aicam).

Head commit for run:
a67da0799f763f3bfe1e4f6ec09e98c0603c597e / Jae Yun Kim 
<[email protected]>
feat: add user's activeness to admin dashboard (#3625)

This pr adds a new feature where the admin can keep track of the
active/inactive users on the Admin Dashboard. The feature is added in
order to give admin users a better use experience and straightforward
overview of users' activeness. A ring is added around the avatars and it
will turn green whenever a user is active and gray if a user is
inactive.

Closes #3624.

##  For Developers 
Please do the following steps to incorporate with new changes:
- Apply core/scripts/sql/updates/10.sql to your local postgres instance

---

Since every http request triggers the jwtFilter, my design is to upsert
the user's last login time record whenever the request triggers the
jwtFilter. The upsert function will add a new record if the user never
logged in before, and will update the last_login attribute. When the
admin visits the admin dashboard, the call to the getUserList will now
contain a list of users with a new attribute named lastActive, which is
a Unix epoch timestamp in seconds. If a user's lastActive attribute is
null or the difference between the current timestamp and its lastActive
timestamp is larger than the set threshold (a.k.a active window), the
user will be inactive, otherwise active. Here we define the active
window as 15 minutes. With this threshold, admin users will be able to
know which users were active within the last 15 minutes.

A new table named time_log is introduced to the db and it has a primary
key uid that references the uid from user table. When a user makes a
http request, the attribute will be updated in the db. Future changes
might be made to this table since we are planning to introduce more
attributes like account creation time.

The token's expiration time is set to 15 minutes, and refresh time is
set to 16 minutes in order to make sure a user is "logged out" when they
don't make anymore http requests. As soon as the system detects that the
last active time has a 15 minutes difference with the current time, it
will mark the user as inactive.

### Screenshot of Feature
<img width="792" height="748" alt="image"
src="https://github.com/user-attachments/assets/2251d9e9-f77c-484d-89a5-0d5a42d8f85a";
/>

---------

Co-authored-by: Xinyuan Lin <[email protected]>
Co-authored-by: ali risheh <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/16893471033

With regards,
GitHub Actions via GitBox

Reply via email to