You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ju...@apache.org on 2020/03/13 04:27:07 UTC

[incubator-apisix-dashboard] branch plugins created (now 4f58507)

This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a change to branch plugins
in repository https://gitbox.apache.org/repos/asf/incubator-apisix-dashboard.git.


      at 4f58507  feat: added Plugin typings

This branch includes the following new commits:

     new 4f58507  feat: added Plugin typings

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-apisix-dashboard] 01/01: feat: added Plugin typings

Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a commit to branch plugins
in repository https://gitbox.apache.org/repos/asf/incubator-apisix-dashboard.git

commit 4f585073b419483855cee5ab442cac2ae19b5982
Author: juzhiyuan <jj...@gmail.com>
AuthorDate: Fri Mar 13 12:26:28 2020 +0800

    feat: added Plugin typings
---
 src/typings.d.ts | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/src/typings.d.ts b/src/typings.d.ts
index c2f9e64..3a78a66 100644
--- a/src/typings.d.ts
+++ b/src/typings.d.ts
@@ -38,3 +38,54 @@ declare let ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: 'site' | undefine
 declare const REACT_APP_ENV: 'test' | 'dev' | 'pre' | false;
 
 declare type PageMode = 'CREATE' | 'EDIT' | 'VIEW';
+
+declare const FetchPluginNameList: string[];
+
+/**
+ * TODO: //
+ * 1. key-auth 在前端生成 Key
+ * 2. prometheus 没有 properties 字段,选中后直接标记为启用。
+ * 4. ip-restriction 较为复杂
+ * 5.
+ */
+
+interface PluginProperty {
+  type: 'number' | 'string' | 'integer' | 'array' | 'boolean' | 'object';
+  // NOTE: maybe 0.00001
+  minimum?: number;
+  maximum?: number;
+  enum?: string[];
+  minLength?: number;
+  maxLength?: number;
+  minItems?: number;
+  maxItems?: number;
+  pattern?: string; // e.g "^/.*"
+  requried?: string[];
+  description?: string;
+  default?: any; // the same as type
+  minProperties?: number;
+  additionalProperties?: boolean;
+  items?: {
+    type: string;
+    anyOf?: Array<{
+      type?: string;
+      description?: string;
+      enum?: string[];
+      pattern?: string;
+    }>;
+  };
+}
+
+declare interface Plugin {
+  type: 'object';
+  id?: string;
+  required?: string[];
+  additionalProperties?: boolean;
+  minProperties?: number;
+  oneOf?: Array<{
+    required: string[];
+  }>;
+  properties?: {
+    [propertyName: string]: PluginProperty;
+  };
+}