Skip to content

feat(SNT_config): add .skeleton.json as "fixed" part of the file - #120

Open
sPuntinG wants to merge 2 commits into
mainfrom
SNT25-453
Open

sPuntinG wants to merge 2 commits into
mainfrom
SNT25-453

Conversation

@sPuntinG

@sPuntinG sPuntinG commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

https://bluesquare.atlassian.net/browse/SNT25-453

Just added tentative "skeleton" of SNT_confi.json for validation + updated .gitignore to un-ignore this file.

Skeleton was derived by looking at all the existing SNT_config_{CC}.json (counrty-specific) files in current repo and identifying the parts that never change.

To do:

"CONF_PREGNANT_WOMAN": [],
"PRES_PREGNANT_WOMAN": []
},
"DHIS2_REPORTING_RATES": {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

i would include the empty parameters of configuration for the reporting rates section. They can provide a more concrete example of the expected input values see example:

"DHIS2_REPORTING_RATES" : {

@sPuntinG sPuntinG Sep 24, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Indeed that was missing ... !

Adding it, I'm realizing that the REPORTING_DATASETS$METRICS two keys value is always "float", and indeed the value of ACTUAL_REPORTS and EXPECTED_REPORTS is never consumed (seems like "float" is just a placeholder to avoid an empty key?).

Woudl it make sense to make METRICS a plain list:
"METRICS": ["ACTUAL_REPORTS", "EXPECTED_REPORTS"]
This should cost no pipeline.py changes ...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Anyways, I'd leave this as is (with the latest addition that you suggested).
Then any change could be implemented later on as it's out of scope for this PR

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

the type float is used in the pipeline during extracts, so it's not a placeholder.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

in the case of :

 "REPORTING_INDICATORS": {
        "ACTUAL_REPORTS": "",
        "EXPECTED_REPORTS": ""
      }

I would replace it with null values as well

@@ -0,0 +1,63 @@
{
"SNT_CONFIG": {
"COUNTRY_CODE": "",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think to set empty values, null is the more standard, idiomatic choice for "no value" in JSON. Using "" mixes two different concepts: with "", the value is technically set — it's just an empty string — which I think is less clear than explicitly saying there's no value at all.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Uh ok I see. I was using "" when expecting a string, and null when expecing a number.
But apparently a null makes things crash earlier which is a safer approach.

Anyways, this part here is really just to ensure that all sections and objects are captured to have a solid reference.

Then, what would actually consume this is the new config.json editor WebApp: https://github.com/BLSQ/openhexa-webapps-edit-snt-config-json/blob/main/CLAUDE.md

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.

2 participants