pub struct RemoteFlags {
pub zip: bool,
pub profile: Option<String>,
pub credential: Option<String>,
pub region: Option<String>,
pub engine: Option<StorageEngine>,
pub bundle_uri: bool,
pub bundle_uri_presign_ttl: Option<NonZeroU64>,
}Expand description
Query-string flags described in §3.2 / §3.3.
Fields§
§zip: bool?zip=1 — push uploads repo.zip alongside each bundle.
profile: Option<String>?profile=... — selects a named AWS profile. S3 only; an Azure
URL carrying this flag is rejected with
ParseError::FlagNotApplicable.
credential: Option<String>?credential=... — names an Azure credential alias. Azure only;
an S3 URL carrying this flag is rejected with
ParseError::FlagNotApplicable.
region: Option<String>?region=... — overrides the SDK-derived region (rare). S3 only;
an Azure URL carrying this flag is rejected with
ParseError::FlagNotApplicable.
engine: Option<StorageEngine>?engine=... — declares the storage engine for a new repository.
On the first push to an empty bucket this value is written to the
FORMAT key. On subsequent connects the stored FORMAT value is
authoritative; a conflicting ?engine= aborts with an error.
bundle_uri: bool?bundle_uri=1 — opt in to advertising the bundle-uri helper
capability so a git clone can fetch the packchain baseline
bundle directly (e.g. via a public bucket or CDN) before the
helper protocol negotiates the incremental tail. Only meaningful
for ?engine=packchain remotes; bundle-engine remotes ignore
the flag because their bundle filenames rotate per push and a
stable URL would race the next push.
bundle_uri_presign_ttl: Option<NonZeroU64>?bundle_uri_presign_ttl=<seconds> — on a packchain remote with
?bundle_uri=1, the helper presigns each emitted
bundle.<ref>.uri=<url> line with an <seconds>-TTL signed
URL (S3 SigV4 or Azure service-SAS). Operators with private
buckets need this; public-read buckets and CDN-fronted
endpoints can leave it unset (the canonical URL works
directly).
Meaningful only when bundle-uri advertising is active — the TTL
solely governs presigning of the bundle.<ref>.uri= lines, which
are emitted nowhere else. Supplying it without ?bundle_uri=1 is
therefore rejected at the URL boundary with
ParseError::BundleUriPresignTtlWithoutBundleUri rather than
silently discarded (issue #246). The engine is not checked
here: it is resolved from the bucket FORMAT at connect time, so a
packchain bucket is validly reconnected with ?bundle_uri=1 and
the TTL but no ?engine=packchain (a bundle-engine bucket simply
leaves the TTL inert, exactly as it does the ?bundle_uri=1 flag).
NonZeroU64 because a zero-second TTL is meaningless (the URL
would expire before any client could observe it). The URL
parser rejects =0 at the boundary with ParseError::InvalidFlagValue.
Issue #76.
Trait Implementations§
Source§impl Clone for RemoteFlags
impl Clone for RemoteFlags
Source§fn clone(&self) -> RemoteFlags
fn clone(&self) -> RemoteFlags
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RemoteFlags
impl Debug for RemoteFlags
Source§impl Default for RemoteFlags
impl Default for RemoteFlags
Source§fn default() -> RemoteFlags
fn default() -> RemoteFlags
impl Eq for RemoteFlags
Source§impl PartialEq for RemoteFlags
impl PartialEq for RemoteFlags
impl StructuralPartialEq for RemoteFlags
Auto Trait Implementations§
impl Freeze for RemoteFlags
impl RefUnwindSafe for RemoteFlags
impl Send for RemoteFlags
impl Sync for RemoteFlags
impl Unpin for RemoteFlags
impl UnsafeUnpin for RemoteFlags
impl UnwindSafe for RemoteFlags
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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>
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 more