Skip to content

Conversation

@bjester
Copy link
Member

@bjester bjester commented Dec 17, 2025

Summary

  • Refactors restore_channel management command to be more robust and useful for restoring channels for local development:
    • No longer downloads content by default
    • Properly restores exercises if API token is provided
    • Supports making the channel public and publishing it after restoration
    • Better progress and logging of restoration
  • Adds nginx to services started through Makefile make dcservicesup for proxying both devserver and content in development
  • Adds composite and read-only storage pass through for development like non-production server environments
  • Folds presigned URL handling for uploads into storage structure to eliminate duck typing

References

Supports ongoing improvements to curriculum automation (search recommendations)

Reviewer guidance

  1. Restoring a channel: python contentcuration/manage.py restore_channel --editor a@a.com --source-url https://studio.learningequality.org --public --publish --token <your_studio_token> <channel_id> (the following is a small channel: d0ef6f71e4fe4e54bb87d7dab5eeaae2)
  2. Start development server make run-services then pnpm run devserver
  3. Log into local studio
  4. Open the restored channel
  5. Observe you can see the PDF and video resources without having downloaded them (proxying through nginx to the cloud)
  6. Observe the channel exercises are properly restored
  7. Observe new 'Download file' feature now does not simply open the file in a new tab

Notes

I simply deleted the existing tests for the channel restoration. Since it's a development only command, the tests usefulness are questionable, but I'm willing to add tests later if it's desired.

@bjester bjester force-pushed the easy-channel-restoration2 branch from 5d36345 to 6b0a37f Compare December 17, 2025 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants