When we change a course tab's visibility via the Tabs API, the change does get saved (the Settings > Navigation page looks correct) but the change does not take effect. For example, if we hide a tab using "PUT /api/v1/courses/:course_id/tabs/:tab_id" with a body containing hidden=true, the tab remains visible in the course nav until we go into the Settings > Navigation page and hit "save".
It seems to me like the course navigation is cached, and changing it via the API does not clear that cache (while changing it via the UI does).
Is anyone aware of a workaround to force the course navigation to be cleared after we change the nav via API? We'd like to be able to make some nav changes across many courses via the API, but we need to be able to make the changes take effect in a predictable fashion.
(I will try to file a bug with Instructure about the failure to clear the cache.)
Solved! Go to Solution.
I was mistaken! Changes made via the API do take effect immediately; in this case they just aren't doing what I'd hoped <facepalm>.
I was trying to remove the Syllabus item from the course navigation, but I forgot that for built-in features, hiding the item only hides it for students -- admins/teachers still see the item (with a not-visible icon next to it).
So it turns out that for built-in items like the Syllabus there is no way to do exactly what I want -- oh well!