diff --git a/Roadmap.html b/Roadmap.html index e81411d..87b5eca 100644 --- a/Roadmap.html +++ b/Roadmap.html @@ -64,16 +64,18 @@
diff --git a/api/PowerDevBox-AutoReview-1.0.0-resolved.json b/api/PowerDevBox-AutoReview-1.0.0-resolved.json new file mode 100644 index 0000000..ebb071d --- /dev/null +++ b/api/PowerDevBox-AutoReview-1.0.0-resolved.json @@ -0,0 +1,661 @@ +{ + "swagger": "2.0", + "info": { + "description": "Auto Code Review your flows. Use My flow action or Dataverse workflows table (must json the clientData field). Export either raw json or following export files: Review - Code Review of flow, with score, errors and warnings Report - All variables, actions and connections Diagram - Visual representation of the flow", + "version": "1.0.0", + "title": "AutoReview" + }, + "host": "api.powerdevbox.com", + "basePath": "/v1/autoreview", + "tags": [], + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "security": [ + { + "Key": [] + } + ], + "paths": { + "/": { + "get": { + "summary": "Information", + "description": "Latest information about AutoReview", + "operationId": "Info", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/inline_response_200" + } + } + } + }, + "post": { + "summary": "JSON", + "description": "Returns raw AutoReview data as a json", + "operationId": "Json", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/body" + } + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/inline_response_200_1" + } + } + } + } + }, + "/file": { + "post": { + "summary": "Files", + "description": "Returns generated files", + "operationId": "File", + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/body_1" + } + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/inline_response_200_2" + } + } + } + } + } + }, + "securityDefinitions": { + "Key": { + "type": "apiKey", + "name": "apiKey", + "in": "header" + } + }, + "definitions": { + "inline_response_200_1_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "id": { + "type": "string", + "description": "id" + }, + "environment": { + "type": "string", + "description": "environment" + }, + "owner": { + "type": "string", + "description": "owner" + }, + "trigger": { + "type": "string", + "description": "trigger" + }, + "triggerParam": { + "type": "string", + "description": "triggerParam" + }, + "triggerData": { + "type": "string", + "description": "triggerData" + }, + "triggerConfig": { + "type": "string", + "description": "triggerConfig" + }, + "triggerExpress": { + "type": "string", + "description": "triggerExpress" + }, + "triggerInputs": { + "type": "string", + "description": "triggerInputs" + }, + "triggerRecur": { + "type": "string", + "description": "triggerRecur" + }, + "premium": { + "type": "boolean", + "description": "premium" + }, + "connectionRefs": { + "type": "integer", + "format": "int32", + "description": "connectionRefs" + }, + "connectors": { + "type": "integer", + "format": "int32", + "description": "connectors" + }, + "steps": { + "type": "integer", + "format": "int32", + "description": "steps" + }, + "variables": { + "type": "integer", + "format": "int32", + "description": "variables" + }, + "complexity": { + "type": "integer", + "format": "int32", + "description": "complexity" + }, + "varNaming": { + "type": "boolean", + "description": "varNaming" + }, + "varNameConsts": { + "type": "boolean", + "description": "varNameConsts" + }, + "varNameUse": { + "type": "boolean", + "description": "varNameUse" + }, + "composes": { + "type": "integer", + "format": "int32", + "description": "composes" + }, + "exception": { + "type": "integer", + "format": "int32", + "description": "exception" + }, + "exceptionHandleScope": { + "type": "boolean", + "description": "exceptionHandleScope" + }, + "exceptionScope": { + "type": "boolean", + "description": "exceptionScope" + }, + "exceptionTerminate": { + "type": "boolean", + "description": "exceptionTerminate" + }, + "exceptionLink": { + "type": "boolean", + "description": "exceptionLink" + }, + "mainScope": { + "type": "boolean", + "description": "mainScope" + }, + "variableArray": { + "type": "array", + "description": "variableArray", + "items": {} + }, + "actionArray": { + "type": "array", + "description": "actionArray", + "items": { + "$ref": "#/definitions/inline_response_200_1_data_actionArray" + } + }, + "apiActionArray": { + "type": "array", + "description": "apiActionArray", + "items": { + "$ref": "#/definitions/inline_response_200_1_data_actionArray" + } + }, + "exceptionArray": { + "type": "array", + "description": "exceptionArray", + "items": {} + }, + "connectionArray": { + "type": "array", + "description": "connectionArray", + "items": { + "$ref": "#/definitions/inline_response_200_1_data_connectionArray" + } + }, + "error": { + "type": "string", + "description": "error" + }, + "actionObjectArray": { + "type": "array", + "description": "actionObjectArray", + "items": { + "$ref": "#/definitions/inline_response_200_1_data_actionObjectArray" + } + } + }, + "description": "data" + }, + "_configs": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "naming": { + "type": "object", + "description": "Configure your own naming convention", + "properties": {}, + "x-ms-visibility": "advanced" + }, + "complexity": { + "type": "array", + "description": "Configure your own complexity scores", + "items": { + "type": "string", + "description": "Configure your own complexity scores", + "title": "Complexity" + }, + "x-ms-visibility": "advanced" + }, + "ratings": { + "type": "object", + "description": "Set fail limit for each section", + "properties": {}, + "x-ms-visibility": "advanced" + }, + "scoring": { + "type": "array", + "description": "Configure your own scoring", + "items": { + "type": "string", + "description": "Configure your own points per section", + "title": "Scores" + }, + "x-ms-visibility": "advanced" + }, + "type": { + "type": "string", + "description": "type of return", + "title": "", + "default": "json", + "x-ms-visibility": "internal" + } + }, + "description": "configs" + }, + "body_1": { + "type": "object", + "required": [ + "configs", + "properties" + ], + "properties": { + "configs": { + "$ref": "#/definitions/file_configs" + }, + "properties": { + "$ref": "#/definitions/_properties" + } + } + }, + "inline_response_200_1": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/inline_response_200_1_data" + } + } + }, + "inline_response_200": { + "type": "object", + "properties": { + "version": { + "type": "string", + "description": "version" + }, + "apiKey": { + "type": "string", + "description": "apiKey" + }, + "message": { + "type": "string", + "description": "message" + }, + "information": { + "type": "string", + "description": "information" + }, + "diagram": { + "type": "string", + "description": "diagram" + } + } + }, + "_properties": { + "type": "object", + "required": [ + "definition", + "displayName", + "environment", + "name", + "owner" + ], + "properties": { + "displayName": { + "type": "string", + "description": "Name of flow", + "title": "Display Name" + }, + "name": { + "type": "string", + "description": "Unique identifier (also shown as name/resourceid)", + "title": "Flow ID" + }, + "owner": { + "type": "string", + "description": "Flow owner", + "title": "Owner" + }, + "environment": { + "type": "string", + "description": "Flow environment", + "title": "Environment" + }, + "definition": { + "type": "object", + "description": "Definition", + "title": "Definition", + "properties": {} + } + }, + "description": "properties" + }, + "inline_response_200_2": { + "type": "object", + "properties": { + "file": { + "type": "string", + "description": "file" + }, + "data": { + "type": "string", + "description": "data" + } + } + }, + "inline_response_200_1_data_connectionArray": { + "type": "object", + "properties": { + "conName": { + "type": "string", + "description": "conName" + }, + "appId": { + "type": "string", + "description": "appId" + }, + "opId": { + "type": "string", + "description": "opId" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "count" + } + } + }, + "body": { + "type": "object", + "required": [ + "configs", + "properties" + ], + "properties": { + "configs": { + "$ref": "#/definitions/_configs" + }, + "properties": { + "$ref": "#/definitions/_properties" + } + } + }, + "inline_response_200_1_data_actionObjectArray": { + "type": "object", + "properties": { + "step": { + "type": "string", + "description": "step" + }, + "connector": { + "type": "string", + "description": "connector" + }, + "name": { + "type": "string", + "description": "name" + }, + "id": { + "type": "string", + "description": "id" + }, + "hashId": { + "type": "string", + "description": "hashId" + }, + "object": { + "type": "string", + "description": "object" + }, + "type": { + "type": "string", + "description": "type" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "index" + }, + "parent": { + "type": "string", + "description": "parent" + } + } + }, + "inline_response_200_1_data_actionArray": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "step": { + "type": "string", + "description": "step" + }, + "type": { + "type": "string", + "description": "type" + }, + "id": { + "type": "string", + "description": "id" + }, + "hashId": { + "type": "string", + "description": "hashId" + }, + "tier": { + "type": "string", + "description": "tier" + }, + "connector": { + "type": "string", + "description": "connector" + }, + "imgURL": { + "type": "string", + "description": "imgURL" + }, + "runAfter": { + "type": "string", + "description": "runAfter" + }, + "exception": { + "type": "string", + "description": "exception" + }, + "index": { + "type": "integer", + "format": "int32", + "description": "index" + }, + "complexity": { + "type": "integer", + "format": "int32", + "description": "complexity" + }, + "detail": { + "type": "string", + "description": "detail" + }, + "filter": { + "type": "string", + "description": "filter" + }, + "pagination": { + "type": "string", + "description": "pagination" + }, + "secure": { + "type": "string", + "description": "secure" + }, + "retry": { + "type": "string", + "description": "retry" + }, + "timeout": { + "type": "string", + "description": "timeout" + }, + "position": { + "type": "string", + "description": "position" + }, + "positionInfo": { + "type": "string", + "description": "positionInfo" + }, + "environmentVariables": { + "type": "string", + "description": "environmentVariables" + }, + "environmentB": { + "type": "boolean", + "description": "environmentB" + }, + "notes": { + "type": "string", + "description": "notes" + }, + "parent": { + "type": "string", + "description": "parent" + }, + "branch": { + "type": "string", + "description": "branch" + }, + "positionIndex": { + "type": "string", + "description": "positionIndex" + }, + "positionType": { + "type": "string", + "description": "positionType" + }, + "nested": { + "type": "string", + "description": "nested" + } + } + }, + "file_configs": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "naming": { + "type": "object", + "description": "Configure your own naming convention", + "properties": {}, + "x-ms-visibility": "advanced" + }, + "complexity": { + "type": "array", + "description": "Configure your own complexity scores", + "items": { + "type": "string", + "description": "Configure your own complexity scores", + "title": "Complexity" + }, + "x-ms-visibility": "advanced" + }, + "ratings": { + "type": "object", + "description": "Set fail limit for each section", + "properties": {}, + "x-ms-visibility": "advanced" + }, + "scoring": { + "type": "array", + "description": "Configure your own scoring", + "items": { + "type": "string", + "description": "Configure your own points per section", + "title": "Scores" + }, + "x-ms-visibility": "advanced" + }, + "type": { + "type": "string", + "description": "Type of file to return", + "title": "Type", + "default": "review", + "enum": [ + "review", + "report", + "diagram", + "exceptions" + ], + "x-ms-visibility": "important" + } + }, + "description": "configs" + } + }, + "parameters": {}, + "responses": {} +} \ No newline at end of file diff --git a/api/PowerDevBox-AutoReview-1.0.0-resolved.yaml b/api/PowerDevBox-AutoReview-1.0.0-resolved.yaml new file mode 100644 index 0000000..0a4bdb3 --- /dev/null +++ b/api/PowerDevBox-AutoReview-1.0.0-resolved.yaml @@ -0,0 +1,647 @@ +swagger: "2.0" +info: + description: "Auto Code Review your flows. Use My flow action or Dataverse workflows table (must json the clientData field). Export either raw json or following export files: Review - Code Review of flow, with score, errors and warnings Report - All variables, actions and connections Diagram - Visual representation of the flow" + version: 1.0.0 + title: AutoReview +host: api.powerdevbox.com +basePath: /v1/autoreview +tags: [] +schemes: +- https +consumes: [] +produces: [] +security: +- Key: [] +paths: + /: + get: + summary: Information + description: Latest information about AutoReview + operationId: Info + parameters: [] + responses: + "200": + description: default + schema: + $ref: '#/definitions/inline_response_200' + post: + summary: JSON + description: Returns raw AutoReview data as a json + operationId: Json + parameters: + - in: body + name: body + required: false + schema: + $ref: '#/definitions/body' + responses: + "200": + description: default + schema: + $ref: '#/definitions/inline_response_200_1' + /file: + post: + summary: Files + description: Returns generated files + operationId: File + parameters: + - in: body + name: body + required: false + schema: + $ref: '#/definitions/body_1' + responses: + "200": + description: default + schema: + $ref: '#/definitions/inline_response_200_2' +securityDefinitions: + Key: + type: apiKey + name: apiKey + in: header +definitions: + file_configs_scoring: + type: object + properties: + sReference: + type: string + description: sReference + title: Reference Scoring + x-ms-visibility: advanced + aScoringTemplate: + type: array + description: aScoringTemplate + items: + $ref: '#/definitions/file_configs_scoring_aScoringTemplate' + x-ms-visibility: advanced + description: scoring + x-ms-visibility: advanced + _configs_naming: + type: object + properties: + oNamingTemplate: + $ref: '#/definitions/_configs_naming_oNamingTemplate' + description: naming + x-ms-visibility: advanced + inline_response_200_messages: + type: object + properties: + message: + type: string + description: message + date: + type: string + description: date + _configs_naming_oNamingTemplate_data: + type: object + properties: + Type: + type: string + description: Type + title: Naming Type + x-ms-visibility: advanced + Letter: + type: string + description: Letter + title: Naming Letter + x-ms-visibility: advanced + _configs_naming_oNamingTemplate: + type: object + properties: + sReference: + type: string + description: sReference + title: Naming Reference + x-ms-visibility: advanced + char: + type: integer + format: int32 + description: char + title: Naming Char + x-ms-visibility: advanced + data: + type: array + description: data + items: + $ref: '#/definitions/_configs_naming_oNamingTemplate_data' + x-ms-visibility: advanced + description: oNamingTemplate + x-ms-visibility: advanced + file_configs_ratings: + type: object + properties: + sReference: + type: string + description: sReference + title: Referenc Ratings + x-ms-visibility: advanced + oRatingsTemplate: + $ref: '#/definitions/file_configs_ratings_oRatingsTemplate' + description: ratings + x-ms-visibility: advanced + _configs_complexity: + type: object + properties: + sReference: + type: string + description: sReference + title: Reference Complexity + x-ms-visibility: advanced + aComplexityTemplate: + type: array + description: aComplexityTemplate + items: + $ref: '#/definitions/_configs_complexity_aComplexityTemplate' + x-ms-visibility: advanced + description: complexity + x-ms-visibility: advanced + inline_response_200_1_data_connectionArray: + type: object + properties: + conName: + type: string + description: conName + appId: + type: string + description: appId + opId: + type: string + description: opId + count: + type: integer + format: int32 + description: count + body: + type: object + required: + - configs + - properties + properties: + configs: + $ref: '#/definitions/_configs' + properties: + $ref: '#/definitions/_properties' + _configs_complexity_aComplexityTemplate: + type: object + properties: + Name: + type: string + description: Name + title: Action Name + x-ms-visibility: advanced + Complexity: + type: integer + format: int32 + description: Complexity + title: Action Value + x-ms-visibility: advanced + file_configs_scoring_aScoringTemplate: + type: object + properties: + Name: + type: string + description: Name + title: Scoring Name + x-ms-visibility: advanced + Score: + type: integer + format: int32 + description: Score + title: Scoring Value + x-ms-visibility: advanced + Note: + type: string + description: Note + title: Scoring Note + x-ms-visibility: advanced + inline_response_200_1_data: + type: object + properties: + name: + type: string + description: name + id: + type: string + description: id + environment: + type: string + description: environment + owner: + type: string + description: owner + trigger: + type: string + description: trigger + triggerParam: + type: string + description: triggerParam + triggerData: + type: string + description: triggerData + triggerConfig: + type: string + description: triggerConfig + triggerExpress: + type: string + description: triggerExpress + triggerInputs: + type: string + description: triggerInputs + triggerRecur: + type: string + description: triggerRecur + premium: + type: boolean + description: premium + connectionRefs: + type: integer + format: int32 + description: connectionRefs + connectors: + type: integer + format: int32 + description: connectors + steps: + type: integer + format: int32 + description: steps + variables: + type: integer + format: int32 + description: variables + complexity: + type: integer + format: int32 + description: complexity + varNaming: + type: boolean + description: varNaming + varNameConsts: + type: boolean + description: varNameConsts + varNameUse: + type: boolean + description: varNameUse + composes: + type: integer + format: int32 + description: composes + exception: + type: integer + format: int32 + description: exception + exceptionHandleScope: + type: boolean + description: exceptionHandleScope + exceptionScope: + type: boolean + description: exceptionScope + exceptionTerminate: + type: boolean + description: exceptionTerminate + exceptionLink: + type: boolean + description: exceptionLink + mainScope: + type: boolean + description: mainScope + variableArray: + type: array + description: variableArray + items: {} + actionArray: + type: array + description: actionArray + items: + $ref: '#/definitions/inline_response_200_1_data_actionArray' + apiActionArray: + type: array + description: apiActionArray + items: + $ref: '#/definitions/inline_response_200_1_data_actionArray' + exceptionArray: + type: array + description: exceptionArray + items: {} + connectionArray: + type: array + description: connectionArray + items: + $ref: '#/definitions/inline_response_200_1_data_connectionArray' + error: + type: string + description: error + actionObjectArray: + type: array + description: actionObjectArray + items: + $ref: '#/definitions/inline_response_200_1_data_actionObjectArray' + description: data + _configs: + type: object + properties: + type: + type: string + description: type + title: type + x-ms-visibility: internal + naming: + $ref: '#/definitions/_configs_naming' + complexity: + $ref: '#/definitions/_configs_complexity' + description: configs + body_1: + type: object + required: + - configs + - properties + properties: + configs: + $ref: '#/definitions/file_configs' + properties: + $ref: '#/definitions/file_properties' + inline_response_200_1: + type: object + properties: + data: + $ref: '#/definitions/inline_response_200_1_data' + inline_response_200: + type: object + properties: + version: + type: string + description: version + next version: + type: string + description: next version + apiKey: + type: string + description: apiKey + messages: + type: array + description: messages + items: + $ref: '#/definitions/inline_response_200_messages' + _properties: + type: object + required: + - definition + - displayName + - environment + - name + - owner + properties: + displayName: + type: string + description: Name of flow + title: Display Name + name: + type: string + description: Unique identifier (also shown as name/resourceid) + title: Flow ID + owner: + type: string + description: Flow owner + title: Owner + environment: + type: string + description: Flow environment + title: Environment + definition: + type: object + description: Definition + title: Definition + properties: {} + description: properties + inline_response_200_2: + type: object + properties: + file: + type: string + description: file + data: + type: string + description: data + file_properties: + type: object + required: + - definition + - displayName + - environment + - name + - owner + properties: + displayName: + type: string + description: Name of flow + title: Display Name + name: + type: string + description: Unique identifier (also shown as name/resourceid) + title: Flow ID + owner: + type: string + description: Flow owner + title: Owner + environment: + type: string + description: Flow environment + title: Environment + definition: + type: object + description: Definition + properties: {} + description: properties + inline_response_200_1_data_actionObjectArray: + type: object + properties: + step: + type: string + description: step + connector: + type: string + description: connector + name: + type: string + description: name + id: + type: string + description: id + hashId: + type: string + description: hashId + object: + type: string + description: object + type: + type: string + description: type + index: + type: integer + format: int32 + description: index + parent: + type: string + description: parent + file_configs_ratings_oRatingsTemplate: + type: object + properties: + complexityAm: + type: integer + format: int32 + description: complexityAm + title: Complexity Amber Value + x-ms-visibility: advanced + complexityRe: + type: integer + format: int32 + description: complexityRe + title: Complexity Red Value + x-ms-visibility: advanced + actionsAm: + type: integer + format: int32 + description: actionsAm + title: Actions Amber Value + x-ms-visibility: advanced + actionsRe: + type: integer + format: int32 + description: actionsRe + title: Actions Red Value + x-ms-visibility: advanced + variablesAm: + type: integer + format: int32 + description: variablesAm + title: Variables Amber Value + x-ms-visibility: advanced + variablesRe: + type: integer + format: int32 + description: variablesRe + title: Varaibales Red Value + x-ms-visibility: advanced + exceptionsAm: + type: integer + format: int32 + description: exceptionsAm + title: Exceptions Amber Value + x-ms-visibility: advanced + exceptionsRe: + type: integer + format: int32 + description: exceptionsRe + title: Exceptions Red Value + x-ms-visibility: advanced + description: oRatingsTemplate + x-ms-visibility: advanced + inline_response_200_1_data_actionArray: + type: object + properties: + name: + type: string + description: name + step: + type: string + description: step + type: + type: string + description: type + id: + type: string + description: id + hashId: + type: string + description: hashId + tier: + type: string + description: tier + connector: + type: string + description: connector + imgURL: + type: string + description: imgURL + runAfter: + type: string + description: runAfter + exception: + type: string + description: exception + index: + type: integer + format: int32 + description: index + complexity: + type: integer + format: int32 + description: complexity + detail: + type: string + description: detail + filter: + type: string + description: filter + pagination: + type: string + description: pagination + secure: + type: string + description: secure + retry: + type: string + description: retry + timeout: + type: string + description: timeout + position: + type: string + description: position + positionInfo: + type: string + description: positionInfo + environmentVariables: + type: string + description: environmentVariables + environmentB: + type: boolean + description: environmentB + notes: + type: string + description: notes + parent: + type: string + description: parent + branch: + type: string + description: branch + positionIndex: + type: string + description: positionIndex + positionType: + type: string + description: positionType + nested: + type: string + description: nested + file_configs: + type: object + properties: + type: + type: string + description: type + title: type + x-ms-visibility: internal + naming: + $ref: '#/definitions/_configs_naming' + complexity: + $ref: '#/definitions/_configs_complexity' + ratings: + $ref: '#/definitions/file_configs_ratings' + scoring: + $ref: '#/definitions/file_configs_scoring' + description: configs +parameters: {} +responses: {} diff --git a/assets/AutoReviewDemo_1_0_0_1.zip b/assets/AutoReviewDemo_1_0_0_1.zip new file mode 100644 index 0000000..c278033 Binary files /dev/null and b/assets/AutoReviewDemo_1_0_0_1.zip differ diff --git a/autoreview.html b/autoreview.html index 089150e..762b47d 100644 --- a/autoreview.html +++ b/autoreview.html @@ -27,17 +27,20 @@ @@ -51,9 +54,8 @@

AutoReview for Power Automate

-

AutoReview is a free web browser extension that creates detail code review reports for your Power Automate Flows. - Simply export your flow as either legacy export or Solution, then open it in the extension (all analysing is done locally in your browser) and AutoReview ​ will create the code review report.

-

Chrome StoreEdge Store

+

AutoReview is a automated code review tool for Power Automate. It extracts all key information from the flow, generates configurable scoreing review, and interact diagram. It is availble as Chromium extension, Windows App, Power Platform Connector, and API.

+
@@ -62,95 +64,237 @@

AutoReview for Power Automate

+

+ Microsoft Store + Power Platform + Chrome Store + Edge Store + API +

- -