Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
6a227a7
chore(bd): file the issues found while investigating DDB PITR
Aug 5, 2026
dcfc1fb
build(deps): sweep every Go module to its latest patch release
Aug 5, 2026
c741877
build(deps): upgrade the UI dependencies, deferring two that need too…
Aug 5, 2026
7e220f1
build(deps): bump all 169 AWS service SDK modules, exposing 31 new op…
Aug 5, 2026
fcb3fbb
chore(bd): file the SDK-bump fallout issues
Aug 5, 2026
25eb94c
feat(parity): implement the 10 operations the SDK bump exposed in fou…
Aug 5, 2026
75e28a5
feat(quicksight): implement TopicV2 against the same resource V1 alre…
Aug 5, 2026
b850093
feat(ec2): implement Application Status Checks and Transit Gateway po…
Aug 5, 2026
657c63a
test(sdkcheck): make the reverse phantom check fail the build
Aug 5, 2026
e79d330
docs(parity): correct three services' manifests and regenerate the do…
Aug 5, 2026
bd8095c
test(sdkcheck): allowlist the two bedrock agent-memory ops the strict…
Aug 5, 2026
652f391
refactor: cut the comment bloat, and make the eks async tests determi…
Aug 5, 2026
ef9571e
build(lint): add mulint as a vet tool, not a golangci-lint plugin
Aug 5, 2026
612facc
Merge remote-tracking branch 'origin/main' into chore/parity-upgrade
Aug 6, 2026
ae4fbbd
test: move five more packages onto synctest, and cut comment bloat in…
Aug 6, 2026
a64338a
feat(parity): distinguish structural gaps from unfinished work, raisi…
Aug 6, 2026
3b90d45
test: replace the last unbubbleable sleeps with require.Eventually
Aug 6, 2026
198990e
feat(directconnect): add SDK-driven integration suite, close gaps, B …
Aug 6, 2026
ef896bc
fix(routing): disambiguate shared /tags/ paths by ARN, and take grafa…
Aug 6, 2026
0817f2e
feat(mgn): launch real EC2 instances, fix the invented import schema,…
Aug 6, 2026
9c8570b
feat(outposts): add an SDK-driven integration suite and close the bui…
Aug 6, 2026
59c1133
docs(parity): regenerate badges and READMEs after mgn reached A
Aug 6, 2026
447b161
feat(parity): resiliencehub reaches A, and EC2 gains real Outpost pla…
Aug 6, 2026
6bd4553
docs(parity): regenerate after resiliencehub reached A
Aug 6, 2026
65319d3
feat(ui): add Region All mode, a fan-out helper and a region chip
Aug 6, 2026
3ad625b
feat(regions): return the real AWS region list, and track which regio…
Aug 6, 2026
17f39f7
fix(ui): repair the DynamoDB e2e suite and stop a stream-polling requ…
Aug 7, 2026
6776206
fix(routing): stop iotdataplane claiming Outposts' /connections path
Aug 7, 2026
0f3fd13
feat(outposts): model real order and capacity lifecycles, B to A
Aug 7, 2026
fca4a71
docs(parity): regenerate — every service now grades A
Aug 7, 2026
45c4e6f
fix(account): add the missing SDK coverage and two unrouted operations
Aug 7, 2026
935d8d8
test: derive fresh contexts in cleanups, and table the repeatable int…
Aug 7, 2026
a074ead
ci: gate generated docs, deconflict terraform CIDRs, fix two quicksig…
Aug 7, 2026
4278746
feat(cloudfront,resiliencehub): real status transitions and cross-ser…
Aug 7, 2026
8c56f4e
fix(dynamodb,rds): attach the resource ARNs the wire has been omitting
Aug 7, 2026
b5ee99f
fix(ec2,swf): repair a silent tag-filter miss and give SWF runs disti…
Aug 7, 2026
97e8249
feat(ui): fan out twelve more pages across regions, with chips and wr…
Aug 7, 2026
3c98169
fix(waf,emr,textract,bedrockruntime): repair validations that never ran
Aug 7, 2026
87fac19
feat(ui): fan out twelve more pages, including the multi-list and two…
Aug 7, 2026
aa7200e
feat(vpclattice,appsync,awsconfig): build four families and repair si…
Aug 7, 2026
c329089
feat(ui): fan out four more pages and give IAM the global treatment
Aug 7, 2026
1d7169f
fix(firehose,cloudwatch,cleanrooms,elbv2): make deliveries real, plus…
Aug 7, 2026
c414617
feat(ui): finish Region All across the dashboard
Aug 7, 2026
7973d82
fix(codeartifact,codecommit,ssoadmin): repair operations that never w…
Aug 7, 2026
041c16c
feat(cognitoidp): implement real SRP-6a, closing an auth path that ne…
Aug 7, 2026
d2851f3
test(persistence): make the snapshot-version data-loss mistake fail i…
Aug 7, 2026
b72533e
fix(bedrockagent): snapshot sub-resources into agent versions, and cl…
Aug 7, 2026
5f56738
feat(medialive,ui): model four encoder settings groups, and finish th…
Aug 8, 2026
f77cfa2
fix(iam,eventbridge): drop IAM's second mutex and thread ECS task def…
Aug 8, 2026
5f91d37
fix(mgn,s3,dlm): reach an unreachable handler and close eight small gaps
Aug 8, 2026
1f63dda
fix(s3): take the per-object lock while snapshotting versions
Aug 8, 2026
e75fbe4
fix(backup): persist the ten unregistered tables, recoveryPoints incl…
Aug 8, 2026
1c96f83
fix(textract): check the read-back ok bool before cloning
Aug 8, 2026
597e9ee
fix(cognitoidp): persist TOTP enrolment, MFA preference and pool trig…
Aug 8, 2026
f4b2231
fix: normalize timestamps to UTC before formatting with a bare-Z layout
Aug 8, 2026
0c21715
chore(beads): sync issue state
Aug 8, 2026
54d4ca3
chore(beads): record prompt-injection investigation findings
Aug 8, 2026
41f3817
feat(appconfig): publish completed deployments into appconfigdata
Aug 8, 2026
78671c9
fix(rdsdata): return real rows from the legacy ExecuteSql path
Aug 8, 2026
7e661b4
docs(appconfigdata): describe the appconfig bridge that now exists
Aug 8, 2026
535db9d
feat(stepfunctions): export Distributed Map results through ResultWriter
Aug 8, 2026
22bf355
fix(iot): decode inline tags as a Key/Value list, not a map
Aug 8, 2026
d688539
test(e2e): confirm the ELB delete dialog before asserting the empty s…
Aug 8, 2026
c9a6b69
fix(backup): persist the settings and index state held in plain maps
Aug 8, 2026
9e811a1
fix(iot): route creation-time tags into the shared tag store
Aug 8, 2026
9c6f753
chore(beads): sync issue state
Aug 8, 2026
33031a6
fix(personalize): copy parent fields onto SolutionVersion and deep-ty…
Aug 8, 2026
c2733f3
fix(iotwireless): apply ListWirelessDevices filters and type the nest…
Aug 8, 2026
8ca3423
chore(beads): sync issue state
Aug 8, 2026
ffe7d2a
fix(bedrockagent): reject sub-resource mutation on non-DRAFT agent ve…
Aug 8, 2026
b7d3a84
feat(autoscaling): parse predictive scaling and InstanceRequirements …
Aug 8, 2026
0fe7aaf
chore(beads): sync issue state
Aug 8, 2026
742963b
fix(apigateway): apply every op in a PATCH request, not just the last
Aug 8, 2026
cdad5fb
feat(redshift): model the remaining resource fields and fix two wire …
Aug 8, 2026
99fd82e
chore(beads): sync issue state
Aug 8, 2026
508f74f
fix(eventbridge): match range+step cron tokens and stop inventing a f…
Aug 8, 2026
ff99a9e
fix(autoscaling): run every lifecycle hook on a transition, in order
Aug 8, 2026
3544eb0
chore(beads): sync issue state
Aug 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .badges/operations.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 6 additions & 6 deletions .badges/parity.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions .badges/services.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
291 changes: 166 additions & 125 deletions .beads/issues.jsonl

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,26 @@ jobs:
- name: go fix (modernize)
run: go fix -diff ./...

docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
token: ${{ env.GH_CI_TOKEN }}

- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
with:
go-version-file: go.mod
check-latest: true
cache: true

- name: Generate docs
run: make docs

- name: Fail if docs are out of date
run: git diff --exit-code

govulncheck:
runs-on: ubuntu-latest
steps:
Expand Down
24 changes: 24 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,16 @@ linters:
# injectable RNG field, so it must live in the same package.
- path: 'route53/routing_test.go'
linters: [ testpackage ]
# ordering_requirements_test.go white-box tests buildOrderingRequirements
# and its unexported per-check helpers directly with hand-built Site/
# Outpost structs -- several of the real OrderingRequirementType checks
# (SHIPPING_ADDRESS_MISSING_CONTACT_*) need a partially-populated Address
# the real SDK client's own validators.go refuses to construct (every
# Address field is client-side required once OperatingAddress/
# ShippingAddress is non-nil), so this cannot be reached through the
# real SDK client the way this package's other tests are.
- path: 'outposts/ordering_requirements_test.go'
linters: [ testpackage ]
- path: 'pkgs/service/cloudtrail_capture_test.go'
linters: [ testpackage ]
- path: 'pkgs/service/registry_test.go'
Expand All @@ -515,6 +525,20 @@ linters:
linters: [ testpackage ]
- path: 'autoscaling/scheduled_action_scheduler_test.go'
linters: [ testpackage ]
# whitebox_test.go: the export_test.go cleanup (gopherstack-f84y) moved
# tests needing unexported field/const access out of the external _test
# package into these in-package files instead of re-exporting test-only
# helpers. One shared rule covers every service's whitebox_test.go.
- path: 'whitebox_test\.go$'
linters: [ testpackage ]
- path: 'sdkcheck/check_test.go'
linters: [ testpackage ]
- path: 'pkgs/telemetry/collector_test.go'
linters: [ testpackage ]
- path: 'cognitoidentity/errors_test.go'
linters: [ testpackage ]
- path: 'glacier/select_sql_test.go'
linters: [ testpackage ]
- text: 'should have a package comment'
linters: [ revive ]
- text: 'exported \S+ \S+ should have comment( \(or a comment on this block\))? or be unexported'
Expand Down
5 changes: 5 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ go vet ./services/<pkg>/...
golangci-lint run ./services/<pkg>/...
```

`make lint` also runs mulint (mutex misuse detection) via `go vet -vettool`.
mulint cannot follow mutex wrappers across package boundaries, so it does
**not** see `lockmetrics.RWMutex` (used almost everywhere in this repo) — it
only guards direct `sync.Mutex`/`sync.RWMutex` use.


**Logging — context-aware only (no exceptions):**
- NEVER call `slog.Default()` or construct an ad-hoc `slog.New(...)` in service/production
Expand Down
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ install-tofu:

lint: install-deps ui-lint ui-fmt ui-check
golangci-lint run --timeout 20m ./...
go vet -vettool=$$(go tool -n mulint-vet) ./...
go tool govulncheck ./...

lint-fix: install-deps ui-lint-fix ui-fmt-fix
Expand All @@ -138,7 +139,7 @@ integration-test: build-linux
go tool gotestsum --format pkgname -- -race -shuffle on -timeout 10m ./test/integration/...

terraform-test: install-tofu
PATH="$$PWD/bin:$$PATH" go tool gotestsum --format pkgname -- -v -race -parallel 8 -timeout 10m ./test/terraform/...
PATH="$$PWD/bin:$$PATH" go tool gotestsum --format pkgname -- -v -race -parallel 8 -timeout 45m ./test/terraform/...

e2e: e2e-test

Expand All @@ -152,7 +153,7 @@ total-coverage: build-linux
@echo "Running integration tests with coverage..."
go tool gotestsum --format pkgname -- -race -shuffle on -timeout 10m -coverpkg=$(COVERPKGS) -coverprofile=integration-coverage.out -covermode=atomic ./test/integration/...
@echo "Running terraform tests with coverage..."
go tool gotestsum --format pkgname -- -race -parallel 8 -timeout 20m -coverpkg=$(COVERPKGS) -coverprofile=terraform-coverage.out -covermode=atomic ./test/terraform/...
go tool gotestsum --format pkgname -- -race -parallel 8 -timeout 45m -coverpkg=$(COVERPKGS) -coverprofile=terraform-coverage.out -covermode=atomic ./test/terraform/...
@echo "Running E2E tests with coverage..."
go tool gotestsum --format pkgname -- -race -shuffle on -timeout 10m -tags=e2e -coverpkg=$(COVERPKGS) -coverprofile=e2e-coverage.out -covermode=atomic ./test/e2e/...
@echo "Merging coverage profiles..."
Expand Down
Loading
Loading