diff --git a/src/content/docs/changelog/index.mdx b/src/content/docs/changelog/index.mdx index bed3fe42..06a19cde 100644 --- a/src/content/docs/changelog/index.mdx +++ b/src/content/docs/changelog/index.mdx @@ -1,6 +1,6 @@ --- title: Overview -lastUpdated: 2026-08-07 +lastUpdated: 2026-09-14 description: Release notes and version history for fullstackhero. sidebar: order: 1 @@ -11,6 +11,12 @@ seo: Notable changes to the kit, newest first. +## 2026-09-14 + +- **MinIO now comes from quay.io instead of Docker Hub.** MinIO withdrew `minio/minio` from Docker Hub: the repository is gone, and a pull fails with `pull access denied for minio/minio, repository does not exist or may require 'docker login'`. That broke everything in the kit that boots MinIO - the Testcontainers integration-test harness (every test in the project fails at container start), the Aspire AppHost, and the Docker Compose deployment under `deploy/docker/`. The image is still published at `quay.io/minio/minio`, and the kit now pins an explicit tag, `RELEASE.2025-09-07T16-13-09Z`, instead of `:latest` - quay has not moved `:latest` since September 2025, so the two resolve to the same digest today and the pin only removes the surprise of a silent move later. **Action for deployments:** if you copied the compose file or pinned `minio/minio` anywhere of your own, repoint it at `quay.io/minio/minio` with that tag. It is the same image; nothing else changes. + +- **The `Testcontainers.*` packages move 4.11.0 to 4.14.0.** 4.11.0 depends on `SSH.NET` 2025.1.0, which carries GHSA-q939-rpr3-3284 and fails `dotnet restore` for the whole solution under `TreatWarningsAsErrors`. 4.14.0 already depends on the patched `SSH.NET` 2026.0.0. Test-only; no runtime surface moves. + ## 2026-08-07 The transactional outbox was rebuilt so that any module can publish, every tenant's events actually get dispatched, and the kit is safe to scale past one API instance. diff --git a/src/content/docs/testing/fixtures-and-seed-data.mdx b/src/content/docs/testing/fixtures-and-seed-data.mdx index 0c55cc0f..8f57fa1e 100644 --- a/src/content/docs/testing/fixtures-and-seed-data.mdx +++ b/src/content/docs/testing/fixtures-and-seed-data.mdx @@ -1,6 +1,6 @@ --- title: Fixtures & seed data -lastUpdated: 2026-06-11 +lastUpdated: 2026-09-14 description: The shared test factory (containers, host, seeded root tenant + admin) used across the integration suite, and the service swaps that keep tests deterministic. sidebar: label: Fixtures & seed data @@ -22,7 +22,7 @@ The whole suite shares one database across hundreds of tests. Give everything yo | Piece | Type | Role | |---|---|---| -| `FshWebApplicationFactory` | `WebApplicationFactory, IAsyncLifetime` | Owns the `postgres:17-alpine` + `minio/minio:latest` Testcontainers, builds the in-process host, migrates + seeds | +| `FshWebApplicationFactory` | `WebApplicationFactory, IAsyncLifetime` | Owns the `postgres:17-alpine` + `quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z` Testcontainers, builds the in-process host, migrates + seeds | | `FshCollectionDefinition` | `ICollectionFixture` | Shares **one** factory instance across the whole suite (`[Collection(FshCollectionDefinition.Name)]`) | | `AuthHelper` | Plain class, wraps the factory | Issues real tokens via `POST /token/issue` and builds authenticated `HttpClient`s | | `TestConstants` | Static class | Root tenant id, root admin credentials, JWT settings, per-module base paths | diff --git a/src/content/docs/testing/integration-tests.mdx b/src/content/docs/testing/integration-tests.mdx index bf11e368..10d97f42 100644 --- a/src/content/docs/testing/integration-tests.mdx +++ b/src/content/docs/testing/integration-tests.mdx @@ -1,6 +1,6 @@ --- title: Integration tests -lastUpdated: 2026-06-11 +lastUpdated: 2026-09-14 description: WebApplicationFactory in-process API tests against Testcontainers Postgres + MinIO - one container set, all modules, real round trips. sidebar: label: Integration tests @@ -23,7 +23,7 @@ Splitting integration tests into per-module projects would mean per-project cont | Layer | Library | Purpose | |---|---|---| | Host | `Microsoft.AspNetCore.Mvc.Testing` | `WebApplicationFactory` for the in-process API | -| Containers | `Testcontainers.PostgreSql` / `Testcontainers.Minio` 4.11 | `postgres:17-alpine` + `minio/minio:latest` per test run | +| Containers | `Testcontainers.PostgreSql` / `Testcontainers.Minio` 4.14 | `postgres:17-alpine` + `quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z` per test run | | HTTP | `HttpClient` from `factory.CreateClient()` | Real HTTP calls through the full middleware pipeline | | Assertions | Shouldly, NSubstitute, AutoFixture | Same as unit tests |