Scopes define the range of things an app can do in Manabu2. You choose them as checkboxes on the app registration screen. This article explains what each scope means and why some can only be granted by organization admins.
The key idea: a scope is a ceiling
Get this wrong and you'll get your settings wrong.
- The scopes allowed for the app (what you set on this screen)
- The scopes the app requested at sign-in
- The permissions of the user who signed in
So even if you allow an app read:reports, a regular employee who has no permission to view reports still can't get reports through that app. Allowing a scope does not give users any permissions.
List of scopes
Learner scopes (developers can allow these)
| Scope | Meaning | Typical use |
|---|---|---|
read:catalog |
View courses (コースを見る) | Listing courses, learning paths and certificates |
read:content |
Read lesson content (レッスン内容を読む) | Fetching lesson text, materials and quiz questions |
read:progress |
View own progress (自分の進捗を見る) | Showing the user's own progress, assignments and certificates |
write:progress |
Record progress (進捗を記録する) | Recording lesson views and completions, submitting quizzes |
A mobile app for learners usually needs only these four.
Admin scopes (only organization admins can allow these)
| Scope | Meaning | Typical use |
|---|---|---|
read:members |
View members (メンバーを見る) | Getting the organization's member list |
write:members |
Change members (メンバーを変更する) | Syncing employee data with your HR system |
read:reports |
View reports (レポートを見る) | Feeding learning data into a BI tool |
webhooks:manage |
Manage webhooks (Webhook を管理する) | Registering and removing event notifications |
write:content |
Edit learning content (教材を編集する) | Creating and editing courses, sections, lessons and tests |
apps:manage |
Manage apps (アプリを管理する) | Registering, changing and deactivating this organization's apps |
Why admin scopes are kept separate
If a scope is only a ceiling and never grants permissions, it might seem fine to let developers pick whatever they like. But there is one loophole.
write:members, and then an organization admin or HR staff member signs in to it. The token they get carries write:members. That token is then delivered to the redirect URI the developer chose, into code the developer wrote.
That's why granting admin scopes is limited to organization admins. Admins already hold those permissions themselves, so nothing new can be gained this way.
Choosing scopes in practice
read:catalogread:contentread:progresswrite:progress
read:catalogread:progress
If you only display data, you don't need write access.
read:memberswrite:members
An API key may be a better fit for this.