build: promote CountryService .NET 10 validation#38
Merged
Conversation
- Add missing service registrations (IMemoryCache, CacheOptions, ICountryService) - Fix authentication issues with TestAuthenticationSchemeHandler - Use shared database names to fix database scope issues - Add proper using statements for service interfaces - Implement database cleanup between tests - Update test setup to match production service dependencies Test results: 20/23 tests passing (87% success rate) Remaining issues: 3 tests have CacheOptions dependency resolution conflicts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Remove SizeLimit from MemoryCache configuration in integration tests - Fix InvalidOperationException: Cache entry must specify a value for Size when SizeLimit is set - This resolves the primary blocker that was causing CI/CD pipeline failures - Tests now run without cache exceptions, improving from failing builds to 20/23 passing The remaining 3 test failures are unrelated to this cache issue and can be addressed separately. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add MemoryCacheEntryOptions with Size property to all cache.Set() calls - Implement logical sizing: countries=1, search results=item count, continents=count - This resolves the InvalidOperationException: Cache entry must specify value for Size - All cache operations now properly specify entry sizes when SizeLimit is configured Results: 23/23 tests passing (100% success rate) This completely resolves the CI/CD pipeline failures. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Change SwaggerEndpoint from absolute path `/swagger/` to relative path `./` - Ensures Swagger UI works correctly behind ingress with `/countries` prefix - Enables access to https://dev.api.maliev.com/countries/swagger 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add Swagger UI URL for development: https://dev.api.maliev.com/countries/swagger - Clarify API base URL structure for development environment - Reflects recent ingress routing configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add custom RouteTemplate to UseSwagger for countries/swagger path - Update SwaggerEndpoint to use absolute paths for ingress compatibility - Enables proper Swagger JSON access behind Kubernetes ingress - Fixes /swagger/v1.0/swagger.json 404 errors 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed JWT variable naming conflicts that caused CI build failures - Removed all secrets from appsettings.json (moved to Google Secret Manager) - Updated Program.cs to use shared JWT configuration pattern - Fixed CountryService class JWT dependency injection 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add universal deploy-migration.ps1 script for consistent deployments - Remove obsolete initial-schema.sql file (replaced by EF migrations) - Enhance migration documentation and patterns 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…tcontainers (fix formatting and build)
- Add Authorization folder for centralized IAM - Update csproj packages
…o 10.0.7 Microsoft.AspNetCore.DataProtection.StackExchangeRedis 10.0.7 (added to Maliev.Aspire.ServiceDefaults for shared SSO cookie key ring) transitively requires Microsoft.Extensions.Configuration.Abstractions >= 10.0.7 and Microsoft.Extensions.Logging.Abstractions >= 10.0.7. Application-layer projects that explicitly referenced 10.0.5 triggered NU1605 downgrades. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…xchange feat(auth): migrate CountryService to central token exchange
…omotion # Conflicts: # .github/dependabot.yml
This was referenced Jul 18, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome
Promotes the already-developed CountryService Clean Architecture migration to
mainwith deterministic public-source dependencies and validation-only CI.Runtime and contracts
/country/openapi/v1.jsonand/country/scalarwriterate-limit policySupply chain and CI
Maliev.Aspiresource to25a5c3b2d3d6b5ce8ed485d2d44a28f4dc4c9b51Maliev.MessagingContractssource to559a00db0c7920a5247fdff60d4476ad23a9a501Validation
dotnet format --verify-no-changes, transitive vulnerability audit, actionlint, gitleaks cleanapp; entrypointdotnet Maliev.CountryService.Api.dllNo image publication, deployment, GKE/IAM/secrets/GitOps mutation, or database operation was performed. Production remains pending owner Aspire review.
Tracks MALIEV-Co-Ltd/Maliev.Workflows#12.