doze doze/registry
A

AWS

official ● signed
doze/aws
macOS & Linux

Every doze-aws service — S3, SQS, SNS, DynamoDB, Lambda, EventBridge, KMS, SSM, Secrets Manager, STS — behind one gateway on one endpoint, as one doze instance. Declare buckets, queues, topics, tables, functions, rules, keys, secrets and parameters as nested blocks (the same shape as doze-aws's stack.yaml); doze converges them on boot. A stock SDK or the aws CLI points AWS_ENDPOINT_URL at the one endpoint; the web console at /_console manages everything, with the live Flows graph and a Traffic tail capturing every call. One process, no Docker, no JVM, no LocalStack.

Usage

Drop it in doze.hcl and run doze up.

doze.hcl
aws "local" {
  port = 4566

  bucket "uploads" { versioning = true }
  queue  "emails"  { dlq = "auto"  max_receives = 5 }
  queue  "orders"  { fifo = true  content_dedup = true }

  topic "signups" {
    subscribe { queue = "emails"  raw = true }
  }

  table "sessions" {
    key = "session_id:S"
    ttl = "expires_at"
  }

  function "resize" {
    code    = "./functions/resize"   # dir with a provided.al2 bootstrap
    timeout = 10
  }

  rule "order_placed" {
    pattern = "{\"source\":[\"shop.checkout\"]}"
    targets = ["lambda:resize", "queue:emails"]
  }

  key "app_key" {}
  secret "db_password" { value = "s3cr3t" }
  parameter "/app/feature/banner" { value = "hello" }
}

Versions you can run

This engine takes no version = — it tracks current APIs.

Configuration

Arguments and nested blocks the engine accepts — generated from the module itself, so it can't drift.

bucket"" { } nested block · repeatable

One S3 bucket (the label is the bucket name).

Name Type Default Description
versioning bool false Enable object versioning.
object_lock bool false Enable object lock (implies versioning).
queue"" { } nested block · repeatable

One SQS queue; dlq = "auto" creates and wires a dead-letter companion.

Name Type Default Description
fifo bool false FIFO queue (name gets .fifo).
dlq string "auto" or an existing queue name.
max_receives number Receives before dead-lettering.
topic"" { } nested block · repeatable

One SNS topic with subscribe blocks (queue/lambda/http, filter, raw).

— no arguments, just the label

table"" { } nested block · repeatable

One DynamoDB table; key uses the "pk:S sk:N" shorthand, plus gsi/lsi blocks.

— no arguments, just the label

function"" { } nested block · repeatable

One Lambda function running as a real local process (code = local dir).

— no arguments, just the label

rule"" { } nested block · repeatable

One EventBridge rule; targets use "queue:name"/"topic:name"/"lambda:name".

— no arguments, just the label

key"" { } nested block · repeatable

One KMS key with real local crypto.

— no arguments, just the label

secret"" { } nested block · repeatable

One Secrets Manager secret (never stomped without force).

— no arguments, just the label

parameter"" { } nested block · repeatable

One SSM parameter (the label is the full /path).

— no arguments, just the label

Under the hood — module releases you never write these; doze picks and pins automatically

The plugin releases that provide this engine. doze selects the newest one compatible with your doze and your declared versions, pins it in doze.lock, and the index is cumulative — older releases stay resolvable for pinned lockfiles. modules { aws { version = "…" } } pins one exactly (the escape hatch for bisecting a regression).

release protocol engine support platforms
0.1.1 stable 1 3 platforms
0.1.0 1 3 platforms

raw signed data: index.yaml ↗ · meta.yaml ↗