Skip to content
This repository was archived by the owner on Dec 19, 2025. It is now read-only.

❌ DO NOT MERGE - [ADMINAPI-1260] Design: merge health check worker into AdminApi-2#323

Draft
CSR2017 wants to merge 14 commits into
mainfrom
ADMINAPI-1260
Draft

❌ DO NOT MERGE - [ADMINAPI-1260] Design: merge health check worker into AdminApi-2#323
CSR2017 wants to merge 14 commits into
mainfrom
ADMINAPI-1260

Conversation

@CSR2017

@CSR2017 CSR2017 commented Aug 4, 2025

Copy link
Copy Markdown

No description provided.

@github-actions

github-actions Bot commented Aug 4, 2025

Copy link
Copy Markdown

🔍 Vulnerabilities of development:latest

📦 Image Reference development:latest
digestsha256:b96184a7f1d66af83eefb311165abc1f16deca178fe569082c19fff92d08d21e
vulnerabilitiescritical: 0 high: 0 medium: 0 low: 0
platformlinux/amd64
size122 MB
packages635
📦 Base Image alpine:3
also known as
  • 3.20
  • 3.20.3
  • latest
digestsha256:33735bd63cf84d7e388d9f6d297d348c523c044410f553bd878c6d7829612735
vulnerabilitiescritical: 0 high: 1 medium: 3 low: 0

@github-actions

github-actions Bot commented Aug 4, 2025

Copy link
Copy Markdown

Test Results

322 tests   321 ✅  14s ⏱️
  6 suites    1 💤
  6 files      0 ❌

Results for commit c0e2e0d.

♻️ This comment has been updated with latest results.

Comment thread docs/design/INTEGRATE-HEALTHCHECK-SERVICE Outdated
Comment thread docs/design/INTEGRATE-HEALTHCHECK-SERVICE Outdated

COPY --from=assets ./Application/NuGet.Config EdFi.AdminConsole.HealthCheckService/
COPY --from=assets ./Application/EdFi.AdminConsole.HealthCheckService EdFi.AdminConsole.HealthCheckService/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are frustrating false positives. I wish Hadolint would update to recognize the new syntax for additional contexts.

Comment thread Application/Directory.Packages.props
Comment thread docs/design/INTEGRATE-HEALTHCHECK-SERVICE

- name: Copy health check service folder to docker context
run: cp -r ../EdFi.Ods.AdminApi.HealthCheck ../../Docker/Application

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could simplify all of this switching the Dockerfile to use the new "additional contexts" feature, which allows accessing files from a different parent directory.

Let's do that as a separate work item though, rather than allowing scope creep on this.

Comment thread docs/docker.md

## Admin Api and Ed-Fi ODS / API docker containers

Please refer [DOCKER DEPLOYMENT](https://techdocs.ed-fi.org/display/EDFITOOLS/Docker+Deployment) for

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Please refer [DOCKER DEPLOYMENT](https://techdocs.ed-fi.org/display/EDFITOOLS/Docker+Deployment) for
Please refer [DOCKER DEPLOYMENT](https://docs.ed-fi.org/reference/docker) for

@stephenfuqua stephenfuqua marked this pull request as ready for review August 11, 2025 17:45
@stephenfuqua stephenfuqua requested a review from a team as a code owner August 11, 2025 17:45
@stephenfuqua

Copy link
Copy Markdown

I moved to "ready for review" for Copilot's sake.

@stephenfuqua stephenfuqua requested a review from Copilot August 11, 2025 17:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR integrates the Ed-Fi AdminConsole HealthCheckService directly into the EdFi.Ods.AdminApi application using Quartz.NET for scheduling and on-demand execution. The integration eliminates the need for a separate health check worker process by incorporating health check functionality as scheduled background jobs within the main AdminAPI application.

Key changes include:

  • Added a new EdFi.Ods.AdminApi.HealthCheck project with health check logic previously in a separate service
  • Integrated Quartz.NET for scheduled health check execution with configurable frequency
  • Added API endpoint for triggering health checks on-demand

Reviewed Changes

Copilot reviewed 52 out of 54 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
eng/setup-local-multi-tenants-docker.ps1 New PowerShell script for simplified multi-tenant Docker environment setup
docs/docker.md Documentation for the new multi-tenant setup script
docs/design/INTEGRATE-HEALTHCHECK-SERVICE Design document outlining the health check service integration architecture
Application/EdFi.Ods.AdminApi/Program.cs Integration of health check services into main application startup
Application/EdFi.Ods.AdminApi.HealthCheck/* New project containing health check service logic and API clients
Various appsettings files Configuration updates for health check endpoints and multi-tenant setup
Docker files and CI workflows Updates to include new health check project in build processes

@@ -0,0 +1,17 @@
?xml version="1.0"?>

Copilot AI Aug 11, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing opening angle bracket. The XML declaration should be <?xml version="1.0"?>

Suggested change
?xml version="1.0"?>
<?xml version="1.0"?>

Copilot uses AI. Check for mistakes.
?xml version="1.0"?>
<package >
<metadata>
<id><EdFi class="AdminConsoleHealthCheckWorkerProcess"></EdFi></id>

Copilot AI Aug 11, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Invalid XML structure. The <id> element contains invalid nested tags. It should contain a plain string package identifier, not XML elements with attributes.

Suggested change
<id><EdFi class="AdminConsoleHealthCheckWorkerProcess"></EdFi></id>
<id>EdFi.AdminConsoleHealthCheckWorkerProcess</id>

Copilot uses AI. Check for mistakes.

if (healthCheckData != null)
{
healthCheckDocument.Add(new KeyValuePair<string, JsonNode?>("healthy", !healthCheckData.Any(r => r.AnyErrros)));

Copilot AI Aug 11, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in property name: AnyErrros should be AnyErrors

Suggested change
healthCheckDocument.Add(new KeyValuePair<string, JsonNode?>("healthy", !healthCheckData.Any(r => r.AnyErrros)));
healthCheckDocument.Add(new KeyValuePair<string, JsonNode?>("healthy", !healthCheckData.Any(r => r.AnyErrors)));

Copilot uses AI. Check for mistakes.

public int OdsApiEndpointCount { get; set; } = 0;

public bool AnyErrros { get; set; } = false;

Copilot AI Aug 11, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in property name: AnyErrros should be AnyErrors

Suggested change
public bool AnyErrros { get; set; } = false;
public bool AnyErrors { get; set; } = false;

Copilot uses AI. Check for mistakes.
if (response != null && response.StatusCode == System.Net.HttpStatusCode.OK && response.Headers != null && response.Headers.Contains(Constants.TotalCountHeader))
result.OdsApiEndpointCount = int.Parse(response.Headers.GetValues(Constants.TotalCountHeader).First());
else
result.AnyErrros = true;

Copilot AI Aug 11, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in property name: AnyErrros should be AnyErrors

Suggested change
result.AnyErrros = true;
result.AnyErrors = true;

Copilot uses AI. Check for mistakes.
@CSR2017 CSR2017 marked this pull request as draft August 12, 2025 22:03
@CSR2017 CSR2017 changed the title [ADMINAPI-1260] Design: merge health check worker into AdminApi-2 ❌ DO NOT MERGE - [ADMINAPI-1260] Design: merge health check worker into AdminApi-2 Aug 12, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants