Big-Link-Man/STORY_4.4_IMPLEMENTATION_SU...

2.9 KiB

Story 4.4: Post-Deployment Verification - Implementation Summary

Status: COMPLETE

Story points: 5

Overview

Implemented a simple CLI command to verify deployed URLs return 200 OK status.

Implementation

New CLI Command

Added verify-deployment command to src/cli/commands.py:

uv run python main.py verify-deployment --batch-id <id> [--sample N] [--timeout 10]

Options:

  • --batch-id, -b: Project/batch ID to verify (required)
  • --sample, -s: Number of random URLs to check (optional, default: check all)
  • --timeout, -t: Request timeout in seconds (default: 10)

Core Functionality

  1. Queries database for deployed articles in specified batch
  2. Filters articles with deployed_url and status='deployed'
  3. Makes HTTP GET requests to verify 200 OK status
  4. Supports checking all URLs or random sample
  5. Clear output showing success/failure for each URL
  6. Summary report with total checked, successful, and failed counts

Code Changes

  • Modified: src/cli/commands.py
    • Added imports: requests, random
    • Added verify_deployment() command function

Acceptance Criteria Verification

  • CLI command available: verify-deployment --batch_id <id>
  • Takes batch ID as input
  • Retrieves URLs for all articles in batch from database
  • Makes HTTP GET requests to sample or all URLs
  • Reports which URLs return 200 OK and which do not
  • Clear, easy-to-read output
  • Can be run manually after deployment

Usage Examples

Verify all URLs in a batch:

uv run python main.py verify-deployment --batch-id 10

Verify random sample of 5 URLs:

uv run python main.py verify-deployment --batch-id 10 --sample 5

Custom timeout:

uv run python main.py verify-deployment --batch-id 10 --timeout 30

Sample Output

Verifying deployment for batch: My Project (ID: 10)
Keyword: main keyword

Found 25 deployed articles
Checking all 25 URLs

✓ https://example.com/article-1.html
✓ https://example.com/article-2.html
✗ https://example.com/article-3.html (HTTP 404)
...

======================================================================
Verification Summary
======================================================================
Total checked:  25
Successful:     24
Failed:         1

Failed URLs:
  https://example.com/article-3.html
    Title: Article Three Title
    Error: 404

======================================================================

Dependencies

  • requests==2.32.5 (already in requirements.txt)

Testing

  • Command help output verified
  • Follows existing CLI command patterns
  • Simple, focused implementation per user requirements

Notes

  • No authentication required (read-only operation)
  • Uses existing database repositories
  • Minimal dependencies
  • No freelance features added - strictly adheres to acceptance criteria
  • Can be integrated into auto-deploy workflow in future if needed