Expose Escrow AI workflows to CICD pipelines
Project description
Copyright 2024 BeeKeeperAI(R)
EscrowAI Github SDK
The github sdk is a cli tool that enables algorithm upload on escrow ai from github workflows
installation
The sdk is available as a Pypi package and can be installed using
pip install EscrowAICI
Prerequisites and dependencies
To use the sdk, generate a private public key pair using openssl
# generate a private key with the correct length
openssl genrsa -out private-key.pem 3072
# generate corresponding public key
openssl rsa -in private-key.pem -pubout -out public-key.pem
setup your github repository secrets settings using
- BEEKEEPER_PROJECT_ID
- BEEKEEPER_ORGANIZATION_ID
- PROJECT_PRIVATE_KEY: Private key generated in earlier step
- CONTENT_ENCRYPTION_KEY
Usage
Basic stucture
$ escrowai -h
usage: escrowai [-h] [--algorithm_type ALGORITHM_TYPE] [--key KEY] folder
Encrypt files and package them into a zip archive.
positional arguments:
folder The folder path containing the files to encrypt
optional arguments:
-h, --help show this help message and exit
--algorithm_type ALGORITHM_TYPE
Algorithm type can be either validation or training
--key KEY The encryption key (base64 encoded)
arguments
Here is a sample github workflow showing how to use the sdk
name: Encrypt and Upload on Push
on:
push:
branches:
- testing
jobs:
encrypt_and_upload:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install cryptography pyyaml azure-storage-blob auth0-python python-dateutil sseclient
pip install EscrowAICI
- name: Encrypt Files and Upload
env:
CONTENT_ENCRYPTION_KEY: ${{ secrets.SECRET_KEY_BASE64 }}
AZURE_STORAGE_URL: ${{ secrets.AZURE_STORAGE_URL }}
BEEKEEPER_PROJECT_ID: ${{ secrets.BEEKEEPER_PROJECT_ID }}
BEEKEEPER_ORGANIZATION_ID: ${{ secrets.BEEKEEPER_ORGANIZATION_ID }}
PROJECT_PRIVATE_KEY: ${{ secrets.PROJECT_PRIVATE_KEY }}
run: |
repo_name="${GITHUB_REPOSITORY##*/}"
folder_path="files/$repo_name"
zip_file="files/${repo_name}.zip"
mkdir -p $folder_path
# Assuming you need to copy or prepare files in this directory
rsync -av --exclude='.git' --exclude='files' . ${folder_path}
escrowai ${folder_path}
- name: Clean up
run: |
rm -rf files/
There is also a helper script installed for interacting with report artifacts if your run produces those
Before use ensure to export the environment variables below
BEEKEEPER_PROJECT_ID
BEEKEEPER_ORGANIZATION_ID
BEEKEEOER_USER
CONTENT_ENCRYPTION_KEY # base64 encoded
PROJECT_PRIVATE_KEY # base64 encoded
The command below will get give you the basic usage
$ escrowai-reports --help
usage: escrowai-reports [-h] [--auth-key AUTH_KEY] [--project-id PROJECT_ID] [--organization-id ORGANIZATION_ID] [--environment ENVIRONMENT] [--user USER]
{find-run-config,list-run-configs,list-runs,list-artifacts,download-artifact,bulk-download} ...
Helper CLI for EscrowAI run configurations, runs, and report artifacts.
Basic usage is in the form escrowai-reports --env <targetenv> command args
positional arguments:
{find-run-config,list-run-configs,list-runs,list-artifacts,download-artifact,bulk-download}
find-run-config Locate a run configuration id by algo/dataset version tags.
list-run-configs List run configurations for a project.
list-runs List runs tied to a run configuration.
list-artifacts List report artifacts for a run or report.
download-artifact Download a single report artifact via SAS token.
bulk-download Request zipped report artifacts and download them when ready.
options:
-h, --help show this help message and exit
--auth-key AUTH_KEY Base64-encoded private key (defaults to env PROJECT_PRIVATE_KEY).
--project-id PROJECT_ID
EscrowAI project id (defaults to env BEEKEEPER_PROJECT_ID).
--organization-id ORGANIZATION_ID
Organization id (defaults to env BEEKEEPER_ORGANIZATION_ID).
--environment ENVIRONMENT
EscrowAI environment slug such as dev, tst, stg, or prod (default: prod).
--user USER Optional EscrowAI username (defaults to env BEEKEEPER_USER).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file escrowaici-0.1.9-py3-none-any.whl.
File metadata
- Download URL: escrowaici-0.1.9-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c6770d887df62953b0f340f0db0ebb56e4e5df72ca5617b537f858346015e96
|
|
| MD5 |
a887d79cba8cd5873453656d3526b028
|
|
| BLAKE2b-256 |
5ae61438193ddbb2a2cdec6befae15d84614811eca96084360faa6790f8dda4f
|