server.externalEndpoints is documented in the config schema and my config validates against config-file.v1.json. After devvit upload, devvit view correctly reports "Can be invoked by third-parties outside of Reddit", so the endpoint does register.
At runtime, however, externalEndpoints.getExternalUrl() fails:
7 PERMISSION_DENIED: grpc invocation failed with status 7;
external endpoints are not enabled for this app
Details
|
|
| App |
valuehalla (owner u/plainselling) |
| Installed in |
r/valuehalla_dev |
| Devvit version |
0.14.0 |
| Config |
server.externalEndpoints.corpus → /external/corpus, scopes ["global"] |
"server": {
"dir": "dist/server",
"entry": "index.cjs",
"externalEndpoints": {
"corpus": {
"endpoint": "/external/corpus",
"scopes": ["global"]
}
}
}
Use case
The app reads subreddit listings and computes term-frequency statistics over the posts. I'd like our own data pipeline to pull those results out on a schedule, rather than pushing them to a webhook we'd have to keep online. The pull model in the @devvit/external-endpoints README ("Long-term Managed App Tokens Calls") is exactly the shape we want.
Questions
- Is this feature gated behind an allowlist? If so, what is the process to request access?
- Is there a way to mint a long-lived managed app token? I couldn't find a CLI command for it, and the README describes them as "managed by the app developer" without saying where.
If the feature isn't generally available yet, it would be worth saying so in the schema description — [experimental] reads as "may change", not "will not work until enabled". Everything short of the runtime call succeeds, including validation and the capability line in devvit view, so there's no signal that access is required until you hit PERMISSION_DENIED.
server.externalEndpointsis documented in the config schema and my config validates againstconfig-file.v1.json. Afterdevvit upload,devvit viewcorrectly reports "Can be invoked by third-parties outside of Reddit", so the endpoint does register.At runtime, however,
externalEndpoints.getExternalUrl()fails:Details
valuehalla(owner u/plainselling)server.externalEndpoints.corpus→/external/corpus, scopes["global"]Use case
The app reads subreddit listings and computes term-frequency statistics over the posts. I'd like our own data pipeline to pull those results out on a schedule, rather than pushing them to a webhook we'd have to keep online. The pull model in the
@devvit/external-endpointsREADME ("Long-term Managed App Tokens Calls") is exactly the shape we want.Questions
If the feature isn't generally available yet, it would be worth saying so in the schema description —
[experimental]reads as "may change", not "will not work until enabled". Everything short of the runtime call succeeds, including validation and the capability line indevvit view, so there's no signal that access is required until you hitPERMISSION_DENIED.