adobe-to-docusign-migrator/src
Paul Huliganga 51f532f452 feat: idempotent upload + FastAPI web UI with full test coverage
Phase 1 — Idempotent upload:
- upload_docusign_template.py now upserts: PUT if template with same name
  exists (most recently modified), POST otherwise
- --force-create flag to bypass upsert

Phase 2-6 — FastAPI web UI:
- web/app.py: FastAPI app with /health, static file serving
- web/routers/auth.py: Adobe Sign + DocuSign OAuth start/callback/disconnect
- web/routers/templates.py: template listing + migration status badges
  (not_migrated / migrated / needs_update)
- web/routers/migrate.py: POST /api/migrate pipeline + GET /api/migrate/history
- web/static/: vanilla HTML/CSS/JS side-by-side template browser UI

Phase 7 — Tests (29/29 passing):
- test_upload_upsert.py: 4 upsert unit tests
- test_api_health/auth/templates/migrate.py: full API coverage
- test_e2e.py: 7-step full pipeline end-to-end test
- test_regression.py: compose output vs snapshots for 3 real templates
- conftest.py: --update-snapshots CLI option

Docs: IMPLEMENTATION-PLAN.md, updated EXECUTION-BOARD.md + architecture.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 14:47:27 -04:00
..
adobe_api.py fix: correct Adobe Sign token refresh endpoint and add auth error handling 2026-04-16 10:10:12 -04:00
adobe_auth.py refactor: rename auth_adobe.py to adobe_auth.py for naming consistency 2026-04-16 10:10:05 -04:00
compose_docusign_template.py feat: map Adobe Sign conditional logic to DocuSign conditionalParentLabel/Value 2026-04-16 12:18:48 -04:00
create_adobe_template.py feat: end-to-end migration runner and test template utilities 2026-04-15 19:45:31 -04:00
docusign_auth.py feat: DocuSign JWT auth and pure-Python template upload client 2026-04-15 19:45:23 -04:00
download_templates.py feat: Adobe Sign template download pipeline 2026-04-15 19:44:52 -04:00
generate_pdfs.py feat: end-to-end migration runner and test template utilities 2026-04-15 19:45:31 -04:00
migrate_template.py feat: end-to-end migration runner and test template utilities 2026-04-15 19:45:31 -04:00
test_mapping.py feat: core migration — Adobe Sign to DocuSign field mapping and composition 2026-04-15 19:45:13 -04:00
upload_docusign_template.py feat: idempotent upload + FastAPI web UI with full test coverage 2026-04-17 14:47:27 -04:00