Class LogServiceImpl

All Implemented Interfaces:
LogsServiceGrpc.AsyncService, io.grpc.BindableService

public final class LogServiceImpl extends LogsServiceGrpc.LogsServiceImplBase
  • Constructor Details

    • LogServiceImpl

      public LogServiceImpl(SoulFireServer soulFireServer)
  • Method Details

    • getPrevious

      public void getPrevious(PreviousLogRequest request, io.grpc.stub.StreamObserver<PreviousLogResponse> responseObserver)
      Description copied from interface: LogsServiceGrpc.AsyncService
      Retrieves historical log entries from the server's in-memory log buffer.
      The server maintains a rolling buffer of the last 300 log entries.
      Only returns non-personal logs that match the specified scope.
      Permissions required:
      - GlobalLogScope: GLOBAL_SUBSCRIBE_LOGS
      - InstanceLogScope/BotLogScope/InstanceScriptLogScope: INSTANCE_SUBSCRIBE_LOGS for the instance
      - PersonalLogScope: No special permissions (but returns empty since personal logs are not stored)
      Errors:
      - PERMISSION_DENIED: User lacks required permission for the requested scope
      - INVALID_ARGUMENT: Scope not set or invalid UUID format
      - INTERNAL: Server error while retrieving logs
      
    • subscribe

      public void subscribe(LogRequest request, io.grpc.stub.StreamObserver<LogResponse> responseObserver)
      Description copied from interface: LogsServiceGrpc.AsyncService
      Subscribes to a real-time stream of log entries matching the specified scope.
      The stream remains open until cancelled by the client or the connection is lost.
      Permissions are re-validated periodically (every 1 second) to handle permission changes.
      For PersonalLogScope: Receives personal messages directed to the authenticated user.
      Personal messages are transient and only delivered to active subscribers.
      Permissions required:
      - GlobalLogScope: GLOBAL_SUBSCRIBE_LOGS
      - InstanceLogScope/BotLogScope/InstanceScriptLogScope: INSTANCE_SUBSCRIBE_LOGS for the instance
      - PersonalLogScope: No special permissions required
      Errors:
      - PERMISSION_DENIED: User lacks required permission for the requested scope
      - INVALID_ARGUMENT: Scope not set or invalid UUID format
      - INTERNAL: Server error while setting up subscription