@reclaimprotocol/agent 0.1.0-dev.1
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.
- package/README.md +287 -0
- package/lib/cdp/capture.d.ts +22 -0
- package/lib/cdp/capture.js +159 -0
- package/lib/cdp/client.d.ts +9 -0
- package/lib/cdp/client.js +11 -0
- package/lib/cdp/eviction.d.ts +16 -0
- package/lib/cdp/eviction.js +38 -0
- package/lib/cdp/launcher.d.ts +14 -0
- package/lib/cdp/launcher.js +102 -0
- package/lib/cdp/tabs.d.ts +6 -0
- package/lib/cdp/tabs.js +10 -0
- package/lib/cli/args.d.ts +14 -0
- package/lib/cli/args.js +19 -0
- package/lib/cli/commands.d.ts +1 -0
- package/lib/cli/commands.js +19 -0
- package/lib/cli.d.ts +1 -0
- package/lib/cli.js +7 -0
- package/lib/config/store.d.ts +45 -0
- package/lib/config/store.js +46 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +7 -0
- package/lib/logger.d.ts +2 -0
- package/lib/logger.js +7 -0
- package/lib/mcp/api/operations.gen.d.ts +152 -0
- package/lib/mcp/api/operations.gen.js +2300 -0
- package/lib/mcp/api/tools.d.ts +3 -0
- package/lib/mcp/api/tools.js +36 -0
- package/lib/mcp/remap_errors.d.ts +2 -0
- package/lib/mcp/remap_errors.js +27 -0
- package/lib/mcp/server.d.ts +38 -0
- package/lib/mcp/server.js +76 -0
- package/lib/mcp/start.d.ts +1 -0
- package/lib/mcp/start.js +63 -0
- package/lib/mcp/tools/agent/analyze.d.ts +3 -0
- package/lib/mcp/tools/agent/analyze.js +26 -0
- package/lib/mcp/tools/agent/attach.d.ts +11 -0
- package/lib/mcp/tools/agent/attach.js +72 -0
- package/lib/mcp/tools/agent/build.d.ts +33 -0
- package/lib/mcp/tools/agent/build.js +74 -0
- package/lib/mcp/tools/agent/capture.d.ts +10 -0
- package/lib/mcp/tools/agent/capture.js +142 -0
- package/lib/mcp/tools/agent/eval.d.ts +5 -0
- package/lib/mcp/tools/agent/eval.js +127 -0
- package/lib/mcp/tools/agent/find.d.ts +3 -0
- package/lib/mcp/tools/agent/find.js +60 -0
- package/lib/mcp/tools/agent/proof.d.ts +3 -0
- package/lib/mcp/tools/agent/proof.js +214 -0
- package/lib/mcp/tools/agent/propose.d.ts +9 -0
- package/lib/mcp/tools/agent/propose.js +75 -0
- package/lib/mcp/tools/agent/publish.d.ts +3 -0
- package/lib/mcp/tools/agent/publish.js +122 -0
- package/lib/mcp/tools/agent/replay.d.ts +3 -0
- package/lib/mcp/tools/agent/replay.js +46 -0
- package/lib/mcp/tools/agent/session.d.ts +10 -0
- package/lib/mcp/tools/agent/session.js +29 -0
- package/lib/mcp/tools/credentials/authenticate.d.ts +3 -0
- package/lib/mcp/tools/credentials/authenticate.js +108 -0
- package/lib/mcp/tools/credentials/build.d.ts +16 -0
- package/lib/mcp/tools/credentials/build.js +33 -0
- package/lib/mcp/tools/credentials/cache.d.ts +70 -0
- package/lib/mcp/tools/credentials/cache.js +114 -0
- package/lib/mcp/tools/credentials/env-file.d.ts +25 -0
- package/lib/mcp/tools/credentials/env-file.js +71 -0
- package/lib/mcp/tools/credentials/import.d.ts +2 -0
- package/lib/mcp/tools/credentials/import.js +52 -0
- package/lib/mcp/tools/credentials/issue.d.ts +2 -0
- package/lib/mcp/tools/credentials/issue.js +84 -0
- package/lib/mcp/tools/credentials/list-cached.d.ts +2 -0
- package/lib/mcp/tools/credentials/list-cached.js +55 -0
- package/lib/mcp/tools/credentials/register.d.ts +18 -0
- package/lib/mcp/tools/credentials/register.js +30 -0
- package/lib/mcp/tools/credentials/resolve-owner-key.d.ts +12 -0
- package/lib/mcp/tools/credentials/resolve-owner-key.js +68 -0
- package/lib/mcp/tools/credentials/session-cache.d.ts +14 -0
- package/lib/mcp/tools/credentials/session-cache.js +19 -0
- package/lib/mcp/tools/credentials/status.d.ts +3 -0
- package/lib/mcp/tools/credentials/status.js +62 -0
- package/lib/mcp-bin.d.ts +1 -0
- package/lib/mcp-bin.js +7 -0
- package/lib/old/client.d.ts +67 -0
- package/lib/old/client.js +146 -0
- package/lib/old/flag.d.ts +11 -0
- package/lib/old/flag.js +13 -0
- package/lib/old/identity.d.ts +22 -0
- package/lib/old/identity.js +47 -0
- package/lib/old/instructions.d.ts +7 -0
- package/lib/old/instructions.js +29 -0
- package/lib/old/login-cdp.d.ts +23 -0
- package/lib/old/login-cdp.js +125 -0
- package/lib/old/to-register.d.ts +47 -0
- package/lib/old/to-register.js +133 -0
- package/lib/old/tools/authenticate.d.ts +18 -0
- package/lib/old/tools/authenticate.js +127 -0
- package/lib/old/tools/build.d.ts +9 -0
- package/lib/old/tools/build.js +16 -0
- package/lib/old/tools/me-providers.d.ts +10 -0
- package/lib/old/tools/me-providers.js +32 -0
- package/lib/old/tools/publish.d.ts +16 -0
- package/lib/old/tools/publish.js +97 -0
- package/lib/paths.d.ts +11 -0
- package/lib/paths.js +32 -0
- package/lib/pkg.d.ts +3 -0
- package/lib/pkg.js +13 -0
- package/lib/proof/attestor.d.ts +39 -0
- package/lib/proof/attestor.js +207 -0
- package/lib/proof/replay.d.ts +8 -0
- package/lib/proof/replay.js +73 -0
- package/lib/provider/constraints.d.ts +2 -0
- package/lib/provider/constraints.js +122 -0
- package/lib/provider/draft.d.ts +6 -0
- package/lib/provider/draft.js +68 -0
- package/lib/provider/graphql.d.ts +2 -0
- package/lib/provider/graphql.js +35 -0
- package/lib/provider/matcher.d.ts +36 -0
- package/lib/provider/matcher.js +436 -0
- package/lib/provider/normalize.d.ts +4 -0
- package/lib/provider/normalize.js +51 -0
- package/lib/provider/schema.d.ts +76 -0
- package/lib/provider/schema.js +1 -0
- package/lib/provider/secrets.d.ts +5 -0
- package/lib/provider/secrets.js +22 -0
- package/lib/provider/to-version.d.ts +22 -0
- package/lib/provider/to-version.js +68 -0
- package/lib/types/openapi.d.ts +4 -0
- package/lib/types/openapi.js +1 -0
- package/package.json +88 -0
- package/scripts/download-zk-files.ts +42 -0
- package/scripts/prepend-shebang.ts +17 -0
- package/skill/SKILL.md +248 -0
- package/src/cdp/capture.ts +215 -0
- package/src/cdp/client.ts +20 -0
- package/src/cdp/eviction.ts +52 -0
- package/src/cdp/launcher.ts +133 -0
- package/src/cdp/tabs.ts +22 -0
- package/src/cli/args.ts +20 -0
- package/src/cli/commands.ts +27 -0
- package/src/cli.ts +7 -0
- package/src/config/store.ts +86 -0
- package/src/index.ts +12 -0
- package/src/logger.ts +8 -0
- package/src/mcp/api/operations.gen.ts +2397 -0
- package/src/mcp/api/tools.ts +45 -0
- package/src/mcp/remap_errors.ts +35 -0
- package/src/mcp/server.ts +119 -0
- package/src/mcp/start.ts +78 -0
- package/src/mcp/tools/agent/analyze.ts +34 -0
- package/src/mcp/tools/agent/attach.ts +95 -0
- package/src/mcp/tools/agent/build.ts +99 -0
- package/src/mcp/tools/agent/capture.ts +202 -0
- package/src/mcp/tools/agent/eval.ts +161 -0
- package/src/mcp/tools/agent/find.ts +73 -0
- package/src/mcp/tools/agent/proof.ts +272 -0
- package/src/mcp/tools/agent/propose.ts +111 -0
- package/src/mcp/tools/agent/publish.ts +155 -0
- package/src/mcp/tools/agent/replay.ts +58 -0
- package/src/mcp/tools/agent/session.ts +46 -0
- package/src/mcp/tools/credentials/authenticate.ts +135 -0
- package/src/mcp/tools/credentials/build.ts +37 -0
- package/src/mcp/tools/credentials/cache.ts +161 -0
- package/src/mcp/tools/credentials/env-file.ts +101 -0
- package/src/mcp/tools/credentials/import.ts +72 -0
- package/src/mcp/tools/credentials/issue.ts +107 -0
- package/src/mcp/tools/credentials/list-cached.ts +66 -0
- package/src/mcp/tools/credentials/register.ts +49 -0
- package/src/mcp/tools/credentials/resolve-owner-key.ts +78 -0
- package/src/mcp/tools/credentials/session-cache.ts +31 -0
- package/src/mcp/tools/credentials/status.ts +82 -0
- package/src/mcp-bin.ts +7 -0
- package/src/old/client.ts +236 -0
- package/src/old/flag.ts +13 -0
- package/src/old/identity.ts +56 -0
- package/src/old/instructions.ts +30 -0
- package/src/old/login-cdp.ts +153 -0
- package/src/old/to-register.ts +234 -0
- package/src/old/tools/authenticate.ts +152 -0
- package/src/old/tools/build.ts +21 -0
- package/src/old/tools/me-providers.ts +42 -0
- package/src/old/tools/publish.ts +135 -0
- package/src/paths.ts +37 -0
- package/src/pkg.ts +24 -0
- package/src/proof/attestor.ts +286 -0
- package/src/proof/replay.ts +102 -0
- package/src/provider/constraints.ts +150 -0
- package/src/provider/draft.ts +105 -0
- package/src/provider/graphql.ts +42 -0
- package/src/provider/matcher.ts +616 -0
- package/src/provider/normalize.ts +65 -0
- package/src/provider/schema.ts +92 -0
- package/src/provider/secrets.ts +29 -0
- package/src/provider/to-version.ts +90 -0
- package/src/types/openapi.ts +7 -0
|
@@ -0,0 +1,2300 @@
|
|
|
1
|
+
// AUTO-GENERATED by packages/app/scripts/mcp-tools-gen.ts
|
|
2
|
+
// from packages/app/openapi.yaml.
|
|
3
|
+
// Run `npm run openapi:typegen --workspace=packages/agent`
|
|
4
|
+
// to regenerate. Do not edit by hand.
|
|
5
|
+
// @ts-nocheck
|
|
6
|
+
import { convertJsonSchemaToZod as toZod } from 'zod-from-json-schema';
|
|
7
|
+
export const MCP_TOOLS = {
|
|
8
|
+
"AddOrgMember": {
|
|
9
|
+
description: "Invite a member to an organization\n\nOwner only. Invites a user to the organization by email. The invitee does **not** need to be a registered user — an invite is created in either case, and an email is dispatched. The new row is returned with `status: PENDING`; it flips to `ACTIVE` on first sign-in by the invited email. `PERSONAL` organizations reject this call (409). In the current milestone the email is not actually dispatched — the invite is auto-claimed when the invitee next signs in.",
|
|
10
|
+
inputSchema: toZod({
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"params": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"orgId": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"format": "uuid"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"required": [
|
|
22
|
+
"orgId"
|
|
23
|
+
],
|
|
24
|
+
"additionalProperties": false
|
|
25
|
+
},
|
|
26
|
+
"query": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {}
|
|
29
|
+
},
|
|
30
|
+
"body": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": false,
|
|
33
|
+
"description": "Body for inviting a member to an organization. The invitee does not need to be a registered user; an invite is created either way and an email is dispatched.",
|
|
34
|
+
"required": [
|
|
35
|
+
"email",
|
|
36
|
+
"role"
|
|
37
|
+
],
|
|
38
|
+
"properties": {
|
|
39
|
+
"email": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"format": "email",
|
|
42
|
+
"description": "Email to invite. Need not match an existing `User`.",
|
|
43
|
+
"minLength": 3,
|
|
44
|
+
"maxLength": 320
|
|
45
|
+
},
|
|
46
|
+
"role": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Role a user holds in an organization. `OWNER` can invite, promote, demote, and remove members, and delete the org. `MEMBER` has read/write access to resources owned by the org but cannot manage membership. `PERSONAL` orgs have exactly one `OWNER` and reject all member-mutating operations.",
|
|
49
|
+
"enum": [
|
|
50
|
+
"OWNER",
|
|
51
|
+
"MEMBER"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"required": [
|
|
58
|
+
"params",
|
|
59
|
+
"query",
|
|
60
|
+
"body"
|
|
61
|
+
],
|
|
62
|
+
"additionalProperties": false
|
|
63
|
+
}),
|
|
64
|
+
},
|
|
65
|
+
"AdminOrgs": {
|
|
66
|
+
description: "All workspaces (admin-only)\n\nAdmin only. Lists all organizations. Search matches workspace name or any member's email address.",
|
|
67
|
+
inputSchema: toZod({
|
|
68
|
+
"type": "object",
|
|
69
|
+
"properties": {
|
|
70
|
+
"params": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"properties": {}
|
|
73
|
+
},
|
|
74
|
+
"query": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"properties": {
|
|
77
|
+
"q": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"maxLength": 200
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"body": {
|
|
84
|
+
"type": "object"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"required": [
|
|
88
|
+
"params",
|
|
89
|
+
"query"
|
|
90
|
+
],
|
|
91
|
+
"additionalProperties": false
|
|
92
|
+
}),
|
|
93
|
+
},
|
|
94
|
+
"AdminProviders": {
|
|
95
|
+
description: "All verifications (admin-only)\n\nAdmin only. Lists all verifications across all organizations. Supports filtering by visibility, status, and free-text search on title/domain/slug.",
|
|
96
|
+
inputSchema: toZod({
|
|
97
|
+
"type": "object",
|
|
98
|
+
"properties": {
|
|
99
|
+
"params": {
|
|
100
|
+
"type": "object",
|
|
101
|
+
"properties": {}
|
|
102
|
+
},
|
|
103
|
+
"query": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"properties": {
|
|
106
|
+
"q": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"maxLength": 200
|
|
109
|
+
},
|
|
110
|
+
"visibility": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"description": "The visibility of the entity.\n\n- `PRIVATE`: Only the owner can see the entity.\n\n- `PUBLIC`: Anyone can see the entity.",
|
|
113
|
+
"enum": [
|
|
114
|
+
"PRIVATE",
|
|
115
|
+
"PUBLIC"
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"status": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"description": "The status of the entity.\n\n- `ACTIVE`: The entity is active.\n\n- `ARCHIVED`: The entity is archived.",
|
|
121
|
+
"enum": [
|
|
122
|
+
"ACTIVE",
|
|
123
|
+
"ARCHIVED"
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"body": {
|
|
129
|
+
"type": "object"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"required": [
|
|
133
|
+
"params",
|
|
134
|
+
"query"
|
|
135
|
+
],
|
|
136
|
+
"additionalProperties": false
|
|
137
|
+
}),
|
|
138
|
+
},
|
|
139
|
+
"AdminReviews": {
|
|
140
|
+
description: "Pending review queue (admin-only)\n\nAdmin only. Lists all provider versions currently awaiting review (branch = 'in_review'). Use DecideProviderVersionReview to approve or reject each version.",
|
|
141
|
+
inputSchema: toZod({
|
|
142
|
+
"type": "object",
|
|
143
|
+
"properties": {
|
|
144
|
+
"params": {
|
|
145
|
+
"type": "object",
|
|
146
|
+
"properties": {}
|
|
147
|
+
},
|
|
148
|
+
"query": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"properties": {}
|
|
151
|
+
},
|
|
152
|
+
"body": {
|
|
153
|
+
"type": "object"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"required": [
|
|
157
|
+
"params",
|
|
158
|
+
"query"
|
|
159
|
+
],
|
|
160
|
+
"additionalProperties": false
|
|
161
|
+
}),
|
|
162
|
+
},
|
|
163
|
+
"CancelPublicListingRequest": {
|
|
164
|
+
description: "Cancel a pending public listing review request\n\nCancels a pending public listing request by moving the version from `in_review` back to `draft`. Only org members can cancel their own review requests. This allows users to withdraw a request before admin review if they change their mind.",
|
|
165
|
+
inputSchema: toZod({
|
|
166
|
+
"type": "object",
|
|
167
|
+
"properties": {
|
|
168
|
+
"params": {
|
|
169
|
+
"type": "object",
|
|
170
|
+
"properties": {
|
|
171
|
+
"providerId": {
|
|
172
|
+
"type": "string",
|
|
173
|
+
"format": "uuid"
|
|
174
|
+
},
|
|
175
|
+
"version": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
178
|
+
"maxLength": 32
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"required": [
|
|
182
|
+
"providerId",
|
|
183
|
+
"version"
|
|
184
|
+
],
|
|
185
|
+
"additionalProperties": false
|
|
186
|
+
},
|
|
187
|
+
"query": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"properties": {}
|
|
190
|
+
},
|
|
191
|
+
"body": {
|
|
192
|
+
"type": "object",
|
|
193
|
+
"additionalProperties": false,
|
|
194
|
+
"description": "Body for visibility change requests (request public listing or make private).",
|
|
195
|
+
"properties": {
|
|
196
|
+
"notes": {
|
|
197
|
+
"type": "string",
|
|
198
|
+
"description": "Optional note explaining the change.",
|
|
199
|
+
"maxLength": 10000
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"required": [
|
|
205
|
+
"params",
|
|
206
|
+
"query",
|
|
207
|
+
"body"
|
|
208
|
+
],
|
|
209
|
+
"additionalProperties": false
|
|
210
|
+
}),
|
|
211
|
+
},
|
|
212
|
+
"CreateAttachSession": {
|
|
213
|
+
description: "Open a device-pairing session to authorize a device\n\nOpens a short-lived (15-minute) device-pairing session. The CLI / MCP needs a bearer token to make authenticated API calls: the human opens `attachUrl`, signs in, and taps \"Authorize this device\". On confirmation the CLI receives a 2-day auth token via `GetAttachSession` polling. Linking a credential to an org is a separate step (`POST /credentials`) and is not part of pairing.",
|
|
214
|
+
inputSchema: toZod({
|
|
215
|
+
"type": "object",
|
|
216
|
+
"properties": {
|
|
217
|
+
"params": {
|
|
218
|
+
"type": "object",
|
|
219
|
+
"properties": {}
|
|
220
|
+
},
|
|
221
|
+
"query": {
|
|
222
|
+
"type": "object",
|
|
223
|
+
"properties": {}
|
|
224
|
+
},
|
|
225
|
+
"body": {
|
|
226
|
+
"type": "object"
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
"required": [
|
|
230
|
+
"params",
|
|
231
|
+
"query"
|
|
232
|
+
],
|
|
233
|
+
"additionalProperties": false
|
|
234
|
+
}),
|
|
235
|
+
},
|
|
236
|
+
"CreateOrg": {
|
|
237
|
+
description: "Create an organization\n\nCreates a new `ORG`-kind organization with the caller as its first `OWNER`. The personal org is created automatically at user signup and is not created via this endpoint.",
|
|
238
|
+
inputSchema: toZod({
|
|
239
|
+
"type": "object",
|
|
240
|
+
"properties": {
|
|
241
|
+
"params": {
|
|
242
|
+
"type": "object",
|
|
243
|
+
"properties": {}
|
|
244
|
+
},
|
|
245
|
+
"query": {
|
|
246
|
+
"type": "object",
|
|
247
|
+
"properties": {}
|
|
248
|
+
},
|
|
249
|
+
"body": {
|
|
250
|
+
"type": "object",
|
|
251
|
+
"additionalProperties": false,
|
|
252
|
+
"required": [
|
|
253
|
+
"name"
|
|
254
|
+
],
|
|
255
|
+
"properties": {
|
|
256
|
+
"name": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"minLength": 1,
|
|
259
|
+
"maxLength": 200
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"required": [
|
|
265
|
+
"params",
|
|
266
|
+
"query",
|
|
267
|
+
"body"
|
|
268
|
+
],
|
|
269
|
+
"additionalProperties": false
|
|
270
|
+
}),
|
|
271
|
+
},
|
|
272
|
+
"CreateProvider": {
|
|
273
|
+
description: "Create a verification\n\nCreate a new Reclaim verification. Use this only after `providers` returned nothing useful for the domain. The caller must be an active member of the target organization.\nCreates a new verification in the specified organization. `visibility` is coerced to `PRIVATE` at creation regardless of what's sent; the author may toggle to `PUBLIC` later via `PATCH /providers/{id}`. While `PRIVATE`, versions go to the go live freely; once `PUBLIC`, non-admin versions need admin review. See `Provider.visibility`.\nThe server also seeds an initial `0.1.0` version on the `draft` branch in the same transaction so the verification is immediately editable. Its `initialUrl` defaults to `https://<domain>`; all other version fields fall back to their schema-declared defaults (structured verification, empty requests, empty web settings). `Provider.latestVersion` stays `null` until the draft is promoted to the live channel.",
|
|
274
|
+
inputSchema: toZod({
|
|
275
|
+
"type": "object",
|
|
276
|
+
"properties": {
|
|
277
|
+
"params": {
|
|
278
|
+
"type": "object",
|
|
279
|
+
"properties": {}
|
|
280
|
+
},
|
|
281
|
+
"query": {
|
|
282
|
+
"type": "object",
|
|
283
|
+
"properties": {}
|
|
284
|
+
},
|
|
285
|
+
"body": {
|
|
286
|
+
"type": "object",
|
|
287
|
+
"additionalProperties": false,
|
|
288
|
+
"description": "`title` is optional — when omitted the dashboard renders `seoSuggestions.title` (server-derived from the scrape result or `derive_brand_name(domain)`).",
|
|
289
|
+
"required": [
|
|
290
|
+
"orgId",
|
|
291
|
+
"domain",
|
|
292
|
+
"slug"
|
|
293
|
+
],
|
|
294
|
+
"properties": {
|
|
295
|
+
"orgId": {
|
|
296
|
+
"type": "string",
|
|
297
|
+
"format": "uuid"
|
|
298
|
+
},
|
|
299
|
+
"domain": {
|
|
300
|
+
"description": "Canonical root domain (e.g. `github.com`). No scheme, no port, no path.",
|
|
301
|
+
"type": "string",
|
|
302
|
+
"format": "hostname",
|
|
303
|
+
"minLength": 1,
|
|
304
|
+
"maxLength": 200
|
|
305
|
+
},
|
|
306
|
+
"slug": {
|
|
307
|
+
"description": "URL-safe identifier. Globally unique — pick something domain-specific like `github-followers`.",
|
|
308
|
+
"type": "string",
|
|
309
|
+
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
|
310
|
+
"minLength": 1,
|
|
311
|
+
"maxLength": 100
|
|
312
|
+
},
|
|
313
|
+
"title": {
|
|
314
|
+
"description": "Short headline shown to end-users. Defaults to a domain-derived brand name.",
|
|
315
|
+
"type": "string",
|
|
316
|
+
"minLength": 1,
|
|
317
|
+
"maxLength": 100
|
|
318
|
+
},
|
|
319
|
+
"description": {
|
|
320
|
+
"type": "string",
|
|
321
|
+
"minLength": 1,
|
|
322
|
+
"maxLength": 2000
|
|
323
|
+
},
|
|
324
|
+
"iconUrl": {
|
|
325
|
+
"description": "uri of the icon. Optional. If omitted, the server auto-populates from the first version's `initialUrl` (see `Provider.iconUrl`).",
|
|
326
|
+
"type": "string",
|
|
327
|
+
"format": "uri",
|
|
328
|
+
"maxLength": 2000
|
|
329
|
+
},
|
|
330
|
+
"visibility": {
|
|
331
|
+
"type": "string",
|
|
332
|
+
"description": "The visibility of the entity.\n\n- `PRIVATE`: Only the owner can see the entity.\n\n- `PUBLIC`: Anyone can see the entity.",
|
|
333
|
+
"enum": [
|
|
334
|
+
"PRIVATE",
|
|
335
|
+
"PUBLIC"
|
|
336
|
+
]
|
|
337
|
+
},
|
|
338
|
+
"tags": {
|
|
339
|
+
"type": "array",
|
|
340
|
+
"maxItems": 50,
|
|
341
|
+
"uniqueItems": true,
|
|
342
|
+
"default": [],
|
|
343
|
+
"items": {
|
|
344
|
+
"type": "string",
|
|
345
|
+
"description": "A free-form label attached to an entity for grouping and filtering in listings. Must start and end with an alphanumeric character; only ASCII letters, digits, spaces, and hyphens are allowed between.",
|
|
346
|
+
"pattern": "^[A-Za-z0-9]([A-Za-z0-9 \\-]*[A-Za-z0-9])?$",
|
|
347
|
+
"minLength": 1,
|
|
348
|
+
"maxLength": 50
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"seo": {
|
|
352
|
+
"type": "object",
|
|
353
|
+
"additionalProperties": false,
|
|
354
|
+
"description": "Author-set SEO fields. All optional.\n\nEach field is paired with a server-derived default of the\nsame name on `Provider.seoSuggestions`. Renderers pick the\neffective value per field:\n\n effective.<field> = seo.<field> ?? seoSuggestions.<field>\n\nSet a field here to override; leave it unset to let the\ndefault win. Both objects are returned on every\n`GET /providers/{id}` — the builder does not pre-merge.\n",
|
|
355
|
+
"properties": {
|
|
356
|
+
"brandUrl": {
|
|
357
|
+
"type": "string",
|
|
358
|
+
"format": "uri",
|
|
359
|
+
"description": "Canonical homepage of the brand (e.g. `https://google.com`). Used in brand-link cards and JSON-LD.",
|
|
360
|
+
"maxLength": 2000
|
|
361
|
+
},
|
|
362
|
+
"primaryDataPoint": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"description": "Headline data point — the single most-important variable this provider can verify (e.g. `subscriber count`). Used in the provider's SEO title.",
|
|
365
|
+
"maxLength": 200
|
|
366
|
+
},
|
|
367
|
+
"dataPoints": {
|
|
368
|
+
"type": "array",
|
|
369
|
+
"description": "Full list of data points this provider can verify.",
|
|
370
|
+
"maxItems": 50,
|
|
371
|
+
"items": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"maxLength": 200
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"titleOverride": {
|
|
377
|
+
"type": "string",
|
|
378
|
+
"description": "Replaces the renderer's composed `<title>` / OG title. Use when the default composition reads awkwardly.",
|
|
379
|
+
"maxLength": 200
|
|
380
|
+
},
|
|
381
|
+
"descriptionOverride": {
|
|
382
|
+
"type": "string",
|
|
383
|
+
"description": "Replaces the renderer's composed `<meta name=\"description\">` / OG description.",
|
|
384
|
+
"maxLength": 320
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
"required": [
|
|
392
|
+
"params",
|
|
393
|
+
"query",
|
|
394
|
+
"body"
|
|
395
|
+
],
|
|
396
|
+
"additionalProperties": false
|
|
397
|
+
}),
|
|
398
|
+
},
|
|
399
|
+
"CreateProviderVersion": {
|
|
400
|
+
description: "Create a new verification version\n\nCreates a new version of the verification. The starting branch\ndepends on the verification's `visibility` and the caller's role:\n\n- `PRIVATE` verification (any caller): the live channel (no review).\n\n- `PUBLIC` verification, admin caller (Reclaim staff): the live channel\n (no review).\n\n- `PUBLIC` verification, non-admin caller: `draft` (or `ai` if\n authored by the AI assistant). Must pass review (see\n `POST /providers/{id}/versions/{version}/review`) before\n reaching the live channel.\n",
|
|
401
|
+
inputSchema: toZod({
|
|
402
|
+
"type": "object",
|
|
403
|
+
"properties": {
|
|
404
|
+
"params": {
|
|
405
|
+
"type": "object",
|
|
406
|
+
"properties": {
|
|
407
|
+
"providerId": {
|
|
408
|
+
"type": "string",
|
|
409
|
+
"format": "uuid"
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"required": [
|
|
413
|
+
"providerId"
|
|
414
|
+
],
|
|
415
|
+
"additionalProperties": false
|
|
416
|
+
},
|
|
417
|
+
"query": {
|
|
418
|
+
"type": "object",
|
|
419
|
+
"properties": {}
|
|
420
|
+
},
|
|
421
|
+
"body": {
|
|
422
|
+
"type": "object",
|
|
423
|
+
"additionalProperties": false,
|
|
424
|
+
"description": "Body for creating a new version of a provider. Every new version starts on the `draft` branch — see `CreateProviderVersion`. The request body never sets `branch` directly; going live is a separate, explicit step (publish for PRIVATE, submit-for-review → approve for PUBLIC). The version's `verificationType` is always `structured` and is not settable here; a `prompt` field is reserved for a future AI authoring flow and is also not accepted on this surface.",
|
|
425
|
+
"required": [
|
|
426
|
+
"initialUrl",
|
|
427
|
+
"requests",
|
|
428
|
+
"allowedJsRequests",
|
|
429
|
+
"webSettings"
|
|
430
|
+
],
|
|
431
|
+
"properties": {
|
|
432
|
+
"version": {
|
|
433
|
+
"type": "object",
|
|
434
|
+
"additionalProperties": false,
|
|
435
|
+
"required": [
|
|
436
|
+
"major",
|
|
437
|
+
"minor",
|
|
438
|
+
"patch"
|
|
439
|
+
],
|
|
440
|
+
"properties": {
|
|
441
|
+
"major": {
|
|
442
|
+
"type": "integer",
|
|
443
|
+
"minimum": 0
|
|
444
|
+
},
|
|
445
|
+
"minor": {
|
|
446
|
+
"type": "integer",
|
|
447
|
+
"minimum": 0
|
|
448
|
+
},
|
|
449
|
+
"patch": {
|
|
450
|
+
"type": "integer",
|
|
451
|
+
"minimum": 0
|
|
452
|
+
},
|
|
453
|
+
"branch": {
|
|
454
|
+
"type": "string",
|
|
455
|
+
"description": "Branch (lifecycle stage) of this provider version.\n\n- `ai`: changes authored by the AI assistant live on this branch.\n\n- `draft`: a human is actively editing the version.\n\n- `in_review`: the author has submitted the version to be made\n public and it is awaiting review. On approval the branch tag\n is cleared (the version is promoted to the live channel and becomes\n public).\n\n- `rejected`: review concluded with a rejection. When the author\n addresses the feedback the branch transitions back to\n `in_review`.",
|
|
456
|
+
"enum": [
|
|
457
|
+
"ai",
|
|
458
|
+
"draft",
|
|
459
|
+
"in_review",
|
|
460
|
+
"rejected"
|
|
461
|
+
]
|
|
462
|
+
},
|
|
463
|
+
"buildNumber": {
|
|
464
|
+
"type": "integer",
|
|
465
|
+
"description": "Build number for the provider version",
|
|
466
|
+
"minimum": 0
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"initialUrl": {
|
|
471
|
+
"type": "string",
|
|
472
|
+
"format": "uri",
|
|
473
|
+
"maxLength": 300
|
|
474
|
+
},
|
|
475
|
+
"requests": {
|
|
476
|
+
"type": "array",
|
|
477
|
+
"minItems": 0,
|
|
478
|
+
"default": [],
|
|
479
|
+
"items": {
|
|
480
|
+
"type": "object",
|
|
481
|
+
"additionalProperties": false,
|
|
482
|
+
"description": "A matcher for one HTTP request in observed traffic, together with the response constraints that must hold for a Reclaim proof over that request to be valid. Used by interceptors, in-page injections, and LLM agents.",
|
|
483
|
+
"required": [
|
|
484
|
+
"url",
|
|
485
|
+
"method"
|
|
486
|
+
],
|
|
487
|
+
"properties": {
|
|
488
|
+
"url": {
|
|
489
|
+
"type": "string",
|
|
490
|
+
"description": "The URL or generic path of the HTTP request."
|
|
491
|
+
},
|
|
492
|
+
"method": {
|
|
493
|
+
"type": "string",
|
|
494
|
+
"description": "The HTTP method used for the request.",
|
|
495
|
+
"enum": [
|
|
496
|
+
"GET",
|
|
497
|
+
"POST",
|
|
498
|
+
"PUT",
|
|
499
|
+
"PATCH",
|
|
500
|
+
"DELETE"
|
|
501
|
+
]
|
|
502
|
+
},
|
|
503
|
+
"requestBodyTemplate": {
|
|
504
|
+
"type": "string",
|
|
505
|
+
"description": "Template used to match or capture an outgoing request body. Template can use regex templates as placeholders. For example, to match an outgoing request body that contains a request ID, you can use the following template: `(?<requestId>.*)`.",
|
|
506
|
+
"maxLength": 100000
|
|
507
|
+
},
|
|
508
|
+
"credentials": {
|
|
509
|
+
"type": "string",
|
|
510
|
+
"description": "Mirrors the Fetch API `RequestCredentials` value used when issuing the request — controls whether cookies and auth headers are sent.",
|
|
511
|
+
"enum": [
|
|
512
|
+
"omit",
|
|
513
|
+
"same-origin",
|
|
514
|
+
"include"
|
|
515
|
+
]
|
|
516
|
+
},
|
|
517
|
+
"writeRedactionMode": {
|
|
518
|
+
"type": "string",
|
|
519
|
+
"description": "How the matched portion of the response should be redacted before the transcript is handed to the attestor.\n- `zk`: redact using a zero-knowledge proof over the original\n bytes.\n\n- `key-update`: redact by performing a TLS key update so the\n attestor never observes the matched bytes in cleartext.",
|
|
520
|
+
"enum": [
|
|
521
|
+
"zk",
|
|
522
|
+
"key-update"
|
|
523
|
+
]
|
|
524
|
+
},
|
|
525
|
+
"additionalClientOptions": {
|
|
526
|
+
"type": "object",
|
|
527
|
+
"additionalProperties": false,
|
|
528
|
+
"description": "Apply TLS configuration when creating the tunnel to the attestor.",
|
|
529
|
+
"properties": {
|
|
530
|
+
"supportedProtocolVersions": {
|
|
531
|
+
"type": "array",
|
|
532
|
+
"description": "TLS protocol versions the client is allowed to negotiate.",
|
|
533
|
+
"minItems": 1,
|
|
534
|
+
"uniqueItems": true,
|
|
535
|
+
"items": {
|
|
536
|
+
"type": "string",
|
|
537
|
+
"enum": [
|
|
538
|
+
"TLS1_2",
|
|
539
|
+
"TLS1_3"
|
|
540
|
+
]
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
"matches": {
|
|
546
|
+
"type": "array",
|
|
547
|
+
"description": "A list of match conditions for the response.",
|
|
548
|
+
"minItems": 1,
|
|
549
|
+
"items": {
|
|
550
|
+
"type": "object",
|
|
551
|
+
"additionalProperties": false,
|
|
552
|
+
"description": "Specifies a rule to match against a string in response to validate proof content.",
|
|
553
|
+
"required": [
|
|
554
|
+
"type",
|
|
555
|
+
"value"
|
|
556
|
+
],
|
|
557
|
+
"properties": {
|
|
558
|
+
"isOptional": {
|
|
559
|
+
"type": "boolean",
|
|
560
|
+
"description": "If true, the match condition is optional and won't fail if absent",
|
|
561
|
+
"default": false
|
|
562
|
+
},
|
|
563
|
+
"description": {
|
|
564
|
+
"type": "string",
|
|
565
|
+
"description": "The description of the field that is extracted using this match rule",
|
|
566
|
+
"minLength": 1,
|
|
567
|
+
"maxLength": 1000
|
|
568
|
+
},
|
|
569
|
+
"order": {
|
|
570
|
+
"type": "integer",
|
|
571
|
+
"description": "The order in which the field should be displayed to user in UI",
|
|
572
|
+
"minimum": 0
|
|
573
|
+
},
|
|
574
|
+
"type": {
|
|
575
|
+
"type": "string",
|
|
576
|
+
"description": "The matching mechanism to use value as against response. Typically regex or simple string containment",
|
|
577
|
+
"enum": [
|
|
578
|
+
"regex",
|
|
579
|
+
"contains"
|
|
580
|
+
]
|
|
581
|
+
},
|
|
582
|
+
"value": {
|
|
583
|
+
"type": "string",
|
|
584
|
+
"description": "The pattern or value to look for in the response. When `type` is 'contains', supports template variable declaration using `{{variable}}` syntax. When `type` is 'regex', can be used to extract variables using regex named groups."
|
|
585
|
+
},
|
|
586
|
+
"extract": {
|
|
587
|
+
"type": "object",
|
|
588
|
+
"description": "Which portions to select from a response. These are selected in order, xpath => jsonPath => regex * These redactions are done client side and only the selected portions are sent to the attestor. The attestor will only be able to see the selected portions alongside the first line of the HTTP response (i.e. \"HTTP/1.1 200 OK\")",
|
|
589
|
+
"properties": {
|
|
590
|
+
"xPath": {
|
|
591
|
+
"type": "string",
|
|
592
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
593
|
+
},
|
|
594
|
+
"jsonPath": {
|
|
595
|
+
"type": "string",
|
|
596
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
597
|
+
},
|
|
598
|
+
"regex": {
|
|
599
|
+
"type": "string",
|
|
600
|
+
"description": "select a regex match from the response"
|
|
601
|
+
},
|
|
602
|
+
"hash": {
|
|
603
|
+
"type": "string",
|
|
604
|
+
"description": "If provided, the value inside will be hashed instead of being redacted. Useful for cases where the data inside is an identifiying piece of information that you don't want to reveal to the attestor, eg. an email address.\nIf the hash function produces more bytes than the original value, the hash will be truncated.\nEg. if hash is enabled, the original value is \"hello\", and hashed is \"a1b2c\", then the attestor will only see \"a1b2c\".\nNote: if a regex with named groups is provided, only the named groups will be hashed.",
|
|
605
|
+
"enum": [
|
|
606
|
+
"oprf",
|
|
607
|
+
"oprf-mpc",
|
|
608
|
+
"oprf-raw"
|
|
609
|
+
]
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
"allowedJsRequests": {
|
|
620
|
+
"type": "array",
|
|
621
|
+
"minItems": 0,
|
|
622
|
+
"default": [],
|
|
623
|
+
"items": {
|
|
624
|
+
"type": "object",
|
|
625
|
+
"additionalProperties": false,
|
|
626
|
+
"description": "A template for selecting request",
|
|
627
|
+
"allOf": [
|
|
628
|
+
{
|
|
629
|
+
"$ref": "#/components/schemas/RequestSelection"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"type": "object",
|
|
633
|
+
"required": [
|
|
634
|
+
"multiple",
|
|
635
|
+
"required"
|
|
636
|
+
],
|
|
637
|
+
"properties": {
|
|
638
|
+
"multiple": {
|
|
639
|
+
"type": "boolean",
|
|
640
|
+
"description": "If true, the template is allowed for multiple requests. Useful for requests like paginated API calls.",
|
|
641
|
+
"default": true
|
|
642
|
+
},
|
|
643
|
+
"required": {
|
|
644
|
+
"type": "boolean",
|
|
645
|
+
"description": "If true, a request is required to match with this template. If not requests matches this template in proof, then validation fails.",
|
|
646
|
+
"default": true
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
]
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"webSettings": {
|
|
654
|
+
"type": "object",
|
|
655
|
+
"additionalProperties": false,
|
|
656
|
+
"description": "Settings used by the web-based verification client.",
|
|
657
|
+
"properties": {
|
|
658
|
+
"geoLocation": {
|
|
659
|
+
"type": "string",
|
|
660
|
+
"description": "Geographic location (e.g. ISO country code or {{DYNAMIC_GEO}} to use user's geo location) the verification should appear to originate from.",
|
|
661
|
+
"maxLength": 15
|
|
662
|
+
},
|
|
663
|
+
"clientOptions": {
|
|
664
|
+
"type": "object",
|
|
665
|
+
"additionalProperties": false,
|
|
666
|
+
"description": "Options that influence how the web verification client behaves.",
|
|
667
|
+
"properties": {
|
|
668
|
+
"portal": {
|
|
669
|
+
"type": "object",
|
|
670
|
+
"additionalProperties": false,
|
|
671
|
+
"description": "Options that influence how the portal verification client behaves.",
|
|
672
|
+
"properties": {
|
|
673
|
+
"useProxy": {
|
|
674
|
+
"type": "boolean",
|
|
675
|
+
"description": "When true, network traffic from the portal client and attestation is routed through a proxy.",
|
|
676
|
+
"default": false
|
|
677
|
+
},
|
|
678
|
+
"userAgent": {
|
|
679
|
+
"type": "string",
|
|
680
|
+
"description": "User-agent string used for platform verification.",
|
|
681
|
+
"maxLength": 500
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
},
|
|
685
|
+
"inapp": {
|
|
686
|
+
"type": "object",
|
|
687
|
+
"additionalProperties": false,
|
|
688
|
+
"description": "Options that influence how the in-app verification client behaves.",
|
|
689
|
+
"properties": {
|
|
690
|
+
"interceptorOptions": {
|
|
691
|
+
"type": "object",
|
|
692
|
+
"additionalProperties": false,
|
|
693
|
+
"required": [
|
|
694
|
+
"interceptorType"
|
|
695
|
+
],
|
|
696
|
+
"properties": {
|
|
697
|
+
"interceptorType": {
|
|
698
|
+
"type": "string",
|
|
699
|
+
"description": "How traffic interception is implemented.",
|
|
700
|
+
"enum": [
|
|
701
|
+
"HAWKEYE",
|
|
702
|
+
"MSWJS",
|
|
703
|
+
"CDP"
|
|
704
|
+
]
|
|
705
|
+
},
|
|
706
|
+
"isDocumentRequestReplayEnabled": {
|
|
707
|
+
"type": "boolean",
|
|
708
|
+
"description": "Whether the main document request is replayed via the attestor",
|
|
709
|
+
"default": false
|
|
710
|
+
},
|
|
711
|
+
"interceptorSettings": {
|
|
712
|
+
"type": "string",
|
|
713
|
+
"description": "Free-form configuration passed through to the interceptor implementation selected by `interceptorType`. Keys and value shapes are defined by the chosen interceptor.",
|
|
714
|
+
"contentMediaType": "application/json"
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
},
|
|
718
|
+
"userAgents": {
|
|
719
|
+
"type": "object",
|
|
720
|
+
"additionalProperties": false,
|
|
721
|
+
"description": "User-agent strings keyed by platform.",
|
|
722
|
+
"properties": {
|
|
723
|
+
"android": {
|
|
724
|
+
"type": "string",
|
|
725
|
+
"description": "User-agent string used for platform verification.",
|
|
726
|
+
"maxLength": 500
|
|
727
|
+
},
|
|
728
|
+
"ios": {
|
|
729
|
+
"type": "string",
|
|
730
|
+
"description": "User-agent string used for platform verification.",
|
|
731
|
+
"maxLength": 500
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
},
|
|
739
|
+
"jsUserScripts": {
|
|
740
|
+
"type": "string",
|
|
741
|
+
"description": "JavaScript snippets injected into the page which runs before every page load. `window.Reclaim.` APIs are available to these scripts to request actions to the client like claim creation.",
|
|
742
|
+
"maxLength": 1000000
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
},
|
|
746
|
+
"requiredParameters": {
|
|
747
|
+
"type": "object",
|
|
748
|
+
"description": "Map of parameter names needed (optional or required) to use this provider to their human-readable descriptions/labels. Values are plain strings shown alongside the field in dashboards and prompts.",
|
|
749
|
+
"maxProperties": 50,
|
|
750
|
+
"additionalProperties": {
|
|
751
|
+
"type": "string",
|
|
752
|
+
"maxLength": 500
|
|
753
|
+
}
|
|
754
|
+
},
|
|
755
|
+
"notes": {
|
|
756
|
+
"type": "string",
|
|
757
|
+
"description": "Free-form change note recorded on `createMetadata`.",
|
|
758
|
+
"maxLength": 10000
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
},
|
|
763
|
+
"required": [
|
|
764
|
+
"params",
|
|
765
|
+
"query",
|
|
766
|
+
"body"
|
|
767
|
+
],
|
|
768
|
+
"additionalProperties": false
|
|
769
|
+
}),
|
|
770
|
+
},
|
|
771
|
+
"DecideProviderVersionReview": {
|
|
772
|
+
description: "Record a decision on a verification version review\n\nAdmin only (Reclaim staff). Approves or rejects a verification version currently on the `in_review` branch. `APPROVED` clears the branch tag and promotes the version to the live channel; `REJECTED` moves it to the `rejected` branch where the author can address feedback and resubmit. A rejected version stays rejected — the author either fixes and resubmits, or abandons it.\nUntil RBAC is designed, \"admin\" is detected via the user's email domain (`@reclaimprotocol.org`). Non-admin callers receive a 403.",
|
|
773
|
+
inputSchema: toZod({
|
|
774
|
+
"type": "object",
|
|
775
|
+
"properties": {
|
|
776
|
+
"params": {
|
|
777
|
+
"type": "object",
|
|
778
|
+
"properties": {
|
|
779
|
+
"providerId": {
|
|
780
|
+
"type": "string",
|
|
781
|
+
"format": "uuid"
|
|
782
|
+
},
|
|
783
|
+
"version": {
|
|
784
|
+
"type": "string",
|
|
785
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
786
|
+
"maxLength": 32
|
|
787
|
+
}
|
|
788
|
+
},
|
|
789
|
+
"required": [
|
|
790
|
+
"providerId",
|
|
791
|
+
"version"
|
|
792
|
+
],
|
|
793
|
+
"additionalProperties": false
|
|
794
|
+
},
|
|
795
|
+
"query": {
|
|
796
|
+
"type": "object",
|
|
797
|
+
"properties": {}
|
|
798
|
+
},
|
|
799
|
+
"body": {
|
|
800
|
+
"type": "object",
|
|
801
|
+
"additionalProperties": false,
|
|
802
|
+
"description": "Body for recording a decision on a provider version in `in_review`. On `APPROVED` the branch tag is cleared and the version is promoted to the live channel (becomes public). On `REJECTED` the branch becomes `rejected`.",
|
|
803
|
+
"required": [
|
|
804
|
+
"decision"
|
|
805
|
+
],
|
|
806
|
+
"properties": {
|
|
807
|
+
"decision": {
|
|
808
|
+
"type": "string",
|
|
809
|
+
"enum": [
|
|
810
|
+
"APPROVED",
|
|
811
|
+
"REJECTED"
|
|
812
|
+
]
|
|
813
|
+
},
|
|
814
|
+
"notes": {
|
|
815
|
+
"type": "string",
|
|
816
|
+
"description": "Free-form rationale shown to the author.",
|
|
817
|
+
"maxLength": 10000
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
},
|
|
822
|
+
"required": [
|
|
823
|
+
"params",
|
|
824
|
+
"query",
|
|
825
|
+
"body"
|
|
826
|
+
],
|
|
827
|
+
"additionalProperties": false
|
|
828
|
+
}),
|
|
829
|
+
},
|
|
830
|
+
"DeleteProvider": {
|
|
831
|
+
description: "Delete a verification\n\nOwner of the verification's organization only. Soft-archives the verification (sets `status` to `ARCHIVED`) so historical references remain resolvable. Supports optimistic concurrency via `If-Match`.",
|
|
832
|
+
inputSchema: toZod({
|
|
833
|
+
"type": "object",
|
|
834
|
+
"properties": {
|
|
835
|
+
"params": {
|
|
836
|
+
"type": "object",
|
|
837
|
+
"properties": {
|
|
838
|
+
"providerId": {
|
|
839
|
+
"type": "string",
|
|
840
|
+
"format": "uuid"
|
|
841
|
+
}
|
|
842
|
+
},
|
|
843
|
+
"required": [
|
|
844
|
+
"providerId"
|
|
845
|
+
],
|
|
846
|
+
"additionalProperties": false
|
|
847
|
+
},
|
|
848
|
+
"query": {
|
|
849
|
+
"type": "object",
|
|
850
|
+
"properties": {}
|
|
851
|
+
},
|
|
852
|
+
"headers": {
|
|
853
|
+
"type": "object",
|
|
854
|
+
"properties": {
|
|
855
|
+
"If-Match": {
|
|
856
|
+
"type": "string",
|
|
857
|
+
"maxLength": 128,
|
|
858
|
+
"description": "Opaque `ETag` from a prior GET on the same resource. When\nsupplied, the server applies optimistic concurrency: the\nmutation fails with `412 Precondition Failed` if the\nresource has been modified since. Omit for last-write-wins.\n"
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
},
|
|
862
|
+
"body": {
|
|
863
|
+
"type": "object"
|
|
864
|
+
}
|
|
865
|
+
},
|
|
866
|
+
"required": [
|
|
867
|
+
"params",
|
|
868
|
+
"query"
|
|
869
|
+
],
|
|
870
|
+
"additionalProperties": false
|
|
871
|
+
}),
|
|
872
|
+
},
|
|
873
|
+
"DeleteProviderVersion": {
|
|
874
|
+
description: "Delete a verification version\n\nSoft-archives a version on the `draft`, `ai`, or `rejected` branch — sets `status` to `ARCHIVED` so history is preserved. Trunk (live) and `in_review` versions cannot be archived this way; archive the parent verification instead. Supports optimistic concurrency via `If-Match`.",
|
|
875
|
+
inputSchema: toZod({
|
|
876
|
+
"type": "object",
|
|
877
|
+
"properties": {
|
|
878
|
+
"params": {
|
|
879
|
+
"type": "object",
|
|
880
|
+
"properties": {
|
|
881
|
+
"providerId": {
|
|
882
|
+
"type": "string",
|
|
883
|
+
"format": "uuid"
|
|
884
|
+
},
|
|
885
|
+
"version": {
|
|
886
|
+
"type": "string",
|
|
887
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
888
|
+
"maxLength": 32
|
|
889
|
+
}
|
|
890
|
+
},
|
|
891
|
+
"required": [
|
|
892
|
+
"providerId",
|
|
893
|
+
"version"
|
|
894
|
+
],
|
|
895
|
+
"additionalProperties": false
|
|
896
|
+
},
|
|
897
|
+
"query": {
|
|
898
|
+
"type": "object",
|
|
899
|
+
"properties": {}
|
|
900
|
+
},
|
|
901
|
+
"headers": {
|
|
902
|
+
"type": "object",
|
|
903
|
+
"properties": {
|
|
904
|
+
"If-Match": {
|
|
905
|
+
"type": "string",
|
|
906
|
+
"maxLength": 128,
|
|
907
|
+
"description": "Opaque `ETag` from a prior GET on the same resource. When\nsupplied, the server applies optimistic concurrency: the\nmutation fails with `412 Precondition Failed` if the\nresource has been modified since. Omit for last-write-wins.\n"
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
},
|
|
911
|
+
"body": {
|
|
912
|
+
"type": "object"
|
|
913
|
+
}
|
|
914
|
+
},
|
|
915
|
+
"required": [
|
|
916
|
+
"params",
|
|
917
|
+
"query"
|
|
918
|
+
],
|
|
919
|
+
"additionalProperties": false
|
|
920
|
+
}),
|
|
921
|
+
},
|
|
922
|
+
"GetAttachSession": {
|
|
923
|
+
description: "Poll a pairing session\n\nAnonymous poll endpoint used by the CLI / MCP while it waits for the human to complete the dashboard step. Once `status` is `LINKED`, the response includes a `token` (2-day bearer token) the CLI / MCP can use for authenticated API calls. Expired or unknown codes return `404`.",
|
|
924
|
+
inputSchema: toZod({
|
|
925
|
+
"type": "object",
|
|
926
|
+
"properties": {
|
|
927
|
+
"params": {
|
|
928
|
+
"type": "object",
|
|
929
|
+
"properties": {
|
|
930
|
+
"code": {
|
|
931
|
+
"type": "string",
|
|
932
|
+
"description": "Five-character device-pairing code. The CLI / MCP shows this to the user, who types it into the dashboard's `/attach` page to confirm the link. Always uppercase alphanumeric; chars `O`/`0` and `I`/`1` are excluded to avoid ambiguity when copied from a terminal.",
|
|
933
|
+
"pattern": "^[A-HJ-NP-Z2-9]{5}$",
|
|
934
|
+
"minLength": 5,
|
|
935
|
+
"maxLength": 5
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
"required": [
|
|
939
|
+
"code"
|
|
940
|
+
],
|
|
941
|
+
"additionalProperties": false
|
|
942
|
+
},
|
|
943
|
+
"query": {
|
|
944
|
+
"type": "object",
|
|
945
|
+
"properties": {}
|
|
946
|
+
},
|
|
947
|
+
"body": {
|
|
948
|
+
"type": "object"
|
|
949
|
+
}
|
|
950
|
+
},
|
|
951
|
+
"required": [
|
|
952
|
+
"params",
|
|
953
|
+
"query"
|
|
954
|
+
],
|
|
955
|
+
"additionalProperties": false
|
|
956
|
+
}),
|
|
957
|
+
},
|
|
958
|
+
"GetCredential": {
|
|
959
|
+
description: "Get a credential\n\nReturns the credential row. Visibility: anyone can fetch an anonymous (`orgId` null) credential by id; linked credentials are visible only to active members of the owning org.",
|
|
960
|
+
inputSchema: toZod({
|
|
961
|
+
"type": "object",
|
|
962
|
+
"properties": {
|
|
963
|
+
"params": {
|
|
964
|
+
"type": "object",
|
|
965
|
+
"properties": {
|
|
966
|
+
"credentialId": {
|
|
967
|
+
"type": "string",
|
|
968
|
+
"format": "uuid",
|
|
969
|
+
"description": "Stable id for a `Credential` row."
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
"required": [
|
|
973
|
+
"credentialId"
|
|
974
|
+
],
|
|
975
|
+
"additionalProperties": false
|
|
976
|
+
},
|
|
977
|
+
"query": {
|
|
978
|
+
"type": "object",
|
|
979
|
+
"properties": {}
|
|
980
|
+
},
|
|
981
|
+
"body": {
|
|
982
|
+
"type": "object"
|
|
983
|
+
}
|
|
984
|
+
},
|
|
985
|
+
"required": [
|
|
986
|
+
"params",
|
|
987
|
+
"query"
|
|
988
|
+
],
|
|
989
|
+
"additionalProperties": false
|
|
990
|
+
}),
|
|
991
|
+
},
|
|
992
|
+
"GetCredentialByAddress": {
|
|
993
|
+
description: "Look up a credential by its lowercase ETH address\n\nCompanion to `GET /credentials/{credentialId}`. The MCP / CLI knows the credential by its address (the public handle the user actually types) rather than by its UUID id, so this shortcut returns the same `Credential` shape keyed on the address. Visibility rules mirror `GetCredential`: anonymous credentials are world-readable; linked credentials are visible only to active members of the owning org. Bumps `lastUsedAt` so the dashboard shows liveness.",
|
|
994
|
+
inputSchema: toZod({
|
|
995
|
+
"type": "object",
|
|
996
|
+
"properties": {
|
|
997
|
+
"params": {
|
|
998
|
+
"type": "object",
|
|
999
|
+
"properties": {
|
|
1000
|
+
"address": {
|
|
1001
|
+
"type": "string",
|
|
1002
|
+
"description": "Lowercase Ethereum address (no EIP-55 mixed-case checksum). The client derives this from the public key via keccak-256 of the uncompressed pubkey minus the `0x04` prefix, taking the last 20 bytes. The server re-validates the format on insert but does not re-derive from the public key — that match is the client's responsibility.",
|
|
1003
|
+
"pattern": "^0x[0-9a-f]{40}$",
|
|
1004
|
+
"minLength": 42,
|
|
1005
|
+
"maxLength": 42
|
|
1006
|
+
}
|
|
1007
|
+
},
|
|
1008
|
+
"required": [
|
|
1009
|
+
"address"
|
|
1010
|
+
],
|
|
1011
|
+
"additionalProperties": false
|
|
1012
|
+
},
|
|
1013
|
+
"query": {
|
|
1014
|
+
"type": "object",
|
|
1015
|
+
"properties": {}
|
|
1016
|
+
},
|
|
1017
|
+
"body": {
|
|
1018
|
+
"type": "object"
|
|
1019
|
+
}
|
|
1020
|
+
},
|
|
1021
|
+
"required": [
|
|
1022
|
+
"params",
|
|
1023
|
+
"query"
|
|
1024
|
+
],
|
|
1025
|
+
"additionalProperties": false
|
|
1026
|
+
}),
|
|
1027
|
+
},
|
|
1028
|
+
"GetMe": {
|
|
1029
|
+
description: "Get the authenticated user",
|
|
1030
|
+
inputSchema: toZod({
|
|
1031
|
+
"type": "object",
|
|
1032
|
+
"properties": {
|
|
1033
|
+
"params": {
|
|
1034
|
+
"type": "object",
|
|
1035
|
+
"properties": {}
|
|
1036
|
+
},
|
|
1037
|
+
"query": {
|
|
1038
|
+
"type": "object",
|
|
1039
|
+
"properties": {}
|
|
1040
|
+
},
|
|
1041
|
+
"body": {
|
|
1042
|
+
"type": "object"
|
|
1043
|
+
}
|
|
1044
|
+
},
|
|
1045
|
+
"required": [
|
|
1046
|
+
"params",
|
|
1047
|
+
"query"
|
|
1048
|
+
],
|
|
1049
|
+
"additionalProperties": false
|
|
1050
|
+
}),
|
|
1051
|
+
},
|
|
1052
|
+
"GetOrg": {
|
|
1053
|
+
description: "Get an organization",
|
|
1054
|
+
inputSchema: toZod({
|
|
1055
|
+
"type": "object",
|
|
1056
|
+
"properties": {
|
|
1057
|
+
"params": {
|
|
1058
|
+
"type": "object",
|
|
1059
|
+
"properties": {
|
|
1060
|
+
"orgId": {
|
|
1061
|
+
"type": "string",
|
|
1062
|
+
"format": "uuid"
|
|
1063
|
+
}
|
|
1064
|
+
},
|
|
1065
|
+
"required": [
|
|
1066
|
+
"orgId"
|
|
1067
|
+
],
|
|
1068
|
+
"additionalProperties": false
|
|
1069
|
+
},
|
|
1070
|
+
"query": {
|
|
1071
|
+
"type": "object",
|
|
1072
|
+
"properties": {}
|
|
1073
|
+
},
|
|
1074
|
+
"body": {
|
|
1075
|
+
"type": "object"
|
|
1076
|
+
}
|
|
1077
|
+
},
|
|
1078
|
+
"required": [
|
|
1079
|
+
"params",
|
|
1080
|
+
"query"
|
|
1081
|
+
],
|
|
1082
|
+
"additionalProperties": false
|
|
1083
|
+
}),
|
|
1084
|
+
},
|
|
1085
|
+
"GetOrgBilling": {
|
|
1086
|
+
description: "Get the billing record for an organization\n\nOwner only. Returns `404` when no billing has been set; presence of the row is what promotes the org's credentials out of sandbox mode (see `Credential.mode`).",
|
|
1087
|
+
inputSchema: toZod({
|
|
1088
|
+
"type": "object",
|
|
1089
|
+
"properties": {
|
|
1090
|
+
"params": {
|
|
1091
|
+
"type": "object",
|
|
1092
|
+
"properties": {
|
|
1093
|
+
"orgId": {
|
|
1094
|
+
"type": "string",
|
|
1095
|
+
"format": "uuid"
|
|
1096
|
+
}
|
|
1097
|
+
},
|
|
1098
|
+
"required": [
|
|
1099
|
+
"orgId"
|
|
1100
|
+
],
|
|
1101
|
+
"additionalProperties": false
|
|
1102
|
+
},
|
|
1103
|
+
"query": {
|
|
1104
|
+
"type": "object",
|
|
1105
|
+
"properties": {}
|
|
1106
|
+
},
|
|
1107
|
+
"body": {
|
|
1108
|
+
"type": "object"
|
|
1109
|
+
}
|
|
1110
|
+
},
|
|
1111
|
+
"required": [
|
|
1112
|
+
"params",
|
|
1113
|
+
"query"
|
|
1114
|
+
],
|
|
1115
|
+
"additionalProperties": false
|
|
1116
|
+
}),
|
|
1117
|
+
},
|
|
1118
|
+
"GetProvider": {
|
|
1119
|
+
description: "Get a verification\n\nFetch a single Reclaim verification by id. Returns every field needed\nto integrate it into a flow: domain, the live version (initialUrl + requests),\nand the data points it can prove. Use `providers` first if you only\nhave a query string.\n\nReturns the verification record.\n\n**Canonical URL.** For SEO and stable sharing, the canonical\nHTML URL for a verification is `/providers/{providerId}/{slug}`\n(see `GetProviderBySlug`). HTML callers (`Accept: text/html`)\nthat hit this route — which omits the slug — receive a `301`\nredirect to the slugged URL. JSON callers\n(`Accept: application/json`) receive the body directly without\nredirect; the slug is on the response.\n",
|
|
1120
|
+
inputSchema: toZod({
|
|
1121
|
+
"type": "object",
|
|
1122
|
+
"properties": {
|
|
1123
|
+
"params": {
|
|
1124
|
+
"type": "object",
|
|
1125
|
+
"properties": {
|
|
1126
|
+
"providerId": {
|
|
1127
|
+
"type": "string",
|
|
1128
|
+
"format": "uuid"
|
|
1129
|
+
}
|
|
1130
|
+
},
|
|
1131
|
+
"required": [
|
|
1132
|
+
"providerId"
|
|
1133
|
+
],
|
|
1134
|
+
"additionalProperties": false
|
|
1135
|
+
},
|
|
1136
|
+
"query": {
|
|
1137
|
+
"type": "object",
|
|
1138
|
+
"properties": {}
|
|
1139
|
+
},
|
|
1140
|
+
"body": {
|
|
1141
|
+
"type": "object"
|
|
1142
|
+
}
|
|
1143
|
+
},
|
|
1144
|
+
"required": [
|
|
1145
|
+
"params",
|
|
1146
|
+
"query"
|
|
1147
|
+
],
|
|
1148
|
+
"additionalProperties": false
|
|
1149
|
+
}),
|
|
1150
|
+
},
|
|
1151
|
+
"GetProviderVersion": {
|
|
1152
|
+
description: "Get a specific verification version",
|
|
1153
|
+
inputSchema: toZod({
|
|
1154
|
+
"type": "object",
|
|
1155
|
+
"properties": {
|
|
1156
|
+
"params": {
|
|
1157
|
+
"type": "object",
|
|
1158
|
+
"properties": {
|
|
1159
|
+
"providerId": {
|
|
1160
|
+
"type": "string",
|
|
1161
|
+
"format": "uuid"
|
|
1162
|
+
},
|
|
1163
|
+
"version": {
|
|
1164
|
+
"type": "string",
|
|
1165
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
1166
|
+
"maxLength": 32
|
|
1167
|
+
}
|
|
1168
|
+
},
|
|
1169
|
+
"required": [
|
|
1170
|
+
"providerId",
|
|
1171
|
+
"version"
|
|
1172
|
+
],
|
|
1173
|
+
"additionalProperties": false
|
|
1174
|
+
},
|
|
1175
|
+
"query": {
|
|
1176
|
+
"type": "object",
|
|
1177
|
+
"properties": {}
|
|
1178
|
+
},
|
|
1179
|
+
"body": {
|
|
1180
|
+
"type": "object"
|
|
1181
|
+
}
|
|
1182
|
+
},
|
|
1183
|
+
"required": [
|
|
1184
|
+
"params",
|
|
1185
|
+
"query"
|
|
1186
|
+
],
|
|
1187
|
+
"additionalProperties": false
|
|
1188
|
+
}),
|
|
1189
|
+
},
|
|
1190
|
+
"GetUser": {
|
|
1191
|
+
description: "Get a user's profile\n\nReturns a user record. Visible to: the user themselves, or any member of an organization the subject also belongs to.",
|
|
1192
|
+
inputSchema: toZod({
|
|
1193
|
+
"type": "object",
|
|
1194
|
+
"properties": {
|
|
1195
|
+
"params": {
|
|
1196
|
+
"type": "object",
|
|
1197
|
+
"properties": {
|
|
1198
|
+
"userId": {
|
|
1199
|
+
"type": "string",
|
|
1200
|
+
"format": "uuid"
|
|
1201
|
+
}
|
|
1202
|
+
},
|
|
1203
|
+
"required": [
|
|
1204
|
+
"userId"
|
|
1205
|
+
],
|
|
1206
|
+
"additionalProperties": false
|
|
1207
|
+
},
|
|
1208
|
+
"query": {
|
|
1209
|
+
"type": "object",
|
|
1210
|
+
"properties": {}
|
|
1211
|
+
},
|
|
1212
|
+
"body": {
|
|
1213
|
+
"type": "object"
|
|
1214
|
+
}
|
|
1215
|
+
},
|
|
1216
|
+
"required": [
|
|
1217
|
+
"params",
|
|
1218
|
+
"query"
|
|
1219
|
+
],
|
|
1220
|
+
"additionalProperties": false
|
|
1221
|
+
}),
|
|
1222
|
+
},
|
|
1223
|
+
"LinkCredential": {
|
|
1224
|
+
description: "Link a credential to an organization\n\nLinks an ETH credential to an organization — registering it directly, or attaching an already-known one (matched by `address`). The private key MUST NOT leave the client — only the derived address and uncompressed public key are sent. `orgId` is required and the caller must be allowed to edit it. Idempotent for the same `(address, orgId)`. (Anonymous credentials live client-side; they are only stored here once linked.)",
|
|
1225
|
+
inputSchema: toZod({
|
|
1226
|
+
"type": "object",
|
|
1227
|
+
"properties": {
|
|
1228
|
+
"params": {
|
|
1229
|
+
"type": "object",
|
|
1230
|
+
"properties": {}
|
|
1231
|
+
},
|
|
1232
|
+
"query": {
|
|
1233
|
+
"type": "object",
|
|
1234
|
+
"properties": {}
|
|
1235
|
+
},
|
|
1236
|
+
"body": {
|
|
1237
|
+
"type": "object",
|
|
1238
|
+
"additionalProperties": false,
|
|
1239
|
+
"description": "Body for `POST /credentials`. Only the lowercase ETH `address` is sent — the private key MUST NOT leave the client, and the public key is not sent (the client derives the address from the key: keccak-256 of the uncompressed pubkey minus its `0x04` prefix, last 20 bytes, lowercase hex).",
|
|
1240
|
+
"required": [
|
|
1241
|
+
"address",
|
|
1242
|
+
"orgId"
|
|
1243
|
+
],
|
|
1244
|
+
"properties": {
|
|
1245
|
+
"address": {
|
|
1246
|
+
"type": "string",
|
|
1247
|
+
"description": "Lowercase Ethereum address (no EIP-55 mixed-case checksum). The client derives this from the public key via keccak-256 of the uncompressed pubkey minus the `0x04` prefix, taking the last 20 bytes. The server re-validates the format on insert but does not re-derive from the public key — that match is the client's responsibility.",
|
|
1248
|
+
"pattern": "^0x[0-9a-f]{40}$",
|
|
1249
|
+
"minLength": 42,
|
|
1250
|
+
"maxLength": 42
|
|
1251
|
+
},
|
|
1252
|
+
"orgId": {
|
|
1253
|
+
"type": "string",
|
|
1254
|
+
"format": "uuid"
|
|
1255
|
+
},
|
|
1256
|
+
"label": {
|
|
1257
|
+
"type": "string",
|
|
1258
|
+
"description": "Optional human-readable label.",
|
|
1259
|
+
"minLength": 1,
|
|
1260
|
+
"maxLength": 100
|
|
1261
|
+
}
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
},
|
|
1265
|
+
"required": [
|
|
1266
|
+
"params",
|
|
1267
|
+
"query",
|
|
1268
|
+
"body"
|
|
1269
|
+
],
|
|
1270
|
+
"additionalProperties": false
|
|
1271
|
+
}),
|
|
1272
|
+
},
|
|
1273
|
+
"ListOrgCredentials": {
|
|
1274
|
+
description: "List credentials linked to an organization\n\nReturns every credential whose `orgId` equals the path parameter. Caller must be an active member of the org.",
|
|
1275
|
+
inputSchema: toZod({
|
|
1276
|
+
"type": "object",
|
|
1277
|
+
"properties": {
|
|
1278
|
+
"params": {
|
|
1279
|
+
"type": "object",
|
|
1280
|
+
"properties": {
|
|
1281
|
+
"orgId": {
|
|
1282
|
+
"type": "string",
|
|
1283
|
+
"format": "uuid"
|
|
1284
|
+
}
|
|
1285
|
+
},
|
|
1286
|
+
"required": [
|
|
1287
|
+
"orgId"
|
|
1288
|
+
],
|
|
1289
|
+
"additionalProperties": false
|
|
1290
|
+
},
|
|
1291
|
+
"query": {
|
|
1292
|
+
"type": "object",
|
|
1293
|
+
"properties": {}
|
|
1294
|
+
},
|
|
1295
|
+
"body": {
|
|
1296
|
+
"type": "object"
|
|
1297
|
+
}
|
|
1298
|
+
},
|
|
1299
|
+
"required": [
|
|
1300
|
+
"params",
|
|
1301
|
+
"query"
|
|
1302
|
+
],
|
|
1303
|
+
"additionalProperties": false
|
|
1304
|
+
}),
|
|
1305
|
+
},
|
|
1306
|
+
"ListOrgs": {
|
|
1307
|
+
description: "List organizations the caller belongs to",
|
|
1308
|
+
inputSchema: toZod({
|
|
1309
|
+
"type": "object",
|
|
1310
|
+
"properties": {
|
|
1311
|
+
"params": {
|
|
1312
|
+
"type": "object",
|
|
1313
|
+
"properties": {}
|
|
1314
|
+
},
|
|
1315
|
+
"query": {
|
|
1316
|
+
"type": "object",
|
|
1317
|
+
"properties": {
|
|
1318
|
+
"cursor": {
|
|
1319
|
+
"type": "string",
|
|
1320
|
+
"maxLength": 500
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
},
|
|
1324
|
+
"body": {
|
|
1325
|
+
"type": "object"
|
|
1326
|
+
}
|
|
1327
|
+
},
|
|
1328
|
+
"required": [
|
|
1329
|
+
"params",
|
|
1330
|
+
"query"
|
|
1331
|
+
],
|
|
1332
|
+
"additionalProperties": false
|
|
1333
|
+
}),
|
|
1334
|
+
},
|
|
1335
|
+
"ListProviderVersions": {
|
|
1336
|
+
description: "List a verification's versions\n\nLists versions visible to the caller. Non-public branches (`ai`, `draft`, `in_review`, `rejected`) are only visible to members of the verification's owning organization.",
|
|
1337
|
+
inputSchema: toZod({
|
|
1338
|
+
"type": "object",
|
|
1339
|
+
"properties": {
|
|
1340
|
+
"params": {
|
|
1341
|
+
"type": "object",
|
|
1342
|
+
"properties": {
|
|
1343
|
+
"providerId": {
|
|
1344
|
+
"type": "string",
|
|
1345
|
+
"format": "uuid"
|
|
1346
|
+
}
|
|
1347
|
+
},
|
|
1348
|
+
"required": [
|
|
1349
|
+
"providerId"
|
|
1350
|
+
],
|
|
1351
|
+
"additionalProperties": false
|
|
1352
|
+
},
|
|
1353
|
+
"query": {
|
|
1354
|
+
"type": "object",
|
|
1355
|
+
"properties": {
|
|
1356
|
+
"cursor": {
|
|
1357
|
+
"type": "string",
|
|
1358
|
+
"maxLength": 500
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
},
|
|
1362
|
+
"body": {
|
|
1363
|
+
"type": "object"
|
|
1364
|
+
}
|
|
1365
|
+
},
|
|
1366
|
+
"required": [
|
|
1367
|
+
"params",
|
|
1368
|
+
"query"
|
|
1369
|
+
],
|
|
1370
|
+
"additionalProperties": false
|
|
1371
|
+
}),
|
|
1372
|
+
},
|
|
1373
|
+
"MakePrivate": {
|
|
1374
|
+
description: "Change a PUBLIC provider back to PRIVATE\n\nChanges a PUBLIC provider's visibility to PRIVATE. Unlike the reverse (PRIVATE → PUBLIC), this does not require review since it restricts rather than expands access. Existing live versions remain but are no longer publicly listed.",
|
|
1375
|
+
inputSchema: toZod({
|
|
1376
|
+
"type": "object",
|
|
1377
|
+
"properties": {
|
|
1378
|
+
"params": {
|
|
1379
|
+
"type": "object",
|
|
1380
|
+
"properties": {
|
|
1381
|
+
"providerId": {
|
|
1382
|
+
"type": "string",
|
|
1383
|
+
"format": "uuid"
|
|
1384
|
+
}
|
|
1385
|
+
},
|
|
1386
|
+
"required": [
|
|
1387
|
+
"providerId"
|
|
1388
|
+
],
|
|
1389
|
+
"additionalProperties": false
|
|
1390
|
+
},
|
|
1391
|
+
"query": {
|
|
1392
|
+
"type": "object",
|
|
1393
|
+
"properties": {}
|
|
1394
|
+
},
|
|
1395
|
+
"body": {
|
|
1396
|
+
"type": "object",
|
|
1397
|
+
"additionalProperties": false,
|
|
1398
|
+
"description": "Body for visibility change requests (request public listing or make private).",
|
|
1399
|
+
"properties": {
|
|
1400
|
+
"notes": {
|
|
1401
|
+
"type": "string",
|
|
1402
|
+
"description": "Optional note explaining the change.",
|
|
1403
|
+
"maxLength": 10000
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
}
|
|
1407
|
+
},
|
|
1408
|
+
"required": [
|
|
1409
|
+
"params",
|
|
1410
|
+
"query",
|
|
1411
|
+
"body"
|
|
1412
|
+
],
|
|
1413
|
+
"additionalProperties": false
|
|
1414
|
+
}),
|
|
1415
|
+
},
|
|
1416
|
+
"Providers": {
|
|
1417
|
+
description: "Search verifications\n\nSearch published Reclaim verifications by domain or data point. A verification is the recipe an end-user follows to prove something about themselves (e.g. \"I have N followers on Twitter\"). Returns a list of matches. Call this BEFORE `create_provider` — most popular domains already have a public verification you can reuse.\nCatalog page listing all verifications. Returns a paginated list of verifications the caller can see. Public verifications are visible to everyone; private verifications are only visible to org members.",
|
|
1418
|
+
inputSchema: toZod({
|
|
1419
|
+
"type": "object",
|
|
1420
|
+
"properties": {
|
|
1421
|
+
"params": {
|
|
1422
|
+
"type": "object",
|
|
1423
|
+
"properties": {}
|
|
1424
|
+
},
|
|
1425
|
+
"query": {
|
|
1426
|
+
"type": "object",
|
|
1427
|
+
"properties": {
|
|
1428
|
+
"q": {
|
|
1429
|
+
"type": "string",
|
|
1430
|
+
"minLength": 1,
|
|
1431
|
+
"maxLength": 200
|
|
1432
|
+
},
|
|
1433
|
+
"tag": {
|
|
1434
|
+
"type": "array",
|
|
1435
|
+
"maxItems": 20,
|
|
1436
|
+
"items": {
|
|
1437
|
+
"type": "string",
|
|
1438
|
+
"description": "A free-form label attached to an entity for grouping and filtering in listings. Must start and end with an alphanumeric character; only ASCII letters, digits, spaces, and hyphens are allowed between.",
|
|
1439
|
+
"pattern": "^[A-Za-z0-9]([A-Za-z0-9 \\-]*[A-Za-z0-9])?$",
|
|
1440
|
+
"minLength": 1,
|
|
1441
|
+
"maxLength": 50
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
"cursor": {
|
|
1445
|
+
"type": "string",
|
|
1446
|
+
"maxLength": 500
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
},
|
|
1450
|
+
"body": {
|
|
1451
|
+
"type": "object"
|
|
1452
|
+
}
|
|
1453
|
+
},
|
|
1454
|
+
"required": [
|
|
1455
|
+
"params",
|
|
1456
|
+
"query"
|
|
1457
|
+
],
|
|
1458
|
+
"additionalProperties": false
|
|
1459
|
+
}),
|
|
1460
|
+
},
|
|
1461
|
+
"PublishProviderVersion": {
|
|
1462
|
+
description: "Publish a draft version directly (PRIVATE providers only)\n\nPublishes a verification version on the `draft` branch directly to the live channel (trunk). Only allowed for PRIVATE providers — PUBLIC providers must use the review flow (`POST .../review` → admin decision). On success the version's branch transitions from `draft` to `null` (trunk/live).",
|
|
1463
|
+
inputSchema: toZod({
|
|
1464
|
+
"type": "object",
|
|
1465
|
+
"properties": {
|
|
1466
|
+
"params": {
|
|
1467
|
+
"type": "object",
|
|
1468
|
+
"properties": {
|
|
1469
|
+
"providerId": {
|
|
1470
|
+
"type": "string",
|
|
1471
|
+
"format": "uuid"
|
|
1472
|
+
},
|
|
1473
|
+
"version": {
|
|
1474
|
+
"type": "string",
|
|
1475
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
1476
|
+
"maxLength": 32
|
|
1477
|
+
}
|
|
1478
|
+
},
|
|
1479
|
+
"required": [
|
|
1480
|
+
"providerId",
|
|
1481
|
+
"version"
|
|
1482
|
+
],
|
|
1483
|
+
"additionalProperties": false
|
|
1484
|
+
},
|
|
1485
|
+
"query": {
|
|
1486
|
+
"type": "object",
|
|
1487
|
+
"properties": {}
|
|
1488
|
+
},
|
|
1489
|
+
"body": {
|
|
1490
|
+
"type": "object",
|
|
1491
|
+
"additionalProperties": false,
|
|
1492
|
+
"description": "Body for publishing a draft version directly to the live channel. Only allowed for PRIVATE providers.",
|
|
1493
|
+
"properties": {
|
|
1494
|
+
"notes": {
|
|
1495
|
+
"type": "string",
|
|
1496
|
+
"description": "Optional publish note.",
|
|
1497
|
+
"maxLength": 10000
|
|
1498
|
+
}
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
},
|
|
1502
|
+
"required": [
|
|
1503
|
+
"params",
|
|
1504
|
+
"query",
|
|
1505
|
+
"body"
|
|
1506
|
+
],
|
|
1507
|
+
"additionalProperties": false
|
|
1508
|
+
}),
|
|
1509
|
+
},
|
|
1510
|
+
"RequestPublicListing": {
|
|
1511
|
+
description: "Request public listing for a PRIVATE provider\n\nSubmits a PRIVATE provider's latest trunk version for admin review. When approved, the provider's visibility becomes PUBLIC and all future versions require review before going live. Fails if the provider is already PUBLIC or has no live versions.",
|
|
1512
|
+
inputSchema: toZod({
|
|
1513
|
+
"type": "object",
|
|
1514
|
+
"properties": {
|
|
1515
|
+
"params": {
|
|
1516
|
+
"type": "object",
|
|
1517
|
+
"properties": {
|
|
1518
|
+
"providerId": {
|
|
1519
|
+
"type": "string",
|
|
1520
|
+
"format": "uuid"
|
|
1521
|
+
}
|
|
1522
|
+
},
|
|
1523
|
+
"required": [
|
|
1524
|
+
"providerId"
|
|
1525
|
+
],
|
|
1526
|
+
"additionalProperties": false
|
|
1527
|
+
},
|
|
1528
|
+
"query": {
|
|
1529
|
+
"type": "object",
|
|
1530
|
+
"properties": {}
|
|
1531
|
+
},
|
|
1532
|
+
"body": {
|
|
1533
|
+
"type": "object",
|
|
1534
|
+
"additionalProperties": false,
|
|
1535
|
+
"description": "Body for visibility change requests (request public listing or make private).",
|
|
1536
|
+
"properties": {
|
|
1537
|
+
"notes": {
|
|
1538
|
+
"type": "string",
|
|
1539
|
+
"description": "Optional note explaining the change.",
|
|
1540
|
+
"maxLength": 10000
|
|
1541
|
+
}
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
},
|
|
1545
|
+
"required": [
|
|
1546
|
+
"params",
|
|
1547
|
+
"query",
|
|
1548
|
+
"body"
|
|
1549
|
+
],
|
|
1550
|
+
"additionalProperties": false
|
|
1551
|
+
}),
|
|
1552
|
+
},
|
|
1553
|
+
"RevokeCredential": {
|
|
1554
|
+
description: "Revoke a credential\n\nSoft-revokes the credential (sets `revokedAt`). Allowed for the creating user (anonymous credentials), an active OWNER of the owning org (linked credentials), or a Reclaim admin. Revoked credentials cannot be used for verification and cannot be re-linked.",
|
|
1555
|
+
inputSchema: toZod({
|
|
1556
|
+
"type": "object",
|
|
1557
|
+
"properties": {
|
|
1558
|
+
"params": {
|
|
1559
|
+
"type": "object",
|
|
1560
|
+
"properties": {
|
|
1561
|
+
"credentialId": {
|
|
1562
|
+
"type": "string",
|
|
1563
|
+
"format": "uuid",
|
|
1564
|
+
"description": "Stable id for a `Credential` row."
|
|
1565
|
+
}
|
|
1566
|
+
},
|
|
1567
|
+
"required": [
|
|
1568
|
+
"credentialId"
|
|
1569
|
+
],
|
|
1570
|
+
"additionalProperties": false
|
|
1571
|
+
},
|
|
1572
|
+
"query": {
|
|
1573
|
+
"type": "object",
|
|
1574
|
+
"properties": {}
|
|
1575
|
+
},
|
|
1576
|
+
"body": {
|
|
1577
|
+
"type": "object"
|
|
1578
|
+
}
|
|
1579
|
+
},
|
|
1580
|
+
"required": [
|
|
1581
|
+
"params",
|
|
1582
|
+
"query"
|
|
1583
|
+
],
|
|
1584
|
+
"additionalProperties": false
|
|
1585
|
+
}),
|
|
1586
|
+
},
|
|
1587
|
+
"SubmitProviderVersionForReview": {
|
|
1588
|
+
description: "Submit a verification version for review\n\nSubmits a verification version (currently on the `draft` or `rejected` branch) for admin review. On success the version's branch transitions to `in_review`. Callable by any authenticated member of the verification's owning org. Meaningful only on `PUBLIC` verifications — on `PRIVATE` verifications new versions go to the live channel directly and never need review.",
|
|
1589
|
+
inputSchema: toZod({
|
|
1590
|
+
"type": "object",
|
|
1591
|
+
"properties": {
|
|
1592
|
+
"params": {
|
|
1593
|
+
"type": "object",
|
|
1594
|
+
"properties": {
|
|
1595
|
+
"providerId": {
|
|
1596
|
+
"type": "string",
|
|
1597
|
+
"format": "uuid"
|
|
1598
|
+
},
|
|
1599
|
+
"version": {
|
|
1600
|
+
"type": "string",
|
|
1601
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
1602
|
+
"maxLength": 32
|
|
1603
|
+
}
|
|
1604
|
+
},
|
|
1605
|
+
"required": [
|
|
1606
|
+
"providerId",
|
|
1607
|
+
"version"
|
|
1608
|
+
],
|
|
1609
|
+
"additionalProperties": false
|
|
1610
|
+
},
|
|
1611
|
+
"query": {
|
|
1612
|
+
"type": "object",
|
|
1613
|
+
"properties": {}
|
|
1614
|
+
},
|
|
1615
|
+
"body": {
|
|
1616
|
+
"type": "object",
|
|
1617
|
+
"additionalProperties": false,
|
|
1618
|
+
"description": "Body for submitting a provider version for review. Transitions the version's branch from `draft` (or `rejected`) to `in_review`.",
|
|
1619
|
+
"properties": {
|
|
1620
|
+
"notes": {
|
|
1621
|
+
"type": "string",
|
|
1622
|
+
"description": "Optional note from the author to reviewers (changelog, areas to focus on, etc.).",
|
|
1623
|
+
"maxLength": 10000
|
|
1624
|
+
}
|
|
1625
|
+
}
|
|
1626
|
+
}
|
|
1627
|
+
},
|
|
1628
|
+
"required": [
|
|
1629
|
+
"params",
|
|
1630
|
+
"query",
|
|
1631
|
+
"body"
|
|
1632
|
+
],
|
|
1633
|
+
"additionalProperties": false
|
|
1634
|
+
}),
|
|
1635
|
+
},
|
|
1636
|
+
"TransferProvider": {
|
|
1637
|
+
description: "Transfer a verification to a different workspace\n\nAdmin-only. Moves the verification's `orgId` to the supplied workspace; preserves slug, versions, members. SQL function `builder.transfer_provider` enforces the admin gate and target existence atomically.",
|
|
1638
|
+
inputSchema: toZod({
|
|
1639
|
+
"type": "object",
|
|
1640
|
+
"properties": {
|
|
1641
|
+
"params": {
|
|
1642
|
+
"type": "object",
|
|
1643
|
+
"properties": {
|
|
1644
|
+
"providerId": {
|
|
1645
|
+
"type": "string",
|
|
1646
|
+
"format": "uuid"
|
|
1647
|
+
}
|
|
1648
|
+
},
|
|
1649
|
+
"required": [
|
|
1650
|
+
"providerId"
|
|
1651
|
+
],
|
|
1652
|
+
"additionalProperties": false
|
|
1653
|
+
},
|
|
1654
|
+
"query": {
|
|
1655
|
+
"type": "object",
|
|
1656
|
+
"properties": {}
|
|
1657
|
+
},
|
|
1658
|
+
"body": {
|
|
1659
|
+
"type": "object",
|
|
1660
|
+
"additionalProperties": false,
|
|
1661
|
+
"required": [
|
|
1662
|
+
"orgId"
|
|
1663
|
+
],
|
|
1664
|
+
"properties": {
|
|
1665
|
+
"orgId": {
|
|
1666
|
+
"type": "string",
|
|
1667
|
+
"format": "uuid"
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
}
|
|
1671
|
+
},
|
|
1672
|
+
"required": [
|
|
1673
|
+
"params",
|
|
1674
|
+
"query",
|
|
1675
|
+
"body"
|
|
1676
|
+
],
|
|
1677
|
+
"additionalProperties": false
|
|
1678
|
+
}),
|
|
1679
|
+
},
|
|
1680
|
+
"UpdateMe": {
|
|
1681
|
+
description: "Update the authenticated user's profile",
|
|
1682
|
+
inputSchema: toZod({
|
|
1683
|
+
"type": "object",
|
|
1684
|
+
"properties": {
|
|
1685
|
+
"params": {
|
|
1686
|
+
"type": "object",
|
|
1687
|
+
"properties": {}
|
|
1688
|
+
},
|
|
1689
|
+
"query": {
|
|
1690
|
+
"type": "object",
|
|
1691
|
+
"properties": {}
|
|
1692
|
+
},
|
|
1693
|
+
"body": {
|
|
1694
|
+
"type": "object",
|
|
1695
|
+
"additionalProperties": false,
|
|
1696
|
+
"description": "Caller-editable fields on the authenticated user.",
|
|
1697
|
+
"properties": {
|
|
1698
|
+
"name": {
|
|
1699
|
+
"type": "string",
|
|
1700
|
+
"minLength": 1,
|
|
1701
|
+
"maxLength": 200
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
}
|
|
1705
|
+
},
|
|
1706
|
+
"required": [
|
|
1707
|
+
"params",
|
|
1708
|
+
"query",
|
|
1709
|
+
"body"
|
|
1710
|
+
],
|
|
1711
|
+
"additionalProperties": false
|
|
1712
|
+
}),
|
|
1713
|
+
},
|
|
1714
|
+
"UpdateOrg": {
|
|
1715
|
+
description: "Update an organization\n\nOwner only.",
|
|
1716
|
+
inputSchema: toZod({
|
|
1717
|
+
"type": "object",
|
|
1718
|
+
"properties": {
|
|
1719
|
+
"params": {
|
|
1720
|
+
"type": "object",
|
|
1721
|
+
"properties": {
|
|
1722
|
+
"orgId": {
|
|
1723
|
+
"type": "string",
|
|
1724
|
+
"format": "uuid"
|
|
1725
|
+
}
|
|
1726
|
+
},
|
|
1727
|
+
"required": [
|
|
1728
|
+
"orgId"
|
|
1729
|
+
],
|
|
1730
|
+
"additionalProperties": false
|
|
1731
|
+
},
|
|
1732
|
+
"query": {
|
|
1733
|
+
"type": "object",
|
|
1734
|
+
"properties": {}
|
|
1735
|
+
},
|
|
1736
|
+
"body": {
|
|
1737
|
+
"type": "object",
|
|
1738
|
+
"additionalProperties": false,
|
|
1739
|
+
"properties": {
|
|
1740
|
+
"name": {
|
|
1741
|
+
"type": "string",
|
|
1742
|
+
"minLength": 1,
|
|
1743
|
+
"maxLength": 200
|
|
1744
|
+
},
|
|
1745
|
+
"status": {
|
|
1746
|
+
"type": "string",
|
|
1747
|
+
"description": "The status of the entity.\n\n- `ACTIVE`: The entity is active.\n\n- `ARCHIVED`: The entity is archived.",
|
|
1748
|
+
"enum": [
|
|
1749
|
+
"ACTIVE",
|
|
1750
|
+
"ARCHIVED"
|
|
1751
|
+
]
|
|
1752
|
+
},
|
|
1753
|
+
"iconUrl": {
|
|
1754
|
+
"type": "string",
|
|
1755
|
+
"format": "uri",
|
|
1756
|
+
"description": "Replace the org avatar URL directly. Most clients upload via `PUT /orgs/{orgId}/icon` and let the server write this field.",
|
|
1757
|
+
"maxLength": 2000
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
},
|
|
1762
|
+
"required": [
|
|
1763
|
+
"params",
|
|
1764
|
+
"query",
|
|
1765
|
+
"body"
|
|
1766
|
+
],
|
|
1767
|
+
"additionalProperties": false
|
|
1768
|
+
}),
|
|
1769
|
+
},
|
|
1770
|
+
"UpdateOrgBilling": {
|
|
1771
|
+
description: "Add or update billing details for an organization\n\nOwner only. Upserts the billing row. The first successful call flips every credential linked to this org from `SANDBOX` to `PRODUCTION` (see `Credential.mode`). Subsequent calls update the contact fields without affecting credential mode.",
|
|
1772
|
+
inputSchema: toZod({
|
|
1773
|
+
"type": "object",
|
|
1774
|
+
"properties": {
|
|
1775
|
+
"params": {
|
|
1776
|
+
"type": "object",
|
|
1777
|
+
"properties": {
|
|
1778
|
+
"orgId": {
|
|
1779
|
+
"type": "string",
|
|
1780
|
+
"format": "uuid"
|
|
1781
|
+
}
|
|
1782
|
+
},
|
|
1783
|
+
"required": [
|
|
1784
|
+
"orgId"
|
|
1785
|
+
],
|
|
1786
|
+
"additionalProperties": false
|
|
1787
|
+
},
|
|
1788
|
+
"query": {
|
|
1789
|
+
"type": "object",
|
|
1790
|
+
"properties": {}
|
|
1791
|
+
},
|
|
1792
|
+
"body": {
|
|
1793
|
+
"type": "object",
|
|
1794
|
+
"additionalProperties": false,
|
|
1795
|
+
"description": "Body for `PUT /orgs/{orgId}/billing`.",
|
|
1796
|
+
"required": [
|
|
1797
|
+
"contactEmail",
|
|
1798
|
+
"contactName"
|
|
1799
|
+
],
|
|
1800
|
+
"properties": {
|
|
1801
|
+
"contactEmail": {
|
|
1802
|
+
"type": "string",
|
|
1803
|
+
"format": "email",
|
|
1804
|
+
"minLength": 3,
|
|
1805
|
+
"maxLength": 320
|
|
1806
|
+
},
|
|
1807
|
+
"contactName": {
|
|
1808
|
+
"type": "string",
|
|
1809
|
+
"minLength": 1,
|
|
1810
|
+
"maxLength": 200
|
|
1811
|
+
}
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1814
|
+
},
|
|
1815
|
+
"required": [
|
|
1816
|
+
"params",
|
|
1817
|
+
"query",
|
|
1818
|
+
"body"
|
|
1819
|
+
],
|
|
1820
|
+
"additionalProperties": false
|
|
1821
|
+
}),
|
|
1822
|
+
},
|
|
1823
|
+
"UpdateProvider": {
|
|
1824
|
+
description: "Update a verification\n\nUpdate a Reclaim verification's metadata. Partial PATCH — pass only fields you want to change. The caller must be an active member of the owning organization. To change the verification's recipe (initialUrl, requests, …) cut a new version via the dashboard. Use `seo` to control how the verification appears in search results and social shares; omit a subfield to keep the server default.\nCaller must be a member of the verification's owning organization. `id`, `orgId`, and `slug` are immutable. Supports optimistic concurrency via `If-Match`.",
|
|
1825
|
+
inputSchema: toZod({
|
|
1826
|
+
"type": "object",
|
|
1827
|
+
"properties": {
|
|
1828
|
+
"params": {
|
|
1829
|
+
"type": "object",
|
|
1830
|
+
"properties": {
|
|
1831
|
+
"providerId": {
|
|
1832
|
+
"type": "string",
|
|
1833
|
+
"format": "uuid"
|
|
1834
|
+
}
|
|
1835
|
+
},
|
|
1836
|
+
"required": [
|
|
1837
|
+
"providerId"
|
|
1838
|
+
],
|
|
1839
|
+
"additionalProperties": false
|
|
1840
|
+
},
|
|
1841
|
+
"query": {
|
|
1842
|
+
"type": "object",
|
|
1843
|
+
"properties": {}
|
|
1844
|
+
},
|
|
1845
|
+
"headers": {
|
|
1846
|
+
"type": "object",
|
|
1847
|
+
"properties": {
|
|
1848
|
+
"If-Match": {
|
|
1849
|
+
"type": "string",
|
|
1850
|
+
"maxLength": 128,
|
|
1851
|
+
"description": "Opaque `ETag` from a prior GET on the same resource. When\nsupplied, the server applies optimistic concurrency: the\nmutation fails with `412 Precondition Failed` if the\nresource has been modified since. Omit for last-write-wins.\n"
|
|
1852
|
+
}
|
|
1853
|
+
}
|
|
1854
|
+
},
|
|
1855
|
+
"body": {
|
|
1856
|
+
"type": "object",
|
|
1857
|
+
"additionalProperties": false,
|
|
1858
|
+
"description": "Partial update of an existing provider. Immutable fields (`id`, `orgId`, `slug`) are not accepted here.",
|
|
1859
|
+
"properties": {
|
|
1860
|
+
"domain": {
|
|
1861
|
+
"type": "string",
|
|
1862
|
+
"format": "hostname",
|
|
1863
|
+
"minLength": 1,
|
|
1864
|
+
"maxLength": 200
|
|
1865
|
+
},
|
|
1866
|
+
"title": {
|
|
1867
|
+
"type": "string",
|
|
1868
|
+
"minLength": 1,
|
|
1869
|
+
"maxLength": 100
|
|
1870
|
+
},
|
|
1871
|
+
"description": {
|
|
1872
|
+
"type": "string",
|
|
1873
|
+
"minLength": 1,
|
|
1874
|
+
"maxLength": 2000
|
|
1875
|
+
},
|
|
1876
|
+
"iconUrl": {
|
|
1877
|
+
"description": "uri of the icon",
|
|
1878
|
+
"type": "string",
|
|
1879
|
+
"format": "uri",
|
|
1880
|
+
"maxLength": 2000
|
|
1881
|
+
},
|
|
1882
|
+
"visibility": {
|
|
1883
|
+
"type": "string",
|
|
1884
|
+
"description": "The visibility of the entity.\n\n- `PRIVATE`: Only the owner can see the entity.\n\n- `PUBLIC`: Anyone can see the entity.",
|
|
1885
|
+
"enum": [
|
|
1886
|
+
"PRIVATE",
|
|
1887
|
+
"PUBLIC"
|
|
1888
|
+
]
|
|
1889
|
+
},
|
|
1890
|
+
"status": {
|
|
1891
|
+
"type": "string",
|
|
1892
|
+
"description": "The status of the entity.\n\n- `ACTIVE`: The entity is active.\n\n- `ARCHIVED`: The entity is archived.",
|
|
1893
|
+
"enum": [
|
|
1894
|
+
"ACTIVE",
|
|
1895
|
+
"ARCHIVED"
|
|
1896
|
+
]
|
|
1897
|
+
},
|
|
1898
|
+
"tags": {
|
|
1899
|
+
"type": "array",
|
|
1900
|
+
"maxItems": 50,
|
|
1901
|
+
"uniqueItems": true,
|
|
1902
|
+
"items": {
|
|
1903
|
+
"type": "string",
|
|
1904
|
+
"description": "A free-form label attached to an entity for grouping and filtering in listings. Must start and end with an alphanumeric character; only ASCII letters, digits, spaces, and hyphens are allowed between.",
|
|
1905
|
+
"pattern": "^[A-Za-z0-9]([A-Za-z0-9 \\-]*[A-Za-z0-9])?$",
|
|
1906
|
+
"minLength": 1,
|
|
1907
|
+
"maxLength": 50
|
|
1908
|
+
}
|
|
1909
|
+
},
|
|
1910
|
+
"seo": {
|
|
1911
|
+
"type": "object",
|
|
1912
|
+
"additionalProperties": false,
|
|
1913
|
+
"description": "Author-set SEO fields. All optional.\n\nEach field is paired with a server-derived default of the\nsame name on `Provider.seoSuggestions`. Renderers pick the\neffective value per field:\n\n effective.<field> = seo.<field> ?? seoSuggestions.<field>\n\nSet a field here to override; leave it unset to let the\ndefault win. Both objects are returned on every\n`GET /providers/{id}` — the builder does not pre-merge.\n",
|
|
1914
|
+
"properties": {
|
|
1915
|
+
"brandUrl": {
|
|
1916
|
+
"type": "string",
|
|
1917
|
+
"format": "uri",
|
|
1918
|
+
"description": "Canonical homepage of the brand (e.g. `https://google.com`). Used in brand-link cards and JSON-LD.",
|
|
1919
|
+
"maxLength": 2000
|
|
1920
|
+
},
|
|
1921
|
+
"primaryDataPoint": {
|
|
1922
|
+
"type": "string",
|
|
1923
|
+
"description": "Headline data point — the single most-important variable this provider can verify (e.g. `subscriber count`). Used in the provider's SEO title.",
|
|
1924
|
+
"maxLength": 200
|
|
1925
|
+
},
|
|
1926
|
+
"dataPoints": {
|
|
1927
|
+
"type": "array",
|
|
1928
|
+
"description": "Full list of data points this provider can verify.",
|
|
1929
|
+
"maxItems": 50,
|
|
1930
|
+
"items": {
|
|
1931
|
+
"type": "string",
|
|
1932
|
+
"maxLength": 200
|
|
1933
|
+
}
|
|
1934
|
+
},
|
|
1935
|
+
"titleOverride": {
|
|
1936
|
+
"type": "string",
|
|
1937
|
+
"description": "Replaces the renderer's composed `<title>` / OG title. Use when the default composition reads awkwardly.",
|
|
1938
|
+
"maxLength": 200
|
|
1939
|
+
},
|
|
1940
|
+
"descriptionOverride": {
|
|
1941
|
+
"type": "string",
|
|
1942
|
+
"description": "Replaces the renderer's composed `<meta name=\"description\">` / OG description.",
|
|
1943
|
+
"maxLength": 320
|
|
1944
|
+
}
|
|
1945
|
+
}
|
|
1946
|
+
}
|
|
1947
|
+
}
|
|
1948
|
+
}
|
|
1949
|
+
},
|
|
1950
|
+
"required": [
|
|
1951
|
+
"params",
|
|
1952
|
+
"query",
|
|
1953
|
+
"body"
|
|
1954
|
+
],
|
|
1955
|
+
"additionalProperties": false
|
|
1956
|
+
}),
|
|
1957
|
+
},
|
|
1958
|
+
"UpdateProviderVersion": {
|
|
1959
|
+
description: "Update a verification version\n\nMutable only while the version is on the `draft` or `rejected` branch. Versions on `in_review` or the live channel reject all writes here. Caller must be a member of the verification's owning organization. Supports optimistic concurrency via `If-Match`.",
|
|
1960
|
+
inputSchema: toZod({
|
|
1961
|
+
"type": "object",
|
|
1962
|
+
"properties": {
|
|
1963
|
+
"params": {
|
|
1964
|
+
"type": "object",
|
|
1965
|
+
"properties": {
|
|
1966
|
+
"providerId": {
|
|
1967
|
+
"type": "string",
|
|
1968
|
+
"format": "uuid"
|
|
1969
|
+
},
|
|
1970
|
+
"version": {
|
|
1971
|
+
"type": "string",
|
|
1972
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
1973
|
+
"maxLength": 32
|
|
1974
|
+
}
|
|
1975
|
+
},
|
|
1976
|
+
"required": [
|
|
1977
|
+
"providerId",
|
|
1978
|
+
"version"
|
|
1979
|
+
],
|
|
1980
|
+
"additionalProperties": false
|
|
1981
|
+
},
|
|
1982
|
+
"query": {
|
|
1983
|
+
"type": "object",
|
|
1984
|
+
"properties": {}
|
|
1985
|
+
},
|
|
1986
|
+
"headers": {
|
|
1987
|
+
"type": "object",
|
|
1988
|
+
"properties": {
|
|
1989
|
+
"If-Match": {
|
|
1990
|
+
"type": "string",
|
|
1991
|
+
"maxLength": 128,
|
|
1992
|
+
"description": "Opaque `ETag` from a prior GET on the same resource. When\nsupplied, the server applies optimistic concurrency: the\nmutation fails with `412 Precondition Failed` if the\nresource has been modified since. Omit for last-write-wins.\n"
|
|
1993
|
+
}
|
|
1994
|
+
}
|
|
1995
|
+
},
|
|
1996
|
+
"body": {
|
|
1997
|
+
"type": "object",
|
|
1998
|
+
"additionalProperties": false,
|
|
1999
|
+
"description": "Partial update of a provider version. Mutable only while the version is on the `draft` or `rejected` branch; versions on `in_review` or the live channel reject all writes here. The semver does not change on update — `build_number` increments instead, giving callers a monotonic revision counter without touching the (major, minor, patch) PK. `verificationType` / `prompt` are not accepted; see `ProviderVersion` for why.",
|
|
2000
|
+
"properties": {
|
|
2001
|
+
"initialUrl": {
|
|
2002
|
+
"type": "string",
|
|
2003
|
+
"format": "uri",
|
|
2004
|
+
"maxLength": 300
|
|
2005
|
+
},
|
|
2006
|
+
"requests": {
|
|
2007
|
+
"type": "array",
|
|
2008
|
+
"minItems": 0,
|
|
2009
|
+
"items": {
|
|
2010
|
+
"type": "object",
|
|
2011
|
+
"additionalProperties": false,
|
|
2012
|
+
"description": "A matcher for one HTTP request in observed traffic, together with the response constraints that must hold for a Reclaim proof over that request to be valid. Used by interceptors, in-page injections, and LLM agents.",
|
|
2013
|
+
"required": [
|
|
2014
|
+
"url",
|
|
2015
|
+
"method"
|
|
2016
|
+
],
|
|
2017
|
+
"properties": {
|
|
2018
|
+
"url": {
|
|
2019
|
+
"type": "string",
|
|
2020
|
+
"description": "The URL or generic path of the HTTP request."
|
|
2021
|
+
},
|
|
2022
|
+
"method": {
|
|
2023
|
+
"type": "string",
|
|
2024
|
+
"description": "The HTTP method used for the request.",
|
|
2025
|
+
"enum": [
|
|
2026
|
+
"GET",
|
|
2027
|
+
"POST",
|
|
2028
|
+
"PUT",
|
|
2029
|
+
"PATCH",
|
|
2030
|
+
"DELETE"
|
|
2031
|
+
]
|
|
2032
|
+
},
|
|
2033
|
+
"requestBodyTemplate": {
|
|
2034
|
+
"type": "string",
|
|
2035
|
+
"description": "Template used to match or capture an outgoing request body. Template can use regex templates as placeholders. For example, to match an outgoing request body that contains a request ID, you can use the following template: `(?<requestId>.*)`.",
|
|
2036
|
+
"maxLength": 100000
|
|
2037
|
+
},
|
|
2038
|
+
"credentials": {
|
|
2039
|
+
"type": "string",
|
|
2040
|
+
"description": "Mirrors the Fetch API `RequestCredentials` value used when issuing the request — controls whether cookies and auth headers are sent.",
|
|
2041
|
+
"enum": [
|
|
2042
|
+
"omit",
|
|
2043
|
+
"same-origin",
|
|
2044
|
+
"include"
|
|
2045
|
+
]
|
|
2046
|
+
},
|
|
2047
|
+
"writeRedactionMode": {
|
|
2048
|
+
"type": "string",
|
|
2049
|
+
"description": "How the matched portion of the response should be redacted before the transcript is handed to the attestor.\n- `zk`: redact using a zero-knowledge proof over the original\n bytes.\n\n- `key-update`: redact by performing a TLS key update so the\n attestor never observes the matched bytes in cleartext.",
|
|
2050
|
+
"enum": [
|
|
2051
|
+
"zk",
|
|
2052
|
+
"key-update"
|
|
2053
|
+
]
|
|
2054
|
+
},
|
|
2055
|
+
"additionalClientOptions": {
|
|
2056
|
+
"type": "object",
|
|
2057
|
+
"additionalProperties": false,
|
|
2058
|
+
"description": "Apply TLS configuration when creating the tunnel to the attestor.",
|
|
2059
|
+
"properties": {
|
|
2060
|
+
"supportedProtocolVersions": {
|
|
2061
|
+
"type": "array",
|
|
2062
|
+
"description": "TLS protocol versions the client is allowed to negotiate.",
|
|
2063
|
+
"minItems": 1,
|
|
2064
|
+
"uniqueItems": true,
|
|
2065
|
+
"items": {
|
|
2066
|
+
"type": "string",
|
|
2067
|
+
"enum": [
|
|
2068
|
+
"TLS1_2",
|
|
2069
|
+
"TLS1_3"
|
|
2070
|
+
]
|
|
2071
|
+
}
|
|
2072
|
+
}
|
|
2073
|
+
}
|
|
2074
|
+
},
|
|
2075
|
+
"matches": {
|
|
2076
|
+
"type": "array",
|
|
2077
|
+
"description": "A list of match conditions for the response.",
|
|
2078
|
+
"minItems": 1,
|
|
2079
|
+
"items": {
|
|
2080
|
+
"type": "object",
|
|
2081
|
+
"additionalProperties": false,
|
|
2082
|
+
"description": "Specifies a rule to match against a string in response to validate proof content.",
|
|
2083
|
+
"required": [
|
|
2084
|
+
"type",
|
|
2085
|
+
"value"
|
|
2086
|
+
],
|
|
2087
|
+
"properties": {
|
|
2088
|
+
"isOptional": {
|
|
2089
|
+
"type": "boolean",
|
|
2090
|
+
"description": "If true, the match condition is optional and won't fail if absent",
|
|
2091
|
+
"default": false
|
|
2092
|
+
},
|
|
2093
|
+
"description": {
|
|
2094
|
+
"type": "string",
|
|
2095
|
+
"description": "The description of the field that is extracted using this match rule",
|
|
2096
|
+
"minLength": 1,
|
|
2097
|
+
"maxLength": 1000
|
|
2098
|
+
},
|
|
2099
|
+
"order": {
|
|
2100
|
+
"type": "integer",
|
|
2101
|
+
"description": "The order in which the field should be displayed to user in UI",
|
|
2102
|
+
"minimum": 0
|
|
2103
|
+
},
|
|
2104
|
+
"type": {
|
|
2105
|
+
"type": "string",
|
|
2106
|
+
"description": "The matching mechanism to use value as against response. Typically regex or simple string containment",
|
|
2107
|
+
"enum": [
|
|
2108
|
+
"regex",
|
|
2109
|
+
"contains"
|
|
2110
|
+
]
|
|
2111
|
+
},
|
|
2112
|
+
"value": {
|
|
2113
|
+
"type": "string",
|
|
2114
|
+
"description": "The pattern or value to look for in the response. When `type` is 'contains', supports template variable declaration using `{{variable}}` syntax. When `type` is 'regex', can be used to extract variables using regex named groups."
|
|
2115
|
+
},
|
|
2116
|
+
"extract": {
|
|
2117
|
+
"type": "object",
|
|
2118
|
+
"description": "Which portions to select from a response. These are selected in order, xpath => jsonPath => regex * These redactions are done client side and only the selected portions are sent to the attestor. The attestor will only be able to see the selected portions alongside the first line of the HTTP response (i.e. \"HTTP/1.1 200 OK\")",
|
|
2119
|
+
"properties": {
|
|
2120
|
+
"xPath": {
|
|
2121
|
+
"type": "string",
|
|
2122
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
2123
|
+
},
|
|
2124
|
+
"jsonPath": {
|
|
2125
|
+
"type": "string",
|
|
2126
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
2127
|
+
},
|
|
2128
|
+
"regex": {
|
|
2129
|
+
"type": "string",
|
|
2130
|
+
"description": "select a regex match from the response"
|
|
2131
|
+
},
|
|
2132
|
+
"hash": {
|
|
2133
|
+
"type": "string",
|
|
2134
|
+
"description": "If provided, the value inside will be hashed instead of being redacted. Useful for cases where the data inside is an identifiying piece of information that you don't want to reveal to the attestor, eg. an email address.\nIf the hash function produces more bytes than the original value, the hash will be truncated.\nEg. if hash is enabled, the original value is \"hello\", and hashed is \"a1b2c\", then the attestor will only see \"a1b2c\".\nNote: if a regex with named groups is provided, only the named groups will be hashed.",
|
|
2135
|
+
"enum": [
|
|
2136
|
+
"oprf",
|
|
2137
|
+
"oprf-mpc",
|
|
2138
|
+
"oprf-raw"
|
|
2139
|
+
]
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
}
|
|
2143
|
+
}
|
|
2144
|
+
}
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2147
|
+
}
|
|
2148
|
+
},
|
|
2149
|
+
"allowedJsRequests": {
|
|
2150
|
+
"type": "array",
|
|
2151
|
+
"minItems": 0,
|
|
2152
|
+
"items": {
|
|
2153
|
+
"type": "object",
|
|
2154
|
+
"additionalProperties": false,
|
|
2155
|
+
"description": "A template for selecting request",
|
|
2156
|
+
"allOf": [
|
|
2157
|
+
{
|
|
2158
|
+
"$ref": "#/components/schemas/RequestSelection"
|
|
2159
|
+
},
|
|
2160
|
+
{
|
|
2161
|
+
"type": "object",
|
|
2162
|
+
"required": [
|
|
2163
|
+
"multiple",
|
|
2164
|
+
"required"
|
|
2165
|
+
],
|
|
2166
|
+
"properties": {
|
|
2167
|
+
"multiple": {
|
|
2168
|
+
"type": "boolean",
|
|
2169
|
+
"description": "If true, the template is allowed for multiple requests. Useful for requests like paginated API calls.",
|
|
2170
|
+
"default": true
|
|
2171
|
+
},
|
|
2172
|
+
"required": {
|
|
2173
|
+
"type": "boolean",
|
|
2174
|
+
"description": "If true, a request is required to match with this template. If not requests matches this template in proof, then validation fails.",
|
|
2175
|
+
"default": true
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
}
|
|
2179
|
+
]
|
|
2180
|
+
}
|
|
2181
|
+
},
|
|
2182
|
+
"webSettings": {
|
|
2183
|
+
"type": "object",
|
|
2184
|
+
"additionalProperties": false,
|
|
2185
|
+
"description": "Settings used by the web-based verification client.",
|
|
2186
|
+
"properties": {
|
|
2187
|
+
"geoLocation": {
|
|
2188
|
+
"type": "string",
|
|
2189
|
+
"description": "Geographic location (e.g. ISO country code or {{DYNAMIC_GEO}} to use user's geo location) the verification should appear to originate from.",
|
|
2190
|
+
"maxLength": 15
|
|
2191
|
+
},
|
|
2192
|
+
"clientOptions": {
|
|
2193
|
+
"type": "object",
|
|
2194
|
+
"additionalProperties": false,
|
|
2195
|
+
"description": "Options that influence how the web verification client behaves.",
|
|
2196
|
+
"properties": {
|
|
2197
|
+
"portal": {
|
|
2198
|
+
"type": "object",
|
|
2199
|
+
"additionalProperties": false,
|
|
2200
|
+
"description": "Options that influence how the portal verification client behaves.",
|
|
2201
|
+
"properties": {
|
|
2202
|
+
"useProxy": {
|
|
2203
|
+
"type": "boolean",
|
|
2204
|
+
"description": "When true, network traffic from the portal client and attestation is routed through a proxy.",
|
|
2205
|
+
"default": false
|
|
2206
|
+
},
|
|
2207
|
+
"userAgent": {
|
|
2208
|
+
"type": "string",
|
|
2209
|
+
"description": "User-agent string used for platform verification.",
|
|
2210
|
+
"maxLength": 500
|
|
2211
|
+
}
|
|
2212
|
+
}
|
|
2213
|
+
},
|
|
2214
|
+
"inapp": {
|
|
2215
|
+
"type": "object",
|
|
2216
|
+
"additionalProperties": false,
|
|
2217
|
+
"description": "Options that influence how the in-app verification client behaves.",
|
|
2218
|
+
"properties": {
|
|
2219
|
+
"interceptorOptions": {
|
|
2220
|
+
"type": "object",
|
|
2221
|
+
"additionalProperties": false,
|
|
2222
|
+
"required": [
|
|
2223
|
+
"interceptorType"
|
|
2224
|
+
],
|
|
2225
|
+
"properties": {
|
|
2226
|
+
"interceptorType": {
|
|
2227
|
+
"type": "string",
|
|
2228
|
+
"description": "How traffic interception is implemented.",
|
|
2229
|
+
"enum": [
|
|
2230
|
+
"HAWKEYE",
|
|
2231
|
+
"MSWJS",
|
|
2232
|
+
"CDP"
|
|
2233
|
+
]
|
|
2234
|
+
},
|
|
2235
|
+
"isDocumentRequestReplayEnabled": {
|
|
2236
|
+
"type": "boolean",
|
|
2237
|
+
"description": "Whether the main document request is replayed via the attestor",
|
|
2238
|
+
"default": false
|
|
2239
|
+
},
|
|
2240
|
+
"interceptorSettings": {
|
|
2241
|
+
"type": "string",
|
|
2242
|
+
"description": "Free-form configuration passed through to the interceptor implementation selected by `interceptorType`. Keys and value shapes are defined by the chosen interceptor.",
|
|
2243
|
+
"contentMediaType": "application/json"
|
|
2244
|
+
}
|
|
2245
|
+
}
|
|
2246
|
+
},
|
|
2247
|
+
"userAgents": {
|
|
2248
|
+
"type": "object",
|
|
2249
|
+
"additionalProperties": false,
|
|
2250
|
+
"description": "User-agent strings keyed by platform.",
|
|
2251
|
+
"properties": {
|
|
2252
|
+
"android": {
|
|
2253
|
+
"type": "string",
|
|
2254
|
+
"description": "User-agent string used for platform verification.",
|
|
2255
|
+
"maxLength": 500
|
|
2256
|
+
},
|
|
2257
|
+
"ios": {
|
|
2258
|
+
"type": "string",
|
|
2259
|
+
"description": "User-agent string used for platform verification.",
|
|
2260
|
+
"maxLength": 500
|
|
2261
|
+
}
|
|
2262
|
+
}
|
|
2263
|
+
}
|
|
2264
|
+
}
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
},
|
|
2268
|
+
"jsUserScripts": {
|
|
2269
|
+
"type": "string",
|
|
2270
|
+
"description": "JavaScript snippets injected into the page which runs before every page load. `window.Reclaim.` APIs are available to these scripts to request actions to the client like claim creation.",
|
|
2271
|
+
"maxLength": 1000000
|
|
2272
|
+
}
|
|
2273
|
+
}
|
|
2274
|
+
},
|
|
2275
|
+
"requiredParameters": {
|
|
2276
|
+
"type": "object",
|
|
2277
|
+
"description": "Map of parameter names needed (optional or required) to use this provider to their human-readable descriptions/labels. Values are plain strings shown alongside the field in dashboards and prompts.",
|
|
2278
|
+
"maxProperties": 50,
|
|
2279
|
+
"additionalProperties": {
|
|
2280
|
+
"type": "string",
|
|
2281
|
+
"maxLength": 500
|
|
2282
|
+
}
|
|
2283
|
+
},
|
|
2284
|
+
"notes": {
|
|
2285
|
+
"type": "string",
|
|
2286
|
+
"description": "Free-form change note recorded on `updateMetadata`.",
|
|
2287
|
+
"maxLength": 10000
|
|
2288
|
+
}
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2291
|
+
},
|
|
2292
|
+
"required": [
|
|
2293
|
+
"params",
|
|
2294
|
+
"query",
|
|
2295
|
+
"body"
|
|
2296
|
+
],
|
|
2297
|
+
"additionalProperties": false
|
|
2298
|
+
}),
|
|
2299
|
+
},
|
|
2300
|
+
};
|