# Candore
## Introduction
`Candore` is the command line interface data integrity tool. The tool is build to verify the change made in a product has any impact on data in product.
**The change** could be:
- Upgrade of the product to new version
- Some Patch applied to the product
- Developers made code changes locally / upstream etc
- Or any kind of change that we could think of
**Verifications** that candore supports is:
- **Data loss** - The major impact that candore cares
- **Data Altered** - The change in data entity
- **Relation between the entities** - Verifies if the link is not broken between entities
## Installation
```
$ mkdir ~/candore && cd ~/candore
$ pip install candore
```
## Configuration
The `candore` uses the `DynaConf` configuration python module to access the data in `settings.yaml`, it also allows an unique way of declaring secrets via Environment variables instead of putting in plain `settings.yaml`.
e.g: The password field can be set via environment variable by exporting the environment variable
```
# export CANDORE_CANDORE_PASSWORD = myPa$$worb"
```
### Configuration with PyPi package:
Copy/Download `settings.yaml.template` to local `~/candore` directory as `settings.yaml`, update it with the details and other configuration details for successful run.
## Usage Examples
* candore help:
```
# candore --help
Usage: candore [OPTIONS] COMMAND [ARGS]...
A data integrity validation CLI tool for products post change
Options:
--version Installed version of candore
-s, --settings-file TEXT Settings file path
-c, --components-file TEXT Components file path
--help Show this message and exit.
Commands:
apis List API lister endpoints from Product
compare Compare pre and post upgrade data
extract Extract and save data using API lister endpoints
reader JSON Reader for reading the specific path data from entities...
```
There are 3 stages in which candore works:
1. Read data from the web server using APIs, before change:
```
# candore extract -o pre_entities.json --mode pre
```
This reads all data from web server before the change and saves in the json file in the current directory.
2. Read data from the web server using APIs, after change:
```
# candore extract -o post_entities.json --mode post
```
This reads all data from web server after the change and saves in the json file in the current directory.
3. Use the json data files to compare the data integrity:
```
# candore compare -t csv -o results.csv --pre pre_entities.json --post post_entities.json
```
This compares two json datasets and generates the reports of data integrity in CSV format in CSV file.
Reports could be generated in json:
```
# candore compare -t json -o results.json --pre pre_entities.json --post post_entities.json
```
Raw data
{
"_id": null,
"home_page": null,
"name": "candore",
"maintainer": "Jitendra Yejare",
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "api, data, distutils, hatch, upgrades, validation",
"author": "Jitendra Yejare",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ce/d9/52eb6a24b622d8cd0111bf4557ef60b83ae9bb15b7aaab68a8e0e5652497/candore-1.3.0.tar.gz",
"platform": null,
"description": "# Candore\n\n## Introduction\n\n`Candore` is the command line interface data integrity tool. The tool is build to verify the change made in a product has any impact on data in product. \n\n**The change** could be:\n- Upgrade of the product to new version\n- Some Patch applied to the product\n- Developers made code changes locally / upstream etc\n- Or any kind of change that we could think of\n\n**Verifications** that candore supports is:\n\n- **Data loss** - The major impact that candore cares\n- **Data Altered** - The change in data entity\n- **Relation between the entities** - Verifies if the link is not broken between entities\n\n\n## Installation\n\n```\n$ mkdir ~/candore && cd ~/candore\n$ pip install candore\n```\n\n## Configuration\n\nThe `candore` uses the `DynaConf` configuration python module to access the data in `settings.yaml`, it also allows an unique way of declaring secrets via Environment variables instead of putting in plain `settings.yaml`.\n\ne.g: The password field can be set via environment variable by exporting the environment variable\n\n```\n# export CANDORE_CANDORE_PASSWORD = myPa$$worb\"\n```\n\n### Configuration with PyPi package:\n\nCopy/Download `settings.yaml.template` to local `~/candore` directory as `settings.yaml`, update it with the details and other configuration details for successful run.\n\n\n## Usage Examples\n\n\n* candore help:\n\n```\n# candore --help\n\nUsage: candore [OPTIONS] COMMAND [ARGS]...\n\n A data integrity validation CLI tool for products post change\n\nOptions:\n --version Installed version of candore\n -s, --settings-file TEXT Settings file path\n -c, --components-file TEXT Components file path\n --help Show this message and exit.\n\nCommands:\n apis List API lister endpoints from Product\n compare Compare pre and post upgrade data\n extract Extract and save data using API lister endpoints\n reader JSON Reader for reading the specific path data from entities...\n```\n\nThere are 3 stages in which candore works:\n\n1. Read data from the web server using APIs, before change:\n\n```\n# candore extract -o pre_entities.json --mode pre\n```\nThis reads all data from web server before the change and saves in the json file in the current directory.\n\n\n2. Read data from the web server using APIs, after change:\n\n```\n# candore extract -o post_entities.json --mode post\n```\nThis reads all data from web server after the change and saves in the json file in the current directory.\n\n\n3. Use the json data files to compare the data integrity:\n\n```\n# candore compare -t csv -o results.csv --pre pre_entities.json --post post_entities.json\n```\nThis compares two json datasets and generates the reports of data integrity in CSV format in CSV file.\n\nReports could be generated in json:\n```\n# candore compare -t json -o results.json --pre pre_entities.json --post post_entities.json\n```\n",
"bugtrack_url": null,
"license": null,
"summary": null,
"version": "1.3.0",
"project_urls": null,
"split_keywords": [
"api",
" data",
" distutils",
" hatch",
" upgrades",
" validation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "359407ba2815a7a05e92b4aa86d57051aef4837c3de25530e9ef5a9f2a04adde",
"md5": "c11bea0f176cb7b0989aec3ad654881f",
"sha256": "a6480e1f0fb9ff5fb4fb2ee43f5ca9af492bd23d5e247e0eba5b22563a592b34"
},
"downloads": -1,
"filename": "candore-1.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c11bea0f176cb7b0989aec3ad654881f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 34449,
"upload_time": "2024-06-25T08:23:33",
"upload_time_iso_8601": "2024-06-25T08:23:33.309080Z",
"url": "https://files.pythonhosted.org/packages/35/94/07ba2815a7a05e92b4aa86d57051aef4837c3de25530e9ef5a9f2a04adde/candore-1.3.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ced952eb6a24b622d8cd0111bf4557ef60b83ae9bb15b7aaab68a8e0e5652497",
"md5": "49bbbcc402f4fb67a57611a6db761f28",
"sha256": "6f1c6afe49c05e923f4b41095c61f83f7a1f709ee6dcd78ceec7a64d841e1f04"
},
"downloads": -1,
"filename": "candore-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "49bbbcc402f4fb67a57611a6db761f28",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27738,
"upload_time": "2024-06-25T08:23:34",
"upload_time_iso_8601": "2024-06-25T08:23:34.980795Z",
"url": "https://files.pythonhosted.org/packages/ce/d9/52eb6a24b622d8cd0111bf4557ef60b83ae9bb15b7aaab68a8e0e5652497/candore-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-25 08:23:34",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "candore"
}