Skip to content

Conversation

@mike-finopsorg
Copy link
Contributor

FOCUS Validator 2.0 is a major revamp of the project
It now uses the FOCUS Requirements Model made available as of release 1.2 of FOCUS

varunmittal91 and others added 30 commits October 20, 2023 00:51
…es with yaml files. (#86)

Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
… be used. (#91)

---------

Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Joshua Kwan <joshk@ternary.app>
Allow np.datetime64 as well. This variant of Python time type has no
time zone information (it's an instant.) so we don't check that tzname
is UTC in that case.

Signed-off-by: Joshua Kwan <joshk@ternary.app>
Failures are grouped by the check name, description, and aggregate the
distinct values and rows where those failing values occur

Signed-off-by: Joshua Kwan <joshk@ternary.app>
Signed-off-by: Joshua Kwan <joshk@ternary.app>
Co-authored-by: Varun Mittal <varunmittal91@gmail.com>
Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
…105)

Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
…ter and null checks, deprecates support for python 3.9. (#107)

Signed-off-by: Varun Mittal <varunmittal91@gmail.com>
Moved current 1.0 to 1.0-preview to match FOCUS project releases
Added new 1.0 Ruleset matching the upcoming release of FOCUS 1.0

Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
…#108)

Signed-off-by: Justin Ohrenberger <justinohrenberger@gmail.com>
Signed-off-by: Justin Ohrenberger <justinohrenberger@gmail.com>
Signed-off-by: Justin Ohrenberger <justinohrenberger@gmail.com>
Signed-off-by: Justin Ohrenberger <justinohrenberger@gmail.com>
Signed-off-by: Mike Fuller <mike@finops.org>
Added capability to load some of the billed cost functions from the cr-1.2.json and interpret them.
Began moving over rules from yaml to json.

Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
restructure the duckdb system to be more modular and easily expandable to add more checks in the future

Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
Improvements made to make local dev quicker by only building the poetry environment when the poetry config is changed.

Signed-off-by: Mike Fuller <mike@finops.org>
Added better handling of loading non-conformant datasets
Signed-off-by: Mike Fuller <mike@finops.org>
Update packages to take best advantage of newer versions
Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
…location, needed for when downstream packages use this as a library function.

Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
… memory management

Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
Update tags check to pass KeyValue checks
Fix up error messages to provide more details.
Signed-off-by: Mike Fuller <mike@finops.org>
…in validation errors

Signed-off-by: Mike Fuller <mike@finops.org>
…s will be needed as newer versions of FOCUS come out.

Signed-off-by: Mike Fuller <mike@finops.org>
Signed-off-by: Mike Fuller <mike@finops.org>
@mike-finopsorg mike-finopsorg self-assigned this Oct 23, 2025
@mike-finopsorg mike-finopsorg added this to the 2.0 milestone Oct 23, 2025
@mike-finopsorg mike-finopsorg linked an issue Oct 23, 2025 that may be closed by this pull request
@mike-finopsorg mike-finopsorg added the enhancement New feature or request label Oct 23, 2025
Added option for output-type web
Added outputter for HTML (web)
Fixed handling of dynamic checks to fail when the column isnt present instead of getting a default pass.

Signed-off-by: Mike Fuller <mike@finops.org>
Add lint check script for ease of development
Refinements for the web outputter for better validation results management
Signed-off-by: Mike Fuller <mike@finops.org>
Clean up README
Fix unittests after some refactoring
Signed-off-by: Mike Fuller <mike@finops.org>
Corrected rules based slicer

Signed-off-by: Mike Fuller <mike@finops.org>
Copy link
Collaborator

@Matt-Cowsert Matt-Cowsert left a comment

Choose a reason for hiding this comment

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

We've reviewed this PR and handful of times recently. Approving with the recognition that we'll have additional improvements and fixes to the FOCUS validator in the future.

@mike-finopsorg mike-finopsorg merged commit 043a0cb into main Dec 8, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Load rules from JSON instead of YAML

8 participants