diff --git a/dev-proxy-abstractions/dev-proxy-abstractions.csproj b/dev-proxy-abstractions/dev-proxy-abstractions.csproj index ed62d1f7..7c73f108 100644 --- a/dev-proxy-abstractions/dev-proxy-abstractions.csproj +++ b/dev-proxy-abstractions/dev-proxy-abstractions.csproj @@ -5,7 +5,7 @@ DevProxy.Abstractions enable enable - 0.26.0 + 0.27.0 false true diff --git a/dev-proxy-plugins/Mocks/MockResponsePlugin.cs b/dev-proxy-plugins/Mocks/MockResponsePlugin.cs index d7e75e19..3562f489 100644 --- a/dev-proxy-plugins/Mocks/MockResponsePlugin.cs +++ b/dev-proxy-plugins/Mocks/MockResponsePlugin.cs @@ -28,7 +28,7 @@ public class MockResponseConfiguration public bool BlockUnmockedRequests { get; set; } = false; [JsonPropertyName("$schema")] - public string Schema { get; set; } = "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/mockresponseplugin.mocksfile.schema.json"; + public string Schema { get; set; } = "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/mockresponseplugin.mocksfile.schema.json"; public IEnumerable Mocks { get; set; } = []; } diff --git a/dev-proxy-plugins/dev-proxy-plugins.csproj b/dev-proxy-plugins/dev-proxy-plugins.csproj index a5e07015..13743241 100644 --- a/dev-proxy-plugins/dev-proxy-plugins.csproj +++ b/dev-proxy-plugins/dev-proxy-plugins.csproj @@ -6,7 +6,7 @@ enable true OnOutputUpdated - 0.26.0 + 0.27.0 false true diff --git a/dev-proxy/config/m365-mocks.json b/dev-proxy/config/m365-mocks.json index b572a686..584496ad 100644 --- a/dev-proxy/config/m365-mocks.json +++ b/dev-proxy/config/m365-mocks.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/mockresponseplugin.mocksfile.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/mockresponseplugin.mocksfile.schema.json", "mocks": [ { "request": { diff --git a/dev-proxy/config/m365.json b/dev-proxy/config/m365.json index 9ddc78d6..b37e7a59 100644 --- a/dev-proxy/config/m365.json +++ b/dev-proxy/config/m365.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/rc.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/rc.schema.json", "plugins": [ { "name": "DevToolsPlugin", @@ -173,11 +173,11 @@ "https://*.sharepoint-df.*/*_vti_bin/*" ], "mocksPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/mockresponseplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/mockresponseplugin.schema.json", "mocksFile": "m365-mocks.json" }, "graphRandomErrorsPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/graphrandomerrorplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/graphrandomerrorplugin.schema.json", "allowedErrors": [ 429, 500, @@ -189,28 +189,28 @@ "rate": 50 }, "executionSummaryPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/executionsummaryplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/executionsummaryplugin.schema.json", "groupBy": "url" }, "graphMinimalPermissionsPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/graphminimalpermissionsplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/graphminimalpermissionsplugin.schema.json", "type": "delegated" }, "cachingGuidance": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/cachingguidanceplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/cachingguidanceplugin.schema.json", "cacheThresholdSeconds": 5 }, "latencyPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/latencyplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/latencyplugin.schema.json", "minMs": 200, "maxMs": 10000 }, "devTools": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/devtoolsplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/devtoolsplugin.schema.json", "preferredBrowser": "Edge" }, "rateLimiting": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/ratelimitingplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/ratelimitingplugin.schema.json", "costPerRequest": 2, "rateLimit": 120, "retryAfterSeconds": 5 diff --git a/dev-proxy/config/microsoft-graph-rate-limiting.json b/dev-proxy/config/microsoft-graph-rate-limiting.json index f6f4cd1e..d8a2949e 100644 --- a/dev-proxy/config/microsoft-graph-rate-limiting.json +++ b/dev-proxy/config/microsoft-graph-rate-limiting.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/rc.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/rc.schema.json", "plugins": [ { "name": "RateLimitingPlugin", diff --git a/dev-proxy/config/microsoft-graph.json b/dev-proxy/config/microsoft-graph.json index a9ee6bf2..e1b1e531 100644 --- a/dev-proxy/config/microsoft-graph.json +++ b/dev-proxy/config/microsoft-graph.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/rc.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/rc.schema.json", "plugins": [ { "name": "GraphSelectGuidancePlugin", @@ -67,7 +67,7 @@ "https://microsoftgraph.chinacloudapi.cn/beta/*" ], "graphRandomErrorsPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/graphrandomerrorplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/graphrandomerrorplugin.schema.json", "allowedErrors": [ 429, 500, @@ -79,7 +79,7 @@ "rate": 50 }, "executionSummaryPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/executionsummaryplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/executionsummaryplugin.schema.json", "groupBy": "url" }, "labelMode": "text", diff --git a/dev-proxy/config/spo-csom-types.json b/dev-proxy/config/spo-csom-types.json index ed6e40be..12163a9d 100644 --- a/dev-proxy/config/spo-csom-types.json +++ b/dev-proxy/config/spo-csom-types.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/minimalcsompermissions.types.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/minimalcsompermissions.types.schema.json", "types": { "268004ae-ef6b-4e9b-8425-127220d84719": "Microsoft.Online.SharePoint.TenantAdministration.Tenant", "3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a": "Microsoft.SharePoint.Client.RequestContext" diff --git a/dev-proxy/dev-proxy.csproj b/dev-proxy/dev-proxy.csproj index 83cb73c1..55ede3f5 100644 --- a/dev-proxy/dev-proxy.csproj +++ b/dev-proxy/dev-proxy.csproj @@ -8,7 +8,7 @@ enable LICENSE Dev Proxy - 0.26.0 + 0.27.0 .NET Foundation Dev Proxy devproxy diff --git a/dev-proxy/devproxy-errors.json b/dev-proxy/devproxy-errors.json index ae3e56a3..4aa54ee2 100644 --- a/dev-proxy/devproxy-errors.json +++ b/dev-proxy/devproxy-errors.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/genericrandomerrorplugin.errorsfile.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/genericrandomerrorplugin.errorsfile.schema.json", "errors": [ { "request": { diff --git a/dev-proxy/devproxyrc.json b/dev-proxy/devproxyrc.json index e41af704..1aced215 100644 --- a/dev-proxy/devproxyrc.json +++ b/dev-proxy/devproxyrc.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/rc.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/rc.schema.json", "plugins": [ { "name": "RetryAfterPlugin", @@ -17,7 +17,7 @@ "https://jsonplaceholder.typicode.com/*" ], "genericRandomErrorPlugin": { - "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.26.0/genericrandomerrorplugin.schema.json", + "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.27.0/genericrandomerrorplugin.schema.json", "errorsFile": "devproxy-errors.json", "rate": 50 }, diff --git a/install-beta.iss b/install-beta.iss index a448cfac..d4044c26 100644 --- a/install-beta.iss +++ b/install-beta.iss @@ -3,8 +3,8 @@ #define MyAppName "Dev Proxy Beta" ; for local use only. In production replaced by a command line arg -#define MyAppSetupExeName "dev-proxy-installer-win-x64-0.26.0-beta.1" -#define MyAppVersion "0.26.0-beta.1" +#define MyAppSetupExeName "dev-proxy-installer-win-x64-0.27.0-beta.1" +#define MyAppVersion "0.27.0-beta.1" #define MyAppPublisher ".NET Foundation" #define MyAppURL "https://aka.ms/devproxy" diff --git a/install.iss b/install.iss index a75d6651..4fe1cfa4 100644 --- a/install.iss +++ b/install.iss @@ -3,8 +3,8 @@ #define MyAppName "Dev Proxy" ; for local use only. In production replaced by a command line arg -#define MyAppSetupExeName "dev-proxy-installer-win-x64-0.26.0" -#define MyAppVersion "0.26.0" +#define MyAppSetupExeName "dev-proxy-installer-win-x64-0.27.0" +#define MyAppVersion "0.27.0" #define MyAppPublisher ".NET Foundation" #define MyAppURL "https://aka.ms/devproxy" diff --git a/schemas/v0.27.0/apicenterminimalpermissionsplugin.schema.json b/schemas/v0.27.0/apicenterminimalpermissionsplugin.schema.json new file mode 100644 index 00000000..91c7e360 --- /dev/null +++ b/schemas/v0.27.0/apicenterminimalpermissionsplugin.schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy ApiCenterMinimalPermissionsPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "resourceGroupName": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "subscriptionId": { + "type": "string" + }, + "workspace": { + "type": "string" + } + }, + "required": [ + "resourceGroupName", + "serviceName", + "subscriptionId" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/apicenteronboardingplugin.schema.json b/schemas/v0.27.0/apicenteronboardingplugin.schema.json new file mode 100644 index 00000000..d2919c92 --- /dev/null +++ b/schemas/v0.27.0/apicenteronboardingplugin.schema.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy ApiCenterOnboardingPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "createApicEntryForNewApis": { + "type": "boolean" + }, + "resourceGroupName": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "subscriptionId": { + "type": "string" + }, + "workspace": { + "type": "string" + } + }, + "required": [ + "resourceGroupName", + "serviceName", + "subscriptionId" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/apicenterproductionversionplugin.schema.json b/schemas/v0.27.0/apicenterproductionversionplugin.schema.json new file mode 100644 index 00000000..eb6674cd --- /dev/null +++ b/schemas/v0.27.0/apicenterproductionversionplugin.schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy ApiCenterProductionVersionPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "resourceGroupName": { + "type": "string" + }, + "serviceName": { + "type": "string" + }, + "subscriptionId": { + "type": "string" + }, + "workspace": { + "type": "string" + } + }, + "required": [ + "resourceGroupName", + "serviceName", + "subscriptionId" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/authplugin.schema.json b/schemas/v0.27.0/authplugin.schema.json new file mode 100644 index 00000000..61935d96 --- /dev/null +++ b/schemas/v0.27.0/authplugin.schema.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy AuthPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "apiKey": { + "type": "object", + "properties": { + "allowedKeys": { + "type": "array", + "items": { + "type": "string" + } + }, + "parameters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "in": { + "type": "string", + "enum": [ + "header", + "query", + "cookie" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "in", + "name" + ] + } + } + }, + "required": [ + "allowedKeys", + "parameters" + ] + }, + "oauth2": { + "type": "object", + "properties": { + "metadataUrl": { + "type": "string" + }, + "allowedApplications": { + "type": "array", + "items": { + "type": "string" + } + }, + "allowedAudiences": { + "type": "array", + "items": { + "type": "string" + } + }, + "allowedPrincipals": { + "type": "array", + "items": { + "type": "string" + } + }, + "allowedTenants": { + "type": "array", + "items": { + "type": "string" + } + }, + "issuer": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "validateLifetime": { + "type": "boolean" + }, + "validateSigningKey": { + "type": "boolean" + } + }, + "required": [ + "metadataUrl" + ] + }, + "type": { + "type": "string", + "enum": [ + "apiKey", + "oauth2" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/cachingguidanceplugin.schema.json b/schemas/v0.27.0/cachingguidanceplugin.schema.json new file mode 100644 index 00000000..ad400218 --- /dev/null +++ b/schemas/v0.27.0/cachingguidanceplugin.schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy CachingGuidancePlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "cacheThresholdSeconds": { + "type": "integer" + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/crudapiplugin.apifile.schema.json b/schemas/v0.27.0/crudapiplugin.apifile.schema.json new file mode 100644 index 00000000..286a3c2c --- /dev/null +++ b/schemas/v0.27.0/crudapiplugin.apifile.schema.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "CRUD API plugin API definition", + "description": "API definition for use with the CRUD API Dev Proxy plugin", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "baseUrl": { + "type": "string" + }, + "dataFile": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "create", + "getAll", + "getOne", + "getMany", + "merge", + "update", + "delete" + ] + }, + "url": { + "type": "string" + }, + "query": { + "type": "string" + }, + "method": { + "type": "string", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE" + ] + }, + "auth": { + "type": "string", + "enum": [ + "none", + "entra" + ] + }, + "entraAuthConfig": { + "type": "object", + "properties": { + "audience": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "validateLifetime": { + "type": "boolean" + }, + "validateSigningKey": { + "type": "boolean" + } + } + } + }, + "required": [ + "action" + ], + "additionalProperties": false + } + }, + "auth": { + "type": "string", + "enum": [ + "none", + "entra" + ] + }, + "entraAuthConfig": { + "type": "object", + "properties": { + "audience": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "validateLifetime": { + "type": "boolean" + }, + "validateSigningKey": { + "type": "boolean" + } + } + } + }, + "required": [ + "baseUrl", + "dataFile", + "actions" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/crudapiplugin.schema.json b/schemas/v0.27.0/crudapiplugin.schema.json new file mode 100644 index 00000000..60801197 --- /dev/null +++ b/schemas/v0.27.0/crudapiplugin.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy CrudApiPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "apiFile": { + "type": "string" + }, + "required": [ + "apiFile" + ] + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/devtoolsplugin.schema.json b/schemas/v0.27.0/devtoolsplugin.schema.json new file mode 100644 index 00000000..923bf478 --- /dev/null +++ b/schemas/v0.27.0/devtoolsplugin.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy DevToolsPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "preferredBrowser": { + "type": "string", + "enum": [ + "Edge", + "EdgeDev", + "Chrome" + ] + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/executionsummaryplugin.schema.json b/schemas/v0.27.0/executionsummaryplugin.schema.json new file mode 100644 index 00000000..5ca0c757 --- /dev/null +++ b/schemas/v0.27.0/executionsummaryplugin.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy ExecutionSummaryPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "groupBy": { + "type": "string", + "enum": [ + "url", + "messageType" + ] + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/genericrandomerrorplugin.errorsfile.schema.json b/schemas/v0.27.0/genericrandomerrorplugin.errorsfile.schema.json new file mode 100644 index 00000000..58b49c62 --- /dev/null +++ b/schemas/v0.27.0/genericrandomerrorplugin.errorsfile.schema.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy GenericRandomErrorPlugin responses", + "description": "Error responses for the Dev Proxy GenericRandomErrorPlugin", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "request": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "method": { + "type": "string", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "HEAD", + "OPTIONS", + "CONNECT", + "TRACE" + ] + }, + "bodyFragment": { + "type": "string" + } + }, + "required": [ + "url" + ] + }, + "responses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "body": { + "type": [ + "object", + "array", + "string" + ] + }, + "statusCode": { + "type": "integer" + }, + "headers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ] + } + } + } + } + } + }, + "required": [ + "request", + "responses" + ] + } + } + }, + "required": [ + "errors" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/genericrandomerrorplugin.schema.json b/schemas/v0.27.0/genericrandomerrorplugin.schema.json new file mode 100644 index 00000000..a7a77c63 --- /dev/null +++ b/schemas/v0.27.0/genericrandomerrorplugin.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy GenericRandomErrorPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "errorsFile": { + "type": "string" + }, + "rate": { + "type": "number", + "minimum": 0, + "maximum": 100 + }, + "retryAfterInSeconds": { + "type": "integer", + "minimum": 1 + } + }, + "required": [ + "errorsFile" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/graphconnectornotificationplugin.schema.json b/schemas/v0.27.0/graphconnectornotificationplugin.schema.json new file mode 100644 index 00000000..60726488 --- /dev/null +++ b/schemas/v0.27.0/graphconnectornotificationplugin.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy GraphConnectorNotificationPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "audience": { + "type": "string" + }, + "mockFile": { + "type": "string" + }, + "tenant": { + "type": "string" + } + }, + "required": [ + "audience", + "mockFile", + "tenant" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/graphminimalpermissionsguidanceplugin.schema.json b/schemas/v0.27.0/graphminimalpermissionsguidanceplugin.schema.json new file mode 100644 index 00000000..9b92d429 --- /dev/null +++ b/schemas/v0.27.0/graphminimalpermissionsguidanceplugin.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy GraphMinimalPermissionsGuidancePlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "permissionsToIgnore": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/graphminimalpermissionsplugin.schema.json b/schemas/v0.27.0/graphminimalpermissionsplugin.schema.json new file mode 100644 index 00000000..baa278cc --- /dev/null +++ b/schemas/v0.27.0/graphminimalpermissionsplugin.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy GraphMinimalPermissionsPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Delegated", + "Application" + ] + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/graphrandomerrorplugin.schema.json b/schemas/v0.27.0/graphrandomerrorplugin.schema.json new file mode 100644 index 00000000..0740d000 --- /dev/null +++ b/schemas/v0.27.0/graphrandomerrorplugin.schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy GraphRandomErrorPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "allowedErrors": { + "type": "array", + "items": { + "type": "integer", + "minimum": 400, + "maximum": 599 + } + }, + "rate": { + "type": "number", + "minimum": 0, + "maximum": 100 + }, + "retryAfterInSeconds": { + "type": "integer", + "minimum": 0 + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/httpfilegeneratorplugin.schema.json b/schemas/v0.27.0/httpfilegeneratorplugin.schema.json new file mode 100644 index 00000000..cfaa16ec --- /dev/null +++ b/schemas/v0.27.0/httpfilegeneratorplugin.schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy HttpFileGeneratorPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "includeOptionsRequests": { + "type": "boolean" + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/latencyplugin.schema.json b/schemas/v0.27.0/latencyplugin.schema.json new file mode 100644 index 00000000..9aaf5506 --- /dev/null +++ b/schemas/v0.27.0/latencyplugin.schema.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy LatencyPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "minMs": { + "type": "integer", + "minimum": 0 + }, + "maxMs": { + "type": "integer", + "minimum": 0, + "maximum": 10000 + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/minimalcsompermissions.types.schema.json b/schemas/v0.27.0/minimalcsompermissions.types.schema.json new file mode 100644 index 00000000..5bd078cb --- /dev/null +++ b/schemas/v0.27.0/minimalcsompermissions.types.schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "SharePoint CSOM Types and Permissions Schema", + "description": "Schema for defining SharePoint CSOM types, return types, and their required permissions", + "type": "object", + "required": ["types", "returnTypes", "actions"], + "properties": { + "$schema": { + "type": "string", + "description": "Reference to the JSON schema definition" + }, + "types": { + "type": "object", + "description": "Mapping of GUIDs to their corresponding SharePoint CSOM types", + "patternProperties": { + "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$": { + "type": "string", + "description": "Fully qualified name of a SharePoint CSOM type" + } + } + }, + "returnTypes": { + "type": "object", + "description": "Mapping of method signatures to their return types", + "patternProperties": { + "^[A-Za-z0-9.]+\\.[A-Za-z0-9.]+$": { + "type": "string", + "description": "Fully qualified name of the return type" + } + } + }, + "actions": { + "type": "object", + "description": "Mapping of method signatures to their required permissions", + "patternProperties": { + "^[A-Za-z0-9.]+\\.[A-Za-z0-9.]+$": { + "type": "object", + "properties": { + "delegated": { + "type": "array", + "description": "Required delegated permissions", + "items": { + "type": "string" + } + }, + "application": { + "type": "array", + "description": "Required application permissions", + "items": { + "type": "string" + } + } + } + } + } + } + } +} diff --git a/schemas/v0.27.0/minimalcsompermissionsplugin.schema.json b/schemas/v0.27.0/minimalcsompermissionsplugin.schema.json new file mode 100644 index 00000000..7ca0d848 --- /dev/null +++ b/schemas/v0.27.0/minimalcsompermissionsplugin.schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy MinimalCsomPermissionsPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "typesFilePath": { + "type": "string" + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/minimalpermissionsguidanceplugin.schema.json b/schemas/v0.27.0/minimalpermissionsguidanceplugin.schema.json new file mode 100644 index 00000000..33b1d3ae --- /dev/null +++ b/schemas/v0.27.0/minimalpermissionsguidanceplugin.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy MinimalPermissionsGuidancePlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "apiSpecsFolderPath": { + "type": "string" + } + }, + "required": [ + "apiSpecsFolderPath" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/minimalpermissionsplugin.schema.json b/schemas/v0.27.0/minimalpermissionsplugin.schema.json new file mode 100644 index 00000000..1bea7e4d --- /dev/null +++ b/schemas/v0.27.0/minimalpermissionsplugin.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy MinimalPermissionsPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "apiSpecsFolderPath": { + "type": "string" + } + }, + "required": [ + "apiSpecsFolderPath" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/mockrequestplugin.mockfile.schema.json b/schemas/v0.27.0/mockrequestplugin.mockfile.schema.json new file mode 100644 index 00000000..f690cb8f --- /dev/null +++ b/schemas/v0.27.0/mockrequestplugin.mockfile.schema.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy MockRequestPlugin mocks", + "description": "Mock request for the Dev Proxy MockRequestPlugin", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "request": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "method": { + "type": "string", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "HEAD", + "OPTIONS", + "CONNECT", + "TRACE" + ] + }, + "body": { + "type": "object" + }, + "headers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ] + } + } + }, + "required": [ + "url" + ] + } + }, + "required": [ + "request" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/mockrequestplugin.schema.json b/schemas/v0.27.0/mockrequestplugin.schema.json new file mode 100644 index 00000000..dbb68208 --- /dev/null +++ b/schemas/v0.27.0/mockrequestplugin.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy MockRequestPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "mockFile": { + "type": "string" + } + }, + "required": [ + "mockFile" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/mockresponseplugin.mocksfile.schema.json b/schemas/v0.27.0/mockresponseplugin.mocksfile.schema.json new file mode 100644 index 00000000..ea1e9bff --- /dev/null +++ b/schemas/v0.27.0/mockresponseplugin.mocksfile.schema.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy MockResponsePlugin mocks", + "description": "Mocks for the Dev Proxy MockResponsePlugin", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "mocks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "request": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "method": { + "type": "string", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "HEAD", + "OPTIONS", + "CONNECT", + "TRACE" + ] + }, + "nth": { + "type": "integer" + }, + "bodyFragment": { + "type": "string" + } + }, + "required": [ + "url" + ] + }, + "response": { + "type": "object", + "properties": { + "body": { + "type": [ + "object", + "array", + "string" + ] + }, + "statusCode": { + "type": "integer" + }, + "headers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ] + } + } + } + } + }, + "required": [ + "request", + "response" + ] + } + } + }, + "required": [ + "mocks" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/mockresponseplugin.schema.json b/schemas/v0.27.0/mockresponseplugin.schema.json new file mode 100644 index 00000000..a030f02f --- /dev/null +++ b/schemas/v0.27.0/mockresponseplugin.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy MockResponsePlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "mocksFile": { + "type": "string" + } + }, + "required": [ + "mocksFile" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/openapispecgeneratorplugin.schema.json b/schemas/v0.27.0/openapispecgeneratorplugin.schema.json new file mode 100644 index 00000000..7bb00ce6 --- /dev/null +++ b/schemas/v0.27.0/openapispecgeneratorplugin.schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy OpenApiSpecGeneratorPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "includeOptionsRequests": { + "type": "boolean" + }, + "specVersion": { + "type": "string", + "enum": [ + "v2_0", + "v3_0" + ] + }, + "specFormat": { + "type": "string", + "enum": [ + "Json", + "Yaml" + ] + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/ratelimitingplugin.customresponsefile.schema.json b/schemas/v0.27.0/ratelimitingplugin.customresponsefile.schema.json new file mode 100644 index 00000000..11e6ecbd --- /dev/null +++ b/schemas/v0.27.0/ratelimitingplugin.customresponsefile.schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy RateLimitingPlugin response", + "description": "Mock for the Dev Proxy RateLimitingPlugin", + "type": "object", + "properties": { + "$schema": { + "type":"string" + }, + "body": { + "type": [ + "object", + "array", + "string" + ] + }, + "statusCode": { + "type": "integer" + }, + "headers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ] + } + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/ratelimitingplugin.schema.json b/schemas/v0.27.0/ratelimitingplugin.schema.json new file mode 100644 index 00000000..2f05ae09 --- /dev/null +++ b/schemas/v0.27.0/ratelimitingplugin.schema.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy RateLimitingPlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "headerLimit": { + "type": "string" + }, + "headerRemaining": { + "type": "string" + }, + "headerReset": { + "type": "string" + }, + "headerRetryAfter": { + "type": "string" + }, + "costPerRequest": { + "type": "integer", + "minimum": 1 + }, + "resetTimeWindowSeconds": { + "type": "integer", + "minimum": 1 + }, + "warningThresholdPercent": { + "type": "integer", + "minimum": 0, + "maximum": 100 + }, + "rateLimit": { + "type": "integer", + "minimum": 1 + }, + "whenLimitExceeded": { + "type": "string", + "enum": [ + "Throttle", + "Custom" + ] + }, + "resetFormat": { + "type": "string", + "enum": [ + "SecondsLeft", + "UtcEpochSeconds" + ] + }, + "customResponseFile": { + "type": "string" + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/rc.schema.json b/schemas/v0.27.0/rc.schema.json new file mode 100644 index 00000000..52d87b3d --- /dev/null +++ b/schemas/v0.27.0/rc.schema.json @@ -0,0 +1,150 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy config", + "description": "Configuration for Dev Proxy", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "apiPort": { + "type": "number", + "minimum": 0, + "maximum": 65535 + }, + "asSystemProxy": { + "type": "boolean" + }, + "filterByHeaders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ] + } + }, + "ipAddress": { + "type": "string", + "format": "ipv4" + }, + "languageModel": { + "type": "object", + "properties": { + "cacheResponses": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "model": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "logLevel": { + "type": "string", + "enum": [ + "debug", + "information", + "warning", + "error", + "trace" + ] + }, + "newVersionNotification": { + "type": "string", + "enum": [ + "none", + "stable", + "beta" + ] + }, + "plugins": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "pluginPath": { + "type": "string" + }, + "configSection": { + "type": "string" + }, + "urlsToWatch": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "enabled", + "pluginPath" + ] + } + }, + "port": { + "type": "number", + "minimum": 0, + "maximum": 65535 + }, + "record": { + "type": "boolean" + }, + "showSkipMessages": { + "type": "boolean" + }, + "urlsToWatch": { + "type": "array", + "items": { + "type": "string" + } + }, + "validateSchemas": { + "type": "boolean" + }, + "watchPids": { + "type": "array", + "items": { + "type": "number" + } + }, + "watchProcessNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "showTimestamps": { + "type": "boolean" + }, + "timeout": { + "type": "number", + "minimum": 1 + } + }, + "required": [ + "plugins" + ], + "additionalProperties": true +} \ No newline at end of file diff --git a/schemas/v0.27.0/rewriteplugin.rewritesfile.schema.json b/schemas/v0.27.0/rewriteplugin.rewritesfile.schema.json new file mode 100644 index 00000000..17456776 --- /dev/null +++ b/schemas/v0.27.0/rewriteplugin.rewritesfile.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy RewritePlugin rewrite rules", + "description": "Rewrite rules for the Dev Proxy RewritePlugin", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "rewrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "in": { + "type": "object", + "properties": { + "url": { + "type": "string", + "pattern": "^.+$" + } + }, + "required": ["url"] + }, + "out": { + "type": "object", + "properties": { + "url": { + "type": "string", + "pattern": "^.*$" + } + }, + "required": ["url"] + } + }, + "required": ["in", "out"] + } + } + }, + "required": [ + "rewrites" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/v0.27.0/rewriteplugin.schema.json b/schemas/v0.27.0/rewriteplugin.schema.json new file mode 100644 index 00000000..5d1fe770 --- /dev/null +++ b/schemas/v0.27.0/rewriteplugin.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Dev Proxy RewritePlugin config schema", + "type": "object", + "properties": { + "$schema": { + "type": "string" + }, + "rewritesFile": { + "type": "string" + } + }, + "required": [ + "rewritesFile" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/scripts/Dockerfile_local b/scripts/Dockerfile_local index 3a4b6f0f..9bcbcf2e 100644 --- a/scripts/Dockerfile_local +++ b/scripts/Dockerfile_local @@ -1,6 +1,6 @@ FROM ubuntu:24.04 -ARG DEVPROXY_VERSION=0.26.0-beta.4 +ARG DEVPROXY_VERSION=0.27.0-beta.1 ARG USERNAME=devproxy ENV DEVPROXY_VERSION=${DEVPROXY_VERSION} diff --git a/scripts/local-setup.ps1 b/scripts/local-setup.ps1 index 23d6cf36..908b4e29 100644 --- a/scripts/local-setup.ps1 +++ b/scripts/local-setup.ps1 @@ -2,7 +2,7 @@ # The .NET Foundation licenses this file to you under the MIT license. # See the LICENSE file in the project root for more information. -$versionString = "v0.26.0-beta.1" +$versionString = "v0.27.0-beta.1" $version = $versionString.Substring(1) $isBeta = $version.Contains("-beta") diff --git a/scripts/version.ps1 b/scripts/version.ps1 index cc1b827b..b24ea09f 100644 --- a/scripts/version.ps1 +++ b/scripts/version.ps1 @@ -2,4 +2,4 @@ # The .NET Foundation licenses this file to you under the MIT license. # See the LICENSE file in the project root for more information. -$script:versionString = "v0.26.0-beta.4" +$script:versionString = "v0.27.0-beta.1"