curl --request POST \
--url https://spectrum.photon.codes/projects/{projectId}/slack/setup \
--header 'Content-Type: application/json' \
--data '
{
"appName": "<string>",
"enabledFeatures": [
"<string>"
],
"configToken": "<string>",
"refreshToken": "<string>"
}
'{
"succeed": true,
"data": {
"ok": true,
"appId": "<string>",
"startUrl": "<string>"
}
}Creates (or looks up) the project’s Slack app by forwarding to spectrum-slack’s POST /install/manifest. Body carries a Slack workspace-admin configToken (xoxe.xoxp-...) — required on first install — and an optional paired refreshToken (xoxe-...). When supplied, the refresh token is persisted (plaintext today, TODO(kms)) on spectrum-cloud’s slack_apps.refresh_token so the manifest can be auto-updated later via tooling.tokens.rotate + apps.manifest.update.
Use this when the dashboard wants a single API surface for everything Slack-related. The functionally equivalent path is to hit spectrum-slack’s /install/manifest directly with the same body plus projectId.
Returns the new appId (or null on the re-install short-circuit before any workspace has completed OAuth) and the startUrl to continue the install flow. Upstream errors are surfaced as 4xx/5xx with the Slack error code in message.
curl --request POST \
--url https://spectrum.photon.codes/projects/{projectId}/slack/setup \
--header 'Content-Type: application/json' \
--data '
{
"appName": "<string>",
"enabledFeatures": [
"<string>"
],
"configToken": "<string>",
"refreshToken": "<string>"
}
'{
"succeed": true,
"data": {
"ok": true,
"appId": "<string>",
"startUrl": "<string>"
}
}Documentation Index
Fetch the complete documentation index at: https://docs.photon.codes/docs/llms.txt
Use this file to discover all available pages before exploring further.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Was this page helpful?