Skip to content

Commit 54c6cee

Browse files
committed
Merge branch 'main' into fix/postcss-xss-vulnerability
2 parents 0bd0026 + 403bada commit 54c6cee

9 files changed

Lines changed: 46 additions & 32 deletions

File tree

.github/workflows/release-drafter.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ jobs:
1616
pull-requests: write
1717
runs-on: ubuntu-latest
1818
steps:
19-
- uses: release-drafter/release-drafter@5de93583980a40bd78603b6dfdcda5b4df377b32 # v7.2.0
19+
- uses: release-drafter/release-drafter@a6a982fee9675c45c1765e9fa5308f7d6c3ecbd4 # v7.2.0
2020
with:
2121
config-name: release-drafter.yml
22+
commitish: main
2223
env:
2324
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ First public release of DevCloud — a local development companion for cloud-nat
5050
- Generated files (`internal/generated/**`) include SPDX license headers and are marked `DO NOT EDIT`.
5151

5252
**Web dashboard** (optional, gated on `dashboard.enabled`)
53-
- Next.js 15 / React 19 / Tailwind UI served statically by the Go server.
53+
- Next.js 16 / React 19 / Tailwind UI served statically by the Go server.
5454
- Service status, resource browser, WebSocket-based live API log stream.
5555

5656
**Docker packaging**

Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: build test codegen run clean test-compat build-web build-all docker-build docker-run changelog
1+
.PHONY: build test codegen run clean test-compat build-web build-all docker-build docker-run changelog stats
22

