Skip to content

v1.8.0 - AnalyticsReport Status Tracking

Choose a tag to compare

@Min-june Min-june released this 05 Feb 02:56
· 85 commits to main since this release
e2cd231

πŸŽ‰ What's New in v1.8.0

✨ New Features

AnalyticsReport Status Tracking

Added comprehensive status tracking capabilities to AnalyticsReport, enabling better monitoring and management of report processing states.

New Status Enum:

  • AnalyticsReportStatus.PENDING - Report is waiting to be processed
  • AnalyticsReportStatus.IN_PROGRESS - Report is currently being processed
  • AnalyticsReportStatus.COMPLETED - Report processing completed successfully
  • AnalyticsReportStatus.FAILED - Report processing failed

New Fields:

  • status - Current processing status of the report
  • completed_at - Timestamp when report processing completed (auto-set when status becomes COMPLETED)

New Filtering:

  • statusIn filter in AnalyticsReportsFilterOptions - Filter reports by multiple status values
  • Example: Find all COMPLETED or FAILED reports

Status Update Support:

  • Added status parameter to update_analytics_report() method
  • Enables status transitions during report lifecycle (e.g., PENDING β†’ IN_PROGRESS β†’ COMPLETED)

πŸ“ Documentation Updates

  • Updated RELEASE_PROCESS.md with file-based PR and release notes creation methods
  • Improved deployment workflow to avoid terminal output issues

πŸ”§ Technical Details

Modified Files:

  • spb_onprem/reports/entities/analytics_report.py - Added AnalyticsReportStatus enum and status/completed_at fields
  • spb_onprem/reports/params/analytics_reports.py - Added statusIn filter parameter
  • spb_onprem/reports/params/update_analytics_report.py - Added status parameter
  • spb_onprem/reports/queries.py - Updated GraphQL queries for status fields
  • spb_onprem/reports/service.py - Added status parameter support
  • spb_onprem/__init__.py, spb_onprem/entities.py, spb_onprem/reports/__init__.py, spb_onprem/reports/entities/__init__.py - Updated exports
  • tests/reports/test_workflow.py - Added comprehensive status tests (13 steps)
  • RELEASE_PROCESS.md - Updated deployment process documentation

βœ… Testing

  • βœ… All tests passing (13-step workflow test)
  • βœ… Status field verification on report creation
  • βœ… Status transition tests (PENDING β†’ IN_PROGRESS β†’ COMPLETED)
  • βœ… completedAt field auto-setting verification
  • βœ… statusIn filter testing with single and multiple status values
  • βœ… Full workflow test covering all status scenarios

πŸ’‘ Usage Example

from spb_onprem import ReportService, AnalyticsReportStatus, AnalyticsReportsFilter, AnalyticsReportsFilterOptions

report_service = ReportService()

# Update report status
report = report_service.update_analytics_report(
    dataset_id=dataset_id,
    report_id=report_id,
    status=AnalyticsReportStatus.IN_PROGRESS
)

# Filter by status
filter_opts = AnalyticsReportsFilter(
    must_filter=AnalyticsReportsFilterOptions(
        status_in=[AnalyticsReportStatus.COMPLETED, AnalyticsReportStatus.FAILED]
    )
)
reports, _, _ = report_service.get_analytics_reports(
    dataset_id=dataset_id,
    analytics_reports_filter=filter_opts
)

πŸ”„ Backward Compatibility

This release is 100% backward compatible. All existing code will continue to work without modifications.

πŸ”— Related

  • Implements PR #75
  • Aligns with backend PR #259

Full Changelog: v1.7.0...v1.8.0