feat(api): public API plan gating, docs auth, and dashboard snippets (#701)

* fix(automation): align public API plan gating across cloud and self-hosted

Add shared canUsePublicApi helper so cloud allows Early Adopter and
Enterprise while self-hosted requires Enterprise. Update the API key
dashboard page and backend key creation checks to use the same rules.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(api): document bearer auth on public API reference

Add shared OpenAPI enrichment with bearerAuth security scheme and
authentication instructions. The interactive reference now loads an
enriched spec with Authorize support, and the API guide explains how
to create and use org API keys.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* feat(dashboard): add API quick-start code snippets on automation page

Mirror the MCP client setup section with cURL, JavaScript, and Python
examples that show how to authenticate public API requests with org keys.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* ci(openapi): republish spec when public API OpenAPI helpers change

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* feat(dashboard): add Go snippet to API quick-start examples

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(api): use /org/*/api and clarify dashboard key generation path

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(api): escape backticks in OpenAPI description template literal

Greptile flagged that unescaped backticks around * in
PUBLIC_API_OPENAPI_DESCRIPTION evaluated to NaN and dropped auth docs
from the Scalar spec. Also use plan-specific snackbar message on upgrade.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
This commit is contained in:
Rotimi Best
2026-07-02 11:24:33 +01:00
committed by GitHub
co-authored by Rotimi Best Cursor Agent
parent 447e54b1f4
commit fe9f8c441f
25 changed files with 476 additions and 137 deletions
@@ -503,7 +503,8 @@
"download_lessons": "Führen Sie ein Upgrade durch, um Lektionen herunterzuladen",
"download_course": "Upgrade zum Download-Kurs",
"required": "Upgrade erforderlich",
"enterprise_required": "Für diese Funktion ist ein Enterprise-Plan erforderlich."
"enterprise_required": "Für diese Funktion ist ein Enterprise-Plan erforderlich.",
"public_api_required": "Upgrade auf Early Adopter oder Enterprise, um auf die öffentliche API zuzugreifen."
},
"analytics": {
"title": "Analytik",
@@ -3892,6 +3893,10 @@
"save": "Create key"
}
},
"setup": {
"title": "Schnellstart",
"description": "Verwenden Sie Ihren API-Schlüssel als Bearer-Token bei jeder Anfrage. Ersetzen Sie den Platzhalter durch einen Schlüssel von oben oder fügen Sie das Geheimnis direkt nach der Erstellung ein."
},
"view_docs": "View Docs"
},
"keys": {
@@ -3916,7 +3921,11 @@
"claude_code": "Claude Code",
"codex": "Kodex",
"cursor": "Cursor",
"opencode": "OpenCode"
"opencode": "OpenCode",
"curl": "cURL",
"javascript": "JavaScript",
"python": "Python",
"go": "Go"
},
"tabs": {
"mcp": "MCP",