Integrations · Catalog approvals
Catalog API
Programmatic team-support: define catalog rows, assign / approve / revoke grants, and fan out to the source system via a webhook on approval.
Mental model
- Catalog row = one resource type (e.g.
openai-team). Identified by slug; carries display copy, default description, owner. - Approval = a (catalog row, user) pair with state
pending/approved/revoked. - Direct assign = skip the request step; orchestrator creates an approved pair on day 0 (onboarding) or day -1 (off-boarding revoke).
Category machine slugs (v0.19.9)
New integrators: send a machine slug as your category value. The UI maps it to the localized emoji display label so you never have to ship copy in your payload. Legacy rows carrying a free-form display string are passed through verbatim.
| Machine slug | 中文显示 | English display |
|---|---|---|
| llm-backend | 🤖 公司付费 AI 订阅 | 🤖 Paid AI Subscriptions |
| network | 🔑 接入凭证 | 🔑 Access Credentials |
| inbound-integration | 📥 外部工具消息接入 | 📥 Inbound Integrations |
| outbound-integration | 📡 出站 Webhook | 📡 Outbound Webhooks |
| mcp-agent | 🧠 MCP / Agent | 🧠 MCP / Agent |
| dev-environment | 🖥 开发环境 | 🖥 Dev environment |
| cross-border-comm | 📞 跨境通讯 | 📞 Cross-border Comms |
REST responses surface category (raw machine slug) plus categoryDisplay (server-rendered English label). i18n clients should ignore the latter and run their own lookup.
Assign a catalog row
Tools-token owner must be admin / hr_admin / super_admin. Idempotent: same (slug, email) → same approval row.
curl -X POST https://my.fluxdesk.net/api/v1/catalog/approvals \
-H "Authorization: Bearer flux-tools-EXAMPLE…" \
-H "Content-Type: application/json" \
-d '{
"catalog_slug": "openai-team",
"email": "[email protected]",
"action": "assign",
"note": "Onboarding kit"
}'Revoke a grant
Marks the approval revoked + fires an audit row. Source system should listen on the webhook and tear down its end (delete the SSH key, remove from team seat, etc.).
curl -X DELETE https://my.fluxdesk.net/api/v1/catalog/approvals \
-H "Authorization: Bearer flux-tools-EXAMPLE…" \
-H "Content-Type: application/json" \
-d '{
"catalog_slug": "openai-team",
"email": "[email protected]",
"reason": "off-boarded"
}'On-approve webhook
Configure an outbound webhook at /me/agent (per-employee — tenant-wide /admin/integrations is on the roadmap) and listen for team_support.approved events. Body carries the resolved (slug, user, approver, note) — enough to provision the resource downstream. Verify HMAC the same way as all other outbound events ( see outbound docs).
Full reference
- OpenAPI: /api/v1/openapi.json — see
/api/v1/catalog/*paths. - TypeScript SDK with
assignCatalog(): /integrations-examples/ts-sdk.ts - Real-world recipe: fd1 orchestrator