Commit graph

139 commits

Author SHA1 Message Date
DJP
67c8765512 Add fallback check to B1->B2 script: skip assets with no file extension 2025-12-01 14:22:59 -05:00
DJP
0f6e816255 Fix recursive download in B1->B2 script: improve folder identification and add safeguards 2025-12-01 14:17:14 -05:00
DJP
4c691dda30 Update CSV format to combine Campaign Number and Name, add manual regeneration script 2025-12-01 09:22:32 -05:00
DJP
db0dceb19c Add --auth-pfx-v2 and --env options to update_campaign_status.py 2025-11-27 06:58:39 -05:00
DJP
4259b1073c Add --auth-pfx-v2 support to A4 Box Uploader 2025-11-26 17:01:34 -05:00
DJP
17648d9051 Fix test_connection to not use non-existent /v6 endpoint 2025-11-26 16:58:55 -05:00
DJP
532699f634 Show full OAuth tokens in logs for debugging 2025-11-26 16:44:07 -05:00
DJP
cda33e8c8d Switch production orchestrator back to mTLS V2 (--auth-pfx-v2) 2025-11-26 16:32:43 -05:00
DJP
b2c8e01d4b Add token preview logging for OAuth tokens 2025-11-26 16:32:10 -05:00
DJP
a8976022b3 Update .env-prod configuration 2025-11-26 16:27:40 -05:00
DJP
c7ddf1d45f Add verbose logging for all DAM API requests 2025-11-26 16:26:15 -05:00
DJP
531fdf3372 Update .env-prod configuration 2025-11-26 16:23:46 -05:00
DJP
d68e149d1e Switch production orchestrator to use legacy mTLS (--auth-pfx) 2025-11-26 16:05:10 -05:00
DJP
3c14ec4af1 Fix ENV variable in .env-prod (staging -> prod) 2025-11-26 15:50:32 -05:00
DJP
37cab9d902 Add support for loading environment-specific .env files (prod/dev) 2025-11-26 15:44:09 -05:00
DJP
c1bd575bf9 Add --auth-pfx-v2 support to A4 Webhook Monitor for production 2025-11-26 15:39:00 -05:00
DJP
c1df6a7712 Fix A4 Webhook Monitor to use --auth-pfx for production 2025-11-26 15:38:06 -05:00
DJP
87b593c5f9 Fix syntax errors in orchestrator-prod.py args 2025-11-26 15:34:14 -05:00
DJP
c53e79cbaf Add production orchestrator configuration 2025-11-26 15:31:32 -05:00
DJP
07bce09d65 Fix B1→B2 bug: total_assets referenced before assignment 2025-11-26 15:07:27 -05:00
DJP
8ca44fcf1e Add metadata diagnostic tool for troubleshooting field issues 2025-11-26 14:52:39 -05:00
DJP
f9c11ef3f5 Fix misleading log message for A5 campaigns with no rejections 2025-11-26 14:45:48 -05:00
DJP
795e4e7d96 Improve A5 notification logic to handle status changes 2025-11-26 14:26:36 -05:00
DJP
0f1c3dd0ec Prevent duplicate 'no rejections' emails for A5 campaigns 2025-11-26 14:25:57 -05:00
DJP
936071d7ad Change script intervals from 5 to 3 minutes for faster processing 2025-11-26 14:18:45 -05:00
DJP
f15ae9a8d1 Stream full script output to console in real-time 2025-11-26 14:04:15 -05:00
DJP
d6b68af5d5 Fix A5→A6 to also use OAuth authentication 2025-11-26 14:03:07 -05:00
DJP
16527f6e43 Temporarily disable mTLS auth, use OAuth for troubleshooting 2025-11-26 13:59:48 -05:00
DJP
3518f7c909 Remove A1->A2 Download task from orchestrator and add run guide 2025-11-26 13:53:48 -05:00
DJP
f9e57c7d57 docs: add orchestrator running instructions. 2025-11-26 13:51:14 -05:00
DJP
7599fe7cd2 feat: Remove A1->A2 Download script from orchestrator configuration 2025-11-26 13:48:48 -05:00
DJP
99d8621266 Increase throughput: process 2 campaigns in A1→A2, all files in A2→A3 2025-11-26 13:43:06 -05:00
DJP
98fb7eaee2 Fix smoke test to use prod-auth endpoint instead of test-auth 2025-11-26 10:20:59 -05:00
DJP
9d207d0480 chore: Update DAM mTLS base and OAuth URLs in production environment to /token endpoint. 2025-11-26 10:18:56 -05:00
DJP
6064b0971e Fix smoke test to explicitly load .env-prod file 2025-11-26 10:14:26 -05:00
DJP
d53b605f56 Update .env-prod with production mTLS configuration 2025-11-26 10:08:58 -05:00
DJP
cabc1d5548 Add production smoke test script for mTLS V2 authentication 2025-11-26 10:08:04 -05:00
DJP
c1f338022c fix: Ensure type field is added when updating CreativeX URL
- Modified _set_field_value to include 'type': 'string' in all code paths
- Adds type field when updating existing CreativeX URL field
- Ensures consistent structure whether creating or updating field
2025-11-25 09:14:25 -05:00
DJP
80316cad32 fix: Add missing type field to CreativeX URL metadata
- Added 'type': 'string' to FERRERO.FIELD.CREATIVEX LINK value structure
- Fixes DAM validation error for CreativeX URL field
- Structure now matches DAM requirements
2025-11-25 09:11:41 -05:00
DJP
548c30344b feat: Support multiple CreativeX platforms in metadata
- Updated creativex_scoring_storing.py to map multiple placements to platforms
- Modified get_mapped_platform to get_mapped_platforms (returns list)
- Updated a2_to_a3_upload_polling.py to retrieve platforms list from DB
- Enhanced metadata_extractor_mvp.py to build multi-value CreativeX field
- Added DAM-CX mappings.csv for channel/placement to platform mapping
- Supports single channel with multiple placements generating multiple Platform^Score values
2025-11-24 14:44:11 -05:00
DJP
491fc8e938 feat: Add A1→A3 campaign advance script, introduce systemd service for orchestrator, and ref 2025-11-24 13:50:16 -05:00
DJP
0af15563bc feat: Implement new Python script locking, relocate PHP workflow, and update Python scripts and documentation. 2025-11-21 17:20:34 -05:00
DJP
22069ed66f refactor: Relocate test scripts to a dedicated tests/ directory and introduce orchestrator.py. 2025-11-21 17:10:04 -05:00
DJP
2cad2c2955 Fix AttributeError in DAMClient.test_connection 2025-11-21 16:57:43 -05:00
DJP
5aeab8d9a3 Update a1_to_a2_download.py to support Auth V2 2025-11-21 16:53:32 -05:00
DJP
6fe2ba234b Implement Auth V2 (Hybrid mTLS/OAuth) and update field mappings 2025-11-21 16:46:37 -05:00
DJP
b906434f67 Add A1->A2 and A4 Box CSV uploader scripts 2025-11-20 22:52:26 -05:00
DJP
20a187a61d feat: Add Python project dependencies. 2025-11-20 22:45:04 -05:00
DJP
e839816fbc Add non-technical user guide for agencies and creative teams
Simple, action-oriented guide focused on what users need to DO,
not how the system works internally. Perfect for onboarding and
daily reference.

