Interface LogsServiceGrpc.AsyncService

All Known Implementing Classes:
LogServiceImpl, LogsServiceGrpc.LogsServiceImplBase
Enclosing class:
LogsServiceGrpc

public static interface LogsServiceGrpc.AsyncService
Service for accessing SoulFire server logs.
Provides both historical log retrieval and real-time log streaming capabilities.
All methods require appropriate authentication and permissions based on the requested scope.
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    getPrevious(PreviousLogRequest request, io.grpc.stub.StreamObserver<PreviousLogResponse> responseObserver)
    Retrieves historical log entries from the server's in-memory log buffer.
    default void
    subscribe(LogRequest request, io.grpc.stub.StreamObserver<LogResponse> responseObserver)
    Subscribes to a real-time stream of log entries matching the specified scope.
  • Method Details

    • getPrevious

      default void getPrevious(PreviousLogRequest request, io.grpc.stub.StreamObserver<PreviousLogResponse> responseObserver)
      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

      default void subscribe(LogRequest request, io.grpc.stub.StreamObserver<LogResponse> responseObserver)
      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