So a good chance that you might just need to add those, but as said, writing currently fails for me (silently, i.e. the call goes through without exceptions, and I can’t log the response when using the properties API)
@danielwinterw, your team mate can stop investigating here
For me it wasn’t clear if/which permission statement inside the manifest needed to be adjusted.
Maybe the forge deploy command could be enhanced to show some hints.
(Btw: the documentation shows response 404, not 403 )
@hopel, this sample app uses only REST API call to get/set page properties.
So it seems the confluence:props permission will be needed in all these cases.