DRAFT

Declare what your app does

An app is a draft PartnerApp row: a call direction, the capabilities it reads, and — if it calls out — an endpoint Sunesix calls into. There's no code to upload; everything your app does runs on your own infrastructure.

Call direction

  • INBOUND — your service calls Sunesix (an AI-agent builder reading tenant data or invoking a model).
  • OUTBOUND — Sunesix calls your service mid-request for an allow/block verdict (a guardrail vendor).
  • BOTH — an app can do both.

OUTBOUND apps also declare outbound_endpoint_url, an outbound_secret for signature verification, and a failure_modeFAIL_OPEN or FAIL_CLOSED — for what happens if your endpoint is unreachable.

Capabilities

Request only what your app needs. Every capability maps to the same data a Company Admin already sees in their own UI — nothing more.

CapabilityRead scope
conversations.readAI conversation history for the installing company.
employees.readEmployee profiles.
usage.readToken usage series.
ai.invokeCall the gateway to run inference, clamped to an allowed-models list a reviewer sets at approval.

Create the draft

POST /partner-apps/developer/apps/
{
  "name": "Acme Prompt Guard",
  "call_direction": "OUTBOUND",
  "capabilities_requested": [],
  "outbound_endpoint_url": "https://guard.acme.io/hooks/verdict",
  "failure_mode": "FAIL_CLOSED",
  "version": "0.1.0"
}

A draft is yours alone — nothing here is visible to any company yet. Edit it freely until you're ready to test it.