Metadata-Version: 2.1
Name: sw-aqueduct
Version: 0.0.2
Summary: A Swimlane content delivery system written in Python
Home-page: https://github.com/swimlane/aqueduc
Author: Swimlane
Author-email: info@swimlane.com
Maintainer: MSAdministrator
Maintainer-email: rickardja@live.com
License: MIT
Project-URL: Documentation, https://swimlane.com
Project-URL: Changelog, https://github.com/swimlane/aqueduct/blob/main/CHANGELOG.md
Project-URL: Bug Tracker, https://github.com/swimlane/aqueduct/issues
Project-URL: Source Code, https://github.com/swimlane/aqueduct
Project-URL: Funding, https://github.com/sponsors/msadministrator
Keywords: swimlane,content,soar,automation
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Security
Requires-Python: >=3.6, <4
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: pyyaml (==6.0)
Requires-Dist: fire (==0.4.0)
Requires-Dist: attrs (==21.4.0)
Requires-Dist: pydantic (==1.9.0)
Requires-Dist: swimlane (==10.5.0)
Requires-Dist: packaging (>-21)
Requires-Dist: requests (>=2.27.1)

# Aqueduct 

> aq·ue·duct | \ˈä-kwə-ˌdəkt\

Definition of _aqueduct_

1. a conduit for water
2. a content delivery system for the Swimlane platform

> ([What's new?](CHANGELOG.md))

> ([Testing Steps](TESTING.md))

_Aqueduct_ is a Python package to migrate content from one (source) Swimlane instance to another (destination) instance in reliable and repeatable methodlogy.

## Why?

Many Swimlane customers build their own custom content (e.g. Use Cases) to fit their needs. We understand that every organization is different and because of this we have built `aqueduct` to facilitate the _migration_ of this content from one instance to another. During the creation of `aqueduct` we have decided that we want to re-enforce best practices when using Swimlane. This is mainly in the form of **NOT** updating content in your production systems (e.g. destination systems). Changes should strictly be made within a development (source) instance and then migrated to your production instance once your testing is complete.

## Features

You can view all the available parameters for the main Aqueduct class [here](docs/aqueduct.md).

We can sync the following content from one Swimlane instance to another.

* [applications](docs/components/applications.md)
* [assets](docs/components/assets.md)
* [dashboards](docs/components/dashboards.md)
* [groups](docs/components/groups.md)
* [keystore](docs/components/keystore.md)
* [packages](docs/components/packages.md)
* [plugins](docs/components/plugins.md)
* [reports](docs/components/reports.md)
* [roles](docs/components/roles.md)
* [tasks](docs/components/tasks.md)
* [users](docs/components/users.md)
* [workflows](docs/components/workflows.md)
* [workspaces](docs/components/workspaces.md)

## Getting Started

`aqueduct` is a Python-only package hosted on [PyPi](https://pypi.org/project/aqueduct/) and works with Python 3.6 and greater.

```bash
pip install sw-aqueduct
```

## Installation

You can install **aqueduct** on OS X, Linux, or Windows. You can also install it directly from the source. To install, see the commands under the relevant operating system heading, below.

### Prerequisites

The following libraries are required and installed by `aqueduct`:

```
pyyaml==6.0
fire==0.4.0
attrs==21.4.0
pydantic==1.9.0
swimlane==10.5.0
packaging>-21
requests>=2.27.1
```

### macOS, Linux and Windows:

```bash
pip install sw-aqueduct
```

### macOS using M1 processor

```bash
git clone https://github.com/swimlane/aqueduct.git
cd aqueduct

# Satisfy ModuleNotFoundError: No module named 'setuptools_rust'
brew install rust
pip3 install --upgrade pip
pip3 install setuptools_rust

# Back to our regularly scheduled programming . . .  

python setup.py install
```

### Installing from source

```bash
git clone https://github.com/swimlane/aqueduct.git
cd aqueduct
python setup.py install
```

## Usage example (command line)

You can run `aqueduct` from the command line or within your own Python scripts. To use `aqueduct` at the command line simply enter the following in your terminal:

```bash
aqueduct --help
```

```python
from aqueduct import Aqueduct, SwimlaneInstance


sw_source = SwimlaneInstance(
    host="https://10.32.100.xxx",
    username="admin",
    password=""
)

sw_dest = SwimlaneInstance(
    host="https://10.32.100.xxx",
    username="admin",
    password=""
)

aq = Aqueduct(
    source=sw_source,
    destination=sw_dest
)

# this will sync all components listed above.
aq.sync()

# You can specify one or more of them as well.
# example
# aq.sync(components=['applications', 'plugins', 'workspaces', 'roles']
```

## Getting Help

Please create an [issue](https://github.com/swimlane/aqueduct/pulls) if you have questions or run into any issues.

## Built With

* [carcass](https://github.com/MSAdministrator/carcass) - Python packaging template

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

We use [SemVer](http://semver.org/) for versioning. 

## Authors

* Josh Rickard - *Initial work* - [MSAdministrator](https://github.com/MSAdministrator)

See also the list of [contributors](https://github.com/swimlane/aqueduct/contributors) who participated in this project.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details


