@agentuity/core 1.0.40 → 1.0.42

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 (254) hide show
  1. package/dist/services/api-reference.d.ts +68 -0
  2. package/dist/services/api-reference.d.ts.map +1 -0
  3. package/dist/services/api-reference.js +91 -0
  4. package/dist/services/api-reference.js.map +1 -0
  5. package/dist/services/apikey/api-reference.d.ts +4 -0
  6. package/dist/services/apikey/api-reference.d.ts.map +1 -0
  7. package/dist/services/apikey/api-reference.js +96 -0
  8. package/dist/services/apikey/api-reference.js.map +1 -0
  9. package/dist/services/db/api-reference.d.ts +4 -0
  10. package/dist/services/db/api-reference.d.ts.map +1 -0
  11. package/dist/services/db/api-reference.js +149 -0
  12. package/dist/services/db/api-reference.js.map +1 -0
  13. package/dist/services/db/types.d.ts +7 -0
  14. package/dist/services/db/types.d.ts.map +1 -0
  15. package/dist/services/db/types.js +9 -0
  16. package/dist/services/db/types.js.map +1 -0
  17. package/dist/services/email/api-reference.d.ts +4 -0
  18. package/dist/services/email/api-reference.d.ts.map +1 -0
  19. package/dist/services/email/api-reference.js +342 -0
  20. package/dist/services/email/api-reference.js.map +1 -0
  21. package/dist/services/email/service.d.ts.map +1 -1
  22. package/dist/services/email/service.js +1 -2
  23. package/dist/services/email/service.js.map +1 -1
  24. package/dist/services/email/types.d.ts +13 -0
  25. package/dist/services/email/types.d.ts.map +1 -0
  26. package/dist/services/email/types.js +11 -0
  27. package/dist/services/email/types.js.map +1 -0
  28. package/dist/services/eval/api-reference.d.ts +4 -0
  29. package/dist/services/eval/api-reference.d.ts.map +1 -0
  30. package/dist/services/eval/api-reference.js +121 -0
  31. package/dist/services/eval/api-reference.js.map +1 -0
  32. package/dist/services/index.d.ts +2 -0
  33. package/dist/services/index.d.ts.map +1 -1
  34. package/dist/services/index.js +2 -0
  35. package/dist/services/index.js.map +1 -1
  36. package/dist/services/keyvalue/api-reference.d.ts +4 -0
  37. package/dist/services/keyvalue/api-reference.d.ts.map +1 -0
  38. package/dist/services/keyvalue/api-reference.js +270 -0
  39. package/dist/services/keyvalue/api-reference.js.map +1 -0
  40. package/dist/services/keyvalue/types.d.ts +18 -0
  41. package/dist/services/keyvalue/types.d.ts.map +1 -0
  42. package/dist/services/keyvalue/types.js +19 -0
  43. package/dist/services/keyvalue/types.js.map +1 -0
  44. package/dist/services/machine/api-reference.d.ts +4 -0
  45. package/dist/services/machine/api-reference.d.ts.map +1 -0
  46. package/dist/services/machine/api-reference.js +152 -0
  47. package/dist/services/machine/api-reference.js.map +1 -0
  48. package/dist/services/machine/types.d.ts +18 -0
  49. package/dist/services/machine/types.d.ts.map +1 -0
  50. package/dist/services/machine/types.js +15 -0
  51. package/dist/services/machine/types.js.map +1 -0
  52. package/dist/services/monitoring/index.d.ts +3 -0
  53. package/dist/services/monitoring/index.d.ts.map +1 -0
  54. package/dist/services/monitoring/index.js +3 -0
  55. package/dist/services/monitoring/index.js.map +1 -0
  56. package/dist/services/monitoring/service.d.ts +55 -0
  57. package/dist/services/monitoring/service.d.ts.map +1 -0
  58. package/dist/services/monitoring/service.js +503 -0
  59. package/dist/services/monitoring/service.js.map +1 -0
  60. package/dist/services/monitoring/types.d.ts +173 -0
  61. package/dist/services/monitoring/types.d.ts.map +1 -0
  62. package/dist/services/monitoring/types.js +2 -0
  63. package/dist/services/monitoring/types.js.map +1 -0
  64. package/dist/services/oauth/activity.d.ts +5 -0
  65. package/dist/services/oauth/activity.d.ts.map +1 -0
  66. package/dist/services/oauth/activity.js +17 -0
  67. package/dist/services/oauth/activity.js.map +1 -0
  68. package/dist/services/oauth/api-reference.d.ts +4 -0
  69. package/dist/services/oauth/api-reference.d.ts.map +1 -0
  70. package/dist/services/oauth/api-reference.js +344 -0
  71. package/dist/services/oauth/api-reference.js.map +1 -0
  72. package/dist/services/oauth/clients.d.ts +18 -0
  73. package/dist/services/oauth/clients.d.ts.map +1 -0
  74. package/dist/services/oauth/clients.js +66 -0
  75. package/dist/services/oauth/clients.js.map +1 -0
  76. package/dist/services/oauth/consent.d.ts +7 -0
  77. package/dist/services/oauth/consent.d.ts.map +1 -0
  78. package/dist/services/oauth/consent.js +17 -0
  79. package/dist/services/oauth/consent.js.map +1 -0
  80. package/dist/services/oauth/index.d.ts +9 -0
  81. package/dist/services/oauth/index.d.ts.map +1 -0
  82. package/dist/services/oauth/index.js +9 -0
  83. package/dist/services/oauth/index.js.map +1 -0
  84. package/dist/services/oauth/keys.d.ts +5 -0
  85. package/dist/services/oauth/keys.d.ts.map +1 -0
  86. package/dist/services/oauth/keys.js +10 -0
  87. package/dist/services/oauth/keys.js.map +1 -0
  88. package/dist/services/oauth/members.d.ts +4 -0
  89. package/dist/services/oauth/members.d.ts.map +1 -0
  90. package/dist/services/oauth/members.js +10 -0
  91. package/dist/services/oauth/members.js.map +1 -0
  92. package/dist/services/oauth/scopes.d.ts +4 -0
  93. package/dist/services/oauth/scopes.d.ts.map +1 -0
  94. package/dist/services/oauth/scopes.js +10 -0
  95. package/dist/services/oauth/scopes.js.map +1 -0
  96. package/dist/services/oauth/types.d.ts +587 -0
  97. package/dist/services/oauth/types.d.ts.map +1 -0
  98. package/dist/services/oauth/types.js +160 -0
  99. package/dist/services/oauth/types.js.map +1 -0
  100. package/dist/services/oauth/util.d.ts +23 -0
  101. package/dist/services/oauth/util.d.ts.map +1 -0
  102. package/dist/services/oauth/util.js +3 -0
  103. package/dist/services/oauth/util.js.map +1 -0
  104. package/dist/services/org/api-reference.d.ts +4 -0
  105. package/dist/services/org/api-reference.d.ts.map +1 -0
  106. package/dist/services/org/api-reference.js +145 -0
  107. package/dist/services/org/api-reference.js.map +1 -0
  108. package/dist/services/org/types.d.ts +8 -0
  109. package/dist/services/org/types.d.ts.map +1 -0
  110. package/dist/services/org/types.js +7 -0
  111. package/dist/services/org/types.js.map +1 -0
  112. package/dist/services/project/api-reference.d.ts +4 -0
  113. package/dist/services/project/api-reference.d.ts.map +1 -0
  114. package/dist/services/project/api-reference.js +618 -0
  115. package/dist/services/project/api-reference.js.map +1 -0
  116. package/dist/services/project/types.d.ts +29 -0
  117. package/dist/services/project/types.d.ts.map +1 -0
  118. package/dist/services/project/types.js +40 -0
  119. package/dist/services/project/types.js.map +1 -0
  120. package/dist/services/queue/api-reference.d.ts +4 -0
  121. package/dist/services/queue/api-reference.d.ts.map +1 -0
  122. package/dist/services/queue/api-reference.js +713 -0
  123. package/dist/services/queue/api-reference.js.map +1 -0
  124. package/dist/services/queue/types.d.ts +281 -0
  125. package/dist/services/queue/types.d.ts.map +1 -1
  126. package/dist/services/queue/types.js +81 -0
  127. package/dist/services/queue/types.js.map +1 -1
  128. package/dist/services/region/api-reference.d.ts +4 -0
  129. package/dist/services/region/api-reference.d.ts.map +1 -0
  130. package/dist/services/region/api-reference.js +98 -0
  131. package/dist/services/region/api-reference.js.map +1 -0
  132. package/dist/services/region/types.d.ts +18 -0
  133. package/dist/services/region/types.d.ts.map +1 -0
  134. package/dist/services/region/types.js +18 -0
  135. package/dist/services/region/types.js.map +1 -0
  136. package/dist/services/sandbox/api-reference.d.ts +4 -0
  137. package/dist/services/sandbox/api-reference.d.ts.map +1 -0
  138. package/dist/services/sandbox/api-reference.js +1006 -0
  139. package/dist/services/sandbox/api-reference.js.map +1 -0
  140. package/dist/services/sandbox/run.d.ts +1 -1
  141. package/dist/services/sandbox/types.d.ts +64 -1
  142. package/dist/services/sandbox/types.d.ts.map +1 -1
  143. package/dist/services/sandbox/types.js +87 -0
  144. package/dist/services/sandbox/types.js.map +1 -1
  145. package/dist/services/schedule/api-reference.d.ts +4 -0
  146. package/dist/services/schedule/api-reference.d.ts.map +1 -0
  147. package/dist/services/schedule/api-reference.js +216 -0
  148. package/dist/services/schedule/api-reference.js.map +1 -0
  149. package/dist/services/schedule/types.d.ts +36 -0
  150. package/dist/services/schedule/types.d.ts.map +1 -0
  151. package/dist/services/schedule/types.js +20 -0
  152. package/dist/services/schedule/types.js.map +1 -0
  153. package/dist/services/session/api-reference.d.ts +4 -0
  154. package/dist/services/session/api-reference.d.ts.map +1 -0
  155. package/dist/services/session/api-reference.js +154 -0
  156. package/dist/services/session/api-reference.js.map +1 -0
  157. package/dist/services/storage/api-reference.d.ts +4 -0
  158. package/dist/services/storage/api-reference.d.ts.map +1 -0
  159. package/dist/services/storage/api-reference.js +196 -0
  160. package/dist/services/storage/api-reference.js.map +1 -0
  161. package/dist/services/storage/types.d.ts.map +1 -1
  162. package/dist/services/storage/types.js +9 -3
  163. package/dist/services/storage/types.js.map +1 -1
  164. package/dist/services/stream/api-reference.d.ts +4 -0
  165. package/dist/services/stream/api-reference.d.ts.map +1 -0
  166. package/dist/services/stream/api-reference.js +153 -0
  167. package/dist/services/stream/api-reference.js.map +1 -0
  168. package/dist/services/stream/types.d.ts +49 -0
  169. package/dist/services/stream/types.d.ts.map +1 -0
  170. package/dist/services/stream/types.js +49 -0
  171. package/dist/services/stream/types.js.map +1 -0
  172. package/dist/services/task/api-reference.d.ts +4 -0
  173. package/dist/services/task/api-reference.d.ts.map +1 -0
  174. package/dist/services/task/api-reference.js +802 -0
  175. package/dist/services/task/api-reference.js.map +1 -0
  176. package/dist/services/task/service.d.ts.map +1 -1
  177. package/dist/services/task/service.js +35 -39
  178. package/dist/services/task/service.js.map +1 -1
  179. package/dist/services/task/types.d.ts +48 -0
  180. package/dist/services/task/types.d.ts.map +1 -0
  181. package/dist/services/task/types.js +55 -0
  182. package/dist/services/task/types.js.map +1 -0
  183. package/dist/services/thread/api-reference.d.ts +4 -0
  184. package/dist/services/thread/api-reference.d.ts.map +1 -0
  185. package/dist/services/thread/api-reference.js +89 -0
  186. package/dist/services/thread/api-reference.js.map +1 -0
  187. package/dist/services/user/api-reference.d.ts +4 -0
  188. package/dist/services/user/api-reference.d.ts.map +1 -0
  189. package/dist/services/user/api-reference.js +27 -0
  190. package/dist/services/user/api-reference.js.map +1 -0
  191. package/dist/services/vector/api-reference.d.ts +4 -0
  192. package/dist/services/vector/api-reference.d.ts.map +1 -0
  193. package/dist/services/vector/api-reference.js +213 -0
  194. package/dist/services/vector/api-reference.js.map +1 -0
  195. package/dist/services/vector/types.d.ts +63 -0
  196. package/dist/services/vector/types.d.ts.map +1 -0
  197. package/dist/services/vector/types.js +90 -0
  198. package/dist/services/vector/types.js.map +1 -0
  199. package/dist/services/webhook/api-reference.d.ts +4 -0
  200. package/dist/services/webhook/api-reference.d.ts.map +1 -0
  201. package/dist/services/webhook/api-reference.js +388 -0
  202. package/dist/services/webhook/api-reference.js.map +1 -0
  203. package/package.json +2 -2
  204. package/src/services/api-reference.ts +198 -0
  205. package/src/services/apikey/api-reference.ts +99 -0
  206. package/src/services/db/api-reference.ts +152 -0
  207. package/src/services/db/types.ts +12 -0
  208. package/src/services/email/api-reference.ts +349 -0
  209. package/src/services/email/service.ts +1 -6
  210. package/src/services/email/types.ts +15 -0
  211. package/src/services/eval/api-reference.ts +124 -0
  212. package/src/services/index.ts +2 -0
  213. package/src/services/keyvalue/api-reference.ts +280 -0
  214. package/src/services/keyvalue/types.ts +25 -0
  215. package/src/services/machine/api-reference.ts +158 -0
  216. package/src/services/machine/types.ts +21 -0
  217. package/src/services/monitoring/index.ts +2 -0
  218. package/src/services/monitoring/service.ts +639 -0
  219. package/src/services/monitoring/types.ts +209 -0
  220. package/src/services/oauth/activity.ts +41 -0
  221. package/src/services/oauth/api-reference.ts +380 -0
  222. package/src/services/oauth/clients.ts +161 -0
  223. package/src/services/oauth/consent.ts +33 -0
  224. package/src/services/oauth/index.ts +8 -0
  225. package/src/services/oauth/keys.ts +13 -0
  226. package/src/services/oauth/members.ts +13 -0
  227. package/src/services/oauth/scopes.ts +13 -0
  228. package/src/services/oauth/types.ts +240 -0
  229. package/src/services/oauth/util.ts +3 -0
  230. package/src/services/org/api-reference.ts +148 -0
  231. package/src/services/org/types.ts +9 -0
  232. package/src/services/project/api-reference.ts +636 -0
  233. package/src/services/project/types.ts +47 -0
  234. package/src/services/queue/api-reference.ts +734 -0
  235. package/src/services/queue/types.ts +112 -0
  236. package/src/services/region/api-reference.ts +105 -0
  237. package/src/services/region/types.ts +27 -0
  238. package/src/services/sandbox/api-reference.ts +1042 -0
  239. package/src/services/sandbox/types.ts +100 -0
  240. package/src/services/schedule/api-reference.ts +228 -0
  241. package/src/services/schedule/types.ts +26 -0
  242. package/src/services/session/api-reference.ts +160 -0
  243. package/src/services/storage/api-reference.ts +207 -0
  244. package/src/services/storage/types.ts +9 -3
  245. package/src/services/stream/api-reference.ts +163 -0
  246. package/src/services/stream/types.ts +64 -0
  247. package/src/services/task/api-reference.ts +830 -0
  248. package/src/services/task/service.ts +35 -93
  249. package/src/services/task/types.ts +73 -0
  250. package/src/services/thread/api-reference.ts +91 -0
  251. package/src/services/user/api-reference.ts +31 -0
  252. package/src/services/vector/api-reference.ts +231 -0
  253. package/src/services/vector/types.ts +112 -0
  254. package/src/services/webhook/api-reference.ts +403 -0