USER_GUIDE.md (15-minute read):

Target Audience:
- Creative teams creating localized assets
- Agencies doing derivative work
- Campaign managers coordinating uploads
- Anyone who needs to USE the system (not maintain it)

Content Structure:

1. Big Picture (Simple Flowchart):
   - 6-step process diagram
   - "You do step 3-4, system handles rest"
   - Clear role definition

2. 3 Golden Rules:
   - Always use naming tool (never type manually)
   - Every asset needs CreativeX score (no exceptions)
   - Always use SAME tracking ID (for all versions)

3. Step-by-Step Workflow:
   - Receive email → Download → Localize → Score → Name → Upload
   - Each step explained in plain language
   - What to look for in emails
   - How to use naming tool (field-by-field)
   - Where to upload
   - What emails to expect

4. Rejection & Rework Process:
   - What rejection means (normal, not failure)
   - How to read rejection comments (Legal/IA&CC/Approver)
   - How to fix and re-upload
   - CRITICAL: Must re-score after fixes
   - SAME tracking ID, NEW job number

5. Common Questions (10 FAQs):
   - How to find tracking ID
   - Do I really need 200 scores? (Yes!)
   - What if typo in tracking ID?
   - Can I upload before scoring? (Yes but not recommended)
   - Wrong folder - what to do?
   - How long to process? (5 minutes max)
   - Can I edit filename? (NO!)

