mising files #2694

Merged
mfreeman451 merged 1 commit from refs/pull/2694/head into staging 2026-01-18 09:21:57 +00:00
mfreeman451 commented 2026-01-18 09:21:39 +00:00 (Migrated from github.com)
Owner

Imported from GitHub pull request.

Original GitHub pull request: #2346
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/pull/2346
Original created: 2026-01-18T09:21:39Z
Original updated: 2026-01-18T09:23:10Z
Original head: carverauto/serviceradar:chore/missing-file-chckin
Original base: staging
Original merged: 2026-01-18T09:21:57Z by @mfreeman451

User description

IMPORTANT: Please sign the Developer Certificate of Origin

Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:

Signed-off-by: J. Doe <j.doe@domain.com>

Describe your changes

Code checklist before requesting a review

  • I have signed the DCO?
  • The build completes without errors?
  • All tests are passing when running make test?

PR Type

Formatting


Description

  • Code formatting and line wrapping improvements across multiple files

  • Consistent indentation and spacing adjustments in Elixir components

  • Multi-line attribute formatting for better readability

  • Test file formatting updates to match code style standards


Diagram Walkthrough

flowchart LR
  A["Elixir Components"] -->|"Line wrapping & indentation"| B["Formatted Code"]
  C["Test Files"] -->|"Consistent spacing"| B
  D["HTML Attributes"] -->|"Multi-line formatting"| B

File Walkthrough

Relevant files
Formatting
promotion_rule_builder.ex
Promotion rule builder component formatting                           

web-ng/lib/serviceradar_web_ng_web/components/promotion_rule_builder.ex

  • Reformatted multi-line HTML attributes and function calls for improved
    readability
  • Adjusted indentation and spacing around comments and dividers
  • Split long conditional statements across multiple lines
  • Improved formatting of nested elements and attribute lists
+42/-25 
show.ex
Log show live view formatting updates                                       

web-ng/lib/serviceradar_web_ng_web/live/log_live/show.ex

  • Reformatted icon and text elements on single line
  • Adjusted comment spacing and indentation
  • Improved multi-line attribute formatting for flash messages
+7/-5     
index.ex
Networks live view spacing adjustment                                       

web-ng/lib/serviceradar_web_ng_web/live/settings/networks_live/index.ex

  • Fixed spacing in text output for host count display
+1/-1     
index.ex
Rules live view component formatting                                         

web-ng/lib/serviceradar_web_ng_web/live/settings/rules_live/index.ex

  • Reformatted multi-line button element attributes
  • Adjusted comment spacing and indentation
  • Improved formatting of list construction in helper function
+11/-4   
promotion_rule_builder_test.exs
Promotion rule builder test formatting                                     

web-ng/test/serviceradar_web_ng_web/components/promotion_rule_builder_test.exs

  • Reformatted long conditional statements across multiple lines
  • Consistent indentation adjustments in test helper functions
+4/-2     
show_test.exs
Log live view test formatting updates                                       

web-ng/test/serviceradar_web_ng_web/live/log_live/show_test.exs

  • Reformatted mock module return statements with improved indentation
  • Multi-line map structure formatting for better readability
+14/-13 
rules_live_test.exs
Rules live view test formatting cleanup                                   

web-ng/test/serviceradar_web_ng_web/live/settings/rules_live_test.exs

  • Reformatted Ash.create function calls with multi-line parameter
    formatting
  • Consistent indentation for nested map structures in test setup
  • Improved readability of test data creation
+28/-22 