@@ -0,0 +1,209 @@
1
+ export interface NodeMonitorReport {
2
+ machineId: string;
3
+ reportedAtUs: number;
4
+ seq: number;
5
+ host: HostMetrics;
6
+ containers: ContainerMetrics[];
7
+ capacity: CapacitySummary;
8
+ events: NodeEvent[];
9
+ reportIntervalSeconds: number;
10
+ }
11
+
12
+ export interface HostMetrics {
13
+ cpu: CpuMetrics;
14
+ memory: MemoryMetrics;
15
+ disks: DiskMetrics[];
16
+ networkInterfaces: NetworkInterfaceMetrics[];
17
+ system: SystemInfo;
18
+ }
19
+
20
+ export interface CpuMetrics {
21
+ usagePercent: number;
22
+ coreUsagePercent: number[];
23
+ loadAvg1: number;
24
+ loadAvg5: number;
25
+ loadAvg15: number;
26
+ coreCount: number;
27
+ }
28
+
29
+ export interface MemoryMetrics {
30
+ totalBytes: number;
31
+ usedBytes: number;
32
+ availableBytes: number;
33
+ cachedBytes: number;
34
+ buffersBytes: number;
35
+ swapTotalBytes: number;
36
+ swapUsedBytes: number;
37
+ usagePercent: number;
38
+ }
39
+
40
+ export interface DiskMetrics {
41
+ mountPoint: string;
42
+ device: string;
43
+ fsType: string;
44
+ totalBytes: number;
45
+ usedBytes: number;
46
+ availableBytes: number;
47
+ usagePercent: number;
48
+ inodesTotal: number;
49
+ inodesUsed: number;
50
+ readBytesDelta: number;
51
+ writeBytesDelta: number;
52
+ readOpsDelta: number;
53
+ writeOpsDelta: number;
54
+ }
55
+
56
+ export interface NetworkInterfaceMetrics {
57
+ name: string;
58
+ rxBytesDelta: number;
59
+ txBytesDelta: number;
60
+ rxPacketsDelta: number;
61
+ txPacketsDelta: number;
62
+ rxErrorsDelta: number;
63
+ txErrorsDelta: number;
64
+ rxDropsDelta: number;
65
+ txDropsDelta: number;
66
+ linkState: string;
67
+ speedMbps: number;
68
+ }
69
+
70
+ export interface SystemInfo {
71
+ hostname: string;
72
+ kernelVersion: string;
73
+ os: string;
74
+ arch: string;
75
+ uptimeSeconds: number;
76
+ cpuCount: number;
77
+ totalMemoryBytes: number;
78
+ }
79
+
80
+ export interface ContainerMetrics {
81
+ deploymentId: string;
82
+ containerId: string;
83
+ image: string;
84
+ state: string;
85
+ cpuUsagePercent: number;
86
+ cpuThrottledPeriods: number;
87
+ cpuTotalPeriods: number;
88
+ cpuLimitMillicores: number;
89
+ memoryUsageBytes: number;
90
+ memoryLimitBytes: number;
91
+ memoryRssBytes: number;
92
+ memoryCacheBytes: number;
93
+ memorySwapBytes: number;
94
+ oomKillCount: number;
95
+ netRxBytesDelta: number;
96
+ netTxBytesDelta: number;
97
+ netRxPacketsDelta: number;
98
+ netTxPacketsDelta: number;
99
+ blkioReadBytesDelta: number;
100
+ blkioWriteBytesDelta: number;
101
+ pidCount: number;
102
+ healthy: boolean;
103
+ inflightRequests: number;
104
+ startedAtUs: number;
105
+ lastUpdatedUs: number;
106
+ ipv4Address: string;
107
+ ipv6Address: string;
108
+ }
109
+
110
+ export interface CapacitySummary {
111
+ cpuPressure: number;
112
+ memoryPressure: number;
113
+ diskPressure: number;
114
+ networkPressure: number;
115
+ compositeScore: number;
116
+ totalContainers: number;
117
+ runningContainers: number;
118
+ }
119
+
120
+ export type NodeEventLevel = 'UNSPECIFIED' | 'INFO' | 'WARN' | 'ERROR' | 'CRITICAL';
121
+
122
+ export type NodeEventType =
123
+ | 'UNSPECIFIED'
124
+ | 'CONTAINER_START'
125
+ | 'CONTAINER_STOP'
126
+ | 'CONTAINER_OOM'
127
+ | 'CONTAINER_HEALTH_CHANGE'
128
+ | 'PRESSURE_THRESHOLD'
129
+ | 'DISK_NEARLY_FULL'
130
+ | 'COLLECTOR_ERROR'
131
+ | 'PRESSURE_ALERT'
132
+ | 'HEALTH_ALERT';
133
+
134
+ export interface NodeEvent {
135
+ timestampUs: number;
136
+ level: NodeEventLevel;
137
+ type: NodeEventType;
138
+ message: string;
139
+ metadata: Record<string, string>;
140
+ }
141
+
142
+ export type StreamHealth = 'CONNECTED' | 'STALE' | 'DISCONNECTED';
143
+
144
+ export interface MachineMonitorState {
145
+ machineId: string;
146
+ orgId: string;
147
+ report: NodeMonitorReport;
148
+ compositeScore: number;
149
+ health: StreamHealth;
150
+ reportedAt: string;
151
+ updatedAt: string;
152
+ gravity: string;
153
+ }
154
+
155
+ export interface MonitorSnapshot {
156
+ type: 'snapshot';
157
+ machines: MachineMonitorState[];
158
+ }
159
+
160
+ export interface MonitorUpdate {
161
+ type: 'update';
162
+ machineId: string;
163
+ health: StreamHealth;
164
+ report: NodeMonitorReport;
165
+ }
166
+
167
+ export interface MonitorStateChange {
168
+ type: 'state_change';
169
+ machineId: string;
170
+ health: StreamHealth;
171
+ previousHealth: StreamHealth;
172
+ }
173
+
174
+ export type MonitorMessage = MonitorSnapshot | MonitorUpdate | MonitorStateChange;
175
+
176
+ export interface MonitorScope {
177
+ scope: 'org' | 'machine' | 'deployment';
178
+ machineId?: string;
179
+ deploymentId?: string;
180
+ }
181
+
182
+ export type MonitorWebSocketState =
183
+ | 'connecting'
184
+ | 'authenticating'
185
+ | 'subscribing'
186
+ | 'connected'
187
+ | 'reconnecting'
188
+ | 'closed';
189
+
190
+ export interface MonitorWebSocketCallbacks {
191
+ onOpen?: () => void;
192
+ onClose?: (code: number, reason: string) => void;
193
+ onError?: (error: Error) => void;
194
+ onMessage?: (message: MonitorMessage) => void;
195
+ onSnapshot?: (snapshot: MonitorSnapshot) => void;
196
+ onUpdate?: (update: MonitorUpdate) => void;
197
+ onStateChange?: (stateChange: MonitorStateChange) => void;
198
+ }
199
+
200
+ export interface MonitorWebSocketOptions extends MonitorWebSocketCallbacks {
201
+ baseUrl: string;
202
+ token: string;
203
+ scope?: MonitorScope;
204
+ orgId?: string;
205
+ autoReconnect?: boolean;
206
+ maxReconnectAttempts?: number;
207
+ reconnectDelayMs?: number;
208
+ maxReconnectDelayMs?: number;
209
+ }
@@ -0,0 +1,41 @@
1
+ import { APIClient } from '../api.ts';
2
+ import { OAuthResponseError } from './util.ts';
3
+ import {
4
+ OAuthBulkActivityResponseSchema,
5
+ OAuthClientActivityResponseSchema,
6
+ type OAuthBulkActivityItem,
7
+ type OAuthClientActivityItem,
8
+ } from './types.ts';
9
+
10
+ export async function oauthClientActivity(
11
+ client: APIClient,
12
+ id: string,
13
+ days?: number
14
+ ): Promise<OAuthClientActivityItem[]> {
15
+ const resp = await client.get(
16
+ `/oidc/clients/${encodeURIComponent(id)}/activity${days ? `?days=${days}` : ''}`,
17
+ OAuthClientActivityResponseSchema
18
+ );
19
+
20
+ if (resp.success) {
21
+ return resp.data;
22
+ }
23
+
24
+ throw new OAuthResponseError({ message: resp.message });
25
+ }
26
+
27
+ export async function oauthBulkActivity(
28
+ client: APIClient,
29
+ days?: number
30
+ ): Promise<OAuthBulkActivityItem[]> {
31
+ const resp = await client.get(
32
+ `/oidc/clients/activity${days ? `?days=${days}` : ''}`,
33
+ OAuthBulkActivityResponseSchema
34
+ );
35
+
36
+ if (resp.success) {
37
+ return resp.data;
38
+ }
39
+
40
+ throw new OAuthResponseError({ message: resp.message });
41
+ }
@@ -0,0 +1,380 @@
1
+ import {
2
+ OAuthClientListItemSchema,
3
+ OAuthClientCreateRequestSchema,
4
+ OAuthClientCreateDataSchema,
5
+ OAuthClientUpdateRequestSchema,
6
+ OAuthClientUpdateDataSchema,
7
+ OAuthDeletedDataSchema,
8
+ OAuthRotateSecretDataSchema,
9
+ OAuthConsentGrantSchema,
10
+ OAuthClientActivityItemSchema,
11
+ OAuthBulkActivityItemSchema,
12
+ OAuthUserConsentSchema,
13
+ OAuthScopesDataSchema,
14
+ OAuthOrgMemberSchema,
15
+ OAuthKeyRotatedDataSchema,
16
+ } from './types.ts';
17
+ import type { Service } from '../api-reference.ts';
18
+
19
+ const service: Service = {
20
+ name: 'OAuth Applications',
21
+ slug: 'oauth',
22
+ description:
23
+ 'Manage OAuth 2.0/OIDC applications, client credentials, user consent, and authorization scopes',
24
+ endpoints: [
25
+ {
26
+ id: 'list-oauth-clients',
27
+ title: 'List OAuth Clients',
28
+ method: 'GET',
29
+ path: '/oidc/clients',
30
+ description:
31
+ 'List all OAuth clients for the current organization. Returns client metadata, user counts, and last activity timestamps.',
32
+ pathParams: [],
33
+ queryParams: [],
34
+ requestBody: null,
35
+ responseDescription: 'JSON array of OAuth client objects with usage statistics.',
36
+ responseFields: { schema: OAuthClientListItemSchema },
37
+ statuses: [
38
+ { code: 200, description: 'Client list returned' },
39
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
40
+ { code: 403, description: 'Forbidden — insufficient permissions' },
41
+ ],
42
+ examplePath: '/oidc/clients',
43
+ },
44
+ {
45
+ id: 'create-oauth-client',
46
+ title: 'Create OAuth Client',
47
+ method: 'POST',
48
+ path: '/oidc/clients',
49
+ description:
50
+ 'Create a new OAuth client application. Returns the client details and a client secret that should be stored securely — it cannot be retrieved again.',
51
+ pathParams: [],
52
+ queryParams: [],
53
+ requestBody: {
54
+ description: 'JSON body with the OAuth client configuration.',
55
+ fields: { schema: OAuthClientCreateRequestSchema },
56
+ },
57
+ responseDescription: 'JSON object containing the created client and its client secret.',
58
+ responseFields: { schema: OAuthClientCreateDataSchema },
59
+ statuses: [
60
+ { code: 200, description: 'Client created successfully' },
61
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
62
+ { code: 403, description: 'Forbidden — insufficient permissions' },
63
+ ],
64
+ examplePath: '/oidc/clients',
65
+ exampleBody: {
66
+ name: 'My App',
67
+ description: 'An example OAuth application',
68
+ homepage_url: 'https://example.com',
69
+ redirect_uris: ['https://example.com/callback'],
70
+ scopes: ['openid', 'profile'],
71
+ },
72
+ },
73
+ {
74
+ id: 'get-oauth-client',
75
+ title: 'Get OAuth Client',
76
+ method: 'GET',
77
+ path: '/oidc/clients/{id}',
78
+ description:
79
+ 'Retrieve a specific OAuth client by ID, including its configuration, user count, and last activity.',
80
+ pathParams: [{ name: 'id', type: 'string', description: 'The OAuth client ID' }],
81
+ queryParams: [],
82
+ requestBody: null,
83
+ responseDescription: 'JSON object with the OAuth client details.',
84
+ responseFields: { schema: OAuthClientListItemSchema },
85
+ statuses: [
86
+ { code: 200, description: 'Client found and returned' },
87
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
88
+ { code: 403, description: 'Forbidden — insufficient permissions' },
89
+ { code: 404, description: 'Client not found' },
90
+ ],
91
+ examplePath: '/oidc/clients/cli_abc123',
92
+ },
93
+ {
94
+ id: 'update-oauth-client',
95
+ title: 'Update OAuth Client',
96
+ method: 'PUT',
97
+ path: '/oidc/clients/{id}',
98
+ description:
99
+ 'Update an existing OAuth client. Only the provided fields are updated; omitted fields remain unchanged.',
100
+ pathParams: [{ name: 'id', type: 'string', description: 'The OAuth client ID' }],
101
+ queryParams: [],
102
+ requestBody: {
103
+ description: 'JSON body with the fields to update.',
104
+ fields: { schema: OAuthClientUpdateRequestSchema, stripRequired: true },
105
+ },
106
+ responseDescription:
107
+ 'JSON object containing the updated client. May include a new client secret if the client type was changed.',
108
+ responseFields: { schema: OAuthClientUpdateDataSchema },
109
+ statuses: [
110
+ { code: 200, description: 'Client updated successfully' },
111
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
112
+ { code: 403, description: 'Forbidden — insufficient permissions' },
113
+ { code: 404, description: 'Client not found' },
114
+ ],
115
+ examplePath: '/oidc/clients/cli_abc123',
116
+ exampleBody: {
117
+ name: 'Updated App Name',
118
+ scopes: ['openid', 'profile', 'email'],
119
+ },
120
+ },
121
+ {
122
+ id: 'delete-oauth-client',
123
+ title: 'Delete OAuth Client',
124
+ method: 'DELETE',
125
+ path: '/oidc/clients/{id}',
126
+ description:
127
+ 'Delete an OAuth client and revoke all associated tokens and user consent grants.',
128
+ pathParams: [{ name: 'id', type: 'string', description: 'The OAuth client ID' }],
129
+ queryParams: [],
130
+ requestBody: null,
131
+ responseDescription: 'JSON object confirming deletion.',
132
+ responseFields: { schema: OAuthDeletedDataSchema },
133
+ statuses: [
134
+ { code: 200, description: 'Client deleted successfully' },
135
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
136
+ { code: 403, description: 'Forbidden — insufficient permissions' },
137
+ { code: 404, description: 'Client not found' },
138
+ ],
139
+ examplePath: '/oidc/clients/cli_abc123',
140
+ },
141
+ {
142
+ id: 'rotate-client-secret',
143
+ title: 'Rotate Client Secret',
144
+ method: 'POST',
145
+ path: '/oidc/clients/{id}/rotate-secret',
146
+ description:
147
+ 'Generate a new client secret for a confidential OAuth client. The old secret is immediately invalidated. Store the new secret securely — it cannot be retrieved again.',
148
+ pathParams: [{ name: 'id', type: 'string', description: 'The OAuth client ID' }],
149
+ queryParams: [],
150
+ requestBody: null,
151
+ responseDescription: 'JSON object containing the client ID and new client secret.',
152
+ responseFields: { schema: OAuthRotateSecretDataSchema },
153
+ statuses: [
154
+ { code: 200, description: 'Secret rotated successfully' },
155
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
156
+ { code: 403, description: 'Forbidden — insufficient permissions' },
157
+ { code: 404, description: 'Client not found' },
158
+ ],
159
+ examplePath: '/oidc/clients/cli_abc123/rotate-secret',
160
+ },
161
+ {
162
+ id: 'list-client-users',
163
+ title: 'List Client Users',
164
+ method: 'GET',
165
+ path: '/oidc/clients/{id}/users',
166
+ description:
167
+ 'List all users who have granted consent to an OAuth client, including their authorized scopes.',
168
+ pathParams: [{ name: 'id', type: 'string', description: 'The OAuth client ID' }],
169
+ queryParams: [],
170
+ requestBody: null,
171
+ responseDescription: 'JSON array of consent grant objects for the client.',
172
+ responseFields: { schema: OAuthConsentGrantSchema },
173
+ statuses: [
174
+ { code: 200, description: 'User list returned' },
175
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
176
+ { code: 403, description: 'Forbidden — insufficient permissions' },
177
+ { code: 404, description: 'Client not found' },
178
+ ],
179
+ examplePath: '/oidc/clients/cli_abc123/users',
180
+ },
181
+ {
182
+ id: 'revoke-all-client-users',
183
+ title: 'Revoke All Client Users',
184
+ method: 'DELETE',
185
+ path: '/oidc/clients/{id}/users',
186
+ description:
187
+ 'Revoke consent for all users of an OAuth client. All active tokens for this client are invalidated.',
188
+ pathParams: [{ name: 'id', type: 'string', description: 'The OAuth client ID' }],
189
+ queryParams: [],
190
+ requestBody: null,
191
+ responseDescription: 'JSON object confirming revocation.',
192
+ responseFields: { schema: OAuthDeletedDataSchema },
193
+ statuses: [
194
+ { code: 200, description: 'All user consent revoked' },
195
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
196
+ { code: 403, description: 'Forbidden — insufficient permissions' },
197
+ { code: 404, description: 'Client not found' },
198
+ ],
199
+ examplePath: '/oidc/clients/cli_abc123/users',
200
+ },
201
+ {
202
+ id: 'revoke-client-user',
203
+ title: 'Revoke Client User',
204
+ method: 'DELETE',
205
+ path: '/oidc/clients/{id}/users/{user_id}',
206
+ description:
207
+ "Revoke a specific user's consent for an OAuth client. The user's active tokens for this client are invalidated.",
208
+ pathParams: [
209
+ { name: 'id', type: 'string', description: 'The OAuth client ID' },
210
+ { name: 'user_id', type: 'string', description: 'The user ID to revoke' },
211
+ ],
212
+ queryParams: [],
213
+ requestBody: null,
214
+ responseDescription: 'JSON object confirming revocation.',
215
+ responseFields: { schema: OAuthDeletedDataSchema },
216
+ statuses: [
217
+ { code: 200, description: 'User consent revoked' },
218
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
219
+ { code: 403, description: 'Forbidden — insufficient permissions' },
220
+ { code: 404, description: 'Client or user not found' },
221
+ ],
222
+ examplePath: '/oidc/clients/cli_abc123/users/usr_xyz789',
223
+ },
224
+ {
225
+ id: 'get-client-activity',
226
+ title: 'Get Client Activity',
227
+ method: 'GET',
228
+ path: '/oidc/clients/{id}/activity',
229
+ description:
230
+ 'Get daily activity statistics for an OAuth client, including total access counts and unique user counts.',
231
+ pathParams: [{ name: 'id', type: 'string', description: 'The OAuth client ID' }],
232
+ queryParams: [
233
+ {
234
+ name: 'days',
235
+ type: 'number',
236
+ description: 'Number of days of activity to return (default: 30)',
237
+ required: false,
238
+ },
239
+ ],
240
+ requestBody: null,
241
+ responseDescription: 'JSON array of daily activity records.',
242
+ responseFields: { schema: OAuthClientActivityItemSchema },
243
+ statuses: [
244
+ { code: 200, description: 'Activity data returned' },
245
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
246
+ { code: 403, description: 'Forbidden — insufficient permissions' },
247
+ { code: 404, description: 'Client not found' },
248
+ ],
249
+ examplePath: '/oidc/clients/cli_abc123/activity?days=7',
250
+ },
251
+ {
252
+ id: 'get-bulk-activity',
253
+ title: 'Get Bulk Activity',
254
+ method: 'GET',
255
+ path: '/oidc/clients/activity',
256
+ description:
257
+ 'Get aggregated activity statistics across all OAuth clients for the organization.',
258
+ pathParams: [],
259
+ queryParams: [
260
+ {
261
+ name: 'days',
262
+ type: 'number',
263
+ description: 'Number of days of activity to return (default: 30)',
264
+ required: false,
265
+ },
266
+ ],
267
+ requestBody: null,
268
+ responseDescription: 'JSON array of daily activity records per client.',
269
+ responseFields: { schema: OAuthBulkActivityItemSchema },
270
+ statuses: [
271
+ { code: 200, description: 'Bulk activity data returned' },
272
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
273
+ { code: 403, description: 'Forbidden — insufficient permissions' },
274
+ ],
275
+ examplePath: '/oidc/clients/activity?days=7',
276
+ },
277
+ {
278
+ id: 'list-user-consent',
279
+ title: 'List User Consent',
280
+ method: 'GET',
281
+ path: '/oidc/user/consent',
282
+ description:
283
+ 'List all OAuth applications the current user has authorized, including granted scopes and client details.',
284
+ pathParams: [],
285
+ queryParams: [],
286
+ requestBody: null,
287
+ responseDescription: 'JSON array of user consent objects with client metadata.',
288
+ responseFields: { schema: OAuthUserConsentSchema },
289
+ statuses: [
290
+ { code: 200, description: 'Consent list returned' },
291
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
292
+ ],
293
+ examplePath: '/oidc/user/consent',
294
+ },
295
+ {
296
+ id: 'revoke-user-consent',
297
+ title: 'Revoke User Consent',
298
+ method: 'DELETE',
299
+ path: '/oidc/user/consent/{client_id}',
300
+ description:
301
+ "Revoke the current user's consent for a specific OAuth client. Active tokens for this client are invalidated.",
302
+ pathParams: [
303
+ {
304
+ name: 'client_id',
305
+ type: 'string',
306
+ description: 'The OAuth client ID to revoke consent for',
307
+ },
308
+ ],
309
+ queryParams: [],
310
+ requestBody: null,
311
+ responseDescription: 'JSON object confirming revocation.',
312
+ responseFields: { schema: OAuthDeletedDataSchema },
313
+ statuses: [
314
+ { code: 200, description: 'Consent revoked successfully' },
315
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
316
+ { code: 404, description: 'Consent not found for this client' },
317
+ ],
318
+ examplePath: '/oidc/user/consent/cli_abc123',
319
+ },
320
+ {
321
+ id: 'list-scopes',
322
+ title: 'List Scopes',
323
+ method: 'GET',
324
+ path: '/oidc/scopes',
325
+ description:
326
+ 'List all available OAuth scopes and permission categories. Includes scope metadata, consent descriptions, and permission groupings.',
327
+ pathParams: [],
328
+ queryParams: [],
329
+ requestBody: null,
330
+ responseDescription:
331
+ 'JSON object containing available scopes and structured permission categories.',
332
+ responseFields: { schema: OAuthScopesDataSchema },
333
+ statuses: [
334
+ { code: 200, description: 'Scope list returned' },
335
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
336
+ ],
337
+ examplePath: '/oidc/scopes',
338
+ },
339
+ {
340
+ id: 'list-org-members',
341
+ title: 'List Org Members',
342
+ method: 'GET',
343
+ path: '/oidc/org/members',
344
+ description:
345
+ 'List all members of the current organization. Used for configuring allowed user restrictions on OAuth clients.',
346
+ pathParams: [],
347
+ queryParams: [],
348
+ requestBody: null,
349
+ responseDescription: 'JSON array of organization member objects.',
350
+ responseFields: { schema: OAuthOrgMemberSchema },
351
+ statuses: [
352
+ { code: 200, description: 'Member list returned' },
353
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
354
+ { code: 403, description: 'Forbidden — insufficient permissions' },
355
+ ],
356
+ examplePath: '/oidc/org/members',
357
+ },
358
+ {
359
+ id: 'rotate-signing-keys',
360
+ title: 'Rotate Signing Keys',
361
+ method: 'POST',
362
+ path: '/oidc/keys/rotate',
363
+ description:
364
+ 'Rotate the OIDC signing keys for the organization. New tokens will be signed with the new key. Existing tokens remain valid until they expire.',
365
+ pathParams: [],
366
+ queryParams: [],
367
+ requestBody: null,
368
+ responseDescription: 'JSON object confirming key rotation.',
369
+ responseFields: { schema: OAuthKeyRotatedDataSchema },
370
+ statuses: [
371
+ { code: 200, description: 'Keys rotated successfully' },
372
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
373
+ { code: 403, description: 'Forbidden — insufficient permissions' },
374
+ ],
375
+ examplePath: '/oidc/keys/rotate',
376
+ },
377
+ ],
378
+ };
379
+
380
+ export default service;