6. Troubleshooting:
   - "File not processed" → Check folder, filename, tracking ID
   - "Score=0 but I uploaded PDF" → Check filename match
   - "Error: wrong tracking ID" → Copy from email exactly

7. Quick Checklist:
   - 15-point checklist before upload
   - 7 additional steps for rework
   - All checkboxes format

8. What NOT to Do (5 critical don'ts):
   - Don't type manually
   - Don't skip CreativeX
   - Don't reuse tracking IDs across campaigns
   - Don't upload to wrong folder
   - Don't edit generated filenames

9. Quick Reference Tables:
   - Box folders and when to use
   - Email types and meanings
   - Naming tool field guide
   - Contact information

Key Differences from Technical Guide:
 No system architecture
 No database schemas
 No Python code
 No technical troubleshooting
 No server commands

 What to click
 Where to upload
 How to use naming tool
 What emails mean
 How to fix common mistakes
 Who to contact

Tone:
- Friendly and supportive
- Clear and direct
- Action-oriented ("Do this, not that")
- Visual with tables and checklists
- Assumes no technical knowledge

Examples Are Real-World:
- Actual tracking IDs (pOiJ9s, a7K9mP)
- Actual folder IDs (348526703108)
- Real error messages users will see
- Common typos (pOlJ9s vs pOiJ9s)

Length: ~800 lines (~20 pages when formatted)

Perfect for:
- New agency onboarding
- Quick reference during work
- Sharing with non-technical stakeholders
- Training sessions

Complements COMPLETE_WORKFLOW_GUIDE.md (technical deep-dive)
with practical hands-on instructions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 14:35:46 -05:00
DJP
e9acff76c5 Add comprehensive A1→A4 workflow diagram with A5-A6 rejection cycle at top
Adds master flowchart at document start showing complete workflow from
campaign creation through approval, including legal/compliance rejection
and rework cycles.

Master Workflow Diagram Features:

7 Phases Visualized:
1. Campaign Creation (A1 setup)
2. A1→A2 Master Download (automated every 5 min)
3. Agency Localization + CreativeX Scoring
4. A2→A3 Derivative Upload (automated)
5. Legal/Compliance/Brand Approval
6. A5→A6 Rejection Download (automated)
7. Agency Rework + Re-upload

Rejection Cycle Details:
- Legal reviewer adds compliance comments
- IA&CC reviewer adds brand guideline feedback
- General approver adds creative feedback
- All comments sent to agency in single email
- Agency fixes issues
- Re-scores with CreativeX (mandatory)
- Re-uploads with SAME tracking ID but NEW job number
- Re-enters A2→A3 flow (can repeat multiple times)

Color Coding:
🟣 Purple - CreativeX scoring (CRITICAL, highlighted twice)
🔵 Blue - Tracking IDs (critical links)
🔴 Red - Rejection path and comments
🟢 Green - Success/completion
🟠 Orange - Rework loop warnings

Critical Requirements Called Out:
1. "🔴 CRITICAL: Submit EVERY derivative to CreativeX"
   - 200 derivatives = 200 analyses required
   - Emphasized in agency phase

2. "🔴 Re-submit to CreativeX"
   - MUST get new score for fixed version
   - Emphasized in rework phase

3. Legal/IA&CC/Approver comment flow
   - Shows 3 different reviewer types
   - All feedback consolidated in email

4. Tracking ID reuse
   - Blue highlighting shows where tracking IDs critical
   - Same ID used throughout rework cycles

Example Shown:
- Original: 6666_NUT_SUMMER_OLV_30S_16x9_DE_de_pOiJ9s.mp4
- Rework:  7777_NUT_SUMMER_OLV_30S_16x9_DE_de_pOiJ9s.mp4
           ↑ New job number, SAME tracking ID ↑

Decision Points Visualized:
- All assets successful? (A1→A2)
- Score found in database? (A2→A3)
- Approved? (A3 review)
- Loops back if rejected

Placement:
- At very top of document (lines 11-136)
- Before Table of Contents
- First thing users see
- Sets context for entire guide

Impact:
Users immediately see complete workflow including rejection paths and
understand CreativeX is required at TWO points: initial upload AND rework.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 14:22:05 -05:00