| 251 | } |
| 252 | |
| 253 | func tokenDuration(feature database.CryptoKeyFeature) time.Duration { |
| 254 | switch feature { |
| 255 | case database.CryptoKeyFeatureWorkspaceAppsAPIKey: |
| 256 | return WorkspaceAppsTokenDuration |
| 257 | case database.CryptoKeyFeatureWorkspaceAppsToken: |
| 258 | return WorkspaceAppsTokenDuration |
| 259 | case database.CryptoKeyFeatureOIDCConvert: |
| 260 | return OIDCConvertTokenDuration |
| 261 | case database.CryptoKeyFeatureTailnetResume: |
| 262 | return TailnetResumeTokenDuration |
| 263 | default: |
| 264 | return 0 |
| 265 | } |
| 266 | } |
| 267 | |
| 268 | func shouldDeleteKey(key database.CryptoKey, now time.Time) bool { |
| 269 | return key.DeletesAt.Valid && !now.Before(key.DeletesAt.Time.UTC()) |