package models // A Key contains a JWT secret and the limitations of it. There are two types of // keys, single-user keys and wildcard keys. The former is used to authenticate // a single user (e.g. the logbot) through an API while the latter is only for // services that can be trusted to perform its own authentication (a frontend). type Key struct { ID string `bson:"_id"` Name string `bson:"name"` User string `bson:"user"` Secret string `bson:"secret"` } // ValidForUser returns true if the key's user is the same as // the user, or it's a wildcard key. func (key *Key) ValidForUser(user string) bool { return key.User == user || key.User == "*" } type KeyFilter struct { UserID *string }