Project Author Update Scripts

This directory contains scripts to update existing projects in Gigya DS with proper author names where they are missing or set to "Unknown".

Scripts

1. update-project-authors.ts (Basic Version)

A straightforward script that updates projects with missing or "Unknown" authors.

Features:

  • Fetches all projects from Gigya DS
  • Identifies projects needing author updates
  • Updates them with author data from data.json
  • Provides summary statistics

2. update-authors-advanced.ts (Advanced Version)

A comprehensive script with additional features and configuration options.

Features:

  • Dry run mode to preview changes
  • Batch processing with rate limiting
  • Detailed analysis and reporting
  • Configurable update criteria
  • Better error handling and logging
  • Author name cleanup and formatting

Prerequisites

  1. Environment Variables:

    export GIGYA_API_KEY="your_api_key" export GIGYA_APP_KEY="your_app_key" export GIGYA_APP_SECRET="your_app_secret" export GIGYA_DOMAIN="accounts.eu1.gigya.com" # Optional, defaults to EU1
  2. Data Source:

    • Ensure data.json exists in the same directory
    • The file should contain project data with author information

Usage

Basic Script

# Run the basic update script npx tsx update-project-authors.ts

Advanced Script

Preview Changes (Dry Run)

# Preview what would be updated without making changes DRY_RUN=true npx tsx update-authors-advanced.ts

Update All Missing Authors

# Update both missing and "Unknown" authors npx tsx update-authors-advanced.ts

Update Only "Unknown" Authors

# Only update projects where author is specifically "Unknown" UPDATE_UNKNOWN_ONLY=true npx tsx update-authors-advanced.ts

Configuration Options (Advanced Script)

Environment VariableDefaultDescription
DRY_RUNfalsePreview changes without applying them
UPDATE_UNKNOWN_ONLYfalseOnly update "Unknown" authors, not missing ones
GIGYA_DOMAINaccounts.eu1.gigya.comGigya domain to use

What Gets Updated

The scripts will update projects where the author field is:

  • undefined or null
  • Empty string ("")
  • Set to "Unknown"
  • Set to "undefined" or "null" (string values)

Note: If UPDATE_UNKNOWN_ONLY=true, only projects with author exactly equal to "Unknown" will be updated.

Author Name Processing

The advanced script includes author name cleanup:

  • User IDs like I123456 become User I123456
  • Bot names like osvote[bot] become osvote (Bot)
  • Other names are used as-is

Output

Both scripts provide detailed logging including:

  • Projects being processed
  • Update success/failure status
  • Summary statistics
  • Verification of changes

Example Output

šŸ” Starting author update process...
šŸ“„ Found 25 existing projects
šŸ“ Created lookup for 20 projects with author data

šŸ”„ Updating "bolt.diy" with author: "I347305"
āœ… Successfully updated "bolt.diy"

šŸ“Š Update Summary:
āœ… Successfully updated: 15 projects
ā­ļø  Skipped: 8 projects
āŒ Errors: 0 projects
šŸ“ Total processed: 23 projects

Error Handling

  • Network errors are caught and reported
  • Individual project failures don't stop the entire process
  • Rate limiting prevents API overload
  • Detailed error messages help with troubleshooting

Safety Features

  • Dry run mode allows previewing changes
  • Batch processing with delays prevents rate limiting
  • Verification step confirms updates were applied
  • Backup consideration: The scripts update existing records, so consider backing up your data first

Troubleshooting

  1. Missing Environment Variables:

    • Ensure all required Gigya credentials are set
    • Check that the domain is correct for your region
  2. No Projects Updated:

    • Verify data.json contains author information
    • Check that project titles match between DS and data.json
    • Use dry run mode to see what would be updated
  3. API Errors:

    • Check your Gigya credentials and permissions
    • Verify the DS schema exists and is accessible
    • Ensure rate limits aren't being exceeded
  4. Author Data Not Found:

    • Verify the project exists in data.json
    • Check that the title normalization (cabbabCase) matches
    • Some projects may not have author data in the source

Next Steps

After running the update scripts:

  1. Verify Results: Check the application to ensure author names display correctly
  2. Manual Review: Review any projects that still need author assignment
  3. Data Quality: Consider implementing validation to prevent future author data issues
  4. Monitoring: Set up processes to ensure new projects include proper author information