Versions in this module Expand all Collapse all v11 v11.3.3 Dec 13, 2022 Changes in this version + const AccessRequestCreateCode + const AccessRequestCreateEvent + const AccessRequestDelegator + const AccessRequestDeleteCode + const AccessRequestDeleteEvent + const AccessRequestID + const AccessRequestResourceSearch + const AccessRequestResourceSearchCode + const AccessRequestReviewCode + const AccessRequestReviewEvent + const AccessRequestState + const AccessRequestUpdateCode + const AccessRequestUpdateEvent + const AppCreateCode + const AppCreateEvent + const AppDeleteCode + const AppDeleteEvent + const AppSessionChunkCode + const AppSessionChunkEvent + const AppSessionEndCode + const AppSessionEndEvent + const AppSessionRequestCode + const AppSessionRequestEvent + const AppSessionStartCode + const AppSessionStartEvent + const AppUpdateCode + const AppUpdateEvent + const Argv + const AuthAttemptErr + const AuthAttemptEvent + const AuthAttemptFailureCode + const AuthAttemptMessage + const AuthAttemptSuccess + const BillingCardCreateCode + const BillingCardCreateEvent + const BillingCardDeleteCode + const BillingCardDeleteEvent + const BillingCardUpdateCode + const BillingCardUpdateEvent + const BillingInformationUpdateCode + const BillingInformationUpdateEvent + const BotTokenCreateEvent + const CassandraBatchEventCode + const CassandraExecuteEventCode + const CassandraPrepareEventCode + const CassandraRegisterEventCode + const CertificateCreateCode + const CertificateCreateEvent + const CertificateTypeUser + const CgroupID + const ClientDisconnectCode + const ClientDisconnectEvent + const CorruptedSessionsDir + const DataReceived + const DataTransmitted + const DatabaseCreateCode + const DatabaseCreateEvent + const DatabaseDeleteCode + const DatabaseDeleteEvent + const DatabaseSessionCassandraBatchEvent + const DatabaseSessionCassandraExecuteEvent + const DatabaseSessionCassandraPrepareEvent + const DatabaseSessionCassandraRegisterEvent + const DatabaseSessionElasticsearchRequestEvent + const DatabaseSessionEndCode + const DatabaseSessionEndEvent + const DatabaseSessionMalformedPacketCode + const DatabaseSessionMalformedPacketEvent + const DatabaseSessionMySQLCreateDBEvent + const DatabaseSessionMySQLDebugEvent + const DatabaseSessionMySQLDropDBEvent + const DatabaseSessionMySQLInitDBEvent + const DatabaseSessionMySQLProcessKillEvent + const DatabaseSessionMySQLRefreshEvent + const DatabaseSessionMySQLShutDownEvent + const DatabaseSessionMySQLStatementBulkExecuteEvent + const DatabaseSessionMySQLStatementCloseEvent + const DatabaseSessionMySQLStatementExecuteEvent + const DatabaseSessionMySQLStatementFetchEvent + const DatabaseSessionMySQLStatementPrepareEvent + const DatabaseSessionMySQLStatementResetEvent + const DatabaseSessionMySQLStatementSendLongDataEvent + const DatabaseSessionPostgresBindEvent + const DatabaseSessionPostgresCloseEvent + const DatabaseSessionPostgresExecuteEvent + const DatabaseSessionPostgresFunctionEvent + const DatabaseSessionPostgresParseEvent + const DatabaseSessionQueryCode + const DatabaseSessionQueryEvent + const DatabaseSessionQueryFailedCode + const DatabaseSessionQueryFailedEvent + const DatabaseSessionSQLServerRPCRequestEvent + const DatabaseSessionStartCode + const DatabaseSessionStartEvent + const DatabaseSessionStartFailureCode + const DatabaseUpdateCode + const DatabaseUpdateEvent + const DesktopClipboardReceiveCode + const DesktopClipboardReceiveEvent + const DesktopClipboardSendCode + const DesktopClipboardSendEvent + const DesktopRecordingEvent + const DesktopSessionEndCode + const DesktopSessionStartCode + const DesktopSessionStartFailureCode + const DesktopSharedDirectoryReadCode + const DesktopSharedDirectoryReadEvent + const DesktopSharedDirectoryReadFailureCode + const DesktopSharedDirectoryStartCode + const DesktopSharedDirectoryStartEvent + const DesktopSharedDirectoryStartFailureCode + const DesktopSharedDirectoryWriteCode + const DesktopSharedDirectoryWriteEvent + const DesktopSharedDirectoryWriteFailureCode + const DstAddr + const DstPort + const ElasticsearchRequestCode + const EventCode + const EventCursor + const EventID + const EventIndex + const EventLogin + const EventNamespace + const EventProtocol + const EventProtocolKube + const EventProtocolSSH + const EventProtocolTDP + const EventTime + const EventType + const EventUser + const ExecCode + const ExecEvent + const ExecEventCode + const ExecEventCommand + const ExecEventError + const ExecFailureCode + const FieldName + const Flags + const GithubConnectorCreatedCode + const GithubConnectorCreatedEvent + const GithubConnectorDeletedCode + const GithubConnectorDeletedEvent + const IdentityAttributes + const Int32Size + const Int64Size + const KubeRequestCode + const KubeRequestEvent + const KubernetesClusterCreateCode + const KubernetesClusterCreateEvent + const KubernetesClusterDeleteCode + const KubernetesClusterDeleteEvent + const KubernetesClusterUpdateCode + const KubernetesClusterUpdateEvent + const LocalAddr + const LockCreatedCode + const LockCreatedEvent + const LockDeletedCode + const LockDeletedEvent + const LogfileExt + const LoginMethod + const LoginMethodClientCert + const LoginMethodGithub + const LoginMethodLocal + const LoginMethodOIDC + const LoginMethodSAML + const MFADeviceAddEvent + const MFADeviceAddEventCode + const MFADeviceDeleteEvent + const MFADeviceDeleteEventCode + const MaxChunkBytes + const MaxEventBytesInResponse + const MaxProtoMessageSizeBytes + const MaxUploadParts + const Maximum + const MinUploadPartSizeBytes + const MySQLCreateDBCode + const MySQLDebugCode + const MySQLDropDBCode + const MySQLInitDBCode + const MySQLProcessKillCode + const MySQLRefreshCode + const MySQLShutDownCode + const MySQLStatementBulkExecuteCode + const MySQLStatementCloseCode + const MySQLStatementExecuteCode + const MySQLStatementFetchCode + const MySQLStatementPrepareCode + const MySQLStatementResetCode + const MySQLStatementSendLongDataCode + const OIDCConnectorCreatedCode + const OIDCConnectorCreatedEvent + const OIDCConnectorDeletedCode + const OIDCConnectorDeletedEvent + const PID + const PPID + const Path + const PlaybackDir + const PortForwardAddr + const PortForwardCode + const PortForwardErr + const PortForwardEvent + const PortForwardFailureCode + const PortForwardSuccess + const PostgresBindCode + const PostgresCloseCode + const PostgresExecuteCode + const PostgresFunctionCallCode + const PostgresParseCode + const PrivilegeTokenCreateCode + const PrivilegeTokenCreateEvent + const Program + const ProtoStreamV1 + const ProtoStreamV1PartHeaderSize + const ProtoStreamV1RecordHeaderSize + const Reason + const RecordsDir + const RecoveryCodeGeneratedEvent + const RecoveryCodeUseFailureCode + const RecoveryCodeUseSuccessCode + const RecoveryCodeUsedEvent + const RecoveryCodesGenerateCode + const RecoveryTokenCreateCode + const RecoveryTokenCreateEvent + const RemoteAddr + const RenewableCertificateGenerationMismatchCode + const RenewableCertificateGenerationMismatchEvent + const ReservedParts + const ResetPasswordTokenCreateCode + const ResetPasswordTokenCreateEvent + const ResetPasswordTokenTTL + const ResizeEvent + const ReturnCode + const RoleCreatedCode + const RoleCreatedEvent + const RoleDeletedCode + const RoleDeletedEvent + const SAMLConnectorCreatedCode + const SAMLConnectorCreatedEvent + const SAMLConnectorDeletedCode + const SAMLConnectorDeletedEvent + const SCPAction + const SCPActionDownload + const SCPActionUpload + const SCPDownloadCode + const SCPDownloadFailureCode + const SCPEvent + const SCPLengh + const SCPPath + const SCPUploadCode + const SCPUploadFailureCode + const SFTPCloseCode + const SFTPCloseFailureCode + const SFTPEvent + const SFTPFsetstatCode + const SFTPFsetstatFailureCode + const SFTPFstatCode + const SFTPFstatFailureCode + const SFTPLstatCode + const SFTPLstatFailureCode + const SFTPMkdirCode + const SFTPMkdirFailureCode + const SFTPOpenCode + const SFTPOpenFailureCode + const SFTPOpendirCode + const SFTPOpendirFailureCode + const SFTPPath + const SFTPReadCode + const SFTPReadFailureCode + const SFTPReaddirCode + const SFTPReaddirFailureCode + const SFTPReadlinkCode + const SFTPReadlinkFailureCode + const SFTPRealpathCode + const SFTPRealpathFailureCode + const SFTPRemoveCode + const SFTPRemoveFailureCode + const SFTPRenameCode + const SFTPRenameFailureCode + const SFTPRmdirCode + const SFTPRmdirFailureCode + const SFTPSetstatCode + const SFTPSetstatFailureCode + const SFTPStatCode + const SFTPStatFailureCode + const SFTPSymlinkCode + const SFTPSymlinkFailureCode + const SFTPWriteCode + const SFTPWriteFailureCode + const SQLServerRPCRequestCode + const SSMRunEvent + const SSMRunFailCode + const SSMRunSuccessCode + const SessionByteOffset + const SessionClusterName + const SessionCommandCode + const SessionCommandEvent + const SessionConnectCode + const SessionConnectEvent + const SessionDataCode + const SessionDataEvent + const SessionDataIndex + const SessionDiskCode + const SessionDiskEvent + const SessionEndCode + const SessionEndEvent + const SessionEndTime + const SessionEnhancedRecording + const SessionEventID + const SessionEventTimestamp + const SessionInteractive + const SessionJoinCode + const SessionJoinEvent + const SessionLeaveCode + const SessionLeaveEvent + const SessionLogsDir + const SessionNetworkCode + const SessionNetworkEvent + const SessionParticipants + const SessionPrintEvent + const SessionPrintEventBytes + const SessionRecordingAccessCode + const SessionRecordingAccessEvent + const SessionRecordingType + const SessionRejectedCode + const SessionRejectedEvent + const SessionRejectedReasonMaxConnections + const SessionRejectedReasonMaxSessions + const SessionServerAddr + const SessionServerHostname + const SessionServerID + const SessionServerLabels + const SessionStartCode + const SessionStartEvent + const SessionStartTime + const SessionUploadCode + const SessionUploadEvent + const SessionUploadIndex + const SrcAddr + const StreamingSessionsDir + const SubsystemCode + const SubsystemError + const SubsystemEvent + const SubsystemFailureCode + const SubsystemName + const SymlinkFilename + const TCPVersion + const TerminalResizeCode + const TerminalSize + const TrustedClusterCreateCode + const TrustedClusterCreateEvent + const TrustedClusterDeleteCode + const TrustedClusterDeleteEvent + const TrustedClusterTokenCreateCode + const TrustedClusterTokenCreateEvent + const URL + const UnknownCode + const UnknownEvent + const UpdatedBy + const UpgradeWindowStartUpdateEvent + const UpgradeWindowStartUpdatedCode + const UseFIPSQueryParam + const UserConnector + const UserCreateCode + const UserCreateEvent + const UserDeleteCode + const UserDeleteEvent + const UserExpires + const UserLocalLoginCode + const UserLocalLoginFailureCode + const UserLoginEvent + const UserPasswordChangeCode + const UserPasswordChangeEvent + const UserRoles + const UserSSOLoginCode + const UserSSOLoginFailureCode + const UserSSOTestFlowLoginCode + const UserSSOTestFlowLoginFailureCode + const UserUpdateCode + const UserUpdatedEvent + const V1 + const V2 + const V3 + const WindowsDesktopSessionEndEvent + const WindowsDesktopSessionStartEvent + const X11ForwardCode + const X11ForwardErr + const X11ForwardEvent + const X11ForwardFailureCode + const X11ForwardSuccess + var AuditFailedEmit = prometheus.NewCounter(prometheus.CounterOpts{ ... }) + func Export(ctx context.Context, rs io.ReadSeeker, w io.Writer, exportFormat string) error + func FIPSProtoStateToAWSState(state types.ClusterAuditConfigSpecV2_FIPSEndpointState) endpoints.FIPSEndpointState + func FromEventFields(fields EventFields) (events.AuditEvent, error) + func GenerateTestSession(params SessionParams) []apievents.AuditEvent + func GetSessionID(event events.AuditEvent) string + func IsPermanentEmitError(err error) bool + func NewCheckingStream(stream apievents.Stream, clock clockwork.Clock, clusterName string) apievents.Stream + func StartNewUploadCompleter(ctx context.Context, cfg UploadCompleterConfig) error + func ValidateServerMetadata(event apievents.AuditEvent, serverID string, isProxy bool) error + type AsyncEmitter struct + func NewAsyncEmitter(cfg AsyncEmitterConfig) (*AsyncEmitter, error) + func (a *AsyncEmitter) Close() error + func (a *AsyncEmitter) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + type AsyncEmitterConfig struct + BufferSize int + Inner apievents.Emitter + func (c *AsyncEmitterConfig) CheckAndSetDefaults() error + type AuditLog struct + func NewAuditLog(cfg AuditLogConfig) (*AuditLog, error) + func (l *AuditLog) Close() error + func (l *AuditLog) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (l *AuditLog) GetSessionChunk(namespace string, sid session.ID, offsetBytes, maxBytes int) ([]byte, error) + func (l *AuditLog) GetSessionEvents(namespace string, sid session.ID, afterN int, includePrintEvents bool) ([]EventFields, error) + func (l *AuditLog) SearchEvents(fromUTC, toUTC time.Time, namespace string, eventType []string, limit int, ...) ([]apievents.AuditEvent, string, error) + func (l *AuditLog) SearchSessionEvents(fromUTC, toUTC time.Time, limit int, order types.EventOrder, startKey string, ...) ([]apievents.AuditEvent, string, error) + func (l *AuditLog) StreamSessionEvents(ctx context.Context, sessionID session.ID, startIndex int64) (chan apievents.AuditEvent, chan error) + type AuditLogConfig struct + Clock clockwork.Clock + Context context.Context + DataDir string + DirMask *os.FileMode + ExternalLog IAuditLog + GID *int + PlaybackRecycleTTL time.Duration + RotationPeriod time.Duration + ServerID string + UID *int + UIDGenerator utils.UID + UploadHandler MultipartHandler + func (a *AuditLogConfig) CheckAndSetDefaults() error + type AuditReader interface + Read func(context.Context) (apievents.AuditEvent, error) + type AuditWriter struct + func NewAuditWriter(cfg AuditWriterConfig) (*AuditWriter, error) + func (a *AuditWriter) Close(ctx context.Context) error + func (a *AuditWriter) Complete(ctx context.Context) error + func (a *AuditWriter) Done() <-chan struct{} + func (a *AuditWriter) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (a *AuditWriter) Stats() AuditWriterStats + func (a *AuditWriter) Status() <-chan apievents.StreamStatus + func (a *AuditWriter) Write(data []byte) (int, error) + type AuditWriterConfig struct + BackoffDuration time.Duration + BackoffTimeout time.Duration + Clock clockwork.Clock + ClusterName string + Component string + Context context.Context + MakeEvents func([]byte) []apievents.AuditEvent + Namespace string + RecordOutput bool + ServerID string + SessionID session.ID + Streamer Streamer + UID utils.UID + func (cfg *AuditWriterConfig) CheckAndSetDefaults() error + type AuditWriterStats struct + AcceptedEvents int64 + LostEvents int64 + SlowWrites int64 + type ByTimeAndIndex []EventFields + func (f ByTimeAndIndex) Len() int + func (f ByTimeAndIndex) Less(i, j int) bool + func (f ByTimeAndIndex) Swap(i, j int) + type CallbackStream struct + func (s *CallbackStream) Close(ctx context.Context) error + func (s *CallbackStream) Complete(ctx context.Context) error + func (s *CallbackStream) Done() <-chan struct{} + func (s *CallbackStream) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (s *CallbackStream) Status() <-chan apievents.StreamStatus + type CallbackStreamer struct + func NewCallbackStreamer(cfg CallbackStreamerConfig) (*CallbackStreamer, error) + func (s *CallbackStreamer) CreateAuditStream(ctx context.Context, sid session.ID) (apievents.Stream, error) + func (s *CallbackStreamer) ResumeAuditStream(ctx context.Context, sid session.ID, uploadID string) (apievents.Stream, error) + type CallbackStreamerConfig struct + Inner Streamer + OnCreateAuditStream func(ctx context.Context, sid session.ID, inner Streamer) (apievents.Stream, error) + OnEmitAuditEvent func(ctx context.Context, sid session.ID, event apievents.AuditEvent) error + OnResumeAuditStream func(ctx context.Context, sid session.ID, uploadID string, inner Streamer) (apievents.Stream, error) + func (c *CallbackStreamerConfig) CheckAndSetDefaults() error + type CheckingEmitter struct + func NewCheckingEmitter(cfg CheckingEmitterConfig) (*CheckingEmitter, error) + func (r *CheckingEmitter) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + type CheckingEmitterConfig struct + Clock clockwork.Clock + ClusterName string + Inner apievents.Emitter + UIDGenerator utils.UID + func (w *CheckingEmitterConfig) CheckAndSetDefaults() error + type CheckingStream struct + func (s *CheckingStream) Close(ctx context.Context) error + func (s *CheckingStream) Complete(ctx context.Context) error + func (s *CheckingStream) Done() <-chan struct{} + func (s *CheckingStream) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (s *CheckingStream) Status() <-chan apievents.StreamStatus + type CheckingStreamer struct + func NewCheckingStreamer(cfg CheckingStreamerConfig) (*CheckingStreamer, error) + func (s *CheckingStreamer) CreateAuditStream(ctx context.Context, sid session.ID) (apievents.Stream, error) + func (s *CheckingStreamer) ResumeAuditStream(ctx context.Context, sid session.ID, uploadID string) (apievents.Stream, error) + type CheckingStreamerConfig struct + Clock clockwork.Clock + ClusterName string + Inner Streamer + UIDGenerator utils.UID + func (w *CheckingStreamerConfig) CheckAndSetDefaults() error + type DiscardAuditLog struct + func NewDiscardAuditLog() *DiscardAuditLog + func (d *DiscardAuditLog) Close() error + func (d *DiscardAuditLog) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (d *DiscardAuditLog) GetSessionChunk(namespace string, sid session.ID, offsetBytes, maxBytes int) ([]byte, error) + func (d *DiscardAuditLog) GetSessionEvents(namespace string, sid session.ID, after int, includePrintEvents bool) ([]EventFields, error) + func (d *DiscardAuditLog) SearchEvents(fromUTC, toUTC time.Time, namespace string, eventType []string, limit int, ...) ([]apievents.AuditEvent, string, error) + func (d *DiscardAuditLog) SearchSessionEvents(fromUTC, toUTC time.Time, limit int, order types.EventOrder, startKey string, ...) ([]apievents.AuditEvent, string, error) + func (d *DiscardAuditLog) StreamSessionEvents(ctx context.Context, sessionID session.ID, startIndex int64) (chan apievents.AuditEvent, chan error) + type DiscardEmitter struct + func NewDiscardEmitter() *DiscardEmitter + func (*DiscardEmitter) CreateAuditStream(ctx context.Context, sid session.ID) (apievents.Stream, error) + func (*DiscardEmitter) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (*DiscardEmitter) ResumeAuditStream(ctx context.Context, sid session.ID, uploadID string) (apievents.Stream, error) + type DiscardStream struct + func (*DiscardStream) Close(ctx context.Context) error + func (*DiscardStream) Complete(ctx context.Context) error + func (*DiscardStream) Done() <-chan struct{} + func (*DiscardStream) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (*DiscardStream) Status() <-chan apievents.StreamStatus + func (*DiscardStream) Write(p []byte) (n int, err error) + type Event struct + Code string + Name string + type EventFields utils.Fields + func ToEventFields(event events.AuditEvent) (EventFields, error) + func (f EventFields) AsString() string + func (f EventFields) GetCode() string + func (f EventFields) GetID() string + func (f EventFields) GetInt(key string) int + func (f EventFields) GetString(key string) string + func (f EventFields) GetStrings(key string) []string + func (f EventFields) GetTime(key string) time.Time + func (f EventFields) GetTimestamp() time.Time + func (f EventFields) GetType() string + func (f EventFields) HasField(key string) bool + type FileLog struct + func NewFileLog(cfg FileLogConfig) (*FileLog, error) + func (l *FileLog) Close() error + func (l *FileLog) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (l *FileLog) GetSessionChunk(namespace string, sid session.ID, offsetBytes, maxBytes int) ([]byte, error) + func (l *FileLog) GetSessionEvents(namespace string, sid session.ID, after int, fetchPrintEvents bool) ([]EventFields, error) + func (l *FileLog) SearchEvents(fromUTC, toUTC time.Time, namespace string, eventTypes []string, limit int, ...) ([]apievents.AuditEvent, string, error) + func (l *FileLog) SearchSessionEvents(fromUTC, toUTC time.Time, limit int, order types.EventOrder, startKey string, ...) ([]apievents.AuditEvent, string, error) + func (l *FileLog) StreamSessionEvents(ctx context.Context, sessionID session.ID, startIndex int64) (chan apievents.AuditEvent, chan error) + type FileLogConfig struct + Clock clockwork.Clock + Dir string + MaxScanTokenSize int + RotationPeriod time.Duration + SearchDirs func() ([]string, error) + SymlinkDir string + UIDGenerator utils.UID + func (cfg *FileLogConfig) CheckAndSetDefaults() error + type Header struct + Proto bool + ProtoVersion int64 + Tar bool + func DetectFormat(r io.ReadSeeker) (*Header, error) + type IAuditLog interface + EmitAuditEvent func(context.Context, apievents.AuditEvent) error + GetSessionChunk func(namespace string, sid session.ID, offsetBytes, maxBytes int) ([]byte, error) + GetSessionEvents func(namespace string, sid session.ID, after int, includePrintEvents bool) ([]EventFields, error) + SearchEvents func(fromUTC, toUTC time.Time, namespace string, eventTypes []string, limit int, ...) ([]apievents.AuditEvent, string, error) + SearchSessionEvents func(fromUTC, toUTC time.Time, limit int, order types.EventOrder, startKey string, ...) ([]apievents.AuditEvent, string, error) + StreamSessionEvents func(ctx context.Context, sessionID session.ID, startIndex int64) (chan apievents.AuditEvent, chan error) + type LoggingEmitter struct + func NewLoggingEmitter() *LoggingEmitter + func (*LoggingEmitter) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + type MemoryUpload struct + Initiated time.Time + type MemoryUploader struct + Clock clockwork.Clock + func NewMemoryUploader(eventsC ...chan UploadEvent) *MemoryUploader + func (m *MemoryUploader) CompleteUpload(ctx context.Context, upload StreamUpload, parts []StreamPart) error + func (m *MemoryUploader) CreateUpload(ctx context.Context, sessionID session.ID) (*StreamUpload, error) + func (m *MemoryUploader) Download(ctx context.Context, sessionID session.ID, writer io.WriterAt) error + func (m *MemoryUploader) GetParts(uploadID string) ([][]byte, error) + func (m *MemoryUploader) GetUploadMetadata(sid session.ID) UploadMetadata + func (m *MemoryUploader) ListParts(ctx context.Context, upload StreamUpload) ([]StreamPart, error) + func (m *MemoryUploader) ListUploads(ctx context.Context) ([]StreamUpload, error) + func (m *MemoryUploader) ReserveUploadPart(ctx context.Context, upload StreamUpload, partNumber int64) error + func (m *MemoryUploader) Reset() + func (m *MemoryUploader) Upload(ctx context.Context, sessionID session.ID, readCloser io.Reader) (string, error) + func (m *MemoryUploader) UploadPart(ctx context.Context, upload StreamUpload, partNumber int64, ...) (*StreamPart, error) + type MultiEmitter struct + func NewMultiEmitter(emitters ...apievents.Emitter) *MultiEmitter + func (m *MultiEmitter) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + type MultiLog struct + func NewMultiLog(loggers ...IAuditLog) (*MultiLog, error) + func (m *MultiLog) Close() error + func (m *MultiLog) GetSessionChunk(namespace string, sid session.ID, offsetBytes, maxBytes int) (data []byte, err error) + func (m *MultiLog) GetSessionEvents(namespace string, sid session.ID, after int, fetchPrintEvents bool) (events []EventFields, err error) + func (m *MultiLog) SearchEvents(fromUTC, toUTC time.Time, namespace string, eventTypes []string, limit int, ...) (events []apievents.AuditEvent, lastKey string, err error) + func (m *MultiLog) SearchSessionEvents(fromUTC, toUTC time.Time, limit int, order types.EventOrder, startKey string, ...) (events []apievents.AuditEvent, lastKey string, err error) + func (m *MultiLog) StreamSessionEvents(ctx context.Context, sessionID session.ID, startIndex int64) (chan apievents.AuditEvent, chan error) + type MultipartHandler interface + type MultipartUploader interface + CompleteUpload func(ctx context.Context, upload StreamUpload, parts []StreamPart) error + CreateUpload func(ctx context.Context, sessionID session.ID) (*StreamUpload, error) + GetUploadMetadata func(sessionID session.ID) UploadMetadata + ListParts func(ctx context.Context, upload StreamUpload) ([]StreamPart, error) + ListUploads func(ctx context.Context) ([]StreamUpload, error) + ReserveUploadPart func(ctx context.Context, upload StreamUpload, partNumber int64) error + UploadPart func(ctx context.Context, upload StreamUpload, partNumber int64, ...) (*StreamPart, error) + type ProtoReader struct + func NewProtoReader(r io.Reader) *ProtoReader + func (r *ProtoReader) Close() error + func (r *ProtoReader) GetStats() ProtoReaderStats + func (r *ProtoReader) Read(ctx context.Context) (apievents.AuditEvent, error) + func (r *ProtoReader) ReadAll(ctx context.Context) ([]apievents.AuditEvent, error) + func (r *ProtoReader) Reset(reader io.Reader) error + type ProtoReaderStats struct + OutOfOrderEvents int64 + SkippedEvents int64 + TotalEvents int64 + func (p ProtoReaderStats) ToFields() log.Fields + type ProtoStream struct + func NewProtoStream(cfg ProtoStreamConfig) (*ProtoStream, error) + func (s *ProtoStream) Close(ctx context.Context) error + func (s *ProtoStream) Complete(ctx context.Context) error + func (s *ProtoStream) Done() <-chan struct{} + func (s *ProtoStream) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (s *ProtoStream) Status() <-chan apievents.StreamStatus + type ProtoStreamConfig struct + BufferPool *utils.BufferSyncPool + Clock clockwork.Clock + CompletedParts []StreamPart + ConcurrentUploads int + InactivityFlushPeriod time.Duration + MinUploadBytes int64 + SlicePool *utils.SliceSyncPool + Upload StreamUpload + Uploader MultipartUploader + func (cfg *ProtoStreamConfig) CheckAndSetDefaults() error + type ProtoStreamer struct + func NewProtoStreamer(cfg ProtoStreamerConfig) (*ProtoStreamer, error) + func (s *ProtoStreamer) CreateAuditStream(ctx context.Context, sid session.ID) (apievents.Stream, error) + func (s *ProtoStreamer) CreateAuditStreamForUpload(ctx context.Context, sid session.ID, upload StreamUpload) (apievents.Stream, error) + func (s *ProtoStreamer) ResumeAuditStream(ctx context.Context, sid session.ID, uploadID string) (apievents.Stream, error) + type ProtoStreamerConfig struct + ConcurrentUploads int + MinUploadBytes int64 + Uploader MultipartUploader + func (cfg *ProtoStreamerConfig) CheckAndSetDefaults() error + type ReportingStream struct + func (s *ReportingStream) Complete(ctx context.Context) error + type ReportingStreamer struct + func NewReportingStreamer(streamer Streamer, eventsC chan UploadEvent) *ReportingStreamer + func (s *ReportingStreamer) CreateAuditStream(ctx context.Context, sid session.ID) (apievents.Stream, error) + func (s *ReportingStreamer) ResumeAuditStream(ctx context.Context, sid session.ID, uploadID string) (apievents.Stream, error) + type SSHPlaybackWriter struct + ChunksPath string + EventsPath string + func WriteForSSHPlayback(ctx context.Context, sid session.ID, reader AuditReader, dir string) (*SSHPlaybackWriter, error) + func (w *SSHPlaybackWriter) Close() error + func (w *SSHPlaybackWriter) SessionChunks() ([]byte, error) + func (w *SSHPlaybackWriter) SessionEvents() ([]EventFields, error) + func (w *SSHPlaybackWriter) Write(ctx context.Context) error + type ServerMetadataGetter interface + GetClusterName func() string + GetForwardedBy func() string + GetServerID func() string + GetServerNamespace func() string + type ServerMetadataSetter interface + SetServerID func(string) + SetServerNamespace func(string) + type SessionMetadataGetter interface + GetSessionID func() string + type SessionMetadataSetter interface + SetClusterName func(string) + SetSessionID func(string) + type SessionParams struct + Clock clockwork.Clock + ClusterName string + PrintEvents int64 + ServerID string + SessionID string + func (p *SessionParams) SetDefaults() + type StreamEmitter interface + type StreamPart struct + ETag string + Number int64 + type StreamUpload struct + ID string + Initiated time.Time + SessionID session.ID + func (u *StreamUpload) CheckAndSetDefaults() error + func (u StreamUpload) String() string + type StreamWriter interface + type Streamer interface + CreateAuditStream func(context.Context, session.ID) (apievents.Stream, error) + ResumeAuditStream func(ctx context.Context, sid session.ID, uploadID string) (apievents.Stream, error) + type StreamerAndEmitter struct + type TeeStream struct + func (t *TeeStream) Close(ctx context.Context) error + func (t *TeeStream) Complete(ctx context.Context) error + func (t *TeeStream) Done() <-chan struct{} + func (t *TeeStream) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + func (t *TeeStream) Status() <-chan apievents.StreamStatus + type TeeStreamer struct + func NewTeeStreamer(streamer Streamer, emitter apievents.Emitter) *TeeStreamer + func (t *TeeStreamer) CreateAuditStream(ctx context.Context, sid session.ID) (apievents.Stream, error) + func (t *TeeStreamer) ResumeAuditStream(ctx context.Context, sid session.ID, uploadID string) (apievents.Stream, error) + type UploadCompleter struct + func NewUploadCompleter(cfg UploadCompleterConfig) (*UploadCompleter, error) + func (u *UploadCompleter) Close() + func (u *UploadCompleter) Serve(ctx context.Context) error + type UploadCompleterConfig struct + AuditLog IAuditLog + CheckPeriod time.Duration + Clock clockwork.Clock + ClusterName string + Component string + SessionTracker services.SessionTrackerService + Uploader MultipartUploader + func (cfg *UploadCompleterConfig) CheckAndSetDefaults() error + type UploadEvent struct + Created time.Time + Error error + SessionID string + UploadID string + type UploadHandler interface + Download func(ctx context.Context, sessionID session.ID, writer io.WriterAt) error + Upload func(ctx context.Context, sessionID session.ID, readCloser io.Reader) (string, error) + type UploadMetadata struct + SessionID session.ID + URL string + type UploadMetadataGetter interface + GetUploadMetadata func(sid session.ID) UploadMetadata + type WriterEmitter struct + func NewWriterEmitter(w io.WriteCloser) *WriterEmitter + func (w *WriterEmitter) Close() error + func (w *WriterEmitter) EmitAuditEvent(ctx context.Context, event apievents.AuditEvent) error + type WriterLog struct + func NewWriterLog(w io.WriteCloser) *WriterLog + func (w *WriterLog) Close() error + func (w *WriterLog) GetSessionChunk(namespace string, sid session.ID, offsetBytes, maxBytes int) ([]byte, error) + func (w *WriterLog) GetSessionEvents(namespace string, sid session.ID, after int, includePrintEvents bool) ([]EventFields, error) + func (w *WriterLog) SearchEvents(fromUTC, toUTC time.Time, namespace string, eventTypes []string, limit int, ...) (events []apievents.AuditEvent, lastKey string, err error) + func (w *WriterLog) SearchSessionEvents(fromUTC, toUTC time.Time, limit int, order types.EventOrder, startKey string, ...) (events []apievents.AuditEvent, lastKey string, err error) + func (w *WriterLog) StreamSessionEvents(ctx context.Context, sessionID session.ID, startIndex int64) (chan apievents.AuditEvent, chan error) Other modules containing this package github.com/zmb3/teleport