Skip to content

Conversation

@tmains515
Copy link
Contributor

@tmains515 tmains515 commented Nov 26, 2025

Summary by CodeRabbit

  • Documentation
    • Added a new "Timeline for Completion" section in the Deployment documentation with a visual timeline reference.

✏️ Tip: You can customize this high-level summary in your review settings.

tmains515 and others added 30 commits October 18, 2025 21:23
Signed-off-by: Tyler Mains <92330504+tmains515@users.noreply.github.com>
* EI-161 - Defined the Job table schema

* EI-161 | removing is_active

* EI-161 | Removed extra comma - syntax error

* Fixed INTEGRATION typo

---------

Co-authored-by: 2omb Finance <2ombfinance@protonmail.com>
* Chore: add Marcos to readme

* chore: Add Marcos to readme

* Revert "Chore: add Marcos to readme"

This reverts commit f9c78c9.

* EI-209 Created schedule table on database with attributes based on ERD.

* fixed minor ijmport errors and added JPA dependencies to pom.xml file

* Revert "fixed minor ijmport errors and added JPA dependencies to pom.xml file"

This reverts commit 10425d2.

* fixed minor import errors and added JPA dependencies to pom.xml file

* chore: add spring test profile disabling auto config for databases

* created as commented placeholders for classes that were not implemented yet.

* Added sql schedule table script, added lombook @Getter and @Setter support, added JPA @TeMPOraL notation.

---------

Signed-off-by: Marcos Pantoja <105100104+Mxrcos13@users.noreply.github.com>
Co-authored-by: Caleb Brock <cbrock@csus.edu>
Co-authored-by: Brynn Crowley <littlehill723@gmail.com>
* EI-137: Job Entity

Created Job Entity and added necessary dependency to pom.xml

* EI-137: Updates to Job Entity

Updated entity using lombok getter/setter. Put enums in separate file. Annotated with @TeMPOraL

* fix: clean up git merge remains

Signed-off-by: Brynn Crowley <littlehill723@gmail.com>

* feat: fix controller stub, add entity tests

Signed-off-by: Brynn Crowley <littlehill723@gmail.com>

* test: add more tests for job entity

Signed-off-by: Brynn Crowley <littlehill723@gmail.com>

* EI-137 Fixed Build Error

Build kept trying to connect to DB causing build fail. Added a test profile to exclude DataSource (similar to whats in main already)

---------

Signed-off-by: Brynn Crowley <littlehill723@gmail.com>
Co-authored-by: Brynn Crowley <littlehill723@gmail.com>
…nsights into feature/EI-26

# Conflicts:
#	endpoint-insights-api/pom.xml
#	endpoint-insights-api/src/main/resources/application.yaml
# Conflicts:
#	endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/TestBatch.java
…nsights into feature/EI-25

# Conflicts:
#	endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/config/EntityAuditConfig.java
#	endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/controller/JobsController.java
#	endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/AuditingEntity.java
#	endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/Job.java
#	endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/repository/TestBatchRepository.java
#	endpoint-insights-api/src/test/java/com/vsp/endpointinsightsapi/model/JobEntityTest.java
@coderabbitai
Copy link

coderabbitai bot commented Nov 26, 2025

Walkthrough

Documentation updated with a new "Timeline for Completion" section. Angular app configuration modified to include an additional provideHttpClient() call in the appConfig providers array.

Changes

Cohort / File(s) Summary
Documentation
docs/index.md
Added new "Timeline for Completion" section under Deployment with timeline image.
Angular Configuration
endpoint-insights-ui/src/app/app.config.ts
Added duplicate provideHttpClient() provider to appConfig.providers array.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Specific areas requiring attention:
    • The duplicate provideHttpClient() call in app.config.ts may be unintentional and should be verified—multiple instances of the same provider typically indicate a mistake or oversight
    • Confirm the timeline image path in docs/index.md is correct and the image asset exists

Poem

🐰 A doc update hops into view,
With timelines fresh and images new!
But wait—a config needs a peek,
Two HttpClients? That's quite unique!
Let's check if one should retreat. 📋

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Project timeline' is partially related to the changeset, referring to the timeline feature added to docs/index.md, but it fails to capture the problematic duplicate HttpClient provider introduced in app.config.ts, which is a significant issue. Consider a more specific title that reflects the main changes, such as 'Add project timeline section and fix HttpClient configuration' or similar to better represent all modifications in the PR.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch project-timeline

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 07ef6f3 and ec75d80.

