@nylorun/runtime 0.19.1-beta → 0.21.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +22 -13
  3. package/dist/adapters/streams/s2.js +5 -11
  4. package/dist/api/components.d.ts +326 -205
  5. package/dist/api/components.js +3 -3
  6. package/dist/api/http/app.js +2 -0
  7. package/dist/api/http/define.d.ts +3 -2
  8. package/dist/api/http/define.js +10 -11
  9. package/dist/api/http/routes/mcp.d.ts +9 -0
  10. package/dist/api/http/routes/mcp.js +32 -0
  11. package/dist/api/http/routes/vaults.d.ts +1 -9
  12. package/dist/api/http/routes/vaults.js +3 -103
  13. package/dist/api/openapi.js +37 -6
  14. package/dist/artifacts/media-types.d.ts +2 -0
  15. package/dist/artifacts/media-types.js +5 -0
  16. package/dist/execution/types.d.ts +1 -1
  17. package/dist/gates/http-tool.d.ts +7 -0
  18. package/dist/gates/http-tool.js +34 -3
  19. package/dist/gates/mcp-handler.d.ts +4 -1
  20. package/dist/gates/mcp-handler.js +64 -8
  21. package/dist/gates/tenant-vaults.d.ts +9 -15
  22. package/dist/gates/tenant-vaults.js +9 -17
  23. package/dist/gates/tool-client.js +36 -17
  24. package/dist/gates/tool-contract.d.ts +19 -3
  25. package/dist/gates/tool-contract.js +9 -3
  26. package/dist/gates/tool-gate.d.ts +2 -2
  27. package/dist/harness/calls.d.ts +2 -0
  28. package/dist/harness/calls.js +13 -3
  29. package/dist/harness-api/record.d.ts +7 -6
  30. package/dist/harness-api/record.js +99 -17
  31. package/dist/harness-api/server.js +35 -27
  32. package/dist/harness-api/start.js +2 -1
  33. package/dist/host/app.d.ts +3 -0
  34. package/dist/host/app.js +33 -4
  35. package/dist/host/config-for.d.ts +0 -2
  36. package/dist/host/config-for.js +0 -1
  37. package/dist/host/create-host.d.ts +6 -0
  38. package/dist/host/create-host.js +1 -0
  39. package/dist/host/gates.js +0 -1
  40. package/dist/host/main.js +24 -7
  41. package/dist/host/stack-config.d.ts +5 -8
  42. package/dist/host/stack-config.js +9 -20
  43. package/dist/index.d.ts +0 -1
  44. package/dist/infra/index.d.ts +2 -1
  45. package/dist/infra/index.js +0 -1
  46. package/dist/infra/readiness.d.ts +6 -6
  47. package/dist/infra/readiness.js +2 -5
  48. package/dist/keys/client.js +1 -9
  49. package/dist/keys/keys.d.ts +11 -13
  50. package/dist/keys/keys.js +5 -7
  51. package/dist/management-openapi.json +671 -378
  52. package/dist/mcp/connect.d.ts +159 -13
  53. package/dist/mcp/connect.js +538 -55
  54. package/dist/mcp/pool.d.ts +11 -2
  55. package/dist/mcp/pool.js +74 -27
  56. package/dist/mcp/preview.d.ts +35 -0
  57. package/dist/mcp/preview.js +215 -0
  58. package/dist/mcp/snapshot.d.ts +79 -5
  59. package/dist/mcp/snapshot.js +145 -27
  60. package/dist/model/catalog.d.ts +14 -0
  61. package/dist/model/catalog.js +14 -1
  62. package/dist/model/pi-model.js +36 -2
  63. package/dist/openapi.json +644 -266
  64. package/dist/redact.d.ts +19 -1
  65. package/dist/redact.js +42 -13
  66. package/dist/sandbox/session-sandbox.d.ts +7 -0
  67. package/dist/sandbox/session-sandbox.js +89 -28
  68. package/dist/store/postgres/connect.d.ts +10 -0
  69. package/dist/store/postgres/connect.js +30 -3
  70. package/dist/store/postgres/control.d.ts +14 -0
  71. package/dist/store/postgres/control.js +187 -0
  72. package/dist/store/postgres/drizzle/0015_control_signals.sql +11 -0
  73. package/dist/store/postgres/drizzle/0016_mcp_oauth_removed.sql +5 -0
  74. package/dist/store/postgres/drizzle/meta/_journal.json +14 -0
  75. package/dist/store/postgres/schema.d.ts +122 -261
  76. package/dist/store/postgres/schema.js +22 -36
  77. package/dist/store/postgres/store.js +16 -18
  78. package/dist/store/postgres/tenant.d.ts +14 -0
  79. package/dist/store/postgres/tenant.js +22 -2
  80. package/dist/store/types.d.ts +42 -8
  81. package/dist/streams/types.d.ts +6 -29
  82. package/dist/streams/types.js +5 -4
  83. package/dist/tenant/artifact-tool.d.ts +9 -1
  84. package/dist/tenant/artifact-tool.js +113 -9
  85. package/dist/tenant/auth.d.ts +16 -6
  86. package/dist/tenant/auth.js +41 -17
  87. package/dist/tenant/commands.js +10 -6
  88. package/dist/tenant/context.d.ts +9 -6
  89. package/dist/tenant/control.d.ts +26 -0
  90. package/dist/tenant/control.js +35 -0
  91. package/dist/tenant/effects.d.ts +2 -2
  92. package/dist/tenant/effects.js +20 -5
  93. package/dist/tenant/ephemeral.d.ts +0 -6
  94. package/dist/tenant/ephemeral.js +1 -1
  95. package/dist/tenant/http.d.ts +4 -2
  96. package/dist/tenant/http.js +4 -2
  97. package/dist/tenant/identity-file.d.ts +16 -12
  98. package/dist/tenant/identity-file.js +41 -29
  99. package/dist/tenant/issuers.d.ts +4 -3
  100. package/dist/tenant/issuers.js +22 -16
  101. package/dist/tenant/outbound.d.ts +14 -5
  102. package/dist/tenant/outbound.js +21 -9
  103. package/dist/tenant/reset.d.ts +2 -2
  104. package/dist/tenant/reset.js +8 -2
  105. package/dist/tenant/resource-server.d.ts +56 -0
  106. package/dist/tenant/resource-server.js +62 -0
  107. package/dist/tenant/runtime.d.ts +1 -1
  108. package/dist/tenant/runtime.js +16 -15
  109. package/dist/tenant/scheduler.d.ts +1 -1
  110. package/dist/tenant/scheduler.js +1 -1
  111. package/dist/tenant/sessions.js +20 -3
  112. package/dist/tenant/store-pg.js +9 -0
  113. package/dist/tenant/streams.d.ts +16 -22
  114. package/dist/tenant/streams.js +7 -87
  115. package/dist/tenant/sweep.js +9 -1
  116. package/dist/tenant/tool-results.d.ts +57 -0
  117. package/dist/tenant/tool-results.js +298 -0
  118. package/dist/tenant/tool-search.d.ts +43 -0
  119. package/dist/tenant/tool-search.js +100 -0
  120. package/dist/tenant/transcript.d.ts +108 -0
  121. package/dist/tenant/transcript.js +13 -0
  122. package/dist/tenant/types.d.ts +0 -14
  123. package/dist/vault/crypto.d.ts +0 -7
  124. package/dist/vault/crypto.js +0 -16
  125. package/dist/vault/headers.d.ts +17 -0
  126. package/dist/vault/headers.js +61 -0
  127. package/dist/vault/service.d.ts +11 -68
  128. package/dist/vault/service.js +83 -438
  129. package/dist/vault/sources.d.ts +20 -48
  130. package/dist/vault/sources.js +25 -189
  131. package/dist/version.d.ts +1 -1
  132. package/dist/version.js +1 -1
  133. package/package.json +3 -3
  134. package/dist/streams/control.d.ts +0 -13
  135. package/dist/streams/control.js +0 -25
  136. package/dist/vault/oauth.d.ts +0 -55
  137. package/dist/vault/oauth.js +0 -186
@@ -2,16 +2,17 @@
2
2
  "openapi": "3.2.0",
3
3
  "info": {
4
4
  "title": "Nylorun Management API",
5
- "version": "0.19.1-beta",
5
+ "version": "0.21.0-beta",
6
6
  "x-nylorun-protocol": {
7
7
  "min": 4,
8
- "max": 8,
8
+ "max": 10,
9
9
  "features": [
10
10
  "runtime-tenants",
11
11
  "admin-status",
12
12
  "studio-principal",
13
13
  "artifacts",
14
14
  "management-api",
15
+ "resource-server",
15
16
  "tenant-fixture-model",
16
17
  "transcript-events",
17
18
  "subject-headers",
@@ -70,6 +71,8 @@
70
71
  "type": "string",
71
72
  "enum": [
72
73
  "not_found",
74
+ "credential_required",
75
+ "credential_invalid",
73
76
  "protocol_unsupported",
74
77
  "host_rejected",
75
78
  "origin_rejected",
@@ -91,10 +94,9 @@
91
94
  "sandbox_lost",
92
95
  "sandbox_expired",
93
96
  "issuer_unavailable",
94
- "oauth_client_required",
95
- "oauth_state_invalid",
96
- "oauth_failed",
97
97
  "definition_files_missing",
98
+ "credential_rejected",
99
+ "mcp_preview_failed",
98
100
  "internal_error"
99
101
  ]
100
102
  },
@@ -2111,7 +2113,7 @@
2111
2113
  "type": "string",
2112
2114
  "enum": [
2113
2115
  "bearer",
2114
- "oauth"
2116
+ "headers"
2115
2117
  ]
2116
2118
  },
2117
2119
  "binding": {
@@ -2126,9 +2128,28 @@
2126
2128
  ],
2127
2129
  "additionalProperties": false
2128
2130
  },