33
build:
44
go build -o dist/devcloud ./cmd/devcloud
@@ -39,3 +39,9 @@ changelog:
3939
exit 1; \
4040
fi
4141
@changie batch $(VERSION) && changie merge
42+
43+
stats:
44+
@svcs=$$(awk '/^services:/{found=1;next} /^[^ \t]/{found=0} found && /^[ \t]+[a-z][a-z0-9_]+:$$/' internal/config/default.yaml | wc -l | tr -d ' '); \
45+
ops=$$(grep -r 'case "' internal/services/*/provider.go 2>/dev/null | wc -l | tr -d ' '); \
46+
echo "Services: $$svcs"; \
47+
echo "Operations: $$ops"

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@ Today DevCloud targets **AWS**. Our long-term goal is to support the full range
2323

2424
## Features
2525

26-
- **96 AWS services scaffolded** — 4,438 operations across all major categories (see [services-matrix.md](docs/services-matrix.md))
26+
- **101 AWS services scaffolded** — 4,451 operations across all major categories (run `make stats` to verify; see [services-matrix.md](docs/services-matrix.md))
2727
- **96% boto3 compatibility** — 671/699 SDK tests pass; works with most boto3 apps
2828
- **Cross-service integration** — CFN provisioning, DDB Streams → Lambda, EventBridge targets, S3 → Lambda
2929
- **Smithy-driven codegen** — auto-generate Go interfaces, types, and serializers from Smithy models
3030
- **Weekly auto-sync** — GitHub Actions keeps generated code up to date with upstream AWS API changes
3131
- **Single binary, zero-config** — one Docker image, one port (4747), no config file required (embedded defaults)
32+
- **Environment variable overrides**`DEVCLOUD_SERVICES`, `DEVCLOUD_DATA_DIR`, `DEVCLOUD_PORT` for quick configuration without YAML
3233
- **SDK/CLI compatible** — works with the AWS SDK, CLI, Terraform, CDK out of the box
3334
- **Web dashboard** — real-time monitoring and resource browser
3435

changes/v0.1.0.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ First public release of DevCloud — a local development companion for cloud-nat
2929

3030
**Web dashboard** (optional, gated on `dashboard.enabled`)
3131

32-
- Next.js 15 / React 19 / Tailwind UI served statically by the Go server.
32+
- Next.js 16 / React 19 / Tailwind UI served statically by the Go server.
3333
- Service status, resource browser, WebSocket-based live API log stream.
3434

3535
**Docker packaging**

docs/architecture.md

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -158,19 +158,8 @@ devcloud/
158158
│ ├── plugin/ # ServicePlugin interface, Registry
159159
│ ├── codegen/ # Smithy parser, code generators, templates
160160
│ ├── config/ # YAML config loading, env overrides
161-
│ ├── generated/ # Auto-generated code (DO NOT EDIT)
162-
│ │ ├── s3/
163-
│ │ ├── sqs/
164-
│ │ ├── dynamodb/
165-
│ │ ├── lambda/
166-
│ │ ├── iam/
167-
│ │ └── sts/
168-
│ ├── services/ # Service implementations
169-
│ │ ├── s3/ # FileSystem + SQLite
170-
│ │ ├── sqs/ # In-memory queues
171-
│ │ ├── dynamodb/ # BadgerDB
172-
│ │ ├── lambda/ # SQLite + filesystem (stub runtime)
173-
│ │ └── iam/ # SQLite (IAM + STS)
161+
│ ├── generated/ # Auto-generated code (DO NOT EDIT; run `make stats` for count)
162+
│ ├── services/ # Service implementations (run `make stats` for count)
174163
│ ├── dashboard/ # Dashboard REST API + WebSocket
175164
│ ├── eventbus/ # In-memory event pub/sub
176165
│ └── storage/ # Shared storage abstractions
@@ -186,11 +175,11 @@ devcloud/
186175

187176
## Startup Flow
188177

189-
1. Load config from `devcloud.yaml` (or specified path)
178+
1. Load config from `devcloud.yaml` (or specified path), applying environment variable overrides (`DEVCLOUD_PORT`, `DEVCLOUD_SERVICES`, `DEVCLOUD_DATA_DIR`)
190179
2. Initialize structured logger (slog)
191180
3. Create plugin registry
192-
4. Register service factories (S3, SQS, DynamoDB, IAM, Lambda)
193-
5. Initialize services in order: S3 → SQS → DynamoDB → IAM STS → Lambda
181+
4. Register service factories (run `make stats` for count)
182+
5. Initialize services in dependency order (IAM before STS, etc.)
194183
6. IAM store is shared with STS via plugin config options
195184
7. Set up event bus, log collector, dashboard API
196185
8. Create gateway with middleware chain and service router

docs/configuration.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ To override defaults, provide a YAML file. DevCloud looks for config in this ord
88
2. `./devcloud.yaml` in the current working directory (auto-detected)
99
3. Embedded defaults (used when neither of the above is present)
1010

11-
Environment variables override YAML values for selected keys (see [Environment Variable Overrides](#environment-variable-overrides)).
11+
Environment variables override YAML values for selected keys (see [Environment Variable Overrides](#environment-variable-overrides)). All three env vars follow the same precedence: **env var wins over YAML, YAML wins over embedded default**.
12+
13+
| Variable | Overrides | Description |
14+
|----------|-----------|-------------|
15+
| `DEVCLOUD_PORT` | `server.port` | HTTP server port |
16+
| `DEVCLOUD_SERVICES` | `services.*.enabled` | Comma-separated list of services to enable |
17+
| `DEVCLOUD_DATA_DIR` | `services.*.data_dir` | Base data directory for all services |
1218

1319
## Configuration File
1420

@@ -92,9 +98,21 @@ logging:
9298
9399
## Environment Variable Overrides
94100
101+
### `DEVCLOUD_PORT`
102+
103+
Overrides the HTTP server port.
104+
105+
```bash
106+
# Run on port 8080 instead of 4747
107+
DEVCLOUD_PORT=8080 ./dist/devcloud
108+
109+
# With Docker (map the host port accordingly)
110+
docker run -p 8080:8080 -e DEVCLOUD_PORT=8080 ghcr.io/skyoo2003/devcloud:latest
111+
```
112+
95113
### `DEVCLOUD_SERVICES`
96114

97-
Comma-separated list of services to enable. All other services listed in the config file are disabled. Accepts individual service names and tier shortcuts.
115+
Comma-separated list of services to enable. When set, **only** the listed services are enabled — all others are disabled regardless of their `enabled` setting in YAML. When not set, each service uses its YAML `enabled` value (or the embedded default of `true`).
98116

99117
**Tier shortcuts** (expand to predefined service groups — see [`internal/config/config.go`](https://github.com/skyoo2003/devcloud/blob/main/internal/config/config.go) for the exact list):
100118

@@ -123,7 +141,7 @@ docker run -p 4747:4747 -e DEVCLOUD_SERVICES=tier1 ghcr.io/skyoo2003/devcloud:la
123141

124142
### `DEVCLOUD_DATA_DIR`
125143

126-
Overrides the base data directory for **all** services. Each service's `data_dir` becomes `<DEVCLOUD_DATA_DIR>/<service_name>` regardless of what's in the YAML file.
144+
Overrides the base data directory for **all** services. When set, every service uses `<DEVCLOUD_DATA_DIR>/<service_name>` — per-service `data_dir` values in YAML are ignored. When not set, each service falls back to its YAML `data_dir` value (or the embedded default).
127145

128146
```bash
129147
# Put all service data under /tmp/devcloud-local

docs/roadmap.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ We pursue this vision through a **phased rollout** to manage scope, architectura
1919
**Goal**: prove the core thesis on AWS before expanding surface area.
2020

2121
- [x] Core AWS services: S3, SQS, DynamoDB, Lambda, IAM, STS
22-
- [x] Smithy-based codegen pipeline (96 services, 4,438 operations scaffolded)
22+
- [x] Smithy-based codegen pipeline (run `make stats` for current counts)
2323
- [x] Cross-service integration (CFN, DDB Streams → Lambda, EventBridge, S3 → Lambda)
2424
- [x] boto3 compatibility suite (currently 671/699 passing)
2525
- [ ] Lift boto3 compatibility to ≥ 95%

docs/services-matrix.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# DevCloud Services Matrix
22

3-
**Total**: 96 services, 4,438 operations, 96% boto3 compatibility
3+
**Total**: 101 services, 4,451 operations, 96% boto3 compatibility
4+
5+
> To refresh these numbers, run `make stats` and update the line above.
46
57
_Last updated with each release. For unreleased changes, see [CHANGELOG.md](../CHANGELOG.md)._
68

@@ -21,7 +23,7 @@ DevCloud is a Go-based local cloud environment with AWS API compatibility. This
2123
|---|---------|-----|----------|
2224
| 1 | sesv2 | 155 | Business Apps |
2325
| 2 | appconfig | 97 | Management |
24-
| 3 | pinpoint | 91 | Business Apps |
26+
| 3 | pinpoint | 93 | Business Apps |
2527
| 4 | opensearch | 87 | Analytics |
2628
| 5 | iot | 82 | IoT |
2729
| 6 | backup | 82 | Storage |
@@ -92,11 +94,8 @@ make test
9294
# Run boto3 compatibility tests
9395
make test-compat
9496

95-
# Count ops per service (quick matrix refresh)
96-
for svc in $(ls internal/services/); do
97-
count=$(grep -c 'case "' internal/services/$svc/provider.go 2>/dev/null || echo 0)
98-
[ "$count" -gt "0" ] && echo "$count $svc"
99-
done | sort -rn
97+
# Print service and operation counts
98+
make stats
10099
```
101100

102101
See [Getting Started](getting-started.md) for installation and [contributing.md](contributing.md) for development setup.

0 commit comments

Comments
 (0)