| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package integrations
- import (
- "time"
- "gorm.io/gorm"
- )
- // TokenCache stores a token and an expiration for the token for a
- // service account. This will never be shared over REST, so no need
- // to externalize.
- type TokenCache struct {
- gorm.Model
- Expiry time.Time `json:"expiry,omitempty"`
- // ------------------------------------------------------------------
- // All fields below this line are encrypted before storage
- // ------------------------------------------------------------------
- Token []byte `json:"access_token"`
- }
- // GetTokenCacheFunc is a function that retrieves the token and expiry
- // time from the db
- type GetTokenCacheFunc func() (tok *TokenCache, err error)
- // SetTokenCacheFunc is a function that updates the token cache
- // with a new token and expiry time
- type SetTokenCacheFunc func(token string, expiry time.Time) error
- // IsExpired returns true if a token is expired, false otherwise
- func (t *TokenCache) IsExpired() bool {
- return time.Now().After(t.Expiry)
- }
- // ClusterTokenCache is a token cache that clusters can use; a foreign
- // key constraint between a Cluster and ClusterTokenCache is created
- type ClusterTokenCache struct {
- TokenCache
- ClusterID uint `json:"cluster_id"`
- }
- // RegTokenCache stores a token and an expiration for the JWT token for a
- // Docker registry. This will never be shared over REST, so no need
- // to externalize.
- type RegTokenCache struct {
- TokenCache
- RegistryID uint `json:"registry_id"`
- }
- // HelmRepoTokenCache is a token cache that helm repos can use; a foreign
- // key constraint between a HelmRepo and HelmRepoTokenCache is created
- type HelmRepoTokenCache struct {
- TokenCache
- HelmRepoID uint `json:"helm_repo_id"`
- }
|