Files
CIAgent/apps/api/app/schemas/provisioning.py
T
sakshamandClaude Sonnet 5 56b4a5404e Add pending account provisioning for demoing to not-yet-existing accounts
An admin can now queue up an email address in advance (POST/GET/DELETE
/system/pending-provisioning) with a source user and an optional admin
flag. The moment that email actually verifies a real account - not raw
registration, which proves nothing about ownership - it gets a deep copy
of the source user's per-user API keys and every company they own
(company profile, aliases, competitors, monitor config, sources, source
documents, monitoring runs, reports, snapshots, detected changes, and
enrichment - not just the company row), plus an email notification
destination for its own address linked to the copied companies.

The clone logic (_copy_row/_clone_company in provisioning_service.py) is
generic over every table it touches via column introspection, so it
doesn't need hand-maintained field lists per model.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-06 18:47:29 -04:00

21 lines
402 B
Python

from __future__ import annotations
import uuid
from datetime import datetime
from pydantic import BaseModel, EmailStr
class PendingProvisioningCreate(BaseModel):
email: EmailStr
source_user_id: uuid.UUID
make_admin: bool = False
class PendingProvisioningResponse(BaseModel):
id: uuid.UUID
email: str
source_user_id: uuid.UUID
make_admin: bool
created_at: datetime