@graph8/sdk 0.251.0 → 0.260.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/README.md +9 -2
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +104 -7
  4. package/dist/index.d.ts +104 -7
  5. package/dist/index.js +44 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +44 -3
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +102 -7
  10. package/dist/react.d.ts +102 -7
  11. package/dist/react.js +62 -11
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +53 -12
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1696 -0
  140. package/docs/api/deals.md +2432 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
@@ -0,0 +1,281 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.appDomains`: App Domains
4
+
5
+ 5 operations (2 read, 2 write, 1 destructive).
6
+
7
+ 4 of these also have a hand-written method (`g8.appPlatform`), marked **★** below. Prefer the hand-written method when one exists: it unwraps the `data` envelope and takes friendlier arguments. See [../sdk-clients.md](../sdk-clients.md).
8
+
9
+ Every example below assumes this setup (server-side, API key):
10
+
11
+ ```ts
12
+ import { g8 } from "@graph8/sdk";
13
+
14
+ g8.init({ apiKey: process.env.G8_API_KEY! });
15
+ ```
16
+
17
+ Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
18
+
19
+ Exact TypeScript types for every operation on this page, and every schema they use: [appDomains.d.ts](appDomains.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`claimAppDomain`](#op-claimappdomain) ★ | `POST /api/v1/apps/{app_id}/domains` | write | `apps:write` | Claim App Domain |
26
+ | [`listAppDomains`](#op-listappdomains) ★ | `GET /api/v1/apps/{app_id}/domains` | read | `apps:read` | List App Domains |
27
+ | [`releaseAppDomain`](#op-releaseappdomain) ★ | `DELETE /api/v1/apps/{app_id}/domains/{hostname}` | destructive | `apps:delete` | Release App Domain |
28
+ | [`tlsAuthorize`](#op-tlsauthorize) | `GET /api/v1/app-platform/tls-authorize` | read | | Tls Authorize |
29
+ | [`verifyAppDomain`](#op-verifyappdomain) ★ | `POST /api/v1/apps/{app_id}/domains/{hostname}/verify` | write | `apps:write` | Verify App Domain |
30
+
31
+ ---
32
+
33
+ <a id="op-claimappdomain"></a>
34
+
35
+ ### `g8.api.appDomains.claimAppDomain(input)`
36
+
37
+ **Claim App Domain**
38
+
39
+ - HTTP: `POST /api/v1/apps/{app_id}/domains`
40
+ - operationId: `claim_app_domain_apps__app_id__domains_post` (also callable as `g8.api.call("claim_app_domain_apps__app_id__domains_post", input)`)
41
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
42
+ - API-key scope: `apps:write`
43
+ - ★ Hand-written: [`g8.appPlatform.claimDomain()`](../sdk-clients.md#g8-appplatform-claimdomain)
44
+
45
+ Claim a hostname and return the TXT record proving you control it.
46
+
47
+ 409 when another app already holds the host. Hostnames are globally unique,
48
+ and a silent overwrite would let one builder take another's traffic -- which
49
+ is why `claim_domain` raises rather than upserting.
50
+
51
+ **Input**
52
+
53
+ | Field | Type | Required | Description |
54
+ |---|---|---|---|
55
+ | `path.app_id` | `string` | yes | |
56
+ | `body` | `ClaimDomainRequest` | yes | Request body; fields below. |
57
+ | `headers.X-Org-Id` | `string \| null` | no | |
58
+
59
+ Body fields (`ClaimDomainRequest`):
60
+
61
+ | Field | Type | Required | Description |
62
+ |---|---|---|---|
63
+ | `body.hostname` | `string` | yes | The hostname to serve this app on. Normalized server-side: case, a trailing dot and unicode all resolve to one canonical form. max length 253 |
64
+
65
+ **Returns** `ApiResponse_DomainVerificationInstructions_`: the envelope `{ data: DomainVerificationInstructions, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
66
+
67
+ Other envelope fields: `pagination` (PaginationMeta).
68
+
69
+ `DomainVerificationInstructions` fields:
70
+
71
+ | Field | Type | Required | Description |
72
+ |---|---|---|---|
73
+ | `domain` | `DomainResponse` | yes | |
74
+ | `record_name` | `string` | yes | Create the record at this name, e.g. _graph8-challenge.app.example.com |
75
+ | `record_value` | `string` | yes | |
76
+ | `record_type` | `string` | no | default `"TXT"` |
77
+
78
+ **Example**
79
+
80
+ ```ts
81
+ const result = await g8.api.appDomains.claimAppDomain({ path: { app_id: "id" }, body: { hostname: "Example" } });
82
+ ```
83
+
84
+ ---
85
+
86
+ <a id="op-listappdomains"></a>
87
+
88
+ ### `g8.api.appDomains.listAppDomains(input)`
89
+
90
+ **List App Domains**
91
+
92
+ - HTTP: `GET /api/v1/apps/{app_id}/domains`
93
+ - operationId: `list_app_domains_apps__app_id__domains_get` (also callable as `g8.api.call("list_app_domains_apps__app_id__domains_get", input)`)
94
+ - Tier: `read`: reads data; safe to call and to retry
95
+ - API-key scope: `apps:read`
96
+ - ★ Hand-written: [`g8.appPlatform.listDomains()`](../sdk-clients.md#g8-appplatform-listdomains)
97
+
98
+ Every hostname claimed for this app, whatever its verification state.
99
+
100
+ **Input**
101
+
102
+ | Field | Type | Required | Description |
103
+ |---|---|---|---|
104
+ | `path.app_id` | `string` | yes | |
105
+ | `headers.X-Org-Id` | `string \| null` | no | |
106
+
107
+ **Returns** `ApiResponse_list_DomainResponse__`: the envelope `{ data: Array<DomainResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
108
+
109
+ Other envelope fields: `pagination` (PaginationMeta).
110
+
111
+ `DomainResponse` fields:
112
+
113
+ | Field | Type | Required | Description |
114
+ |---|---|---|---|
115
+ | `app_id` | `string` | yes | |
116
+ | `domain_id` | `string` | yes | |
117
+ | `hostname` | `string` | yes | The canonical, normalized form -- not necessarily what was submitted. |
118
+ | `status` | `string` | yes | |
119
+ | `created_at` | `string (date-time) \| null` | no | |
120
+ | `verified_at` | `string (date-time) \| null` | no | |
121
+
122
+ **Example**
123
+
124
+ ```ts
125
+ const result = await g8.api.appDomains.listAppDomains({ path: { app_id: "id" } });
126
+ ```
127
+
128
+ ---
129
+
130
+ <a id="op-releaseappdomain"></a>
131
+
132
+ ### `g8.api.appDomains.releaseAppDomain(input)`
133
+
134
+ **Release App Domain**
135
+
136
+ - HTTP: `DELETE /api/v1/apps/{app_id}/domains/{hostname}`
137
+ - operationId: `release_app_domain_apps__app_id__domains__hostname__delete` (also callable as `g8.api.call("release_app_domain_apps__app_id__domains__hostname__delete", input)`)
138
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
139
+ - API-key scope: `apps:delete`
140
+ - ★ Hand-written: [`g8.appPlatform.releaseDomain()`](../sdk-clients.md#g8-appplatform-releasedomain)
141
+
142
+ Release a claimed hostname.
143
+
144
+ Hostnames are globally unique across every app
145
+ (``uq_developer_app_domains_hostname``), so one typo permanently burned that
146
+ host for every builder on the platform with no public way to undo it. The
147
+ repository had get, list, claim and set_status, and no delete at all.
148
+
149
+ A HARD delete, not a `revoked` status. The uniqueness index does not care
150
+ about status, so a row left behind in any state keeps the host claimed while
151
+ looking to the builder like it was released.
152
+
153
+ OWNERSHIP IS CHECKED AGAINST THE STORED CLAIM, not just the app in the path.
154
+ `_require_own_app` proves the caller owns THIS app; the second check proves
155
+ the hostname belongs to that same app. Without it a builder could pass their
156
+ own app id and any hostname, and delete a competitor's claim -- the one thing
157
+ global uniqueness makes irreversible.
158
+
159
+ 404 for an unknown host or one held by another app, never 403: a 403 would
160
+ make a competitor's claim discoverable by probing.
161
+
162
+ Idempotent within your own app: releasing a host you have already released is
163
+ a 404, because after the first call the claim genuinely does not exist. The
164
+ delete itself reports whether a row went, and both answers are correct.
165
+
166
+ **Input**
167
+
168
+ | Field | Type | Required | Description |
169
+ |---|---|---|---|
170
+ | `path.app_id` | `string` | yes | |
171
+ | `path.hostname` | `string` | yes | |
172
+ | `headers.X-Org-Id` | `string \| null` | no | |
173
+
174
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
175
+
176
+ Other envelope fields: `pagination` (PaginationMeta).
177
+
178
+ **Example**
179
+
180
+ ```ts
181
+ // destructive: deletes or archives data; confirm with a human before calling.
182
+ const result = await g8.api.appDomains.releaseAppDomain({ path: { app_id: "id", hostname: "Example" } });
183
+ ```
184
+
185
+ ---
186
+
187
+ <a id="op-tlsauthorize"></a>
188
+
189
+ ### `g8.api.appDomains.tlsAuthorize(input)`
190
+
191
+ **Tls Authorize**
192
+
193
+ - HTTP: `GET /api/v1/app-platform/tls-authorize`
194
+ - operationId: `tls_authorize_app_platform_tls_authorize_get` (also callable as `g8.api.call("tls_authorize_app_platform_tls_authorize_get", input)`)
195
+ - Tier: `read`: reads data; safe to call and to retry
196
+ - API-key scope: none published
197
+
198
+ Caddy on-demand-TLS ask endpoint. PUBLIC, UNAUTHENTICATED, FAILS CLOSED.
199
+
200
+ Caddy issues a certificate when this returns 2xx. Answering 2xx for a host we
201
+ do not own would let anyone who points DNS at our edge have a publicly
202
+ trusted certificate minted by us.
203
+
204
+ 2xx ONLY for a hostname that exists AND is `verified`. Everything else is a
205
+ bare 404 with no body: distinguishing "unknown" from "known but unverified"
206
+ would make this a free oracle for which customers are onboarding.
207
+
208
+ It IS published in the contract. `include_in_schema=False` was the first
209
+ instinct -- it is infrastructure plumbing, not a customer API -- and it broke
210
+ an invariant: the operation manifest is derived from the OpenAPI spec while
211
+ `operation_tiers` is derived from the route table, so hiding a route makes
212
+ the two span different universes.
213
+ `test_the_manifest_covers_the_WHOLE_operation_universe` exists to catch
214
+ exactly that, and it went red on qa.
215
+
216
+ Hiding it was never a security control anyway -- the endpoint fails closed on
217
+ its own, and its existence is inferable from any Caddy config. Consistency
218
+ between the published contract and the route table is worth more than the
219
+ tidiness of an unlisted endpoint.
220
+
221
+ **Input**
222
+
223
+ | Field | Type | Required | Description |
224
+ |---|---|---|---|
225
+ | `query.domain` | `string` | yes | |
226
+
227
+ **Returns** `unknown`.
228
+
229
+ **Example**
230
+
231
+ ```ts
232
+ const result = await g8.api.appDomains.tlsAuthorize({ query: { domain: "acme.com" } });
233
+ ```
234
+
235
+ ---
236
+
237
+ <a id="op-verifyappdomain"></a>
238
+
239
+ ### `g8.api.appDomains.verifyAppDomain(input)`
240
+
241
+ **Verify App Domain**
242
+
243
+ - HTTP: `POST /api/v1/apps/{app_id}/domains/{hostname}/verify`
244
+ - operationId: `verify_app_domain_apps__app_id__domains__hostname__verify_post` (also callable as `g8.api.call("verify_app_domain_apps__app_id__domains__hostname__verify_post", input)`)
245
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
246
+ - API-key scope: `apps:write`
247
+ - ★ Hand-written: [`g8.appPlatform.verifyDomain()`](../sdk-clients.md#g8-appplatform-verifydomain)
248
+
249
+ Check DNS for the TXT record and advance the domain to `verified`.
250
+
251
+ Idempotent: verifying an already-verified domain re-checks and stays verified,
252
+ so a builder can re-run it after a DNS change without a special path.
253
+
254
+ **Input**
255
+
256
+ | Field | Type | Required | Description |
257
+ |---|---|---|---|
258
+ | `path.app_id` | `string` | yes | |
259
+ | `path.hostname` | `string` | yes | |
260
+ | `headers.X-Org-Id` | `string \| null` | no | |
261
+
262
+ **Returns** `ApiResponse_DomainResponse_`: the envelope `{ data: DomainResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
263
+
264
+ Other envelope fields: `pagination` (PaginationMeta).
265
+
266
+ `DomainResponse` fields:
267
+
268
+ | Field | Type | Required | Description |
269
+ |---|---|---|---|
270
+ | `app_id` | `string` | yes | |
271
+ | `domain_id` | `string` | yes | |
272
+ | `hostname` | `string` | yes | The canonical, normalized form -- not necessarily what was submitted. |
273
+ | `status` | `string` | yes | |
274
+ | `created_at` | `string (date-time) \| null` | no | |
275
+ | `verified_at` | `string (date-time) \| null` | no | |
276
+
277
+ **Example**
278
+
279
+ ```ts
280
+ const result = await g8.api.appDomains.verifyAppDomain({ path: { app_id: "id", hostname: "Example" } });
281
+ ```
@@ -0,0 +1,120 @@
1
+ /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
+
3
+ /**
4
+ * Types for `g8.api.appLogs` (App Logs): 2 operations.
5
+ *
6
+ * For reading. In code, import from the package instead:
7
+ * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
8
+ * type In = ApiInput<"get_app_logs_apps__app_id__logs_get">;
9
+ *
10
+ * Reference with examples: appLogs.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.appLogs.<member>` -> the operationId it calls. */
15
+ export interface AppLogsMembers {
16
+ getAppLogs: "get_app_logs_apps__app_id__logs_get";
17
+ getDeploymentLogs: "get_deployment_logs_apps__app_id__deployments__deployment_id__logs_get";
18
+ }
19
+
20
+ /** Input and output of every `g8.api.appLogs` operation, keyed by operationId. */
21
+ export interface AppLogsOperations {
22
+ /**
23
+ * GET /apps/{app_id}/logs
24
+ * Get App Logs
25
+ * tier: read · scope: apps:read
26
+ */
27
+ get_app_logs_apps__app_id__logs_get: {
28
+ input: {
29
+ path: {
30
+ app_id: string;
31
+ };
32
+ query?: {
33
+ /** Lines per replica, newest last. */
34
+ tail_lines?: number;
35
+ };
36
+ headers?: {
37
+ "X-Org-Id"?: string | null;
38
+ };
39
+ };
40
+ output: ApiResponse_AppLogsResponse_;
41
+ };
42
+ /**
43
+ * GET /apps/{app_id}/deployments/{deployment_id}/logs
44
+ * Get Deployment Logs
45
+ * tier: read · scope: apps:read
46
+ */
47
+ get_deployment_logs_apps__app_id__deployments__deployment_id__logs_get: {
48
+ input: {
49
+ path: {
50
+ app_id: string;
51
+ deployment_id: string;
52
+ };
53
+ query?: {
54
+ /** Lines per build step, newest last. */
55
+ tail_lines?: number;
56
+ };
57
+ headers?: {
58
+ "X-Org-Id"?: string | null;
59
+ };
60
+ };
61
+ output: ApiResponse_AppLogsResponse_;
62
+ };
63
+ }
64
+
65
+ // 4 schemas referenced above (the same as G8Contract.<Name>).
66
+
67
+ export interface ApiResponse_AppLogsResponse_ {
68
+ data: AppLogsResponse;
69
+ pagination?: PaginationMeta | null;
70
+ }
71
+
72
+ /**
73
+ * Logs for one app or one of its builds.
74
+ *
75
+ * ``redacted`` is always true and means only that graph8's credential patterns
76
+ * were applied. It is NOT a claim the output is safe to publish: these are a
77
+ * customer's own build and application logs, and an application can print a
78
+ * secret in a shape no pattern matches.
79
+ */
80
+ export interface AppLogsResponse {
81
+ app_id: string;
82
+ containers?: Array<ContainerLogResponse>;
83
+ /** Set for build logs. `null` for the running app's logs. */
84
+ deployment_id?: string | null;
85
+ /** The app's own Kubernetes namespace. Derived from the app id, never supplied. */
86
+ namespace: string;
87
+ redacted?: boolean;
88
+ /** Lines requested per container, after clamping to the server maximum. */
89
+ tail_lines: number;
90
+ }
91
+
92
+ /**
93
+ * One container's tail of output.
94
+ *
95
+ * A build is five steps in one pod (fetch, scan-source, build, scan-image,
96
+ * push), so a single flat blob would leave a caller unable to say which step
97
+ * failed. ``kind`` separates the four init steps from the one container, which
98
+ * is the ordering Kubernetes actually runs them in.
99
+ */
100
+ export interface ContainerLogResponse {
101
+ container: string;
102
+ kind: "init" | "container";
103
+ pod: string;
104
+ text: string;
105
+ /** The tail hit the per-container byte cap. Earlier output exists and was not returned. */
106
+ truncated?: boolean;
107
+ }
108
+
109
+ export interface PaginationMeta {
110
+ /** Whether there are more pages */
111
+ has_next: boolean;
112
+ /** Items per page */
113
+ limit: number;
114
+ /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
115
+ next_cursor?: string | null;
116
+ /** Current page number (1-indexed) */
117
+ page: number;
118
+ /** Total number of items */
119
+ total: number;
120
+ }
@@ -0,0 +1,159 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.appLogs`: App Logs
4
+
5
+ 2 operations (2 read).
6
+
7
+ 2 of these also have a hand-written method (`g8.appPlatform`), marked **★** below. Prefer the hand-written method when one exists: it unwraps the `data` envelope and takes friendlier arguments. See [../sdk-clients.md](../sdk-clients.md).
8
+
9
+ Every example below assumes this setup (server-side, API key):
10
+
11
+ ```ts
12
+ import { g8 } from "@graph8/sdk";
13
+
14
+ g8.init({ apiKey: process.env.G8_API_KEY! });
15
+ ```
16
+
17
+ Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
18
+
19
+ Exact TypeScript types for every operation on this page, and every schema they use: [appLogs.d.ts](appLogs.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`getAppLogs`](#op-getapplogs) ★ | `GET /api/v1/apps/{app_id}/logs` | read | `apps:read` | Get App Logs |
26
+ | [`getDeploymentLogs`](#op-getdeploymentlogs) ★ | `GET /api/v1/apps/{app_id}/deployments/{deployment_id}/logs` | read | `apps:read` | Get Deployment Logs |
27
+
28
+ ---
29
+
30
+ <a id="op-getapplogs"></a>
31
+
32
+ ### `g8.api.appLogs.getAppLogs(input)`
33
+
34
+ **Get App Logs**
35
+
36
+ - HTTP: `GET /api/v1/apps/{app_id}/logs`
37
+ - operationId: `get_app_logs_apps__app_id__logs_get` (also callable as `g8.api.call("get_app_logs_apps__app_id__logs_get", input)`)
38
+ - Tier: `read`: reads data; safe to call and to retry
39
+ - API-key scope: `apps:read`
40
+ - ★ Hand-written: [`g8.appPlatform.logs()`](../sdk-clients.md#g8-appplatform-logs)
41
+
42
+ What the running app is printing.
43
+
44
+ The app's own pods only. The per-app egress proxy runs in the same namespace
45
+ and is deliberately excluded: it is platform infrastructure that happens to
46
+ live inside a tenant boundary, and its output is graph8's, not the builder's.
47
+
48
+ Empty until a deployment reaches `deployed`. The `app` Deployment ships with
49
+ `replicas: 0` and a pause image, so a namespace that exists still has no app
50
+ pod to read until a build has been promoted.
51
+
52
+ **Input**
53
+
54
+ | Field | Type | Required | Description |
55
+ |---|---|---|---|
56
+ | `path.app_id` | `string` | yes | |
57
+ | `query.tail_lines` | `integer` | no | Lines per replica, newest last. default `200` |
58
+ | `headers.X-Org-Id` | `string \| null` | no | |
59
+
60
+ **Returns** `ApiResponse_AppLogsResponse_`: the envelope `{ data: AppLogsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
61
+
62
+ Other envelope fields: `pagination` (PaginationMeta).
63
+
64
+ `AppLogsResponse` fields:
65
+
66
+ | Field | Type | Required | Description |
67
+ |---|---|---|---|
68
+ | `app_id` | `string` | yes | |
69
+ | `namespace` | `string` | yes | The app's own Kubernetes namespace. Derived from the app id, never supplied. |
70
+ | `tail_lines` | `integer` | yes | Lines requested per container, after clamping to the server maximum. |
71
+ | `containers` | `Array<ContainerLogResponse>` | no | |
72
+ | `deployment_id` | `string \| null` | no | Set for build logs. `null` for the running app's logs. |
73
+ | `redacted` | `boolean` | no | default `true` |
74
+
75
+ **Example**
76
+
77
+ ```ts
78
+ const result = await g8.api.appLogs.getAppLogs({ path: { app_id: "id" } });
79
+ ```
80
+
81
+ ---
82
+
83
+ <a id="op-getdeploymentlogs"></a>
84
+
85
+ ### `g8.api.appLogs.getDeploymentLogs(input)`
86
+
87
+ **Get Deployment Logs**
88
+
89
+ - HTTP: `GET /api/v1/apps/{app_id}/deployments/{deployment_id}/logs`
90
+ - operationId: `get_deployment_logs_apps__app_id__deployments__deployment_id__logs_get` (also callable as `g8.api.call("get_deployment_logs_apps__app_id__deployments__deployment_id__logs_get", input)`)
91
+ - Tier: `read`: reads data; safe to call and to retry
92
+ - API-key scope: `apps:read`
93
+ - ★ Hand-written: [`g8.appPlatform.deploymentLogs()`](../sdk-clients.md#g8-appplatform-deploymentlogs)
94
+
95
+ Why a build failed.
96
+
97
+ Returns every step of the build pod in the order Kubernetes runs them --
98
+ fetch, scan-source, build, scan-image, then push -- because "which step" is
99
+ most of the answer. A step that has not started is omitted rather than
100
+ returned empty, so a build in progress reports what exists so far.
101
+
102
+ An empty `containers` list means the build pod is gone or was never created.
103
+ Build pods are reaped an hour after they finish (`ttlSecondsAfterFinished`),
104
+ so logs for an older deployment are genuinely unavailable rather than hidden;
105
+ `last_error_sanitized` on the deployment is what survives.
106
+
107
+ `redacted` is always true and means graph8's credential patterns were applied.
108
+ It is NOT a claim the output is safe to publish: this is a customer's own
109
+ build output and it can print a secret in a shape no pattern matches.
110
+
111
+ **Input**
112
+
113
+ | Field | Type | Required | Description |
114
+ |---|---|---|---|
115
+ | `path.app_id` | `string` | yes | |
116
+ | `path.deployment_id` | `string` | yes | |
117
+ | `query.tail_lines` | `integer` | no | Lines per build step, newest last. default `200` |
118
+ | `headers.X-Org-Id` | `string \| null` | no | |
119
+
120
+ **Returns** `ApiResponse_AppLogsResponse_`: the envelope `{ data: AppLogsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
121
+
122
+ Other envelope fields: `pagination` (PaginationMeta).
123
+
124
+ `AppLogsResponse` fields:
125
+
126
+ | Field | Type | Required | Description |
127
+ |---|---|---|---|
128
+ | `app_id` | `string` | yes | |
129
+ | `namespace` | `string` | yes | The app's own Kubernetes namespace. Derived from the app id, never supplied. |
130
+ | `tail_lines` | `integer` | yes | Lines requested per container, after clamping to the server maximum. |
131
+ | `containers` | `Array<ContainerLogResponse>` | no | |
132
+ | `deployment_id` | `string \| null` | no | Set for build logs. `null` for the running app's logs. |
133
+ | `redacted` | `boolean` | no | default `true` |
134
+
135
+ **Example**
136
+
137
+ ```ts
138
+ const result = await g8.api.appLogs.getDeploymentLogs({ path: { app_id: "id", deployment_id: "id" } });
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Referenced types
144
+
145
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
146
+
147
+ <a id="type-containerlogresponse"></a>
148
+
149
+ ### `ContainerLogResponse`
150
+
151
+ One container's tail of output. A build is five steps in one pod (fetch, scan-source, build, scan-image, push), so a single flat blob would leave a caller unable to say which step failed. ``kind`` separates the four init steps from the one container, which is the ordering Kubernetes actually runs them in.
152
+
153
+ | Field | Type | Required | Description |
154
+ |---|---|---|---|
155
+ | `container` | `string` | yes | |
156
+ | `kind` | `"init" \| "container"` | yes | |
157
+ | `pod` | `string` | yes | |
158
+ | `text` | `string` | yes | |
159
+ | `truncated` | `boolean` | no | The tail hit the per-container byte cap. Earlier output exists and was not returned. default `false` |