Skip to content
A Python package for validating SQL Server Integration Services (SSIS) packages
Python
Branch: master
Clone or download

Latest commit

mahdi-hosseini Fix bug with detecting dtproj files
If a .dtsx file is changed but not its parent .dtproj file, the .dtproj file is not picked up.
To fix the issue, a new detection logic is implemented whereby the parent directories of the
.dtsx file is traversed until the root directory of the repository and while reaching the root
directories, each directory recursively globed for unique .dtproj files.
Latest commit c486d68 Oct 8, 2019

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
mypy_stubs/lxml
ssis_validator Fix bug with detecting dtproj files Oct 9, 2019
tests
.gitignore Initial commit Oct 3, 2019
.travis.yml
LICENSE Initial commit Oct 3, 2019
README.md
mypy.ini
poetry.lock
pyproject.toml
tox.ini Add tox and travis integration Oct 8, 2019

README.md

ssis_validator

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

The module works by parsing the XML content of SSIS Projects and Packages while handling all the rough edges. It identifies the configurations of the projects and validates whether they meet the specifications.

This Python application is written for Python 3.7+.

Install

This package is available on PyPi 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.

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.

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
You can’t perform that action at this time.