First off, I love the new design and lower latency of the extension management API, bravo!
Not sure where best to share this feedback, since it’s the result of a combination of changes since I developed last year, but has added up to make the dev workflow really painful:
- Only manually “whitelisted viewers” can access extensions that haven’t been reviewed. (An empty list no longer means anyone can access.)
- You can’t edit the streamer or viewer whitelists unless in Local Test
- You can’t put a different extension version in Hosted Test if an extension version is In Review / Ready to Release (IIRC)
This has culminated in making the previous workflow for quickly iterating and testing on game-matched extensions no longer possible.
Especially given that there is now a clear viewer disclosure UI, why require a manually restricted whitelist of viewers to test a Hosted Test extension with? It requires a click-through either way.
From what I heard on Discord we need to now fully review and release an extension to test it out with a channel full of viewers.
The only remaining workflow for quickly iterating on extensions with multiple viewers right now is to manually:
- Move the extension into Local Test (since you now can’t edit the viewer whitelist while in Hosted Test)
- Add every single username of the channel’s current viewers to the extension’s list
- Re-set the extension to Hosted Test
- Instruct the viewer in chat to reload, then accept the disclosure
- Repeat (bringing the extension down for everyone else) any time a new viewer wants to join in
Given that you also can’t move a version into Hosted Test unless there are none in review / ready to release, all together (per recommendations of other devs) this means the best practice is to spin up separate local development, beta, and production extensions and wait for the beta extension to be fully reviewed (and have a beta extension listed live on the extension store?) before testing anything that requires more than a few viewers. Because every extension has different JWT signature keys, this means creating parallel versions / environments for the game client, the EBS/database, etc. so it authenticates with the right tokens. Additionally, by actually releasing a beta extension, you lose the benefit of the disclosure which indicates it is an extension that is not fully meant to be released.
I understand why each of those changes were meant to be improvements engineering/security-wise at the time, but they’ve added up to a really rough experience. I just wish I could still iterate on Twitch extensions in their natural habitat – on Twitch
Let me know if you have any questions about the dev/test workflow or recommendations of how to approach testing that is less painful than what I’ve been doing also happy to chat @ brian@doborog.com