pub struct HistorySinkConfig {
pub endpoint: String,
pub access_key: String,
pub secret_key: String,
pub bucket: String,
pub prefix: String,
}Expand description
Durable history-sink configuration.
Intentionally owned (not borrowed) so the config can be handed to a
tokio::spawn fire-and-forget upload without tying its lifetime to
the Session.
§Examples
use codetether_agent::session::history_sink::HistorySinkConfig;
let cfg = HistorySinkConfig {
endpoint: "http://localhost:9000".to_string(),
access_key: "minioadmin".to_string(),
secret_key: "minioadmin".to_string(),
bucket: "codetether".to_string(),
prefix: "history/".to_string(),
};
assert_eq!(cfg.bucket, "codetether");Fields§
§endpoint: StringMinIO / S3 endpoint URL, e.g. http://localhost:9000.
access_key: StringS3 access key.
secret_key: StringS3 secret key.
bucket: StringDestination bucket.
prefix: StringKey prefix under the bucket. Always ends with /.
Implementations§
Source§impl HistorySinkConfig
impl HistorySinkConfig
Sourcepub fn from_env() -> Result<Option<Self>>
pub fn from_env() -> Result<Option<Self>>
Load the config from environment variables.
Returns Ok(None) when any required variable is unset — callers
treat that as sink disabled and skip the upload. Returns
Err(_) only when an env variable is present but malformed.
§Errors
Never in the current implementation; reserved for future URL / region validation.
Sourcepub fn object_key(&self, session_id: &str) -> String
pub fn object_key(&self, session_id: &str) -> String
Object key for the full transcript of session_id.
Example: history/1234-abcd/history.jsonl.
Trait Implementations§
Source§impl Clone for HistorySinkConfig
impl Clone for HistorySinkConfig
Source§fn clone(&self) -> HistorySinkConfig
fn clone(&self) -> HistorySinkConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HistorySinkConfig
impl Debug for HistorySinkConfig
Source§impl<'de> Deserialize<'de> for HistorySinkConfig
impl<'de> Deserialize<'de> for HistorySinkConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for HistorySinkConfig
impl RefUnwindSafe for HistorySinkConfig
impl Send for HistorySinkConfig
impl Sync for HistorySinkConfig
impl Unpin for HistorySinkConfig
impl UnsafeUnpin for HistorySinkConfig
impl UnwindSafe for HistorySinkConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more