Metadata-Version: 2.1
Name: ssis-validator
Version: 0.1.1
Summary: A Python package for validating SQL Server Integration Services (SSIS) packages
Home-page: https://github.com/mahdi-hosseini/ssis_validator
License: MIT
Author: Mike Hosseini
Author-email: mahdihosseini75@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Requires-Dist: colorama (>=0.4.1,<0.5.0)
Requires-Dist: crayons (>=0.2.0,<0.3.0)
Requires-Dist: gitpython (>=3.0,<4.0)
Requires-Dist: lxml (>=4.4,<5.0)
Project-URL: Repository, https://github.com/mahdi-hosseini/ssis_validator
Description-Content-Type: text/markdown

# ssis_validator

A Python package for validating SQL Server Integration Services (SSIS) projects. It can be used as a part of Continuous Integration pipeline.

This Python application is written for Python 3.7+.

## Install

This package is available on [PyPi](https://pypi.org/project/ssis-validator/) package repository. You can install it like below:

`pip install ssis_validator`

## Usage

### 1. Projects

Specify one or multiple `--project` arguments and provide the full path to the SSIS Projects that you want to validate.

```bash
ssis_validator --project Project_1 --project Project_2
```

### 2. Repository Staging

Specify `--repository` optional argument along with one `--project` argument passing the Git repository hosting multiple SSIS Projects. The validator only checks SSIS projects that are staged.


```bash
ssis_validator --project Project_1 --repository
```

## Validation Criteria

The following validation criteria are currently checked. The current version has the accepted specifications hard-coded. The next version will parameterize all of them in a configuration file.

### Project

1. Project Server Version: `SQLServer2014`, `SQLServer2016`
2. Project Protection Level: `EncryptSensitiveWithPassword`
3. Packages Presence in Project: `True`
4. Linkage of Packages: `True`
5. Project Deployment Model: `Project`

### Package

1. Package Last Modified Visual Studio Version: `SSIS_2016`
2. Package Protection Level: `EncryptSensitiveWithPassword`
3. (Optional) PragmaticWorks BIxPress Server Name: `server_name`
4. (Optional) PragmaticWorks BIxPress Continue Execution on Error: `True`
5. (Optional) PragmaticWorks BIxPress Reporting of Error on Failure: `False`

## Contribution

See an area for improvement, please open an issue or send a PR.

## Future Improvements

- [ ] mypy type hints
- [ ] add configuration file

