Summary
section 系 endpoint が OAuth の granular scopes 構成で 403 になりうる。現状の CLI は section コマンド群を公開しているが、task-full preset と README ではこの制約が分かりにくい。
Background
実際に asana section list-for-project --project-gid <gid> が 403 になった一方で、同じ project に対する project get / task list-project は成功した。
また task list-project の memberships.section.name は取得できたため、project へのアクセス自体ではなく、section endpoint 固有の認可差分が疑われる。
公式 docs 上も granular scopes の一覧には以下は載っている:
GET /sections/{section_gid}/tasks
POST /sections/{section_gid}/addTask
一方で以下は scope 一覧に見当たらない:
GET /projects/{project_gid}/sections
GET /sections/{section_gid}
PUT /sections/{section_gid}
DELETE /sections/{section_gid}
POST /projects/{project_gid}/sections
POST /projects/{project_gid}/sections/insert
このため、granular scopes では section CRUD / list-for-project が使えず、Asana app 側を Full permissions にしないと使えない可能性が高い。
Expected
- README に
section 系 endpoint は Full permissions が必要な可能性が高いことを明記する
- OAuth login / scope preset 周辺でも section endpoint の制約を案内する
- 可能なら 403 時の hint を改善する
task-full preset で section endpoint まで使えると誤解しにくい表現にする
References
Summary
section系 endpoint が OAuth の granular scopes 構成で 403 になりうる。現状の CLI はsectionコマンド群を公開しているが、task-fullpreset と README ではこの制約が分かりにくい。Background
実際に
asana section list-for-project --project-gid <gid>が 403 になった一方で、同じ project に対するproject get/task list-projectは成功した。また
task list-projectのmemberships.section.nameは取得できたため、project へのアクセス自体ではなく、section endpoint 固有の認可差分が疑われる。公式 docs 上も granular scopes の一覧には以下は載っている:
GET /sections/{section_gid}/tasksPOST /sections/{section_gid}/addTask一方で以下は scope 一覧に見当たらない:
GET /projects/{project_gid}/sectionsGET /sections/{section_gid}PUT /sections/{section_gid}DELETE /sections/{section_gid}POST /projects/{project_gid}/sectionsPOST /projects/{project_gid}/sections/insertこのため、granular scopes では section CRUD / list-for-project が使えず、Asana app 側を
Full permissionsにしないと使えない可能性が高い。Expected
section系 endpoint はFull permissionsが必要な可能性が高いことを明記するtask-fullpreset で section endpoint まで使えると誤解しにくい表現にするReferences