apiary/honeypot/ssh/store/store.go
2021-11-06 00:37:28 +01:00

44 lines
1013 B
Go

package store
import "github.uio.no/torjus/apiary/models"
type LoginStats string
const (
LoginStatsUndefined LoginStats = ""
LoginStatsPasswords LoginStats = "password"
LoginStatsCountry LoginStats = "country"
LoginStatsIP LoginStats = "ip"
LoginStatsUsername LoginStats = "username"
LoginStatsTotals LoginStats = "total"
)
type AttemptQueryType string
const (
AttemptQueryTypeUsername AttemptQueryType = "username"
AttemptQueryTypePassword AttemptQueryType = "password"
AttemptQueryTypeIP AttemptQueryType = "ip"
)
type StatsResult struct {
Name string `json:"name"`
Count int `json:"count"`
}
type AttemptQuery struct {
QueryType AttemptQueryType
Query string
}
type LoginAttemptStore interface {
AddAttempt(l *models.LoginAttempt) error
All() ([]models.LoginAttempt, error)
Stats(statType LoginStats, limit int) ([]StatsResult, error)
Query(query AttemptQuery) ([]models.LoginAttempt, error)
HealthCheker
}
type HealthCheker interface {
IsHealthy() bool
}