Generates audit trail infrastructure for entities. Implements IAuditable interface, EF Core SaveChanges interceptor, and automatic population of CreatedAt, UpdatedAt, CreatedBy, and UpdatedBy fields.
日本語の概要は準備中です。原文の説明を表示しています。
Configures health checks for database, external services, and custom application checks. Provides liveness and readiness endpoints for container orchestration.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Health checks monitor application dependencies:
| Check Type | Purpose |
|---|---|
AddNpgSql | PostgreSQL database |
AddUrlGroup | External HTTP endpoints |
AddRedis | Redis cache |
AddRabbitMQ | RabbitMQ message broker |
| Custom | Application-specific checks |
// src/{name}.infrastructure/HealthChecks/HealthCheckExtensions.cs
using Microsoft.Extensions.Diagnostics.HealthChecks;
namespace {name}.infrastructure.healthchecks;
public static class HealthCheckExtensions
{
public static IServiceCollection AddHealthChecks(
this IServiceCollection services,
IConfiguration configuration)
{
services.AddHealthChecks()
// ═══════════════════════════════════════════════════════════════
// DATABASE
// ═══════════════════════════════════════════════════════════════
.AddNpgSql(
configuration.GetConnectionString("Database")!,
name: "postgresql",
failureStatus: HealthStatus.Unhealthy,
tags: new[] { "db", "sql", "postgresql", "ready" })
// ═══════════════════════════════════════════════════════════════
// EXTERNAL SERVICES
// ═══════════════════════════════════════════════════════════════
.AddUrlGroup(
new Uri(configuration["AuthService:BaseUrl"]!),
name: "auth-service",
failureStatus: HealthStatus.Degraded,
tags: new[] { "external", "auth", "ready" })
// ═══════════════════════════════════════════════════════════════
// REDIS (if used)
// ═══════════════════════════════════════════════════════════════
// .AddRedis(
// configuration.GetConnectionString("Redis")!,
// name: "redis",
// tags: new[] { "cache", "redis", "ready" })
// ═══════════════════════════════════════════════════════════════
// CUSTOM CHECKS
// ═══════════════════════════════════════════════════════════════
.AddCheck<DatabaseMigrationHealthCheck>(
"database-migrations",
tags: new[] { "db", "migrations", "ready" });
return services;
}
}
// src/{name}.infrastructure/HealthChecks/DatabaseMigrationHealthCheck.cs
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Diagnostics.HealthChecks;
namespace {name}.infrastructure.healthchecks;
internal sealed class DatabaseMigrationHealthCheck : IHealthCheck
{
private readonly ApplicationDbContext _dbContext;
public DatabaseMigrationHealthCheck(ApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
public async Task<HealthCheckResult> CheckHealthAsync(
HealthCheckContext context,
CancellationToken cancellationToken = default)
{
try
{
var pendingMigrations = await _dbContext.Database
.GetPendingMigrationsAsync(cancellationToken);
var pending = pendingMigrations.ToList();
if (pending.Any())
{
return HealthCheckResult.Degraded(
$"Pending migrations: {string.Join(", ", pending)}",
data: new Dictionary<string, object>
{
{ "pending_count", pending.Count },
{ "migrations", pending }
});
}
return HealthCheckResult.Healthy("All migrations applied");
}
catch (Exception ex)
{
return HealthCheckResult.Unhealthy(
"Failed to check migrations",
exception: ex);
}
}
}
// src/{name}.api/Program.cs
using HealthChecks.UI.Client;
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
var app = builder.Build();
// ═══════════════════════════════════════════════════════════════
// LIVENESS: Is the app running?
// ═══════════════════════════════════════════════════════════════
app.MapHealthChecks("/health/live", new HealthCheckOptions
{
Predicate = _ => false, // No checks, just confirms app is running
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});
// ═══════════════════════════════════════════════════════════════
// READINESS: Is the app ready to serve traffic?
// ═══════════════════════════════════════════════════════════════
app.MapHealthChecks("/health/ready", new HealthCheckOptions
{
Predicate = check => check.Tags.Contains("ready"),
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});
// ═══════════════════════════════════════════════════════════════
// FULL: All health checks
// ═══════════════════════════════════════════════════════════════
app.MapHealthChecks("/health", new HealthCheckOptions
{
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
containers:
- name: api
livenessProbe:
httpGet:
path: /health/live
port: 8080
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /health/ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
dotnet-clean-architecture - Infrastructure layer setupdotnet-jwt-authentication - Auth service health checkまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Generates audit trail infrastructure for entities. Implements IAuditable interface, EF Core SaveChanges interceptor, and automatic population of CreatedAt, UpdatedAt, CreatedBy, and UpdatedBy fields.
日本語の概要は準備中です。原文の説明を表示しています。
Scaffolds a complete .NET solution following Clean Architecture principles with proper layer separation (API, Application, Domain, Infrastructure). Creates project structure, dependency injection setup, and cross-cutting concerns configuration.
日本語の概要は準備中です。原文の説明を表示しています。
Generates CQRS Commands with Handlers, Validators, and Request DTOs following Clean Architecture patterns. Commands represent actions that modify state and return Result types for proper error handling.
日本語の概要は準備中です。原文の説明を表示しています。
Generates CQRS Queries with Handlers and Response DTOs for read operations. Uses Dapper for optimized read queries, bypassing the domain model for better performance.
日本語の概要は準備中です。原文の説明を表示しています。
Generates optimized read queries using Dapper. Includes multi-mapping for joins, pagination, dynamic filtering, CTEs, and best practices for high-performance data access.
日本語の概要は準備中です。原文の説明を表示しています。
Generates Domain Entities following DDD principles with factory methods, private setters, domain events, and proper encapsulation. Supports aggregate roots, child entities, and value objects.
日本語の概要は準備中です。原文の説明を表示しています。