Imported from GitHub pull request. Original GitHub pull request: #2346 Original author: @mfreeman451 Original URL: https://github.com/carverauto/serviceradar/pull/2346 Original created: 2026-01-18T09:21:39Z Original updated: 2026-01-18T09:23:10Z Original head: carverauto/serviceradar:chore/missing-file-chckin Original base: staging Original merged: 2026-01-18T09:21:57Z by @mfreeman451 --- ### **User description** ## IMPORTANT: Please sign the Developer Certificate of Origin Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include a [DCO sign-off statement]( https://developercertificate.org/) indicating the DCO acceptance in one commit message. Here is an example DCO Signed-off-by line in a commit message: ``` Signed-off-by: J. Doe <j.doe@domain.com> ``` ## Describe your changes ## Issue ticket number and link ## Code checklist before requesting a review - [ ] I have signed the DCO? - [ ] The build completes without errors? - [ ] All tests are passing when running make test? ___ ### **PR Type** Formatting ___ ### **Description** - Code formatting and line wrapping improvements across multiple files - Consistent indentation and spacing adjustments in Elixir components - Multi-line attribute formatting for better readability - Test file formatting updates to match code style standards ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Elixir Components"] -->|"Line wrapping & indentation"| B["Formatted Code"] C["Test Files"] -->|"Consistent spacing"| B D["HTML Attributes"] -->|"Multi-line formatting"| B ``` <details><summary><h3>File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Formatting</strong></td><td><table> <tr> <td> <details> <summary><strong>promotion_rule_builder.ex</strong><dd><code>Promotion rule builder component formatting</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> web-ng/lib/serviceradar_web_ng_web/components/promotion_rule_builder.ex <ul><li>Reformatted multi-line HTML attributes and function calls for improved <br>readability<br> <li> Adjusted indentation and spacing around comments and dividers<br> <li> Split long conditional statements across multiple lines<br> <li> Improved formatting of nested elements and attribute lists</ul> </details> </td> <td><a href="https://github.com/carverauto/serviceradar/pull/2346/files#diff-0226580d3777904915943339ececa4e0e314a03a7c43a0e9afec64fe2a8f9354">+42/-25</a>&nbsp; </td> </tr> <tr> <td> <details> <summary><strong>show.ex</strong><dd><code>Log show live view formatting updates</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> web-ng/lib/serviceradar_web_ng_web/live/log_live/show.ex <ul><li>Reformatted icon and text elements on single line<br> <li> Adjusted comment spacing and indentation<br> <li> Improved multi-line attribute formatting for flash messages</ul> </details> </td> <td><a href="https://github.com/carverauto/serviceradar/pull/2346/files#diff-4f9769353c55928a0d382cd7510379444445aea116e1ecdf7b8eb892d249ff26">+7/-5</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td> <details> <summary><strong>index.ex</strong><dd><code>Networks live view spacing adjustment</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> web-ng/lib/serviceradar_web_ng_web/live/settings/networks_live/index.ex - Fixed spacing in text output for host count display </details> </td> <td><a href="https://github.com/carverauto/serviceradar/pull/2346/files#diff-b2127e71582033bc6dfd2d7397f56bf43c1f7c613defffc504b3d8ee1e7406c4">+1/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td> <details> <summary><strong>index.ex</strong><dd><code>Rules live view component formatting</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> web-ng/lib/serviceradar_web_ng_web/live/settings/rules_live/index.ex <ul><li>Reformatted multi-line button element attributes<br> <li> Adjusted comment spacing and indentation<br> <li> Improved formatting of list construction in helper function</ul> </details> </td> <td><a href="https://github.com/carverauto/serviceradar/pull/2346/files#diff-ce489a06ca328b705897a7b71749c6519594920a192aa0d033944a046d743ef0">+11/-4</a>&nbsp; &nbsp; </td> </tr> <tr> <td> <details> <summary><strong>promotion_rule_builder_test.exs</strong><dd><code>Promotion rule builder test formatting</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> web-ng/test/serviceradar_web_ng_web/components/promotion_rule_builder_test.exs <ul><li>Reformatted long conditional statements across multiple lines<br> <li> Consistent indentation adjustments in test helper functions</ul> </details> </td> <td><a href="https://github.com/carverauto/serviceradar/pull/2346/files#diff-4ff7f672a7acd6834d3e7eba25af462a2535e6ee010b511de8e57d12693703d4">+4/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td> <details> <summary><strong>show_test.exs</strong><dd><code>Log live view test formatting updates</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> web-ng/test/serviceradar_web_ng_web/live/log_live/show_test.exs <ul><li>Reformatted mock module return statements with improved indentation<br> <li> Multi-line map structure formatting for better readability</ul> </details> </td> <td><a href="https://github.com/carverauto/serviceradar/pull/2346/files#diff-2d62472b3e212a4da643a2f66d2a07d358795602e680f31249a162b71fa0ea3b">+14/-13</a>&nbsp; </td> </tr> <tr> <td> <details> <summary><strong>rules_live_test.exs</strong><dd><code>Rules live view test formatting cleanup</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> web-ng/test/serviceradar_web_ng_web/live/settings/rules_live_test.exs <ul><li>Reformatted Ash.create function calls with multi-line parameter <br>formatting<br> <li> Consistent indentation for nested map structures in test setup<br> <li> Improved readability of test data creation</ul> </details> </td> <td><a href="https://github.com/carverauto/serviceradar/pull/2346/files#diff-dddd0d747bd725738a10e74770d765ed98fb22cdd5cd702bcbe98cc47c5af5d0">+28/-22</a>&nbsp; </td> </tr> </table></td></tr></tbody></table> </details> ___
qodo-code-review[bot] commented 2026-01-18 09:22:14 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/2346#issuecomment-3765094361
Original created: 2026-01-18T09:22:14Z

