Metadata-Version: 2.4
Name: aieng-platform-onboard
Version: 0.7.4
Summary: CLI tool for onboarding participants to AI Engineering bootcamps
Author-email: Vector AI Engineering <ai_engineering@vectorinstitute.ai>
License-Expression: Apache-2.0
License-File: LICENSE.md
Requires-Python: >=3.12
Requires-Dist: authlib==1.6.12
Requires-Dist: cryptography>=50.0.0
Requires-Dist: filelock==3.20.3
Requires-Dist: firebase-admin>=6.5.0
Requires-Dist: google-auth>=2.29.0
Requires-Dist: google-cloud-firestore>=2.18.0
Requires-Dist: google-cloud-secret-manager>=2.20.0
Requires-Dist: google-cloud-storage
Requires-Dist: idna>=3.15
Requires-Dist: msgpack>=1.2.1
Requires-Dist: openai>=1.0.0
Requires-Dist: pandas>=2.3.3
Requires-Dist: pygments>=2.20.0
Requires-Dist: pyjwt>=2.13.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: requests>=2.33.0
Requires-Dist: rich>=13.0.0
Requires-Dist: urllib3==2.7.0
Requires-Dist: virtualenv==20.36.1
Requires-Dist: weaviate-client>=4.0.0
Description-Content-Type: text/markdown

# AI Engineering Platform

----------------------------------------------------------------------------------------

[![PyPI](https://img.shields.io/pypi/v/aieng-platform-onboard)](https://pypi.org/project/aieng-platform-onboard)
[![code checks](https://github.com/VectorInstitute/aieng-platform/actions/workflows/code_checks.yml/badge.svg)](https://github.com/VectorInstitute/aieng-platform/actions/workflows/code_checks.yml)
[![unit tests](https://github.com/VectorInstitute/aieng-platform/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/VectorInstitute/aieng-platform/actions/workflows/unit_tests.yml)
[![docs](https://github.com/VectorInstitute/aieng-platform/actions/workflows/docs.yml/badge.svg)](https://github.com/VectorInstitute/aieng-platform/actions/workflows/docs.yml)
[![codecov](https://codecov.io/github/VectorInstitute/aieng-platform/graph/badge.svg?token=83MYFZ3UPA)](https://codecov.io/github/VectorInstitute/aieng-platform)
[![GitHub License](https://img.shields.io/github/license/VectorInstitute/aieng-platform)](https://img.shields.io/github/license/VectorInstitute/aieng-platform)


Infrastructure and tooling for AI Engineering bootcamps, providing secure, isolated development environments and automated participant onboarding.

## Overview

This platform consists of the following components:

1. **Coder Deployment** - Containerized development environments supported by [Coder](https://coder.com)
2. **Participant Onboarding System** - Secure, automated participant onboarding

---

## 1. Coder Deployment for GCP

The `coder` folder contains all resources needed to deploy a [Coder](https://coder.com) instance on Google Cloud Platform (GCP), along with reusable workspace templates and Docker images for the workspace environment.

### Structure

- **deploy/** - Terraform scripts and startup automation for provisioning the Coder server on a GCP VM
- **docker/** - Dockerfiles and guides for building custom images used by Coder workspace templates
- **templates/** - Coder workspace templates for reproducible, containerized development environments on GCP

### Usage

1. **Provision Coder on GCP** - Follow the steps in [`coder/deploy/README.md`](coder/deploy/README.md)
2. **Build and Push Docker Images** - See [`coder/docker/README.md`](coder/docker/README.md)
3. **Push Workspace Templates** - See [`coder/templates/README.md`](coder/templates/README.md)

---

## 2. Participant Onboarding System

Automated API key distribution for bootcamp participants using GCP Secret Manager and workload identity.

- Secrets never written to disk — exported into the shell via `eval "$(onboard ...)"`
- Workspace VMs authenticate directly to Secret Manager via workload identity (no Firebase, no token service)
- Per-participant JSON secrets named `{bootcamp-name}-env-{github-handle}`
- Firestore tracks participant records and onboarded status

### Architecture

```
Admin Phase
  1. Setup participants/teams in Firestore
  2. Generate API keys (Gemini, Langfuse, etc.)
  3. onboard admin setup-secrets  →  creates per-participant Secret Manager secrets
  4. Grant workspace SA roles/secretmanager.secretAccessor
  5. Add users to GitHub org

Participant Phase
  1. eval "$(onboard --bootcamp-name <name>)"  in Coder workspace
  2. Fetches env vars from Secret Manager via workload identity
  3. Runs integration tests (env vars injected, nothing written to disk)
  4. Marks participant as onboarded in Firestore
```

---
