Step 6 (Implement Tests) sub_step batch-loop pointer updated after AZ-576
landed and was pushed to origin/dev. Re-entry on next /autodev resumes at
batch 2 (AZ-577..AZ-580 by complexity-aware topological sort).
Co-authored-by: Cursor <cursoragent@cursor.com>
Scaffold the blackbox test project the rest of epic AZ-575 (AZ-577..AZ-586)
will build on. Two new csprojs under tests/, plus the TLS materials and
TRX->CSV reporting hand-off the existing docker-compose.test.yml already
calls for.
JWKS mock (tests/Azaion.Missions.JwksMock/):
- ASP.NET Core minimal API on .NET 10, no NuGet deps; JWS is hand-rolled
to keep the surface tight and avoid version drift with the SUT
- KeyStore with one in-memory ECDSA P-256 keypair + retired-key grace
window for NFT-RES-07 / NFT-SEC-11 rotation observability
- Endpoints: GET /.well-known/jwks.json, POST /sign, POST /rotate-key
- Mock-only alg_override / kid_override switches drive NFT-SEC-09/10/11
- TLS keypair committed under tls/; tests/jwks-mock-ca.crt is a copy
mounted into both missions and e2e-consumer per docker-compose.test.yml
E2E consumer (tests/Azaion.Missions.E2E.Tests/):
- xUnit 2.9.2 + Bogus 35.6.1 + Npgsql 10.0.2 + Xunit.SkippableFact 1.4.13
- TestBase / TokenMinter scaffolding for downstream tasks
- Fixtures/ for DbReset, DbSeed, ComposeRestart, JwksRotate, JwksMockReverse
- Helpers/ for DbAssertions (side-channel), HttpAssertions, FixtureSql
- 8 Tests/<category>/Sanity.cs discovery smoke tests (AC-3)
- Tests/InfrastructureSanity.cs SkippableFacts for AC-1/2/5/6
- Tests/AaaPatternEnforcement.cs greps source files for AC-7
- Tests/Reporting/TrxToCsvPostProcessorTests.cs covers AC-4
- Reporting/TrxToCsvPostProcessor.cs handles VSTest TRX -> environment.md
CSV; xUnit traits are not propagated by the TRX logger so the converter
reflects them out of the test DLL via GetCustomAttributesData
- Reporting.Cli/ is a separate console csproj that links the converter
source files (test project excludes Reporting.Cli/** from compile)
- Dockerfile + entrypoint.sh wire dotnet test -> trx -> csv inside the
e2e-consumer container the compose file already references
Local verification: 13 pass, 3 skip (with explicit reasons), 0 fail.
End-to-end TRX->CSV manually verified against environment.md header spec.
Docker stack build is handed off to autodev Step 7 (test-run skill).
Reports under _docs/03_implementation/.
AZ-576 task spec moved to _docs/tasks/done/.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit transitions the project from Azaion.Flights to Azaion.Missions, updating namespaces, DTOs, services, and database entities accordingly. The Docker configuration and entry points have been modified to reflect the new project structure. Additionally, the README and documentation have been updated to clarify the ongoing renaming process and its implications. All references to flights have been replaced with missions, ensuring consistency across the codebase.
Added new project structure for Azaion.Missions, including the MissionsController and VehiclesController for handling mission and vehicle management. Implemented DTOs for mission and vehicle creation and updates, along with service classes for business logic. Introduced database entities for Mission and Vehicle, and established relationships for data handling. Configured project dependencies and set up initial project properties.
Enhanced the .gitignore to exclude test results and updated the Dockerfile to include a new entrypoint script for improved container initialization. Refactored JWT configuration to support additional parameters for automatic refresh intervals, ensuring better control over token management. Updated the ConfigurationResolver to enforce required environment variables without hardcoded fallbacks, enhancing security and flexibility.
Updated JWT authentication to use configuration values instead of hardcoded secrets, improving security and flexibility. Enhanced CORS policy to conditionally allow origins based on configuration settings, with logging for permissive defaults. Updated README to reflect project renaming and clarify service context.
Replaced HARBOR_USER and HARBOR_TOKEN with REGISTRY_USER and REGISTRY_TOKEN for improved clarity and consistency. Adjusted Docker login command and updated image tagging to include the 'azaion' prefix in the registry path.
Add HARBOR_USER/HARBOR_TOKEN from Woodpecker secrets and a docker login
step before the existing build/push, so pipelines can push to the new
TLS-authenticated Harbor registry.
Pipeline reads $REGISTRY_HOST from the Woodpecker global secret
'registry_host' instead of hardcoding 'localhost:5000'. The full
host:port lives in the secret, so Harbor migration (AZ-205) becomes
one secret edit rather than editing every submodule pipeline.
Made-with: Cursor
- Updated coderule.mdc to emphasize readability, meaningful comments, and maintainability.
- Revised testing.mdc to set a 75% coverage threshold for business logic and clarified expected results requirements.
- Improved clarity in git-workflow.mdc regarding commit message formatting and length.
- Added completeness audit requirements in research steps and quality checklists to ensure thoroughness in test specifications.
Made-with: Cursor
- Delete the .woodpecker.yml file, which contained multi-platform build configurations for the CI pipeline.
- This change reflects a shift in CI strategy or tooling.
- Introduce a matrix for building on both linux/arm64 and linux/amd64 platforms.
- Update image tagging to include platform-specific tags for better versioning.
- Enhance the CI configuration for improved build clarity and organization.
- Refactor Dockerfile to improve build efficiency and clarity.
- Enhance coding standards in coderule.mdc for better maintainability.
- Add new rules to python.mdc to improve code quality.
- Modify Dockerfile to support multi-platform builds using TARGETARCH.
- Update coderule.mdc to enforce source code organization under the `src/` directory.
- Remove outdated rule from python.mdc regarding `src/` layout.