Extend: can't run extend app on local env

Hi there,

Hope this is the right place to have this topic.
The idea of Extend feature is really cool.
I am starting with the doc(Getting started with the service extension | AccelByte Documentation) and got an issue which is really bothering me.

It is like this.
When I run the C# template and tested the gRPC API, I got this error log:

{
  "code": 13,
  "message": "Status(StatusCode=\"PermissionDenied\", Detail=\"Permission ADMIN:NAMESPACE:{namespace}:CLOUDSAVE:RECORD [Create] is required.\")",
  "details": []
}

In the readme doc, it said:

   > :info: Make sure the user has a role which contains this permission: 
   `ADMIN:NAMESPACE:{namespace}:CLOUDSAVE:RECORD [CREATE,READ,UPDATE,DELETE]`.

I had a check on my account. It has the role of the game studio and the game admin.
And I had a check on the IAM client. It has all the permission as the doc, the shared cloud part:

Create an OAuth Client with confidential client type containing the following permissions:

For AGS Private Cloud customers:
ADMIN:ROLE [READ]
ADMIN:NAMESPACE:{namespace}:NAMESPACE [READ]
ADMIN:NAMESPACE:{namespace}:CLOUDSAVE:RECORD [CREATE,READ,UPDATE,DELETE]

For AGS Shared Cloud customers:
IAM > Roles (Read)
Basic > Namespace (Read)
Cloud Save > Game Records (Create, Read, Update, and Delete)

But the extend app on the cloud works fine. I followed the rest the doc, built the image and got it run on the cloud and verified.
So the issue would be the extend app can’t be run on the local env for a shared subscription.
I hope it is not as the designed.
Because the developer need to test and debug a lot before all the logic is steady.
You know, for every changes, I have to build a image and upload it to the cloud and I can’t debug it.
It is really upset.

So please please tell me that there is something wrong with my config or somewhere else.

Hi @user18 ,

Thanks for trying out Extend. Extend app should be works fine on local environment to facilitate faster development.

For your issue, this is probably permission issue while Extend app trying to access Cloudsave service.

What kind of method did you use to test it? and can you also share the test request payload ? Are you using the same namespace defined in your env file and in your request payload?

Thank you.

Hi rinardi,

Thanks for the reply.

It is this official example with my own game parameters:
git clone GitHub - AccelByte/extend-service-extension-csharp: A sample Extend Service Extension app written in C#

AB_BASE_URL=https://redacted.prod.gamingservices.accelbyte.io
AB_NAMESPACE=redacted
AB_CLIENT_ID=8673…
AB_CLIENT_SECRET=…
PLUGIN_GRPC_SERVER_AUTH_ENABLED=true
BASE_PATH=/ext-redacted-ExtendLogicServer

Hi @user18

Your env file looks good.

What about the request payload for the local test? Did they use the same namespace as the one mentioned in env file?

Hi rinardi,

I had a try just now.
Guess what, it works now!
Thank you very much!

1 Like

Hi @user18 ,
Glad that you’re able to get Extend apps to work in your local!

re: You know, for every changes, I have to build a image and upload it to the cloud and I can’t debug it.
It is really upset.

You can troubleshoot your Extend app in the cloud using Grafana Cloud. It’s one of the Extend Observability tools. This doc will help you get up to speed with this topic: Introduction to Extend Observability | AccelByte Documentation