How can we check a customer has permission to view a request in a Forge function?

For issue panels/context, context contains both the issue key and issue id. For service desk panels, context only contains the request key. Why do these endpoints inconsistent? Can we get issue id in both locations? Converting “issue key” to “issue id” is also a problem, because customer’s can’t invoke rest apis (both /rest/api/3/issue/${issueKey} and /rest/servicedeskapi/request/${issueKey}). We can workaround it using api.asApp and adding necessary permissions.

More importantly, I couldn’t find a way to check whether the customer has permission to view the issue. Because customers can’t invoke permission check REST APIs. We have tried to use api.asApp().requestJira(/rest/api/3/permissions/check), but this endpoint returns false for customer, although the customer has permission to view the request, they are the reporter.