[GH-ISSUE #49] Adopt Existing Wolf Clients into WolfManager #24

Open
opened 2026-10-15 13:01:39 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @salty2011 on GitHub (Jul 11, 2025).
Original GitHub issue: https://github.com/games-on-whales/wolfmanager/issues/49

Overview

Introduce a new Client Management interface under Settings that allows administrators to adopt existing clients registered in Wolf (via the /clients API) into WolfManager. This feature ensures orphaned or pre-existing clients can be assigned to managed users within WolfManager, bringing them into the lifecycle of user-managed session handling and client cleanup.


Motivation

Currently, clients known to Wolf but not to WolfManager remain unmanaged, leading to:

  • Gaps in accountability for client access
  • Inconsistent user experience
  • Untracked client lifecycle events (e.g., deletion, pairing)

This feature allows administrators to assign unclaimed Wolf clients to existing users in WolfManager, enabling proper lifecycle control (e.g., automatic unpairing when users are deleted), friendly name assignment, and audit logging.


Feature Details

🛍️ Location

  • Settings > Client Management

🔒 Permissions

  • Accessible only by users with the Admin role

📋 Functionality

  • Display a table of unmanaged clients, sourced from the /clients endpoint in Wolf and filtered to exclude those already in the WolfManager clients table.

  • Include a bulk assignment option, by selection all relevent client and assigning to use

  • Each row includes:

    • Client ID (from Wolf)
    • Friendly Name (editable input)
    • User Assignment (dropdown of existing WolfManager users)
    • Assign Button (to confirm)
  • On assignment:

    • The client is added to the clients table in the WolfManager database
    • The associated user is linked
    • If no friendly name is entered, the client ID is used as fallback
    • Audit log entry is created using the existing logger function
  • Only one user can be assigned per client

  • Friendly names can be duplicated (not a unique identifier)

  • The client will then appear in the Clients section of the user

🔀 Unpairing Logic

  • If a user is deleted, any assigned clients will:

    • Be removed from the database
    • Trigger the unpair API request to Wolf
    • Log the event in the audit log

UX Design Notes

  • Table UI should include:

    • Search/filter by client ID
    • Pagination if the number of unassigned clients exceeds a set threshold
    • Inline dropdown and text field inputs per row
    • Assign button per row (or batch action if desired in future)
  • Friendly name is optional input

  • Dropdown for users should list usernames or friendly labels


Audit Logging

Each client assignment should generate a log entry:

[Client Management] Admin assigned Wolf Client '<client_id>' to User '<user_id>' with friendly name '<friendly_name>'

Log the timestamp, admin ID, and source IP if available.


Future Enhancements (Optional Later)

  • Allow reassignment of clients between users
  • Batch assignment or bulk actions
  • Alert if assigned client becomes unreachable
  • Display last seen time from Wolf API
Originally created by @salty2011 on GitHub (Jul 11, 2025). Original GitHub issue: https://github.com/games-on-whales/wolfmanager/issues/49 ### **Overview** Introduce a new **Client Management** interface under `Settings` that allows administrators to adopt existing clients registered in Wolf (via the `/clients` API) into WolfManager. This feature ensures orphaned or pre-existing clients can be assigned to managed users within WolfManager, bringing them into the lifecycle of user-managed session handling and client cleanup. --- ### **Motivation** Currently, clients known to Wolf but not to WolfManager remain unmanaged, leading to: * Gaps in accountability for client access * Inconsistent user experience * Untracked client lifecycle events (e.g., deletion, pairing) This feature allows administrators to assign unclaimed Wolf clients to existing users in WolfManager, enabling proper lifecycle control (e.g., automatic unpairing when users are deleted), friendly name assignment, and audit logging. --- ### **Feature Details** #### 🛍️ Location * `Settings > Client Management` #### 🔒 Permissions * Accessible only by users with the `Admin` role #### 📋 Functionality * Display a table of **unmanaged clients**, sourced from the `/clients` endpoint in Wolf and filtered to exclude those already in the WolfManager `clients` table. * Include a bulk assignment option, by selection all relevent client and assigning to use * Each row includes: * Client ID (from Wolf) * Friendly Name (editable input) * User Assignment (dropdown of existing WolfManager users) * Assign Button (to confirm) * On assignment: * The client is added to the `clients` table in the WolfManager database * The associated user is linked * If no friendly name is entered, the `client ID` is used as fallback * Audit log entry is created using the existing `logger` function * Only one user can be assigned per client * Friendly names can be duplicated (not a unique identifier) * The client will then appear in the **Clients** section of the user #### 🔀 Unpairing Logic * If a user is deleted, any assigned clients will: * Be removed from the database * Trigger the `unpair` API request to Wolf * Log the event in the audit log --- ### **UX Design Notes** * Table UI should include: * Search/filter by client ID * Pagination if the number of unassigned clients exceeds a set threshold * Inline dropdown and text field inputs per row * Assign button per row (or batch action if desired in future) * Friendly name is optional input * Dropdown for users should list usernames or friendly labels --- ### **Audit Logging** Each client assignment should generate a log entry: ```plaintext [Client Management] Admin assigned Wolf Client '<client_id>' to User '<user_id>' with friendly name '<friendly_name>' ``` Log the timestamp, admin ID, and source IP if available. --- ### **Future Enhancements (Optional Later)** * Allow reassignment of clients between users * Batch assignment or bulk actions * Alert if assigned client becomes unreachable * Display last seen time from Wolf API
Author
Owner

@zeedif commented on GitHub (Oct 25, 2025):

Just chiming in to say I'm also facing this issue. I had several clients paired directly with Wolf before setting up WolfManager, and I was wondering why they weren't showing up. Eagerly waiting for this feature!

<!-- gh-comment-id:3447865033 --> @zeedif commented on GitHub (Oct 25, 2025): Just chiming in to say I'm also facing this issue. I had several clients paired directly with Wolf before setting up WolfManager, and I was wondering why they weren't showing up. Eagerly waiting for this feature!
Author
Owner

@salty2011 commented on GitHub (Oct 26, 2025):

Yeah, definitely something that needs to be sorted.

Sorry for delays been busy winding up at my old job and settling into the new one...

Should have some time in the coming weeks to start this

<!-- gh-comment-id:3448061760 --> @salty2011 commented on GitHub (Oct 26, 2025): Yeah, definitely something that needs to be sorted. Sorry for delays been busy winding up at my old job and settling into the new one... Should have some time in the coming weeks to start this
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolfmanager#24
No description provided.