| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package integrations
- import (
- "context"
- "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(ctx context.Context) (tok *TokenCache, err error)
- // SetTokenCacheFunc is a function that updates the token cache
- // with a new token and expiry time
- type SetTokenCacheFunc func(ctx context.Context, 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"`
- }
|