Class UserServiceGrpc.UserServiceBlockingV2Stub

java.lang.Object
io.grpc.stub.AbstractStub<UserServiceGrpc.UserServiceBlockingV2Stub>
io.grpc.stub.AbstractBlockingStub<UserServiceGrpc.UserServiceBlockingV2Stub>
com.soulfiremc.grpc.generated.UserServiceGrpc.UserServiceBlockingV2Stub
Enclosing class:
UserServiceGrpc

public static final class UserServiceGrpc.UserServiceBlockingV2Stub extends io.grpc.stub.AbstractBlockingStub<UserServiceGrpc.UserServiceBlockingV2Stub>
A stub to allow clients to do synchronous rpc calls to service UserService.
UserService provides user management functionality for the SoulFire system.
All methods require authentication via JWT token in the request metadata.
Most methods require specific global permissions (CREATE_USER, READ_USER, UPDATE_USER,
DELETE_USER, INVALIDATE_SESSIONS, or GENERATE_API_TOKEN).
Admin users automatically have all permissions.
Note: The root user (ID: 00000000-0000-0000-0000-000000000000) cannot be modified or deleted.
Note: Users cannot modify their own account through this service (use self-service endpoints instead).
  • Method Details

    • build

      protected UserServiceGrpc.UserServiceBlockingV2Stub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<UserServiceGrpc.UserServiceBlockingV2Stub>
    • createUser

      public UserCreateResponse createUser(UserCreateRequest request) throws io.grpc.StatusException
      Creates a new user account in the system.
      Requires the CREATE_USER global permission.
      Returns the UUID of the newly created user.
      Error cases:
        - INTERNAL: If username or email already exists, or validation fails
        - PERMISSION_DENIED: If caller lacks CREATE_USER permission
      
      Throws:
      io.grpc.StatusException
    • deleteUser

      public UserDeleteResponse deleteUser(UserDeleteRequest request) throws io.grpc.StatusException
      Deletes an existing user from the system.
      Requires the DELETE_USER global permission.
      Cascades to delete all owned instances and audit logs.
      Also disconnects the user from any active log subscriptions.
      Error cases:
        - INTERNAL: If user not found, or attempting to delete self/root user
        - PERMISSION_DENIED: If caller lacks DELETE_USER permission
      
      Throws:
      io.grpc.StatusException
    • listUsers

      public UserListResponse listUsers(UserListRequest request) throws io.grpc.StatusException
      Lists all users in the system.
      Requires the READ_USER global permission.
      Returns complete information for all users including timestamps.
      Error cases:
        - INTERNAL: If database query fails
        - PERMISSION_DENIED: If caller lacks READ_USER permission
      
      Throws:
      io.grpc.StatusException
    • getUserInfo

      public UserInfoResponse getUserInfo(UserInfoRequest request) throws io.grpc.StatusException
      Retrieves detailed information about a specific user.
      Requires the READ_USER global permission.
      Error cases:
        - INTERNAL: If user not found
        - PERMISSION_DENIED: If caller lacks READ_USER permission
      
      Throws:
      io.grpc.StatusException
    • invalidateSessions

      public InvalidateSessionsResponse invalidateSessions(InvalidateSessionsRequest request) throws io.grpc.StatusException
      Invalidates all active sessions for a user by updating their min_issued_at timestamp.
      Requires the INVALIDATE_SESSIONS global permission.
      After this call, all previously issued JWT tokens for the user become invalid,
      effectively logging them out of all devices.
      Error cases:
        - INTERNAL: If user not found, or attempting to invalidate self/root user sessions
        - PERMISSION_DENIED: If caller lacks INVALIDATE_SESSIONS permission
      
      Throws:
      io.grpc.StatusException
    • updateUser

      public UpdateUserResponse updateUser(UpdateUserRequest request) throws io.grpc.StatusException
      Updates an existing user's profile information.
      Requires the UPDATE_USER global permission.
      All profile fields (username, email, role) are updated to the provided values.
      Error cases:
        - INTERNAL: If user not found, attempting to update self/root user, or validation fails
        - PERMISSION_DENIED: If caller lacks UPDATE_USER permission
      
      Throws:
      io.grpc.StatusException
    • generateUserAPIToken

      public GenerateUserAPITokenResponse generateUserAPIToken(GenerateUserAPITokenRequest request) throws io.grpc.StatusException
      Generates a new API token (JWT) for a specific user.
      Requires the GENERATE_API_TOKEN global permission.
      The generated token has the "api" audience and does not expire.
      The token can be invalidated by calling InvalidateSessions for the user.
      Error cases:
        - INTERNAL: If user not found, or attempting to generate token for self/root user
        - PERMISSION_DENIED: If caller lacks GENERATE_API_TOKEN permission
      
      Throws:
      io.grpc.StatusException