If you kept the basic port of Backstage for local development (3000 for Frontend and 7007 for Backend) you are exposing the endpoint on the Frontend instead of the Backend of Backstage, which doesn't work I think.
So maybe try to remove the "port: 3000" line in your app-config.yaml for the configuration of the proxy.
Could you try a configuration like this :
proxy:
endpoints:
/graphql:
target: 'http://localhost:8083/graphql'
allowedMethods: ['GET', 'POST']
You can try to make a test with this then :
POST http://localhost:7007/api/proxy/graphql
Here is an example on how to call the proxy endpoint within Backstage:
// Inside your component
const backendUrl = config.getString('backend.baseUrl'); // e.g. http://localhost:7007
fetch(`${backendUrl}/frobs-aggregator/summary`)
.then(response => response.json())
.then(payload => setSummary(payload as FrobSummary));
If you could provide more information on your configuration it could help pin down the problem 🙂 (like the full app-config.yaml, the code where the proxy endpoint is actually used in backstage, maybe in a plugin or a React component)
Regards,