From 544204b24ed35408b215d6fa3cc0af0a31b74e8c Mon Sep 17 00:00:00 2001 From: Hare Date: Tue, 29 Sep 2026 05:57:58 +0900 Subject: [PATCH] feat: update external workdir generated contracts --- openapi/server-api.json | 36 ++++++++++++------- .../src/lib/generated/workdir-api.ts | 8 +++-- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/openapi/server-api.json b/openapi/server-api.json index 359b549ea..78d8960f5 100644 --- a/openapi/server-api.json +++ b/openapi/server-api.json @@ -2015,24 +2015,26 @@ "display_name": { "type": "string" }, + "permission": { + "$ref": "#/components/schemas/ExternalWorkdirPermission" + }, "provider_instance_id": { "type": "string" }, - "read_only": { - "type": "boolean" - }, "ttl_seconds": { "format": "uint64", "maximum": 9007199254740991, "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ "provider_instance_id", "display_name", - "ttl_seconds", - "read_only" + "permission" ], "type": "object" }, @@ -2043,7 +2045,11 @@ "type": "string" }, "expires_at": { - "type": "string" + "description": "`None` means the grant has no automatic expiry. It remains bounded by\nexplicit revoke, provider disconnect, and provider shutdown cleanup.", + "type": [ + "string", + "null" + ] }, "generation": { "format": "uint64", @@ -2054,8 +2060,8 @@ "grant_id": { "type": "string" }, - "permissions": { - "type": "string" + "permission": { + "$ref": "#/components/schemas/ExternalWorkdirPermission" }, "provider_instance_id": { "type": "string" @@ -2076,13 +2082,19 @@ "working_directory_id", "provider_instance_id", "display_name", - "permissions", - "expires_at", + "permission", "generation", "status" ], "type": "object" }, + "ExternalWorkdirPermission": { + "enum": [ + "read_only", + "read_write" + ], + "type": "string" + }, "ExtractAudit": { "properties": { "entry_range": { @@ -13982,7 +13994,7 @@ "info": { "title": "Yoi Server API", "version": "0.1.0", - "x-yoi-source-digest": "sha256:7b14311c0ae7d40c3e1b423890c890b1b73de321ed199c223b771711effcd280" + "x-yoi-source-digest": "sha256:845d8859bab4de95f0539969ae8c84bbf3fb4a0548638e4278d6c90f9bb6cb3a" }, "openapi": "3.1.0", "paths": { diff --git a/web/workspace/src/lib/generated/workdir-api.ts b/web/workspace/src/lib/generated/workdir-api.ts index e0874bdac..feaf762c5 100644 --- a/web/workspace/src/lib/generated/workdir-api.ts +++ b/web/workspace/src/lib/generated/workdir-api.ts @@ -1,6 +1,6 @@ // @generated by yoi-workdir-openapi-typescript@1. Do not edit. // Input: openapi/server-api.json -// Input contract: 0.1.0 (sha256:7a9d11f50cc41eca55a6dded4b8f55aa6d23b1beb2dc69b0a9b6c8349efc894f) +// Input contract: 0.1.0 (sha256:845d8859bab4de95f0539969ae8c84bbf3fb4a0548638e4278d6c90f9bb6cb3a) // Options: workdir-operation-schema-closure,openapi-3.1,strict-integer-ranges,sorted-output // Output: web/workspace/src/lib/generated/workdir-api.ts // Regenerate/check: cargo run -q -p server-api --example generate_workdir_api_types -- --check @@ -9,9 +9,11 @@ export type Diagnostic = { code: string; message: string; severity: DiagnosticSe export type DiagnosticSeverity = "info" | "warning" | "error"; -export type ExternalWorkdirGrantCreateRequest = { display_name: string; provider_instance_id: string; read_only: boolean; ttl_seconds: number; }; +export type ExternalWorkdirGrantCreateRequest = { display_name: string; permission: ExternalWorkdirPermission; provider_instance_id: string; ttl_seconds?: number | null; }; -export type ExternalWorkdirGrantResponse = { display_name: string; expires_at: string; generation: number; grant_id: string; permissions: string; provider_instance_id: string; status: string; working_directory_id: string; workspace_id: string; }; +export type ExternalWorkdirGrantResponse = { display_name: string; expires_at?: string | null; generation: number; grant_id: string; permission: ExternalWorkdirPermission; provider_instance_id: string; status: string; working_directory_id: string; workspace_id: string; }; + +export type ExternalWorkdirPermission = "read_only" | "read_write"; export type RepositoryApiError = { diagnostics?: Array; error: string; message: string; };