📒 Files selected for processing (1)
  • endpoint-insights-ui/src/app/app.config.ts (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Jenkins / Linting and Unit Tests

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Nov 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 12

🧹 Nitpick comments (6)
endpoint-insights-ui/src/app/shared/modal/modal.models.ts (1)

13-13: Consider using a generic type parameter for better type safety.

The Record<string, any> type weakens type checking. Consider making ModalConfig generic to preserve type information for the initial state.

Apply this diff to improve type safety:

-export interface ModalConfig {
+export interface ModalConfig<T = unknown> {
     /** Title shown in the modal header */
     title?: string;
     /** Tabs to render. 0, 1, or many allowed. */
     tabs: ModalTab[];
-    initialState?: Record<string, any>
+    initialState?: T
     /** Optional width constraints */
     width?: string;
     maxWidth?: string;
 }

This allows callers to specify the exact shape of initialState while maintaining backwards compatibility with the default unknown type.

endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/service/JobService.java (1)

47-57: Add @Transactional annotation for consistency.

The deleteJobById method uses @Transactional, and updateJob should follow the same pattern to ensure atomic updates and proper transaction management.

Apply this diff:

+@Transactional
 public Job updateJob(UUID id, Job job) {
     Job existingJob = jobRepository.findById(id)
endpoint-insights-ui/src/app/components/create-job-form/create-job-form.ts (1)

28-30: Implement OnChanges interface for lifecycle hook consistency.

The component uses ngOnChanges but doesn't declare the OnChanges interface. While Angular will still call the lifecycle hook, implementing the interface explicitly is a best practice for type safety and clarity.

Apply this diff:

-export class CreateJobForm {
+export class CreateJobForm implements OnChanges {

And update the import on line 1:

-import {Component, EventEmitter, Input, Output, SimpleChanges} from '@angular/core';
+import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges} from '@angular/core';
endpoint-insights-ui/src/app/components/edit-job-modal/edit-job-modal.scss (1)

1-101: LGTM!

The SCSS styling is well-structured with proper accessibility considerations (:focus-visible handling). The button and form layout styles are consistent and maintainable.

Consider extracting hardcoded color values (e.g., #1976d2, #f44336) into CSS custom properties or SCSS variables for easier theming and consistency across components.

endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/Job.java (1)

48-50: Column name doesn't match field name.

The field is renamed to jobType but the column remains test_type. This works but creates a naming inconsistency. If the database schema can be updated, consider aligning the column name with the field name.

Verify if a database migration to rename the column from test_type to job_type is feasible for this PR, or if this is intentionally deferred to avoid breaking changes.

endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/controller/JobsController.java (1)

61-74: Inconsistent error handling between endpoints.

createJob catches RuntimeException but updateJob does not. Either add consistent try-catch blocks to both endpoints, or remove the try-catch from createJob and rely on a global @ControllerAdvice exception handler.

If keeping local error handling:

 @PutMapping("/{id}")
 public ResponseEntity<Job> updateJob(
         @RequestBody @Valid Job request,
         @PathVariable("id") @NotNull(message = ErrorMessages.JOB_ID_REQUIRED) UUID jobId) {
     LOG.info("Updating job");
+    try {
         Job savedJob = jobService.updateJob(jobId, request);
         return ResponseEntity.ok(savedJob);
+    } catch (RuntimeException e) {
+        LOG.error("Error updating job: {}", e.getMessage());
+        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
+    }
 }
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 15c1dd0 and 07ef6f3.

⛔ Files ignored due to path filters (1)
  • docs/document-assets/timeline.png is excluded by !**/*.png
📒 Files selected for processing (17)
  • docs/index.md (1 hunks)
  • endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/controller/JobsController.java (3 hunks)
  • endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/AuditingEntity.java (0 hunks)
  • endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/Job.java (3 hunks)
  • endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/service/JobService.java (1 hunks)
  • endpoint-insights-api/src/main/resources/application.yaml (1 hunks)
  • endpoint-insights-api/src/test/java/com/vsp/endpointinsightsapi/model/JobEntityTest.java (1 hunks)
  • endpoint-insights-api/src/test/java/com/vsp/endpointinsightsapi/service/JobServiceTest.java (1 hunks)
  • endpoint-insights-ui/src/app/app.config.ts (1 hunks)
  • endpoint-insights-ui/src/app/common/job.constants.ts (1 hunks)
  • endpoint-insights-ui/src/app/components/create-job-form/create-job-form.ts (5 hunks)
  • endpoint-insights-ui/src/app/components/edit-job-modal/edit-job-modal.html (1 hunks)
  • endpoint-insights-ui/src/app/components/edit-job-modal/edit-job-modal.scss (1 hunks)
  • endpoint-insights-ui/src/app/components/edit-job-modal/edit-job-modal.ts (1 hunks)
  • endpoint-insights-ui/src/app/pages/test-overview/test-overview.ts (4 hunks)
  • endpoint-insights-ui/src/app/services/job-services.ts (1 hunks)
  • endpoint-insights-ui/src/app/shared/modal/modal.models.ts (1 hunks)
💤 Files with no reviewable changes (1)
  • endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/AuditingEntity.java
🧰 Additional context used
📓 Path-based instructions (1)
**/*.html

⚙️ CodeRabbit configuration file

Search all template files (*.html and inline templates in *.component.ts) for any usage of the deprecated Angular structural directives: *ngIf, *ngFor, *ngSwitch, ngSwitchCase, and ngSwitchDefault (deprecated since Angular v20). For each instance found, raise a warning message indicating that these directives are deprecated and should be replaced with the new control flow syntax: @if, @for, @switch, @case, and @default respectively. Keep the warning brief and direct the user to migrate to the new Angular control flow blocks for improved performance and cleaner syntax.

Files:

  • endpoint-insights-ui/src/app/components/edit-job-modal/edit-job-modal.html
🧬 Code graph analysis (5)
endpoint-insights-ui/src/app/components/create-job-form/create-job-form.ts (1)
endpoint-insights-ui/src/app/pages/test-overview/test-overview.ts (1)
  • TestItem (11-23)
endpoint-insights-ui/src/app/services/job-services.ts (1)
endpoint-insights-ui/src/app/pages/test-overview/test-overview.ts (1)
  • TestItem (11-23)
endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/controller/JobsController.java (2)
endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/validation/Patterns.java (1)
  • Patterns (3-5)
endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/validation/ErrorMessages.java (1)
  • ErrorMessages (3-8)
endpoint-insights-ui/src/app/components/edit-job-modal/edit-job-modal.ts (2)
endpoint-insights-ui/src/app/pages/test-overview/test-overview.ts (2)
  • Component (25-84)
  • TestItem (11-23)
endpoint-insights-ui/src/app/components/create-job-form/create-job-form.ts (1)
  • Component (15-163)
endpoint-insights-ui/src/app/pages/test-overview/test-overview.ts (1)
endpoint-insights-ui/src/app/common/job.constants.ts (1)
  • JobStatus (4-4)
🔇 Additional comments (9)
endpoint-insights-api/src/test/java/com/vsp/endpointinsightsapi/model/JobEntityTest.java (1)

12-12: LGTM!

Whitespace formatting change improves readability.

endpoint-insights-ui/src/app/app.config.ts (1)

5-5: LGTM!

Adding provideHttpClient() correctly enables HttpClient functionality needed by the new JobService for API communication.

Also applies to: 11-11

endpoint-insights-ui/src/app/components/edit-job-modal/edit-job-modal.html (1)

1-64: LGTM!

The template correctly uses the new Angular control flow syntax (@if, @else) introduced in Angular v17+, avoiding deprecated structural directives. The modal structure properly handles both edit and view modes with appropriate data binding.

docs/index.md (1)

14-17: Image file exists; no action required.

The referenced image file docs/document-assets/timeline.png is present in the repository and accessible.

endpoint-insights-ui/src/app/common/job.constants.ts (1)

2-4: LGTM!

Good use of as const assertion to derive a union type from the array. This pattern enables both runtime iteration over statuses and compile-time type safety.

endpoint-insights-ui/src/app/components/create-job-form/create-job-form.ts (1)

57-68: LGTM!

The ngOnChanges implementation correctly guards against undefined values and patches the form fields appropriately when a job is provided.

endpoint-insights-api/src/main/java/com/vsp/endpointinsightsapi/model/Job.java (1)

27-31: LGTM!

The @GeneratedValue combined with @UuidGenerator is the correct Hibernate 6+ approach for auto-generating UUIDs.

endpoint-insights-ui/src/app/services/job-services.ts (1)

15-21: LGTM!

The HTTP methods are correctly implemented with appropriate verbs (POST for create, PUT for update) and proper URL construction.

endpoint-insights-ui/src/app/pages/test-overview/test-overview.ts (1)

11-23: LGTM!

The TestItem interface is properly extended with the new fields and correctly uses the JobStatus type for the status field, ensuring type safety with the defined constants.

@tmains515 tmains515 enabled auto-merge (squash) November 30, 2025 22:02
@tmains515 tmains515 merged commit 5fdd98b into develop Nov 30, 2025
6 checks passed
@tmains515 tmains515 deleted the project-timeline branch November 30, 2025 22:03
@coderabbitai coderabbitai bot mentioned this pull request Nov 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants