Documentation
¶
Overview ¶
Package gateway routes requests arriving on doze-aws's single shared endpoint to the right service, the way AWS SDKs of every generation address a custom endpoint. A request identifies its service by (tried in order):
- the X-Amz-Target header's prefix (all JSON-protocol services);
- the SigV4 credential scope's service name (header or presigned query) — SigV2 signatures carry no service name and fall through;
- a Lambda REST-API path prefix (/2015-03-31/..., etc.);
- the Query-protocol Action parameter, looked up in a static action table (distinguishes STS from SNS for unsigned/SigV2 requests);
- otherwise S3 — the host/path shapes S3 clients produce are too varied to enumerate, so S3 is the fallback, matching LocalStack ergonomics.
The gateway is routing only: it never interprets a request beyond picking a handler, and it restores any body bytes it had to peek at.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Services = []string{
"s3", "sqs", "sns", "sts", "dynamodb", "kms", "ssm", "secretsmanager", "eventbridge", "lambda",
}
Services is the canonical set of doze-aws service names, in the order they appear in docs and config listings.
Functions ¶
func KnownService ¶
KnownService reports whether name is one of the canonical service names.
Types ¶
type Gateway ¶
type Gateway struct {
// contains filtered or unexported fields
}
Gateway is the shared-endpoint router. Register handlers for the services a deployment enables; requests for everything else get a clean error.