🔐 feat: Add token export/import for ephemeral environments
- Add token CLI subcommand with export/import operations - Enable OAuth2 token persistence across clean environments - Support for containers, CI/CD, and ephemeral compute workflows - Compress tokens with gzip and encode as base64 for env vars - Automatic token restoration from CULL_GMAIL_TOKEN_CACHE - Secure file permissions (600) on restored tokens - Add comprehensive error handling for token operations - Update dependencies: base64, flate2, serde_json This feature enables cull-gmail to run in ephemeral environments like Docker containers and CI/CD pipelines without re-authentication by exporting tokens once and restoring them via environment variables.
This commit is contained in:
committed by
Jeremiah Russell
parent
6334ba6c13
commit
2bee42d7ba
28
Cargo.lock
generated
28
Cargo.lock
generated
@@ -352,6 +352,15 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crc32fast"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-utils"
|
||||
version = "0.8.21"
|
||||
@@ -372,11 +381,13 @@ dependencies = [
|
||||
name = "cull-gmail"
|
||||
version = "0.0.11"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"chrono",
|
||||
"clap",
|
||||
"clap-verbosity-flag",
|
||||
"config",
|
||||
"env_logger",
|
||||
"flate2",
|
||||
"futures",
|
||||
"google-gmail1",
|
||||
"httpmock",
|
||||
@@ -542,6 +553,16 @@ version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959"
|
||||
|
||||
[[package]]
|
||||
name = "flate2"
|
||||
version = "1.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
"miniz_oxide",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fnv"
|
||||
version = "1.0.7"
|
||||
@@ -1243,6 +1264,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
|
||||
dependencies = [
|
||||
"adler2",
|
||||
"simd-adler32",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1769,6 +1791,12 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "simd-adler32"
|
||||
version = "0.3.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
|
||||
|
||||
[[package]]
|
||||
name = "similar"
|
||||
version = "2.7.0"
|
||||
|
||||
Reference in New Issue
Block a user