pub struct DispatchConfig {
pub region: String,
pub account_id: String,
pub verify_sigv4: bool,
pub iam_mode: IamMode,
pub credential_resolver: Option<Arc<dyn CredentialResolver>>,
pub policy_evaluator: Option<Arc<dyn IamPolicyEvaluator>>,
pub resource_policy_provider: Option<Arc<dyn ResourcePolicyProvider>>,
pub scp_resolver: Option<Arc<dyn ScpResolver>>,
}Expand description
Configuration passed to the dispatch handler.
Fields§
§region: String§account_id: String§verify_sigv4: boolWhether to cryptographically verify SigV4 signatures on incoming
requests. Wired through from --verify-sigv4 /
FAKECLOUD_VERIFY_SIGV4. Off by default.
iam_mode: IamModeIAM policy evaluation mode. Wired through from --iam /
FAKECLOUD_IAM. Defaults to IamMode::Off. Actual evaluation is
added in a later batch; today this field is plumbed but never
consulted.
credential_resolver: Option<Arc<dyn CredentialResolver>>Resolves access key IDs to their secrets and owning principals.
Required when verify_sigv4 or iam_mode != Off. When None, both
features gracefully degrade to off-by-default behavior.
policy_evaluator: Option<Arc<dyn IamPolicyEvaluator>>Evaluates IAM identity policies for a resolved principal + action.
Required when iam_mode != Off. When None, enforcement silently
degrades to off even if iam_mode is set.
resource_policy_provider: Option<Arc<dyn ResourcePolicyProvider>>Resolves resource-based policies (S3 bucket policies in the
initial rollout) to hand to the evaluator alongside the
principal’s identity policies. None means the server was
started without any resource-policy-owning service registered;
dispatch then behaves as if no resource policy is attached to
any resource, identical to the Phase 1 behavior.
scp_resolver: Option<Arc<dyn ScpResolver>>Resolves the ordered SCP chain that applies to a principal’s
account (root-OU first, account-direct last). None means no
organizations resolver has been registered — SCPs never gate
any request in that case. Off-by-default matches the Batch 4
contract: zero behavior change until a user calls
CreateOrganization and the resolver is wired.
Implementations§
Trait Implementations§
Source§impl Clone for DispatchConfig
impl Clone for DispatchConfig
Source§fn clone(&self) -> DispatchConfig
fn clone(&self) -> DispatchConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more