I love this approach. Storing the relevant metadata with the repo itself so the WSGI process can use it on a per request basis is slick. I also like that it's keyed off of publish and honors the platform notion of "committing" changes made to the associations.