We're trying to determine if there's a way to set the position of external tools such as LTIs in the Course navigation menu globally for all courses?
From what I can see we could utilize the Tabs API to reorder the menu items but that would very inefficient as that would require one call per course and we have thousands of courses.
If there isn't a way to dictate the position of an external tool globally is there a way to do so with a custom LTI? From what I can see the LTI navigation options only dictate whether the LTI appears in the account or course menus.
As far as I'm aware, for existing courses, using the API is the only way to really do this. As you've outlined, you'd have to do possibly a few API calls per course to accomplish this, but it is technically doable (we have about 50000 courses in our instance, and I just ran a tabs update script yesterday as we're changing out an external tool's lti 1.1 version to a 1.3 version and we wanted it to be a seamless update that put the course navigation tab of the new tool back where the old one was). For courses that haven't yet been created, you could use the course templates feature to set up a default course shell how you'd like it (including the navigation positions), and when creating a new course it would have everything you setup in your default template. The teacher could still modify things though, so I'm not quite sure if you are trying to prevent that as well.
Does this help at all?