ⓘ Your approaching your monthly quota for Qodo. Upgrade your plan

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
JSON parsing DoS

Description: User-controlled attribute strings that begin with { are passed directly to Jason.decode/1,
which could be exploited for resource exhaustion (CPU/memory) via very large or deeply
nested JSON inputs unless upstream input size/depth is bounded.
promotion_rule_builder.ex [835-840]

Referred Code
defp parse_key_value_pair([_full, key, json_value], acc)
     when binary_part(json_value, 0, 1) == "{" do
  case Jason.decode(json_value) do
    {:ok, decoded} -> Map.put(acc, key, decoded)
    _ -> Map.put(acc, key, json_value)
  end
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
- Requires Further Human Verification
🏷️ - Compliance label
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/2346#issuecomment-3765094361 Original created: 2026-01-18T09:22:14Z --- <pre>ⓘ Your approaching your monthly quota for Qodo. <a href="https://www.qodo.ai/pricing">Upgrade your plan</a></pre> ## PR Compliance Guide 🔍 <!-- https://github.com/carverauto/serviceradar/commit/bee35f16ff8072eba9174a9f873d31dea9e4e908 --> Below is a summary of compliance checks for this PR:<br> <table><tbody><tr><td colspan='2'><strong>Security Compliance</strong></td></tr> <tr><td rowspan=1>⚪</td> <td><details><summary><strong>JSON parsing DoS </strong></summary><br> <b>Description:</b> User-controlled attribute strings that begin with <code>{</code> are passed directly to <code>Jason.decode/1</code>, <br>which could be exploited for resource exhaustion (CPU/memory) via very large or deeply <br>nested JSON inputs unless upstream input size/depth is bounded.<br> <strong><a href='https://github.com/carverauto/serviceradar/pull/2346/files#diff-0226580d3777904915943339ececa4e0e314a03a7c43a0e9afec64fe2a8f9354R835-R840'>promotion_rule_builder.ex [835-840]</a></strong><br> <details open><summary>Referred Code</summary> ```elixir defp parse_key_value_pair([_full, key, json_value], acc) when binary_part(json_value, 0, 1) == "{" do case Jason.decode(json_value) do {:ok, decoded} -> Map.put(acc, key, decoded) _ -> Map.put(acc, key, json_value) end ``` </details></details></td></tr> <tr><td colspan='2'><strong>Ticket Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary>🎫 <strong>No ticket provided </strong></summary> - [ ] Create ticket/issue <!-- /create_ticket --create_ticket=true --> </details></td></tr> <tr><td colspan='2'><strong>Codebase Duplication Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary><strong>Codebase context is not defined </strong></summary> Follow the <a href='https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/'>guide</a> to enable codebase context checks. </details></td></tr> <tr><td colspan='2'><strong>Custom Compliance</strong></td></tr> <tr><td rowspan=6>🟢</td><td> <details><summary><strong>Generic: Comprehensive Audit Trails</strong></summary><br> **Objective:** To create a detailed and reliable record of critical system actions for security analysis <br>and compliance.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Meaningful Naming and Self-Documenting Code</strong></summary><br> **Objective:** Ensure all identifiers clearly express their purpose and intent, making code <br>self-documenting<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Robust Error Handling and Edge Case Management</strong></summary><br> **Objective:** Ensure comprehensive error handling that provides meaningful context and graceful <br>degradation<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Error Handling</strong></summary><br> **Objective:** To prevent the leakage of sensitive system information through error messages while <br>providing sufficient detail for internal debugging.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Logging Practices</strong></summary><br> **Objective:** To ensure logs are useful for debugging and auditing without exposing sensitive <br>information like PII, PHI, or cardholder data.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Security-First Input Validation and Data Handling</strong></summary><br> **Objective:** Ensure all data inputs are validated, sanitized, and handled securely to prevent <br>vulnerabilities<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td align="center" colspan="2"> <!-- placeholder --> <!-- /compliance --update_compliance=true --> </td></tr></tbody></table> <details><summary>Compliance status legend</summary> 🟢 - Fully Compliant<br> 🟡 - Partial Compliant<br> 🔴 - Not Compliant<br> ⚪ - Requires Further Human Verification<br> 🏷️ - Compliance label<br> </details>
qodo-code-review[bot] commented 2026-01-18 09:23:10 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/2346#issuecomment-3765094966
Original created: 2026-01-18T09:23:10Z

ⓘ Your approaching your monthly quota for Qodo. Upgrade your plan

PR Code Suggestions

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Prevent binary_part crash on empty strings

Add a byte_size(json_value) > 0 check in the parse_key_value_pair function guard
to prevent a potential crash from binary_part/3 if json_value is an empty
string.

web-ng/lib/serviceradar_web_ng_web/components/promotion_rule_builder.ex [835-840]

 defp parse_key_value_pair([_full, key, json_value], acc)
-     when binary_part(json_value, 0, 1) == "{" do
+     when byte_size(json_value) > 0 and binary_part(json_value, 0, 1) == "{" do
   case Jason.decode(json_value) do
     {:ok, decoded} -> Map.put(acc, key, decoded)
     _ -> Map.put(acc, key, json_value)
   end
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies a potential ArgumentError when binary_part/3 is called on an empty string and proposes a valid guard to prevent it, improving the code's robustness.

Medium
  • More
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/2346#issuecomment-3765094966 Original created: 2026-01-18T09:23:10Z --- <pre>ⓘ Your approaching your monthly quota for Qodo. <a href="https://www.qodo.ai/pricing">Upgrade your plan</a></pre> ## PR Code Suggestions ✨ <!-- bee35f1 --> Explore these optional code suggestions: <table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=1>Possible issue</td> <td> <details><summary>Prevent binary_part crash on empty strings</summary> ___ **Add a <code>byte_size(json_value) > 0</code> check in the <code>parse_key_value_pair</code> function guard <br>to prevent a potential crash from <code>binary_part/3</code> if <code>json_value</code> is an empty <br>string.** [web-ng/lib/serviceradar_web_ng_web/components/promotion_rule_builder.ex [835-840]](https://github.com/carverauto/serviceradar/pull/2346/files#diff-0226580d3777904915943339ececa4e0e314a03a7c43a0e9afec64fe2a8f9354R835-R840) ```diff defp parse_key_value_pair([_full, key, json_value], acc) - when binary_part(json_value, 0, 1) == "{" do + when byte_size(json_value) > 0 and binary_part(json_value, 0, 1) == "{" do case Jason.decode(json_value) do {:ok, decoded} -> Map.put(acc, key, decoded) _ -> Map.put(acc, key, json_value) end ``` - [ ] **Apply / Chat** <!-- /improve --apply_suggestion=0 --> <details><summary>Suggestion importance[1-10]: 7</summary> __ Why: The suggestion correctly identifies a potential `ArgumentError` when `binary_part/3` is called on an empty string and proposes a valid guard to prevent it, improving the code's robustness. </details></details></td><td align=center>Medium </td></tr> <tr><td align="center" colspan="2"> - [ ] More <!-- /improve --more_suggestions=true --> </td><td></td></tr></tbody></table>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar!2694
No description provided.