Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
fdc8ca6
feat(azurearm,terraform): M8 direct-data-plane storage Terraform cove…
jh125486 Sep 9, 2026
d2c8127
fix(azurearm): metadata/endpoints must be a single object, not an array
jh125486 Sep 9, 2026
9718aff
fix(test): update integration test for single-object metadata response
jh125486 Sep 9, 2026
e6a32f3
fix(azurearm): microsoftGraphResourceId is a top-level field, not nested
jh125486 Sep 9, 2026
ffb766f
fix(azurearm): metadata authentication.tenant must be "common", not t…
jh125486 Sep 9, 2026
6853006
fix(azurearm): baseURLFor must honor the request's actual port, not h…
jh125486 Sep 9, 2026
173c8df
fix(azurearm): generic resource PUT must always return 200, never 201
jh125486 Sep 9, 2026
8a97c8b
feat(storage): add Get Service Properties to blob/queue/table for TF …
jh125486 Sep 11, 2026
ec6fb82
docs: regenerate READMEs/badge for GetServiceProperties PARITY entries
jh125486 Sep 11, 2026
af40c86
fix(lint): suppress modernize/embedlit false positive requiring go1.27
jh125486 Sep 11, 2026
0ead0d4
fix(lint): move nolint to the exact line embedlit's diagnostic anchor…
jh125486 Sep 11, 2026
cbf859f
fix(azurearm): return 200 for GET .../{x}Services/default, not 404
jh125486 Sep 11, 2026
1661168
azure: add virtual-hosted-style addressing for Blob/Queue/Table (M8)
jh125486 Sep 12, 2026
4ca5c86
azure: address CodeRabbit findings on the vhost addressing redesign
jh125486 Sep 12, 2026
e03aa8b
Merge branch 'main' into azure/m8-storage-terraform-dataplane
jh125486 Sep 12, 2026
462dcae
fix: golangci-lint 2.13.2 findings surfaced by the main merge
jh125486 Sep 12, 2026
8fd44d4
fix: avoid go fix's modernize churn on the M8 EDMEntity construction
jh125486 Sep 12, 2026
ccccb08
fix(test): harden stable dev-cert file handling against local symlink…
jh125486 Sep 12, 2026
d6c2f03
fix: lint findings on the cert-security hardening (err113, gochecknog…
jh125486 Sep 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
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.
6 changes: 3 additions & 3 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.
10 changes: 8 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -445,8 +445,14 @@ jobs:
run: |
TOTAL_CHUNKS=8
CHUNK=${{ matrix.chunk }}
# Discover all test functions from source (no Docker needed)
TESTS=$(grep -rh '^func Test' test/terraform/*_test.go | sed 's/func \(Test[^ (]*\).*/\1/' | sort -u)
# Discover all test functions from source (no Docker needed).
# test/terraform/azure is a separate package one directory deeper
# (AZURE.md section 10.10), so it needs its own glob term -- a bare
# test/terraform/*_test.go never matched it, meaning the Azure
# Terraform suite (M7/M8) never actually ran in CI despite
# `./test/terraform/...` being the -v target below.
TESTS=$(grep -rh '^func Test' test/terraform/*_test.go test/terraform/azure/*_test.go \
| sed 's/func \(Test[^ (]*\).*/\1/' | sort -u)
# Round-robin distribute tests across chunks
CHUNK_TESTS=$(echo "$TESTS" | awk "NR % ${TOTAL_CHUNKS} == ${CHUNK}")
COUNT=$(echo "$CHUNK_TESTS" | wc -l | tr -d ' ')
Expand Down
7 changes: 7 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -495,6 +495,13 @@ linters:
# therefore run sequentially, so paralleltest is not applicable here.
- path: 'dax/dataplane_integration_test.go'
linters: [ paralleltest ]
# storage_dataplane_test.go's SharedKey-auth-path subtest deliberately
# runs non-parallel, after its three sibling subtests: it inspects the
# whole container log for a non-SharedKey Authorization header, so it
# must run once those subtests have actually generated their own
# traffic, not concurrently with them.
- path: 'test/terraform/azure/storage_dataplane_test.go'
linters: [ paralleltest ]
Comment on lines +498 to +504
# isolation_test.go uses unexported types and must be in the same package.
- path: 'elasticache/isolation_test.go'
linters: [ testpackage, paralleltest ]
Expand Down
15 changes: 13 additions & 2 deletions AZURE.md

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,10 @@ EXPOSE 8000
# Expose MQTT broker port
EXPOSE 1883

# Expose Azure Blob/Queue/Table (Azurite-compatible), Service Bus, and Cosmos DB ports
EXPOSE 10000 10001 10002 10003 10006 8081
# Expose Azure Blob/Queue/Table (Azurite-compatible), the shared Azure
# Storage virtual-hosted listener (10010, see services/azurestoragevhost),
# Service Bus, ARM, and Cosmos DB ports
EXPOSE 10000 10001 10002 10003 10006 10010 8081

# OCI label pointing to the source repository
LABEL org.opencontainers.image.source="https://github.com/blackbirdworks/gopherstack"
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -689,18 +689,19 @@ Every service links to its own page with a coverage breakdown — audited operat

| Service | Parity | PARITY Entries | Notes |
|---|---|---|---|
| [Azure Blob Storage](services/azureblob/README.md) | C | 8 | 8 gaps; 3 deferred |
| [Azure Blob Storage](services/azureblob/README.md) | C | 11 | 9 gaps; 3 deferred |
| [Azure Cosmos DB](services/cosmosdb/README.md) | C | 15 | 10 gaps; 6 deferred |
| [Azure Queue Storage](services/azurequeue/README.md) | C | 9 | 7 gaps; 1 deferred |
| [Azure Queue Storage](services/azurequeue/README.md) | C | 11 | 7 gaps; 1 deferred |
| [Azure Service Bus](services/azureservicebus/README.md) | B | 17 | 4 gaps; 2 deferred |
| [Azure Table Storage](services/azuretable/README.md) | C | 10 | 6 gaps; 3 deferred |
| [Azure Table Storage](services/azuretable/README.md) | C | 13 | 6 gaps; 3 deferred |

### Other

| Service | Parity | PARITY Entries | Notes |
|---|---|---|---|
| [AppStream 2.0](services/appstream/README.md) | A | 44 | clean |
| [Azurearm](services/azurearm/README.md) | B | 12 | 6 gaps; 1 deferred |
| [Azurestoragevhost](services/azurestoragevhost/README.md) | B | 2 | 2 gaps; 1 deferred |
| [Cloudfrontkeyvaluestore](services/cloudfrontkeyvaluestore/README.md) | B | 6 | 3 gaps; 1 structural gap |
| [Directconnect](services/directconnect/README.md) | A | 64 | 4 gaps; 8 structural gaps; 1 deferred |
| [Grafana](services/grafana/README.md) | A | 25 | 2 gaps; 1 structural gap |
Expand Down
Loading
Loading