2129
- "expiresAt": {
2131
+ "headerNames": {
2132
+ "type": "array",
2133
+ "items": {
2134
+ "type": "string"
2135
+ }
2136
+ },
2137
+ "via": {
2130
2138
  "type": "string"
2131
2139
  },
2140
+ "identity": {
2141
+ "type": "object",
2142
+ "properties": {
2143
+ "header": {
2144
+ "type": "string",
2145
+ "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$"
2146
+ }
2147
+ },
2148
+ "required": [
2149
+ "header"
2150
+ ],
2151
+ "additionalProperties": false
2152
+ },
2132
2153
  "createdAt": {
2133
2154
  "type": "string"
2134
2155
  },
@@ -2180,6 +2201,22 @@
2180
2201
  "token": {
2181
2202
  "type": "string",
2182
2203
  "minLength": 1
2204
+ },
2205
+ "via": {
2206
+ "type": "string"
2207
+ },
2208
+ "identity": {
2209
+ "type": "object",
2210
+ "properties": {
2211
+ "header": {
2212
+ "type": "string",
2213
+ "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$"
2214
+ }
2215
+ },
2216
+ "required": [
2217
+ "header"
2218
+ ],
2219
+ "additionalProperties": false
2183
2220
  }
2184
2221
  },
2185
2222
  "required": [
@@ -2195,104 +2232,33 @@
2195
2232
  "type": {
2196
2233
  "type": "string",
2197
2234
  "enum": [
2198
- "oauth"
2235
+ "headers"
2199
2236
  ]
2200
2237
  },
2201
2238
  "url": {
2202
2239
  "type": "string",
2203
2240
  "minLength": 1
2204
2241
  },
2205
- "accessToken": {
2206
- "type": "string",
2207
- "minLength": 1
2242
+ "headers": {
2243
+ "type": "object",
2244
+ "additionalProperties": {
2245
+ "type": "string",
2246
+ "minLength": 1
2247
+ }
2208
2248
  },
2209
- "expiresAt": {
2210
- "type": [
2211
- "string",
2212
- "null"
2213
- ],
2214
- "minLength": 1
2249
+ "via": {
2250
+ "type": "string"
2215
2251
  },
2216
- "refresh": {
2252
+ "identity": {
2217
2253
  "type": "object",
2218
2254
  "properties": {
2219
- "tokenEndpoint": {
2255
+ "header": {
2220
2256
  "type": "string",
2221
- "minLength": 1
2222
- },
2223
- "clientId": {
2224
- "type": "string",
2225
- "minLength": 1
2226
- },
2227
- "refreshToken": {
2228
- "type": "string",
2229
- "minLength": 1
2230
- },
2231
- "tokenEndpointAuth": {
2232
- "oneOf": [
2233
- {
2234
- "type": "object",
2235
- "properties": {
2236
- "type": {
2237
- "type": "string",
2238
- "enum": [
2239
- "none"
2240
- ]
2241
- }
2242
- },
2243
- "required": [
2244
- "type"
2245
- ],
2246
- "additionalProperties": false
2247
- },
2248
- {
2249
- "type": "object",
2250
- "properties": {
2251
- "type": {
2252
- "type": "string",
2253
- "enum": [
2254
- "client_secret_basic"
2255
- ]
2256
- },
2257
- "clientSecret": {
2258
- "type": "string",
2259
- "minLength": 1
2260
- }
2261
- },
2262
- "required": [
2263
- "type",
2264
- "clientSecret"
2265
- ],
2266
- "additionalProperties": false
2267
- },
2268
- {
2269
- "type": "object",
2270
- "properties": {
2271
- "type": {
2272
- "type": "string",
2273
- "enum": [
2274
- "client_secret_post"
2275
- ]
2276
- },
2277
- "clientSecret": {
2278
- "type": "string",
2279
- "minLength": 1
2280
- }
2281
- },
2282
- "required": [
2283
- "type",
2284
- "clientSecret"
2285
- ],
2286
- "additionalProperties": false
2287
- }
2288
- ]
2257
+ "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$"
2289
2258
  }
2290
2259
  },
2291
2260
  "required": [
2292
- "tokenEndpoint",
2293
- "clientId",
2294
- "refreshToken",
2295
- "tokenEndpointAuth"
2261
+ "header"
2296
2262
  ],
2297
2263
  "additionalProperties": false
2298
2264
  }
@@ -2300,7 +2266,7 @@
2300
2266
  "required": [
2301
2267
  "type",
2302
2268
  "url",
2303
- "accessToken"
2269
+ "headers"
2304
2270
  ],
2305
2271
  "additionalProperties": false
2306
2272
  }
@@ -2336,7 +2302,7 @@
2336
2302
  "type": "string",
2337
2303
  "enum": [
2338
2304
  "bearer",
2339
- "oauth"
2305
+ "headers"
2340
2306
  ]
2341
2307
  },
2342
2308
  "binding": {
@@ -2351,9 +2317,28 @@
2351
2317
  ],
2352
2318
  "additionalProperties": false
2353
2319
  },
2354
- "expiresAt": {
2320
+ "headerNames": {
2321
+ "type": "array",
2322
+ "items": {
2323
+ "type": "string"
2324
+ }
2325
+ },
2326
+ "via": {
2355
2327
  "type": "string"
2356
2328
  },
2329
+ "identity": {
2330
+ "type": "object",
2331
+ "properties": {
2332
+ "header": {
2333
+ "type": "string",
2334
+ "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$"
2335
+ }
2336
+ },
2337
+ "required": [
2338
+ "header"
2339
+ ],
2340
+ "additionalProperties": false
2341
+ },
2357
2342
  "createdAt": {
2358
2343
  "type": "string"
2359
2344
  },
@@ -2404,6 +2389,28 @@
2404
2389
  "token": {
2405
2390
  "type": "string",
2406
2391
  "minLength": 1
2392
+ },
2393
+ "via": {
2394
+ "type": [
2395
+ "string",
2396
+ "null"
2397
+ ]
2398
+ },
2399
+ "identity": {
2400
+ "type": [
2401
+ "object",
2402
+ "null"
2403
+ ],
2404
+ "properties": {
2405
+ "header": {
2406
+ "type": "string",
2407
+ "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$"
2408
+ }
2409
+ },
2410
+ "required": [
2411
+ "header"
2412
+ ],
2413
+ "additionalProperties": false
2407
2414
  }
2408
2415
  },
2409
2416
  "required": [
@@ -2418,24 +2425,42 @@
2418
2425
  "type": {
2419
2426
  "type": "string",
2420
2427
  "enum": [
2421
- "oauth"
2428
+ "headers"
2422
2429
  ]
2423
2430
  },
2424
- "accessToken": {
2425
- "type": "string",
2426
- "minLength": 1
2431
+ "headers": {
2432
+ "type": "object",
2433
+ "additionalProperties": {
2434
+ "type": "string",
2435
+ "minLength": 1
2436
+ }
2427
2437
  },
2428
- "expiresAt": {
2438
+ "via": {
2429
2439
  "type": [
2430
2440
  "string",
2431
2441
  "null"
2442
+ ]
2443
+ },
2444
+ "identity": {
2445
+ "type": [
2446
+ "object",
2447
+ "null"
2432
2448
  ],
2433
- "minLength": 1
2449
+ "properties": {
2450
+ "header": {
2451
+ "type": "string",
2452
+ "pattern": "^[!#$%&'*+.^_`|~0-9A-Za-z-]+$"
2453
+ }
2454
+ },
2455
+ "required": [
2456
+ "header"
2457
+ ],
2458
+ "additionalProperties": false
2434
2459
  }
2435
2460
  },
2436
2461
  "required": [
2437
2462
  "type",
2438
- "accessToken"
2463
+ "headers"
2439
2464
  ],
2440
2465
  "additionalProperties": false
2441
2466
  }
@@ -2449,44 +2474,134 @@
2449
2474
  ],
2450
2475
  "additionalProperties": false
2451
2476
  },
2452
- "StartOAuthResponse": {
2477
+ "McpPreview": {
2453
2478
  "type": "object",
2454
2479
  "properties": {
2455
- "authorizeUrl": {
2480
+ "name": {
2456
2481
  "type": "string"
2457
2482
  },
2458
- "expiresAt": {
2483
+ "url": {
2484
+ "type": "string"
2485
+ },
2486
+ "type": {
2487
+ "type": "string",
2488
+ "enum": [
2489
+ "streamable-http",
2490
+ "sse"
2491
+ ]
2492
+ },
2493
+ "credentialSent": {
2494
+ "type": "boolean"
2495
+ },
2496
+ "serverInfo": {
2497
+ "type": "object",
2498
+ "additionalProperties": {}
2499
+ },
2500
+ "instructions": {
2459
2501
  "type": "string"
2502
+ },
2503
+ "tools": {
2504
+ "type": "array",
2505
+ "items": {
2506
+ "type": "object",
2507
+ "properties": {
2508
+ "serverToolName": {
2509
+ "type": "string"
2510
+ },
2511
+ "modelName": {
2512
+ "type": "string"
2513
+ },
2514
+ "description": {
2515
+ "type": "string"
2516
+ },
2517
+ "annotations": {
2518
+ "type": "object",
2519
+ "additionalProperties": {}
2520
+ },
2521
+ "schemaBytes": {
2522
+ "type": "integer",
2523
+ "minimum": 0
2524
+ }
2525
+ },
2526
+ "required": [
2527
+ "serverToolName",
2528
+ "schemaBytes"
2529
+ ],
2530
+ "additionalProperties": false
2531
+ }
2532
+ },
2533
+ "renamed": {
2534
+ "type": "array",
2535
+ "items": {
2536
+ "type": "object",
2537
+ "properties": {
2538
+ "serverToolName": {
2539
+ "type": "string"
2540
+ },
2541
+ "name": {
2542
+ "type": "string"
2543
+ }
2544
+ },
2545
+ "required": [
2546
+ "serverToolName",
2547
+ "name"
2548
+ ],
2549
+ "additionalProperties": false
2550
+ }
2551
+ },
2552
+ "authRequired": {
2553
+ "type": "object",
2554
+ "properties": {
2555
+ "resourceMetadataUrl": {
2556
+ "type": "string"
2557
+ },
2558
+ "resourceMetadata": {
2559
+ "type": "object",
2560
+ "additionalProperties": {}
2561
+ }
2562
+ },
2563
+ "additionalProperties": false
2460
2564
  }
2461
2565
  },
2462
2566
  "required": [
2463
- "authorizeUrl",
2464
- "expiresAt"
2567
+ "name",
2568
+ "url",
2569
+ "type",
2570
+ "credentialSent",
2571
+ "tools",
2572
+ "renamed"
2465
2573
  ],
2466
2574
  "additionalProperties": false
2467
2575
  },
2468
- "StartOAuthRequest": {
2576
+ "McpPreviewRequest": {
2469
2577
  "type": "object",
2470
2578
  "properties": {
2579
+ "requestId": {
2580
+ "type": "string",
2581
+ "minLength": 1
2582
+ },
2471
2583
  "url": {
2472
2584
  "type": "string",
2473
- "minLength": 1,
2474
- "maxLength": 2048
2585
+ "minLength": 1
2475
2586
  },
2476
- "server": {
2587
+ "type": {
2477
2588
  "type": "string",
2478
- "minLength": 1,
2479
- "maxLength": 128
2589
+ "enum": [
2590
+ "streamable-http",
2591
+ "sse"
2592
+ ]
2480
2593
  },
2481
- "clientId": {
2594
+ "name": {
2482
2595
  "type": "string",
2483
- "minLength": 1,
2484
- "maxLength": 512
2596
+ "pattern": "^[A-Za-z0-9_-]{1,64}$"
2597
+ },
2598
+ "vaultId": {
2599
+ "type": "string",
2600
+ "minLength": 1
2485
2601
  }
2486
2602
  },
2487
2603
  "required": [
2488
- "url",
2489
- "server"
2604
+ "url"
2490
2605
  ],
2491
2606
  "additionalProperties": false
2492
2607
  },
@@ -2961,10 +3076,10 @@
2961
3076
  {
2962
3077
  "schema": {
2963
3078
  "type": "string",
2964
- "description": "The protocol version, `8`"
3079
+ "description": "The protocol version, `10`"
2965
3080
  },
2966
3081
  "required": true,
2967
- "description": "The protocol version, `8`",
3082
+ "description": "The protocol version, `10`",
2968
3083
  "name": "Nylorun-Protocol",
2969
3084
  "in": "header"
2970
3085
  }
@@ -2990,6 +3105,16 @@
2990
3105
  }
2991
3106
  }
2992
3107
  },
3108
+ "401": {
3109
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3110
+ "content": {
3111
+ "application/json": {
3112
+ "schema": {
3113
+ "$ref": "#/components/schemas/Rejected"
3114
+ }
3115
+ }
3116
+ }
3117
+ },
2993
3118
  "403": {
2994
3119
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
2995
3120
  "content": {
@@ -3001,7 +3126,7 @@
3001
3126
  }
3002
3127
  },
3003
3128
  "404": {
3004
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3129
+ "description": "Not found (`not_found`)",
3005
3130
  "content": {
3006
3131
  "application/json": {
3007
3132
  "schema": {
@@ -3053,10 +3178,10 @@
3053
3178
  {
3054
3179
  "schema": {
3055
3180
  "type": "string",
3056
- "description": "The protocol version, `8`"
3181
+ "description": "The protocol version, `10`"
3057
3182
  },
3058
3183
  "required": true,
3059
- "description": "The protocol version, `8`",
3184
+ "description": "The protocol version, `10`",
3060
3185
  "name": "Nylorun-Protocol",
3061
3186
  "in": "header"
3062
3187
  }
@@ -3092,6 +3217,16 @@
3092
3217
  }
3093
3218
  }
3094
3219
  },
3220
+ "401": {
3221
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3222
+ "content": {
3223
+ "application/json": {
3224
+ "schema": {
3225
+ "$ref": "#/components/schemas/Rejected"
3226
+ }
3227
+ }
3228
+ }
3229
+ },
3095
3230
  "403": {
3096
3231
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3097
3232
  "content": {
@@ -3103,7 +3238,7 @@
3103
3238
  }
3104
3239
  },
3105
3240
  "404": {
3106
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3241
+ "description": "Not found (`not_found`)",
3107
3242
  "content": {
3108
3243
  "application/json": {
3109
3244
  "schema": {
@@ -3155,10 +3290,10 @@
3155
3290
  {
3156
3291
  "schema": {
3157
3292
  "type": "string",
3158
- "description": "The protocol version, `8`"
3293
+ "description": "The protocol version, `10`"
3159
3294
  },
3160
3295
  "required": true,
3161
- "description": "The protocol version, `8`",
3296
+ "description": "The protocol version, `10`",
3162
3297
  "name": "Nylorun-Protocol",
3163
3298
  "in": "header"
3164
3299
  }
@@ -3194,6 +3329,16 @@
3194
3329
  }
3195
3330
  }
3196
3331
  },
3332
+ "401": {
3333
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3334
+ "content": {
3335
+ "application/json": {
3336
+ "schema": {
3337
+ "$ref": "#/components/schemas/Rejected"
3338
+ }
3339
+ }
3340
+ }
3341
+ },
3197
3342
  "403": {
3198
3343
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3199
3344
  "content": {
@@ -3205,7 +3350,7 @@
3205
3350
  }
3206
3351
  },
3207
3352
  "404": {
3208
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3353
+ "description": "Not found (`not_found`)",
3209
3354
  "content": {
3210
3355
  "application/json": {
3211
3356
  "schema": {
@@ -3266,10 +3411,10 @@
3266
3411
  {
3267
3412
  "schema": {
3268
3413
  "type": "string",
3269
- "description": "The protocol version, `8`"
3414
+ "description": "The protocol version, `10`"
3270
3415
  },
3271
3416
  "required": true,
3272
- "description": "The protocol version, `8`",
3417
+ "description": "The protocol version, `10`",
3273
3418
  "name": "Nylorun-Protocol",
3274
3419
  "in": "header"
3275
3420
  },
@@ -3316,7 +3461,7 @@
3316
3461
  }
3317
3462
  },
3318
3463
  "401": {
3319
- "description": "The token expired (`token_expired`), or its issuer's keys cannot be fetched now (`issuer_unavailable`)",
3464
+ "description": "No credential (`credential_required`), one the Tenant does not accept (`credential_invalid`), a token that expired (`token_expired`), or a token whose issuer's keys cannot be fetched now (`issuer_unavailable`). `WWW-Authenticate: Bearer` names the protected resource metadata (`resource_metadata`)",
3320
3465
  "content": {
3321
3466
  "application/json": {
3322
3467
  "schema": {
@@ -3336,7 +3481,7 @@
3336
3481
  }
3337
3482
  },
3338
3483
  "404": {
3339
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3484
+ "description": "Not found (`not_found`)",
3340
3485
  "content": {
3341
3486
  "application/json": {
3342
3487
  "schema": {
@@ -3401,10 +3546,10 @@
3401
3546
  {
3402
3547
  "schema": {
3403
3548
  "type": "string",
3404
- "description": "The protocol version, `8`"
3549
+ "description": "The protocol version, `10`"
3405
3550
  },
3406
3551
  "required": true,
3407
- "description": "The protocol version, `8`",
3552
+ "description": "The protocol version, `10`",
3408
3553
  "name": "Nylorun-Protocol",
3409
3554
  "in": "header"
3410
3555
  }
@@ -3430,6 +3575,16 @@
3430
3575
  }
3431
3576
  }
3432
3577
  },
3578
+ "401": {
3579
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3580
+ "content": {
3581
+ "application/json": {
3582
+ "schema": {
3583
+ "$ref": "#/components/schemas/Rejected"
3584
+ }
3585
+ }
3586
+ }
3587
+ },
3433
3588
  "403": {
3434
3589
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3435
3590
  "content": {
@@ -3441,7 +3596,7 @@
3441
3596
  }
3442
3597
  },
3443
3598
  "404": {
3444
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3599
+ "description": "Not found (`not_found`)",
3445
3600
  "content": {
3446
3601
  "application/json": {
3447
3602
  "schema": {
@@ -3503,10 +3658,10 @@
3503
3658
  {
3504
3659
  "schema": {
3505
3660
  "type": "string",
3506
- "description": "The protocol version, `8`"
3661
+ "description": "The protocol version, `10`"
3507
3662
  },
3508
3663
  "required": true,
3509
- "description": "The protocol version, `8`",
3664
+ "description": "The protocol version, `10`",
3510
3665
  "name": "Nylorun-Protocol",
3511
3666
  "in": "header"
3512
3667
  }
@@ -3525,6 +3680,16 @@
3525
3680
  "400": {
3526
3681
  "description": "Not a key name, a reserved name, or a management key's name"
3527
3682
  },
3683
+ "401": {
3684
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3685
+ "content": {
3686
+ "application/json": {
3687
+ "schema": {
3688
+ "$ref": "#/components/schemas/Rejected"
3689
+ }
3690
+ }
3691
+ }
3692
+ },
3528
3693
  "403": {
3529
3694
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3530
3695
  "content": {
@@ -3536,7 +3701,7 @@
3536
3701
  }
3537
3702
  },
3538
3703
  "404": {
3539
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3704
+ "description": "Not found (`not_found`)",
3540
3705
  "content": {
3541
3706
  "application/json": {
3542
3707
  "schema": {
@@ -3596,10 +3761,10 @@
3596
3761
  {
3597
3762
  "schema": {
3598
3763
  "type": "string",
3599
- "description": "The protocol version, `8`"
3764
+ "description": "The protocol version, `10`"
3600
3765
  },
3601
3766
  "required": true,
3602
- "description": "The protocol version, `8`",
3767
+ "description": "The protocol version, `10`",
3603
3768
  "name": "Nylorun-Protocol",
3604
3769
  "in": "header"
3605
3770
  }
@@ -3618,6 +3783,16 @@
3618
3783
  "400": {
3619
3784
  "description": "Not a key name, a reserved name, or a management key's name"
3620
3785
  },
3786
+ "401": {
3787
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3788
+ "content": {
3789
+ "application/json": {
3790
+ "schema": {
3791
+ "$ref": "#/components/schemas/Rejected"
3792
+ }
3793
+ }
3794
+ }
3795
+ },
3621
3796
  "403": {
3622
3797
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3623
3798
  "content": {
@@ -3629,7 +3804,7 @@
3629
3804
  }
3630
3805
  },
3631
3806
  "404": {
3632
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3807
+ "description": "Not found (`not_found`)",
3633
3808
  "content": {
3634
3809
  "application/json": {
3635
3810
  "schema": {
@@ -3680,10 +3855,10 @@
3680
3855
  {
3681
3856
  "schema": {
3682
3857
  "type": "string",
3683
- "description": "The protocol version, `8`"
3858
+ "description": "The protocol version, `10`"
3684
3859
  },
3685
3860
  "required": true,
3686
- "description": "The protocol version, `8`",
3861
+ "description": "The protocol version, `10`",
3687
3862
  "name": "Nylorun-Protocol",
3688
3863
  "in": "header"
3689
3864
  }
@@ -3709,8 +3884,8 @@
3709
3884
  }
3710
3885
  }
3711
3886
  },
3712
- "403": {
3713
- "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3887
+ "401": {
3888
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3714
3889
  "content": {
3715
3890
  "application/json": {
3716
3891
  "schema": {
@@ -3719,9 +3894,19 @@
3719
3894
  }
3720
3895
  }
3721
3896
  },
3722
- "404": {
3723
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
3724
- "content": {
3897
+ "403": {
3898
+ "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3899
+ "content": {
3900
+ "application/json": {
3901
+ "schema": {
3902
+ "$ref": "#/components/schemas/Rejected"
3903
+ }
3904
+ }
3905
+ }
3906
+ },
3907
+ "404": {
3908
+ "description": "Not found (`not_found`)",
3909
+ "content": {
3725
3910
  "application/json": {
3726
3911
  "schema": {
3727
3912
  "$ref": "#/components/schemas/Rejected"
@@ -3771,10 +3956,10 @@
3771
3956
  {
3772
3957
  "schema": {
3773
3958
  "type": "string",
3774
- "description": "The protocol version, `8`"
3959
+ "description": "The protocol version, `10`"
3775
3960
  },
3776
3961
  "required": true,
3777
- "description": "The protocol version, `8`",
3962
+ "description": "The protocol version, `10`",
3778
3963
  "name": "Nylorun-Protocol",
3779
3964
  "in": "header"
3780
3965
  }
@@ -3800,6 +3985,16 @@
3800
3985
  }
3801
3986
  }
3802
3987
  },
3988
+ "401": {
3989
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
3990
+ "content": {
3991
+ "application/json": {
3992
+ "schema": {
3993
+ "$ref": "#/components/schemas/Rejected"
3994
+ }
3995
+ }
3996
+ }
3997
+ },
3803
3998
  "403": {
3804
3999
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3805
4000
  "content": {
@@ -3811,7 +4006,7 @@
3811
4006
  }
3812
4007
  },
3813
4008
  "404": {
3814
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4009
+ "description": "Not found (`not_found`)",
3815
4010
  "content": {
3816
4011
  "application/json": {
3817
4012
  "schema": {
@@ -3862,10 +4057,10 @@
3862
4057
  {
3863
4058
  "schema": {
3864
4059
  "type": "string",
3865
- "description": "The protocol version, `8`"
4060
+ "description": "The protocol version, `10`"
3866
4061
  },
3867
4062
  "required": true,
3868
- "description": "The protocol version, `8`",
4063
+ "description": "The protocol version, `10`",
3869
4064
  "name": "Nylorun-Protocol",
3870
4065
  "in": "header"
3871
4066
  }
@@ -3891,6 +4086,16 @@
3891
4086
  }
3892
4087
  }
3893
4088
  },
4089
+ "401": {
4090
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4091
+ "content": {
4092
+ "application/json": {
4093
+ "schema": {
4094
+ "$ref": "#/components/schemas/Rejected"
4095
+ }
4096
+ }
4097
+ }
4098
+ },
3894
4099
  "403": {
3895
4100
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3896
4101
  "content": {
@@ -3902,7 +4107,7 @@
3902
4107
  }
3903
4108
  },
3904
4109
  "404": {
3905
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4110
+ "description": "Not found (`not_found`)",
3906
4111
  "content": {
3907
4112
  "application/json": {
3908
4113
  "schema": {
@@ -3951,10 +4156,10 @@
3951
4156
  {
3952
4157
  "schema": {
3953
4158
  "type": "string",
3954
- "description": "The protocol version, `8`"
4159
+ "description": "The protocol version, `10`"
3955
4160
  },
3956
4161
  "required": true,
3957
- "description": "The protocol version, `8`",
4162
+ "description": "The protocol version, `10`",
3958
4163
  "name": "Nylorun-Protocol",
3959
4164
  "in": "header"
3960
4165
  }
@@ -3990,6 +4195,16 @@
3990
4195
  }
3991
4196
  }
3992
4197
  },
4198
+ "401": {
4199
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4200
+ "content": {
4201
+ "application/json": {
4202
+ "schema": {
4203
+ "$ref": "#/components/schemas/Rejected"
4204
+ }
4205
+ }
4206
+ }
4207
+ },
3993
4208
  "403": {
3994
4209
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
3995
4210
  "content": {
@@ -4001,7 +4216,7 @@
4001
4216
  }
4002
4217
  },
4003
4218
  "404": {
4004
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4219
+ "description": "Not found (`not_found`)",
4005
4220
  "content": {
4006
4221
  "application/json": {
4007
4222
  "schema": {
@@ -4052,10 +4267,10 @@
4052
4267
  {
4053
4268
  "schema": {
4054
4269
  "type": "string",
4055
- "description": "The protocol version, `8`"
4270
+ "description": "The protocol version, `10`"
4056
4271
  },
4057
4272
  "required": true,
4058
- "description": "The protocol version, `8`",
4273
+ "description": "The protocol version, `10`",
4059
4274
  "name": "Nylorun-Protocol",
4060
4275
  "in": "header"
4061
4276
  }
@@ -4091,6 +4306,16 @@
4091
4306
  }
4092
4307
  }
4093
4308
  },
4309
+ "401": {
4310
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4311
+ "content": {
4312
+ "application/json": {
4313
+ "schema": {
4314
+ "$ref": "#/components/schemas/Rejected"
4315
+ }
4316
+ }
4317
+ }
4318
+ },
4094
4319
  "403": {
4095
4320
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4096
4321
  "content": {
@@ -4102,7 +4327,7 @@
4102
4327
  }
4103
4328
  },
4104
4329
  "404": {
4105
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4330
+ "description": "Not found (`not_found`)",
4106
4331
  "content": {
4107
4332
  "application/json": {
4108
4333
  "schema": {
@@ -4191,10 +4416,10 @@
4191
4416
  {
4192
4417
  "schema": {
4193
4418
  "type": "string",
4194
- "description": "The protocol version, `8`"
4419
+ "description": "The protocol version, `10`"
4195
4420
  },
4196
4421
  "required": true,
4197
- "description": "The protocol version, `8`",
4422
+ "description": "The protocol version, `10`",
4198
4423
  "name": "Nylorun-Protocol",
4199
4424
  "in": "header"
4200
4425
  }
@@ -4220,6 +4445,16 @@
4220
4445
  }
4221
4446
  }
4222
4447
  },
4448
+ "401": {
4449
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4450
+ "content": {
4451
+ "application/json": {
4452
+ "schema": {
4453
+ "$ref": "#/components/schemas/Rejected"
4454
+ }
4455
+ }
4456
+ }
4457
+ },
4223
4458
  "403": {
4224
4459
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4225
4460
  "content": {
@@ -4231,7 +4466,7 @@
4231
4466
  }
4232
4467
  },
4233
4468
  "404": {
4234
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4469
+ "description": "Not found (`not_found`)",
4235
4470
  "content": {
4236
4471
  "application/json": {
4237
4472
  "schema": {
@@ -4301,10 +4536,10 @@
4301
4536
  {
4302
4537
  "schema": {
4303
4538
  "type": "string",
4304
- "description": "The protocol version, `8`"
4539
+ "description": "The protocol version, `10`"
4305
4540
  },
4306
4541
  "required": true,
4307
- "description": "The protocol version, `8`",
4542
+ "description": "The protocol version, `10`",
4308
4543
  "name": "Nylorun-Protocol",
4309
4544
  "in": "header"
4310
4545
  }
@@ -4330,6 +4565,16 @@
4330
4565
  }
4331
4566
  }
4332
4567
  },
4568
+ "401": {
4569
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4570
+ "content": {
4571
+ "application/json": {
4572
+ "schema": {
4573
+ "$ref": "#/components/schemas/Rejected"
4574
+ }
4575
+ }
4576
+ }
4577
+ },
4333
4578
  "403": {
4334
4579
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4335
4580
  "content": {
@@ -4341,7 +4586,7 @@
4341
4586
  }
4342
4587
  },
4343
4588
  "404": {
4344
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4589
+ "description": "Not found (`not_found`)",
4345
4590
  "content": {
4346
4591
  "application/json": {
4347
4592
  "schema": {
@@ -4392,10 +4637,10 @@
4392
4637
  {
4393
4638
  "schema": {
4394
4639
  "type": "string",
4395
- "description": "The protocol version, `8`"
4640
+ "description": "The protocol version, `10`"
4396
4641
  },
4397
4642
  "required": true,
4398
- "description": "The protocol version, `8`",
4643
+ "description": "The protocol version, `10`",
4399
4644
  "name": "Nylorun-Protocol",
4400
4645
  "in": "header"
4401
4646
  }
@@ -4421,6 +4666,16 @@
4421
4666
  }
4422
4667
  }
4423
4668
  },
4669
+ "401": {
4670
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4671
+ "content": {
4672
+ "application/json": {
4673
+ "schema": {
4674
+ "$ref": "#/components/schemas/Rejected"
4675
+ }
4676
+ }
4677
+ }
4678
+ },
4424
4679
  "403": {
4425
4680
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4426
4681
  "content": {
@@ -4432,7 +4687,7 @@
4432
4687
  }
4433
4688
  },
4434
4689
  "404": {
4435
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4690
+ "description": "Not found (`not_found`)",
4436
4691
  "content": {
4437
4692
  "application/json": {
4438
4693
  "schema": {
@@ -4482,10 +4737,10 @@
4482
4737
  {
4483
4738
  "schema": {
4484
4739
  "type": "string",
4485
- "description": "The protocol version, `8`"
4740
+ "description": "The protocol version, `10`"
4486
4741
  },
4487
4742
  "required": true,
4488
- "description": "The protocol version, `8`",
4743
+ "description": "The protocol version, `10`",
4489
4744
  "name": "Nylorun-Protocol",
4490
4745
  "in": "header"
4491
4746
  }
@@ -4521,6 +4776,16 @@
4521
4776
  }
4522
4777
  }
4523
4778
  },
4779
+ "401": {
4780
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4781
+ "content": {
4782
+ "application/json": {
4783
+ "schema": {
4784
+ "$ref": "#/components/schemas/Rejected"
4785
+ }
4786
+ }
4787
+ }
4788
+ },
4524
4789
  "403": {
4525
4790
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4526
4791
  "content": {
@@ -4532,7 +4797,7 @@
4532
4797
  }
4533
4798
  },
4534
4799
  "404": {
4535
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4800
+ "description": "Not found (`not_found`)",
4536
4801
  "content": {
4537
4802
  "application/json": {
4538
4803
  "schema": {
@@ -4584,10 +4849,10 @@
4584
4849
  {
4585
4850
  "schema": {
4586
4851
  "type": "string",
4587
- "description": "The protocol version, `8`"
4852
+ "description": "The protocol version, `10`"
4588
4853
  },
4589
4854
  "required": true,
4590
- "description": "The protocol version, `8`",
4855
+ "description": "The protocol version, `10`",
4591
4856
  "name": "Nylorun-Protocol",
4592
4857
  "in": "header"
4593
4858
  }
@@ -4623,6 +4888,16 @@
4623
4888
  }
4624
4889
  }
4625
4890
  },
4891
+ "401": {
4892
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
4893
+ "content": {
4894
+ "application/json": {
4895
+ "schema": {
4896
+ "$ref": "#/components/schemas/Rejected"
4897
+ }
4898
+ }
4899
+ }
4900
+ },
4626
4901
  "403": {
4627
4902
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4628
4903
  "content": {
@@ -4634,7 +4909,7 @@
4634
4909
  }
4635
4910
  },
4636
4911
  "404": {
4637
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
4912
+ "description": "Not found (`not_found`)",
4638
4913
  "content": {
4639
4914
  "application/json": {
4640
4915
  "schema": {
@@ -4697,10 +4972,10 @@
4697
4972
  {
4698
4973
  "schema": {
4699
4974
  "type": "string",
4700
- "description": "The protocol version, `8`"
4975
+ "description": "The protocol version, `10`"
4701
4976
  },
4702
4977
  "required": true,
4703
- "description": "The protocol version, `8`",
4978
+ "description": "The protocol version, `10`",
4704
4979
  "name": "Nylorun-Protocol",
4705
4980
  "in": "header"
4706
4981
  }
@@ -4726,6 +5001,16 @@
4726
5001
  }
4727
5002
  }
4728
5003
  },
5004
+ "401": {
5005
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5006
+ "content": {
5007
+ "application/json": {
5008
+ "schema": {
5009
+ "$ref": "#/components/schemas/Rejected"
5010
+ }
5011
+ }
5012
+ }
5013
+ },
4729
5014
  "403": {
4730
5015
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4731
5016
  "content": {
@@ -4737,7 +5022,7 @@
4737
5022
  }
4738
5023
  },
4739
5024
  "404": {
4740
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5025
+ "description": "Not found (`not_found`)",
4741
5026
  "content": {
4742
5027
  "application/json": {
4743
5028
  "schema": {
@@ -4796,10 +5081,10 @@
4796
5081
  {
4797
5082
  "schema": {
4798
5083
  "type": "string",
4799
- "description": "The protocol version, `8`"
5084
+ "description": "The protocol version, `10`"
4800
5085
  },
4801
5086
  "required": true,
4802
- "description": "The protocol version, `8`",
5087
+ "description": "The protocol version, `10`",
4803
5088
  "name": "Nylorun-Protocol",
4804
5089
  "in": "header"
4805
5090
  }
@@ -4825,6 +5110,16 @@
4825
5110
  }
4826
5111
  }
4827
5112
  },
5113
+ "401": {
5114
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5115
+ "content": {
5116
+ "application/json": {
5117
+ "schema": {
5118
+ "$ref": "#/components/schemas/Rejected"
5119
+ }
5120
+ }
5121
+ }
5122
+ },
4828
5123
  "403": {
4829
5124
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4830
5125
  "content": {
@@ -4836,7 +5131,7 @@
4836
5131
  }
4837
5132
  },
4838
5133
  "404": {
4839
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5134
+ "description": "Not found (`not_found`)",
4840
5135
  "content": {
4841
5136
  "application/json": {
4842
5137
  "schema": {
@@ -4893,10 +5188,10 @@
4893
5188
  {
4894
5189
  "schema": {
4895
5190
  "type": "string",
4896
- "description": "The protocol version, `8`"
5191
+ "description": "The protocol version, `10`"
4897
5192
  },
4898
5193
  "required": true,
4899
- "description": "The protocol version, `8`",
5194
+ "description": "The protocol version, `10`",
4900
5195
  "name": "Nylorun-Protocol",
4901
5196
  "in": "header"
4902
5197
  }
@@ -4922,6 +5217,16 @@
4922
5217
  }
4923
5218
  }
4924
5219
  },
5220
+ "401": {
5221
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5222
+ "content": {
5223
+ "application/json": {
5224
+ "schema": {
5225
+ "$ref": "#/components/schemas/Rejected"
5226
+ }
5227
+ }
5228
+ }
5229
+ },
4925
5230
  "403": {
4926
5231
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
4927
5232
  "content": {
@@ -4933,7 +5238,7 @@
4933
5238
  }
4934
5239
  },
4935
5240
  "404": {
4936
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5241
+ "description": "Not found (`not_found`)",
4937
5242
  "content": {
4938
5243
  "application/json": {
4939
5244
  "schema": {
@@ -4971,7 +5276,7 @@
4971
5276
  "Vaults"
4972
5277
  ],
4973
5278
  "summary": "Add a credential",
4974
- "description": "A bearer token or OAuth tokens, bound to the URLs a tool may send them to.",
5279
+ "description": "A bearer token, bound to the URL a tool may send it to.",
4975
5280
  "security": [
4976
5281
  {
4977
5282
  "managementKey": []
@@ -4993,10 +5298,10 @@
4993
5298
  {
4994
5299
  "schema": {
4995
5300
  "type": "string",
4996
- "description": "The protocol version, `8`"
5301
+ "description": "The protocol version, `10`"
4997
5302
  },
4998
5303
  "required": true,
4999
- "description": "The protocol version, `8`",
5304
+ "description": "The protocol version, `10`",
5000
5305
  "name": "Nylorun-Protocol",
5001
5306
  "in": "header"
5002
5307
  }
@@ -5032,6 +5337,16 @@
5032
5337
  }
5033
5338
  }
5034
5339
  },
5340
+ "401": {
5341
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5342
+ "content": {
5343
+ "application/json": {
5344
+ "schema": {
5345
+ "$ref": "#/components/schemas/Rejected"
5346
+ }
5347
+ }
5348
+ }
5349
+ },
5035
5350
  "403": {
5036
5351
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5037
5352
  "content": {
@@ -5043,7 +5358,7 @@
5043
5358
  }
5044
5359
  },
5045
5360
  "404": {
5046
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5361
+ "description": "Not found (`not_found`)",
5047
5362
  "content": {
5048
5363
  "application/json": {
5049
5364
  "schema": {
@@ -5100,10 +5415,10 @@
5100
5415
  {
5101
5416
  "schema": {
5102
5417
  "type": "string",
5103
- "description": "The protocol version, `8`"
5418
+ "description": "The protocol version, `10`"
5104
5419
  },
5105
5420
  "required": true,
5106
- "description": "The protocol version, `8`",
5421
+ "description": "The protocol version, `10`",
5107
5422
  "name": "Nylorun-Protocol",
5108
5423
  "in": "header"
5109
5424
  }
@@ -5129,6 +5444,16 @@
5129
5444
  }
5130
5445
  }
5131
5446
  },
5447
+ "401": {
5448
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5449
+ "content": {
5450
+ "application/json": {
5451
+ "schema": {
5452
+ "$ref": "#/components/schemas/Rejected"
5453
+ }
5454
+ }
5455
+ }
5456
+ },
5132
5457
  "403": {
5133
5458
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5134
5459
  "content": {
@@ -5140,7 +5465,7 @@
5140
5465
  }
5141
5466
  },
5142
5467
  "404": {
5143
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5468
+ "description": "Not found (`not_found`)",
5144
5469
  "content": {
5145
5470
  "application/json": {
5146
5471
  "schema": {
@@ -5207,10 +5532,10 @@
5207
5532
  {
5208
5533
  "schema": {
5209
5534
  "type": "string",
5210
- "description": "The protocol version, `8`"
5535
+ "description": "The protocol version, `10`"
5211
5536
  },
5212
5537
  "required": true,
5213
- "description": "The protocol version, `8`",
5538
+ "description": "The protocol version, `10`",
5214
5539
  "name": "Nylorun-Protocol",
5215
5540
  "in": "header"
5216
5541
  }
@@ -5236,6 +5561,16 @@
5236
5561
  }
5237
5562
  }
5238
5563
  },
5564
+ "401": {
5565
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5566
+ "content": {
5567
+ "application/json": {
5568
+ "schema": {
5569
+ "$ref": "#/components/schemas/Rejected"
5570
+ }
5571
+ }
5572
+ }
5573
+ },
5239
5574
  "403": {
5240
5575
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5241
5576
  "content": {
@@ -5247,7 +5582,7 @@
5247
5582
  }
5248
5583
  },
5249
5584
  "404": {
5250
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5585
+ "description": "Not found (`not_found`)",
5251
5586
  "content": {
5252
5587
  "application/json": {
5253
5588
  "schema": {
@@ -5312,10 +5647,10 @@
5312
5647
  {
5313
5648
  "schema": {
5314
5649
  "type": "string",
5315
- "description": "The protocol version, `8`"
5650
+ "description": "The protocol version, `10`"
5316
5651
  },
5317
5652
  "required": true,
5318
- "description": "The protocol version, `8`",
5653
+ "description": "The protocol version, `10`",
5319
5654
  "name": "Nylorun-Protocol",
5320
5655
  "in": "header"
5321
5656
  }
@@ -5351,6 +5686,16 @@
5351
5686
  }
5352
5687
  }
5353
5688
  },
5689
+ "401": {
5690
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5691
+ "content": {
5692
+ "application/json": {
5693
+ "schema": {
5694
+ "$ref": "#/components/schemas/Rejected"
5695
+ }
5696
+ }
5697
+ }
5698
+ },
5354
5699
  "403": {
5355
5700
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5356
5701
  "content": {
@@ -5362,7 +5707,7 @@
5362
5707
  }
5363
5708
  },
5364
5709
  "404": {
5365
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5710
+ "description": "Not found (`not_found`)",
5366
5711
  "content": {
5367
5712
  "application/json": {
5368
5713
  "schema": {
@@ -5430,10 +5775,10 @@
5430
5775
  {
5431
5776
  "schema": {
5432
5777
  "type": "string",
5433
- "description": "The protocol version, `8`"
5778
+ "description": "The protocol version, `10`"
5434
5779
  },
5435
5780
  "required": true,
5436
- "description": "The protocol version, `8`",
5781
+ "description": "The protocol version, `10`",
5437
5782
  "name": "Nylorun-Protocol",
5438
5783
  "in": "header"
5439
5784
  }
@@ -5459,6 +5804,16 @@
5459
5804
  }
5460
5805
  }
5461
5806
  },
5807
+ "401": {
5808
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5809
+ "content": {
5810
+ "application/json": {
5811
+ "schema": {
5812
+ "$ref": "#/components/schemas/Rejected"
5813
+ }
5814
+ }
5815
+ }
5816
+ },
5462
5817
  "403": {
5463
5818
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5464
5819
  "content": {
@@ -5470,7 +5825,7 @@
5470
5825
  }
5471
5826
  },
5472
5827
  "404": {
5473
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5828
+ "description": "Not found (`not_found`)",
5474
5829
  "content": {
5475
5830
  "application/json": {
5476
5831
  "schema": {
@@ -5502,13 +5857,13 @@
5502
5857
  }
5503
5858
  }
5504
5859
  },
5505
- "/v1/tenant/vaults/{vaultId}/oauth/start": {
5860
+ "/v1/tenant/mcp/preview": {
5506
5861
  "post": {
5507
5862
  "tags": [
5508
- "Vaults"
5863
+ "MCP servers"
5509
5864
  ],
5510
- "summary": "Start an MCP OAuth connect",
5511
- "description": "Signs the installation in to the remote MCP server at `url` (declared as `server`) and stores its OAuth credential, bound to `url`, in this installation vault. The Runtime discovers the server's authorization server (RFC 9728, RFC 8414), registers itself (RFC 7591) unless `clientId` names a registered client, and answers the URL to open in a browser; the sign-in returns to `GET /v1/oauth/callback` within `expiresAt`. The callback URL is `NYLORUN_PUBLIC_URL` + `/v1/oauth/callback`, or this request's own origin when the Host has no public URL. Application keys acting for no one only. `oauth_client_required` when the server offers no registration and no `clientId` was given.",
5865
+ "summary": "Preview an MCP server's tools",
5866
+ "description": "Connects to the remote MCP server at `url` with the installation vault's credential for that URL (its headers and `via`; never an identity header), under the Host's address policy, lists its tools within 15 s and closes the connection. It never calls a tool. Each tool comes with the name the model would call it (`modelName`, made with `name`), its annotations and its input schema's size. A server that answers `401` is `authRequired`, with its RFC 9728 protected-resource metadata when it publishes any: it needs a person's sign-in, so reach it through a gateway (`via`), or with a key. No credential value is in the answer.",
5512
5867
  "security": [
5513
5868
  {
5514
5869
  "managementKey": []
@@ -5519,21 +5874,13 @@
5519
5874
  ],
5520
5875
  "x-nylorun-scopes": "never",
5521
5876
  "parameters": [
5522
- {
5523
- "schema": {
5524
- "type": "string"
5525
- },
5526
- "required": true,
5527
- "name": "vaultId",
5528
- "in": "path"
5529
- },
5530
5877
  {
5531
5878
  "schema": {
5532
5879
  "type": "string",
5533
- "description": "The protocol version, `8`"
5880
+ "description": "The protocol version, `10`"
5534
5881
  },
5535
5882
  "required": true,
5536
- "description": "The protocol version, `8`",
5883
+ "description": "The protocol version, `10`",
5537
5884
  "name": "Nylorun-Protocol",
5538
5885
  "in": "header"
5539
5886
  }
@@ -5543,18 +5890,18 @@
5543
5890
  "content": {
5544
5891
  "application/json": {
5545
5892
  "schema": {
5546
- "$ref": "#/components/schemas/StartOAuthRequest"
5893
+ "$ref": "#/components/schemas/McpPreviewRequest"
5547
5894
  }
5548
5895
  }
5549
5896
  }
5550
5897
  },
5551
5898
  "responses": {
5552
5899
  "200": {
5553
- "description": "Where to send the browser",
5900
+ "description": "The server's tools, or that it needs a credential (`authRequired`)",
5554
5901
  "content": {
5555
5902
  "application/json": {
5556
5903
  "schema": {
5557
- "$ref": "#/components/schemas/StartOAuthResponse"
5904
+ "$ref": "#/components/schemas/McpPreview"
5558
5905
  }
5559
5906
  }
5560
5907
  }
@@ -5569,18 +5916,8 @@
5569
5916
  }
5570
5917
  }
5571
5918
  },
5572
- "403": {
5573
- "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5574
- "content": {
5575
- "application/json": {
5576
- "schema": {
5577
- "$ref": "#/components/schemas/Rejected"
5578
- }
5579
- }
5580
- }
5581
- },
5582
- "404": {
5583
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5919
+ "401": {
5920
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
5584
5921
  "content": {
5585
5922
  "application/json": {
5586
5923
  "schema": {
@@ -5589,21 +5926,8 @@
5589
5926
  }
5590
5927
  }
5591
5928
  },
5592
- "426": {
5593
- "description": "`Nylorun-Protocol` missing or unsupported",
5594
- "content": {
5595
- "application/json": {
5596
- "schema": {
5597
- "$ref": "#/components/schemas/ProtocolRejected"
5598
- }
5599
- }
5600
- }
5601
- },
5602
- "502": {
5603
- "description": "The authorization server, or its discovery, failed or refused (`oauth_failed`)"
5604
- },
5605
- "503": {
5606
- "description": "The Tenant's storage or streams are unavailable",
5929
+ "403": {
5930
+ "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5607
5931
  "content": {
5608
5932
  "application/json": {
5609
5933
  "schema": {
@@ -5611,101 +5935,9 @@
5611
5935
  }
5612
5936
  }
5613
5937
  }
5614
- }
5615
- }
5616
- }
5617
- },
5618
- "/v1/oauth/callback": {
5619
- "get": {
5620
- "tags": [
5621
- "Vaults"
5622
- ],
5623
- "summary": "Finish an MCP OAuth connect",
5624
- "description": "Where the authorization server sends the browser back with `code` and `state` (or `error`). Exchanges the code once and stores the credential; answers a small HTML page. Needs no credential and no `Nylorun-Protocol`. A `state` is used once, for ten minutes (`oauth_state_invalid`).",
5625
- "security": [
5626
- {
5627
- "applicationKey": []
5628
- },
5629
- {
5630
- "issuerToken": []
5631
- },
5632
- {}
5633
- ],
5634
- "x-nylorun-credentials": [
5635
- "application",
5636
- "subject",
5637
- "token"
5638
- ],
5639
- "x-nylorun-scopes": "any",
5640
- "parameters": [
5641
- {
5642
- "schema": {
5643
- "type": "string"
5644
- },
5645
- "required": false,
5646
- "name": "code",
5647
- "in": "query"
5648
- },
5649
- {
5650
- "schema": {
5651
- "type": "string"
5652
- },
5653
- "required": false,
5654
- "name": "state",
5655
- "in": "query"
5656
- },
5657
- {
5658
- "schema": {
5659
- "type": "string"
5660
- },
5661
- "required": false,
5662
- "name": "error",
5663
- "in": "query"
5664
- },
5665
- {
5666
- "schema": {
5667
- "type": "string",
5668
- "description": "The protocol version, `8`"
5669
- },
5670
- "required": false,
5671
- "description": "The protocol version, `8`",
5672
- "name": "Nylorun-Protocol",
5673
- "in": "header"
5674
- },
5675
- {
5676
- "schema": {
5677
- "type": "string",
5678
- "description": "The person an application key acts for"
5679
- },
5680
- "required": false,
5681
- "description": "The person an application key acts for",
5682
- "name": "Nylorun-Subject",
5683
- "in": "header"
5684
- },
5685
- {
5686
- "schema": {
5687
- "type": "string",
5688
- "description": "The subject's space-separated scopes; required with a subject"
5689
- },
5690
- "required": false,
5691
- "description": "The subject's space-separated scopes; required with a subject",
5692
- "name": "Nylorun-Scopes",
5693
- "in": "header"
5694
- }
5695
- ],
5696
- "responses": {
5697
- "200": {
5698
- "description": "Connected",
5699
- "content": {
5700
- "text/html": {
5701
- "schema": {
5702
- "type": "string"
5703
- }
5704
- }
5705
- }
5706
5938
  },
5707
- "400": {
5708
- "description": "Invalid headers, path, body or cursor",
5939
+ "404": {
5940
+ "description": "Not found (`not_found`)",
5709
5941
  "content": {
5710
5942
  "application/json": {
5711
5943
  "schema": {
@@ -5714,8 +5946,8 @@
5714
5946
  }
5715
5947
  }
5716
5948
  },
5717
- "401": {
5718
- "description": "The token expired (`token_expired`), or its issuer's keys cannot be fetched now (`issuer_unavailable`)",
5949
+ "409": {
5950
+ "description": "Several installation vaults hold a credential for the URL (name one with `vaultId`), or the one there cannot be used",
5719
5951
  "content": {
5720
5952
  "application/json": {
5721
5953
  "schema": {
@@ -5724,18 +5956,18 @@
5724
5956
  }
5725
5957
  }
5726
5958
  },
5727
- "403": {
5728
- "description": "Not allowed for this credential or subject scope, a key of the other API (`key_role_mismatch`), or an application key from a browser (`origin_rejected`)",
5959
+ "426": {
5960
+ "description": "`Nylorun-Protocol` missing or unsupported",
5729
5961
  "content": {
5730
5962
  "application/json": {
5731
5963
  "schema": {
5732
- "$ref": "#/components/schemas/Rejected"
5964
+ "$ref": "#/components/schemas/ProtocolRejected"
5733
5965
  }
5734
5966
  }
5735
5967
  }
5736
5968
  },
5737
- "404": {
5738
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
5969
+ "502": {
5970
+ "description": "The server could not be listed (`mcp_preview_failed`): `details.failure` is the code a tool call would have failed with, such as `mcp.unreachable` for an address the Host refuses",
5739
5971
  "content": {
5740
5972
  "application/json": {
5741
5973
  "schema": {
@@ -5744,19 +5976,6 @@
5744
5976
  }
5745
5977
  }
5746
5978
  },
5747
- "426": {
5748
- "description": "`Nylorun-Protocol` missing or unsupported",
5749
- "content": {
5750
- "application/json": {
5751
- "schema": {
5752
- "$ref": "#/components/schemas/ProtocolRejected"
5753
- }
5754
- }
5755
- }
5756
- },
5757
- "502": {
5758
- "description": "The authorization server refused the code (`oauth_failed`)"
5759
- },
5760
5979
  "503": {
5761
5980
  "description": "The Tenant's storage or streams are unavailable",
5762
5981
  "content": {
@@ -5789,10 +6008,10 @@
5789
6008
  {
5790
6009
  "schema": {
5791
6010
  "type": "string",
5792
- "description": "The protocol version, `8`"
6011
+ "description": "The protocol version, `10`"
5793
6012
  },
5794
6013
  "required": true,
5795
- "description": "The protocol version, `8`",
6014
+ "description": "The protocol version, `10`",
5796
6015
  "name": "Nylorun-Protocol",
5797
6016
  "in": "header"
5798
6017
  }
@@ -5818,6 +6037,16 @@
5818
6037
  }
5819
6038
  }
5820
6039
  },
6040
+ "401": {
6041
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
6042
+ "content": {
6043
+ "application/json": {
6044
+ "schema": {
6045
+ "$ref": "#/components/schemas/Rejected"
6046
+ }
6047
+ }
6048
+ }
6049
+ },
5821
6050
  "403": {
5822
6051
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5823
6052
  "content": {
@@ -5829,7 +6058,7 @@
5829
6058
  }
5830
6059
  },
5831
6060
  "404": {
5832
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
6061
+ "description": "Not found (`not_found`)",
5833
6062
  "content": {
5834
6063
  "application/json": {
5835
6064
  "schema": {
@@ -5881,10 +6110,10 @@
5881
6110
  {
5882
6111
  "schema": {
5883
6112
  "type": "string",
5884
- "description": "The protocol version, `8`"
6113
+ "description": "The protocol version, `10`"
5885
6114
  },
5886
6115
  "required": true,
5887
- "description": "The protocol version, `8`",
6116
+ "description": "The protocol version, `10`",
5888
6117
  "name": "Nylorun-Protocol",
5889
6118
  "in": "header"
5890
6119
  }
@@ -5920,6 +6149,16 @@
5920
6149
  }
5921
6150
  }
5922
6151
  },
6152
+ "401": {
6153
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
6154
+ "content": {
6155
+ "application/json": {
6156
+ "schema": {
6157
+ "$ref": "#/components/schemas/Rejected"
6158
+ }
6159
+ }
6160
+ }
6161
+ },
5923
6162
  "403": {
5924
6163
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
5925
6164
  "content": {
@@ -5931,7 +6170,7 @@
5931
6170
  }
5932
6171
  },
5933
6172
  "404": {
5934
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
6173
+ "description": "Not found (`not_found`)",
5935
6174
  "content": {
5936
6175
  "application/json": {
5937
6176
  "schema": {
@@ -5993,10 +6232,10 @@
5993
6232
  {
5994
6233
  "schema": {
5995
6234
  "type": "string",
5996
- "description": "The protocol version, `8`"
6235
+ "description": "The protocol version, `10`"
5997
6236
  },
5998
6237
  "required": true,
5999
- "description": "The protocol version, `8`",
6238
+ "description": "The protocol version, `10`",
6000
6239
  "name": "Nylorun-Protocol",
6001
6240
  "in": "header"
6002
6241
  }
@@ -6032,6 +6271,16 @@
6032
6271
  }
6033
6272
  }
6034
6273
  },
6274
+ "401": {
6275
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
6276
+ "content": {
6277
+ "application/json": {
6278
+ "schema": {
6279
+ "$ref": "#/components/schemas/Rejected"
6280
+ }
6281
+ }
6282
+ }
6283
+ },
6035
6284
  "403": {
6036
6285
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
6037
6286
  "content": {
@@ -6043,7 +6292,7 @@
6043
6292
  }
6044
6293
  },
6045
6294
  "404": {
6046
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
6295
+ "description": "Not found (`not_found`)",
6047
6296
  "content": {
6048
6297
  "application/json": {
6049
6298
  "schema": {
@@ -6097,10 +6346,10 @@
6097
6346
  {
6098
6347
  "schema": {
6099
6348
  "type": "string",
6100
- "description": "The protocol version, `8`"
6349
+ "description": "The protocol version, `10`"
6101
6350
  },
6102
6351
  "required": true,
6103
- "description": "The protocol version, `8`",
6352
+ "description": "The protocol version, `10`",
6104
6353
  "name": "Nylorun-Protocol",
6105
6354
  "in": "header"
6106
6355
  }
@@ -6126,6 +6375,16 @@
6126
6375
  }
6127
6376
  }
6128
6377
  },
6378
+ "401": {
6379
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
6380
+ "content": {
6381
+ "application/json": {
6382
+ "schema": {
6383
+ "$ref": "#/components/schemas/Rejected"
6384
+ }
6385
+ }
6386
+ }
6387
+ },
6129
6388
  "403": {
6130
6389
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
6131
6390
  "content": {
@@ -6137,7 +6396,7 @@
6137
6396
  }
6138
6397
  },
6139
6398
  "404": {
6140
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
6399
+ "description": "Not found (`not_found`)",
6141
6400
  "content": {
6142
6401
  "application/json": {
6143
6402
  "schema": {
@@ -6187,10 +6446,10 @@
6187
6446
  {
6188
6447
  "schema": {
6189
6448
  "type": "string",
6190
- "description": "The protocol version, `8`"
6449
+ "description": "The protocol version, `10`"
6191
6450
  },
6192
6451
  "required": true,
6193
- "description": "The protocol version, `8`",
6452
+ "description": "The protocol version, `10`",
6194
6453
  "name": "Nylorun-Protocol",
6195
6454
  "in": "header"
6196
6455
  }
@@ -6226,6 +6485,16 @@
6226
6485
  }
6227
6486
  }
6228
6487
  },
6488
+ "401": {
6489
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
6490
+ "content": {
6491
+ "application/json": {
6492
+ "schema": {
6493
+ "$ref": "#/components/schemas/Rejected"
6494
+ }
6495
+ }
6496
+ }
6497
+ },
6229
6498
  "403": {
6230
6499
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
6231
6500
  "content": {
@@ -6237,7 +6506,7 @@
6237
6506
  }
6238
6507
  },
6239
6508
  "404": {
6240
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
6509
+ "description": "Not found (`not_found`)",
6241
6510
  "content": {
6242
6511
  "application/json": {
6243
6512
  "schema": {
@@ -6288,10 +6557,10 @@
6288
6557
  {
6289
6558
  "schema": {
6290
6559
  "type": "string",
6291
- "description": "The protocol version, `8`"
6560
+ "description": "The protocol version, `10`"
6292
6561
  },
6293
6562
  "required": true,
6294
- "description": "The protocol version, `8`",
6563
+ "description": "The protocol version, `10`",
6295
6564
  "name": "Nylorun-Protocol",
6296
6565
  "in": "header"
6297
6566
  }
@@ -6317,6 +6586,16 @@
6317
6586
  }
6318
6587
  }
6319
6588
  },
6589
+ "401": {
6590
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
6591
+ "content": {
6592
+ "application/json": {
6593
+ "schema": {
6594
+ "$ref": "#/components/schemas/Rejected"
6595
+ }
6596
+ }
6597
+ }
6598
+ },
6320
6599
  "403": {
6321
6600
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
6322
6601
  "content": {
@@ -6328,7 +6607,7 @@
6328
6607
  }
6329
6608
  },
6330
6609
  "404": {
6331
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
6610
+ "description": "Not found (`not_found`)",
6332
6611
  "content": {
6333
6612
  "application/json": {
6334
6613
  "schema": {
@@ -6378,10 +6657,10 @@
6378
6657
  {
6379
6658
  "schema": {
6380
6659
  "type": "string",
6381
- "description": "The protocol version, `8`"
6660
+ "description": "The protocol version, `10`"
6382
6661
  },
6383
6662
  "required": true,
6384
- "description": "The protocol version, `8`",
6663
+ "description": "The protocol version, `10`",
6385
6664
  "name": "Nylorun-Protocol",
6386
6665
  "in": "header"
6387
6666
  }
@@ -6417,6 +6696,16 @@
6417
6696
  }
6418
6697
  }
6419
6698
  },
6699
+ "401": {
6700
+ "description": "No credential (`credential_required`), or one the Tenant does not accept (`credential_invalid`), with a `WWW-Authenticate: Bearer` challenge",
6701
+ "content": {
6702
+ "application/json": {
6703
+ "schema": {
6704
+ "$ref": "#/components/schemas/Rejected"
6705
+ }
6706
+ }
6707
+ }
6708
+ },
6420
6709
  "403": {
6421
6710
  "description": "Not allowed for this credential, a key of the other API (`key_role_mismatch`), a key from a browser (`origin_rejected`) or a management key acting for a subject",
6422
6711
  "content": {
@@ -6428,7 +6717,7 @@
6428
6717
  }
6429
6718
  },
6430
6719
  "404": {
6431
- "description": "Not found, or a credential the Tenant does not know (`not_found`)",
6720
+ "description": "Not found (`not_found`)",
6432
6721
  "content": {
6433
6722
  "application/json": {
6434
6723
  "schema": {
@@ -6477,7 +6766,11 @@
6477
6766
  },
6478
6767
  {
6479
6768
  "name": "Vaults",
6480
- "description": "The installation's credentials for agents' tools: API keys and MCP OAuth connections. Sessions attach a vault by id. `admin.vaults`."
6769
+ "description": "The installation's and each person's credentials for agents' tools: API keys, bound to the URL they are sent to. Sessions attach a vault by id. `admin.vaults`."
6770
+ },
6771
+ {
6772
+ "name": "MCP servers",
6773
+ "description": "See a remote MCP server's tools before an agent names it, with the installation vault's credential for its URL: their model names, sizes and annotations, or that it needs a person's sign-in. `admin.mcp`."
6481
6774
  },
6482
6775
  {
6483
6776
  "name": "Signing keys",