You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/copilot-instructions.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ GZ::CTF is a full‑stack, production‑ready CTF platform for competitions and
23
23
- Rate limiting: Global sliding window + named policies (`Middlewares/RateLimiter.cs`), disabled by `DisableRateLimit=true`.
24
24
- i18n: `Resources/` with `IStringLocalizer<Program>`; invalid model state returns JSON via `InvalidModelStateHandler`.
25
25
- SignalR patterns: Strongly-typed hubs (`AdminHub`, `MonitorHub`, `UserHub`) with client interfaces (`IAdminClient`, `IMonitorClient`, `IUserClient`) for real-time notifications. Each hub validates permissions and groups clients by game ID.
26
-
- Container proxy: `ProxyController` handles TCP-over-WebSocket for challenge access when `ContainerPortMappingType.PlatformProxy` is set. Supports Docker Swarm and Kubernetes with traffic capture capabilities.
26
+
- Container proxy: `ProxyController` handles TCP-over-WebSocket for challenge access when `ContainerPortMappingType.PlatformProxy` is set. Supports Kubernetes with traffic capture capabilities.
- Dev server on `63000` with proxy to backend; configure backend URL via `VITE_BACKEND_URL` (defaults to `http://localhost:8080`) in `vite.config.mts`.
29
29
- Build outputs to `ClientApp/build` and is copied to backend `wwwroot` during `dotnet publish`.
@@ -74,7 +74,7 @@ Design notes (flexibility vs performance)
- Container management: Docker Swarm (`SwarmManager`) and Kubernetes (`KubernetesManager`) support with K3s/MinIO integration. Use `IContainerManager` interface for consistency.
77
+
- Container management: Docker (`DockerManager`) and Kubernetes (`KubernetesManager`) support with K3s/MinIO integration. Use `IContainerManager` interface for consistency.
78
78
- Task Status: Enum includes `Success`, `Failed`, `Pending`, `Running`, `Unhealthy`, `Degraded` statuses for container/service health.
79
79
- Divisions API: Endpoints for game-scoped division management with challenge configs. Division affects challenge visibility, scoring, and deadline enforcement.
80
80
- FirstSolves tracking: Separate table for first-blood metadata (team, user, timestamp); used for bonus scoring and statistics.
@@ -100,7 +100,7 @@ Design notes (flexibility vs performance)
100
100
-`dotnet test src/GZCTF.Integration.Test/GZCTF.Integration.Test.csproj -v minimal /p:CollectCoverage=true` (requires Docker; uses Testcontainers for K3s, MinIO, PostgreSQL)
101
101
- Testing framework:
102
102
- Unit tests: xUnit with `IRepository<T>` and service mocking; examples in `GZCTF.Test/UnitTests/`.
103
-
- Integration tests: Testcontainers for Docker Swarm/Kubernetes, MinIO S3, PostgreSQL, Redis; examples in `GZCTF.Integration.Test/Tests/`. Covers dynamic container challenges, flag retrieval, storage operations, and repository data validation.
103
+
- Integration tests: Testcontainers for Docker/Kubernetes, MinIO S3, PostgreSQL, Redis; examples in `GZCTF.Integration.Test/Tests/`. Covers dynamic container challenges, flag retrieval, storage operations, and repository data validation.
104
104
- EF Core migrations (PostgreSQL):
105
105
-`dotnet ef migrations add <Name> --project src/GZCTF/GZCTF.csproj --startup-project src/GZCTF/GZCTF.csproj`
106
106
-`dotnet ef database update`
@@ -120,7 +120,7 @@ Design notes (flexibility vs performance)
120
120
## Container management
121
121
122
122
- Port mapping types: `Default` (random host ports) vs `PlatformProxy` (TCP-over-WebSocket).
123
-
- Container providers: Docker Swarm (`SwarmManager`) and Kubernetes (`KubernetesManager`) with `IContainerManager` abstraction.
123
+
- Container providers: Docker (`DockerManager`) and Kubernetes (`KubernetesManager`) with `IContainerManager` abstraction.
124
124
- Traffic capture: Optional recording of container network traffic to storage when `EnableTrafficCapture=true`.
125
125
- Challenge types: Static/Dynamic containers with environment variable flag injection.
126
126
- Resource management: Automatic cleanup and scaling based on team participation.
0 commit comments