## aiSSEMBLE™ Foundation Versioning
[![PyPI](https://img.shields.io/pypi/v/aissemble-foundation-versioning-service?logo=python&logoColor=gold)](https://pypi.org/project/aissemble-foundation-versioning-service/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/aissemble-foundation-versioning-service?logo=python&logoColor=gold)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/aissemble-foundation-versioning-service?logo=python&logoColor=gold)
This module contains the implementation for the aiSSEMBLE versioning service. The service provides the ability to version artifacts produced by a Solution Baseline machine-learning pipeline, and uses Maven to package and deploy the artifacts to Nexus.
### Model Versioning
The following GET endpoint is provided for model versioning: `/version/model/{run_id}`
`run_id` is the unique training run identifier assigned to an MLflow training experiment. The versioning service currently only supports models that have been trained using the MLflow implementation of a Solution Baseline machine-learning pipeline. It will package the training run artifacts produced by MLflow and the model artifacts produced when saving through MLflow.
The following environment variables are required for model versioning:
- `MLFLOW_TRACKING_URI`: the MLflow tracking URI path specified in the training pipeline. This is where MLflow saves the training run artifacts.
- `MODEL_DIRECTORY`: The model directory path specified in the training pipeline. This is where the training pipeline saves the trained models.
- `NEXUS_SERVER`: The Nexus server to use to push the versioned artifact to. The credentials for this server must be provided in the Maven settings.xml file.
### Example
Below is a basic example of how to leverage the versioning service:
- Extending the baseline docker image to include Nexus credentials
```dockerfile
FROM boozallen/aissemble-versioning:${VERSION_AISSEMBLE}
COPY /custom/maven/settings/containing/nexus/credentials.xml /root/.m2/settings.xml
```
- Docker-compose configurations for running the service
```
example-versioning-service:
image: my-extended-versioning-service-image:latest
ports:
- '80:80'
environment:
MLFLOW_TRACKING_URI: /path/to/mlflow/tracking/uri
MODEL_DIRECTORY: /path/to/saved/models
NEXUS_SERVER: http://nexus-server:port
```
- Note: By default Versioning requires authorization and therefore must have security services running (policy-decision-point).
- Add the following to the above docker-compose file:
```
policy-decision-point:
image: ${CONTAINER_REGISTRY}boozallen/policy-decision-point-docker:latest
hostname: policy-decision-point
container_name: policy-decision-point
ports:
- "8780:8080"
- "9700:9000"
```
- Add an `auth.properties` file to your docker image with the following content.
```
pdp_host_url=http://policy-decision-point:8080/api/pdp
```
- Then add the following environment variable that points to your properties file.
`ENV KRAUSENING_BASE /path/to/auth.properties/file`
- To disable authorization you can add the following to the `auth.properties` file: `is_authorization_enabled = False`.
Raw data
{
"_id": null,
"home_page": null,
"name": "aissemble-foundation-versioning-service",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "aiSSEMBLE Baseline Community",
"author_email": "aissemble@bah.com",
"download_url": "https://files.pythonhosted.org/packages/d3/85/ac6567912651c846f13b2c223fc28e1b6dd7ca3d8ebbad8c69f91fec80b7/aissemble_foundation_versioning_service-1.10.0.tar.gz",
"platform": null,
"description": "## aiSSEMBLE™ Foundation Versioning\n\n[![PyPI](https://img.shields.io/pypi/v/aissemble-foundation-versioning-service?logo=python&logoColor=gold)](https://pypi.org/project/aissemble-foundation-versioning-service/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/aissemble-foundation-versioning-service?logo=python&logoColor=gold)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/aissemble-foundation-versioning-service?logo=python&logoColor=gold)\n\nThis module contains the implementation for the aiSSEMBLE versioning service. The service provides the ability to version artifacts produced by a Solution Baseline machine-learning pipeline, and uses Maven to package and deploy the artifacts to Nexus.\n\n### Model Versioning\n\nThe following GET endpoint is provided for model versioning: `/version/model/{run_id}`\n\n`run_id` is the unique training run identifier assigned to an MLflow training experiment. The versioning service currently only supports models that have been trained using the MLflow implementation of a Solution Baseline machine-learning pipeline. It will package the training run artifacts produced by MLflow and the model artifacts produced when saving through MLflow.\n\nThe following environment variables are required for model versioning:\n- `MLFLOW_TRACKING_URI`: the MLflow tracking URI path specified in the training pipeline. This is where MLflow saves the training run artifacts.\n- `MODEL_DIRECTORY`: The model directory path specified in the training pipeline. This is where the training pipeline saves the trained models.\n- `NEXUS_SERVER`: The Nexus server to use to push the versioned artifact to. The credentials for this server must be provided in the Maven settings.xml file.\n\n### Example\n\nBelow is a basic example of how to leverage the versioning service:\n- Extending the baseline docker image to include Nexus credentials\n ```dockerfile\n FROM boozallen/aissemble-versioning:${VERSION_AISSEMBLE}\n\n COPY /custom/maven/settings/containing/nexus/credentials.xml /root/.m2/settings.xml\n ```\n- Docker-compose configurations for running the service\n ```\n example-versioning-service:\n image: my-extended-versioning-service-image:latest\n ports:\n - '80:80'\n environment:\n MLFLOW_TRACKING_URI: /path/to/mlflow/tracking/uri\n MODEL_DIRECTORY: /path/to/saved/models\n NEXUS_SERVER: http://nexus-server:port\n ```\n- Note: By default Versioning requires authorization and therefore must have security services running (policy-decision-point).\n - Add the following to the above docker-compose file:\n ```\n policy-decision-point:\n image: ${CONTAINER_REGISTRY}boozallen/policy-decision-point-docker:latest\n hostname: policy-decision-point\n container_name: policy-decision-point\n ports:\n - \"8780:8080\"\n - \"9700:9000\"\n ```\n - Add an `auth.properties` file to your docker image with the following content.\n ```\n pdp_host_url=http://policy-decision-point:8080/api/pdp\n ```\n - Then add the following environment variable that points to your properties file. \n `ENV KRAUSENING_BASE /path/to/auth.properties/file`\n - To disable authorization you can add the following to the `auth.properties` file: `is_authorization_enabled = False`.\n",
"bugtrack_url": null,
"license": null,
"summary": null,
"version": "1.10.0",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ba18b971006eb7aa26698aa8c0bc8968f49cf1d14fd1f172acfe9d0013749e59",
"md5": "8df8ad899546c7d19961558aba0462f0",
"sha256": "d5c8f2fea3694d0a46535cb38198258fd007ea66acef3641536314ca0d3742ec"
},
"downloads": -1,
"filename": "aissemble_foundation_versioning_service-1.10.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8df8ad899546c7d19961558aba0462f0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 8820,
"upload_time": "2024-11-20T01:10:07",
"upload_time_iso_8601": "2024-11-20T01:10:07.005629Z",
"url": "https://files.pythonhosted.org/packages/ba/18/b971006eb7aa26698aa8c0bc8968f49cf1d14fd1f172acfe9d0013749e59/aissemble_foundation_versioning_service-1.10.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d385ac6567912651c846f13b2c223fc28e1b6dd7ca3d8ebbad8c69f91fec80b7",
"md5": "b0f1f9fa9c4f96d8a512821b22b09568",
"sha256": "1e697b3c740d005ec9bc72c693b69f3ca872d67782736adc6b5ca53ea1860b6f"
},
"downloads": -1,
"filename": "aissemble_foundation_versioning_service-1.10.0.tar.gz",
"has_sig": false,
"md5_digest": "b0f1f9fa9c4f96d8a512821b22b09568",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 7486,
"upload_time": "2024-11-20T01:10:08",
"upload_time_iso_8601": "2024-11-20T01:10:08.458770Z",
"url": "https://files.pythonhosted.org/packages/d3/85/ac6567912651c846f13b2c223fc28e1b6dd7ca3d8ebbad8c69f91fec80b7/aissemble_foundation_versioning_service-1.10.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-20 01:10:08",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "aissemble-foundation-versioning-service"
}