Repository navigation
chore(openapi): add the AI analysis and task endpoints to the clients - #2054
irvingouj@Devolutions (irvingoujAtDevolution) wants to merge 2 commits into
Conversation
Let maintainers know that an action is required on their side
|
c527662 to
b1bce5c
Compare
b1bce5c to
737bf61
Compare
d01b043 to
581df74
Compare
581df74 to
76d5c6b
Compare
12613a4 to
6f3941d
Compare
8a01978 to
038abb6
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The .NET request model exposes API keys through ToString(), and numeric schema constraints diverge from the runtime contract.
3 open findings
What changed in this PR
Adds OpenAPI contracts and generated .NET/Angular clients for the recording AI-analysis task endpoints introduced by #2044.
Changes:
- Adds start/read task scopes and serialization tests.
- Adds AI-analysis endpoints, task schemas, and generated client APIs.
- Adds generated model and endpoint documentation.
Prose verification was skipped because the documentation is generated from OpenAPI.
| File | Description |
|---|---|
utils/dotnet/Devolutions.Gateway.Utils/src/AccessScope.cs |
Adds AI-analysis scopes. |
utils/dotnet/Devolutions.Gateway.Utils.Tests/JsonSerializationTests.cs |
Tests new scope serialization. |
devolutions-gateway/openapi/ts-angular-client/model/taskState.ts |
Adds task-state model. |
devolutions-gateway/openapi/ts-angular-client/model/taskInfo.ts |
Adds task information model. |
devolutions-gateway/openapi/ts-angular-client/model/models.ts |
Exports new models. |
devolutions-gateway/openapi/ts-angular-client/model/aiProvider.ts |
Adds provider enum. |
devolutions-gateway/openapi/ts-angular-client/model/aiAnalysisUsage.ts |
Adds token-usage model. |
devolutions-gateway/openapi/ts-angular-client/model/aiAnalysisSucceededPayload.ts |
Adds success payload. |
devolutions-gateway/openapi/ts-angular-client/model/aiAnalysisRunningPayload.ts |
Adds progress payload. |
devolutions-gateway/openapi/ts-angular-client/model/aiAnalysisRequest.ts |
Adds request model. |
devolutions-gateway/openapi/ts-angular-client/model/aiAnalysisFailedPayload.ts |
Adds failure payload. |
devolutions-gateway/openapi/ts-angular-client/model/aiAnalysisConflictCode.ts |
Adds conflict codes. |
devolutions-gateway/openapi/ts-angular-client/model/aiAnalysisConflict.ts |
Adds conflict response. |
devolutions-gateway/openapi/ts-angular-client/model/accessScope.ts |
Adds task scopes. |
devolutions-gateway/openapi/ts-angular-client/api/jrec.service.ts |
Adds start/read methods. |
devolutions-gateway/openapi/ts-angular-client/.openapi-generator/FILES |
Tracks generated models. |
devolutions-gateway/openapi/gateway-api.yaml |
Defines endpoints and schemas. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/TaskState.cs |
Adds task-state enum. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/TaskInfo.cs |
Adds task information model. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiProvider.cs |
Adds provider enum. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiAnalysisUsage.cs |
Adds token-usage model. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiAnalysisSucceededPayload.cs |
Adds success payload. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiAnalysisRunningPayload.cs |
Adds progress payload. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiAnalysisRequest.cs |
Adds request model. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiAnalysisFailedPayload.cs |
Adds failure payload. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiAnalysisConflictCode.cs |
Adds conflict codes. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AiAnalysisConflict.cs |
Adds conflict response. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Model/AccessScope.cs |
Adds task scopes. |
devolutions-gateway/openapi/dotnet-client/src/Devolutions.Gateway.Client/Api/JrecApi.cs |
Adds synchronous and asynchronous APIs. |
devolutions-gateway/openapi/dotnet-client/README.md |
Indexes new APIs and models. |
devolutions-gateway/openapi/dotnet-client/docs/TaskState.md |
Documents task states. |
devolutions-gateway/openapi/dotnet-client/docs/TaskInfo.md |
Documents task information. |
devolutions-gateway/openapi/dotnet-client/docs/JrecApi.md |
Documents new endpoints. |
devolutions-gateway/openapi/dotnet-client/docs/AiProvider.md |
Documents providers. |
devolutions-gateway/openapi/dotnet-client/docs/AiAnalysisUsage.md |
Documents token usage. |
devolutions-gateway/openapi/dotnet-client/docs/AiAnalysisSucceededPayload.md |
Documents success payload. |
devolutions-gateway/openapi/dotnet-client/docs/AiAnalysisRunningPayload.md |
Documents progress payload. |
devolutions-gateway/openapi/dotnet-client/docs/AiAnalysisRequest.md |
Documents request fields. |
devolutions-gateway/openapi/dotnet-client/docs/AiAnalysisFailedPayload.md |
Documents failure payload. |
devolutions-gateway/openapi/dotnet-client/docs/AiAnalysisConflictCode.md |
Documents conflict codes. |
devolutions-gateway/openapi/dotnet-client/docs/AiAnalysisConflict.md |
Documents conflict responses. |
devolutions-gateway/openapi/dotnet-client/.openapi-generator/FILES |
Tracks generated .NET files. |
devolutions-gateway/openapi/doc/index.adoc |
Adds generated API reference. |
🧠 Review effort: Balanced
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| { | ||
| StringBuilder sb = new StringBuilder(); | ||
| sb.Append("class AiAnalysisRequest {\n"); | ||
| sb.Append(" ApiKey: ").Append(ApiKey).Append("\n"); |
| type: integer | ||
| format: int32 | ||
| description: Upper bound of tokens in each AI answer. | ||
| nullable: true | ||
| minimum: 0 |
| description: Part of the step done, from 0 to 100. | ||
| nullable: true | ||
| minimum: 0 |
8e4d74e to
df68eb2
Compare
DVLS can now sign scope tokens for `gateway.tasks.recording-ai-analysis.start`, to start an AI analysis of a recorded session, and `gateway.tasks.recording-ai-analysis.read`, to read its Task. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Adds `POST /jet/jrec/{session_id}/ai-analysis`,
`GET /jet/jrec/{session_id}/ai-analysis/{task_id}`,
their schemas and the `gateway.tasks.recording-ai-analysis.start` and
`gateway.tasks.recording-ai-analysis.read` scopes to gateway-api.yaml,
and regenerates the dotnet and TypeScript clients and the docs. Only
the AI analysis output is kept; the existing version and content-type
drift of the committed clients is left as is.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
df68eb2 to
6ca21ff
Compare


The OpenAPI side of the AI analysis endpoints (#2044): the regenerated
gateway-api.yaml, .NET client and TS Angular client, plus the two new scopes inDevolutions.Gateway.Utils.AccessScopegainsgateway.tasks.recording-ai-analysis.startandgateway.tasks.recording-ai-analysis.read, with serialization tests.gateway-api.yamland both clients gainPOST /jet/jrec/{session_id}/ai-analysis,GET /jet/jrec/{session_id}/ai-analysis/{task_id}(both inJrecApi/JrecService) and their models (AiAnalysisRequest,TaskInfo, the running/succeeded/failed payloads,AiAnalysisConflict).Everything under
openapi/is generated from the Rust annotations in #2044 (devolutions-gateway/src/openapi.rs); only the AI analysis and task parts were kept, since the generator on this machine also rewrites unrelated files.Where to look:
utils/dotnet/Devolutions.Gateway.Utils/src/AccessScope.csandgateway-api.yaml; the client code is generated.🤖 Generated with Claude Code