@nocobase/plugin-api-keys 0.14.0-alpha.6 → 0.14.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- (function(o,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("react"),require("@formily/react"),require("dayjs"),require("ahooks"),require("antd"),require("react-i18next"),require("@formily/shared")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","react","@formily/react","dayjs","ahooks","antd","react-i18next","@formily/shared"],e):(o=typeof globalThis!="undefined"?globalThis:o||self,e(o["@nocobase/plugin-api-keys"]={},o.jsxRuntime,o["@nocobase/client"],o.react,o["@formily/react"],o.dayjs,o.ahooks,o.antd,o["react-i18next"],o["@formily/shared"]))})(this,function(o,e,t,y,c,u,C,a,i,m){"use strict";var R=Object.defineProperty,W=Object.defineProperties;var $=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var D=(o,e,t)=>e in o?R(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,w=(o,e)=>{for(var t in e||(e={}))L.call(e,t)&&D(o,t,e[t]);if(S)for(var t of S(e))_.call(e,t)&&D(o,t,e[t]);return o},I=(o,e)=>W(o,$(e));var h=(o,e,t)=>new Promise((y,c)=>{var u=i=>{try{a(t.next(i))}catch(m){c(m)}},C=i=>{try{a(t.throw(i))}catch(m){c(m)}},a=i=>i.done?y(i.value):Promise.resolve(i.value).then(u,C);a((t=t.apply(o,e)).next())});const k="api-keys";function r(n){return`{{t('${n}', { ns: '${k}', nsMode: 'fallback' })}}`}const M={namespace:"api-keys",duplicator:"optional",name:"apiKeys",title:'{{t("API keys")}}',sortable:"sort",model:"ApiKeyModel",createdBy:!0,updatedAt:!1,updatedBy:!1,logging:!0,fields:[{name:"id",type:"bigInt",autoIncrement:!0,primaryKey:!0,allowNull:!1,interface:"id"},{type:"string",name:"name",interface:"input",uiSchema:{type:"string",title:'{{t("name")}}',"x-component":"Input"}},{interface:"obo",type:"belongsTo",name:"role",target:"roles",foreignKey:"roleName",uiSchema:{type:"object",title:'{{t("Roles")}}',"x-component":"Select","x-component-props":{fieldNames:{label:"title",value:"name"},objectValue:!0,options:"{{ currentRoles }}"}}},{name:"expiresIn",type:"string",uiSchema:{type:"string",title:r("Expires"),"x-component":"ExpiresSelect",enum:[{label:r("1 Day"),value:"1d"},{label:r("7 Days"),value:"7d"},{label:r("30 Days"),value:"30d"},{label:r("90 Days"),value:"90d"},{label:r("Custom"),value:"custom"},{label:r("Never"),value:"never"}]}},{name:"token",type:"string",hidden:!0}]};function b(){return i.useTranslation([k,"client"],{nsMode:"fallback"})}const K=u().add(1,"days"),q=t.css`
1
+ (function(o,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("react"),require("@formily/react"),require("ahooks"),require("antd"),require("dayjs"),require("react-i18next"),require("@formily/shared")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","react","@formily/react","ahooks","antd","dayjs","react-i18next","@formily/shared"],e):(o=typeof globalThis!="undefined"?globalThis:o||self,e(o["@nocobase/plugin-api-keys"]={},o.jsxRuntime,o["@nocobase/client"],o.react,o["@formily/react"],o.ahooks,o.antd,o.dayjs,o["react-i18next"],o["@formily/shared"]))})(this,function(o,e,t,y,c,C,a,d,i,m){"use strict";var R=Object.defineProperty,W=Object.defineProperties;var $=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var D=(o,e,t)=>e in o?R(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,w=(o,e)=>{for(var t in e||(e={}))L.call(e,t)&&D(o,t,e[t]);if(S)for(var t of S(e))_.call(e,t)&&D(o,t,e[t]);return o},I=(o,e)=>W(o,$(e));var h=(o,e,t)=>new Promise((y,c)=>{var C=i=>{try{d(t.next(i))}catch(m){c(m)}},a=i=>{try{d(t.throw(i))}catch(m){c(m)}},d=i=>i.done?y(i.value):Promise.resolve(i.value).then(C,a);d((t=t.apply(o,e)).next())});const k="api-keys";function r(n){return`{{t('${n}', { ns: '${k}', nsMode: 'fallback' })}}`}const M={namespace:"api-keys",duplicator:"optional",name:"apiKeys",title:'{{t("API keys")}}',sortable:"sort",model:"ApiKeyModel",createdBy:!0,updatedAt:!1,updatedBy:!1,logging:!0,fields:[{name:"id",type:"bigInt",autoIncrement:!0,primaryKey:!0,allowNull:!1,interface:"id"},{type:"string",name:"name",interface:"input",uiSchema:{type:"string",title:'{{t("name")}}',"x-component":"Input"}},{interface:"obo",type:"belongsTo",name:"role",target:"roles",foreignKey:"roleName",uiSchema:{type:"object",title:'{{t("Roles")}}',"x-component":"Select","x-component-props":{fieldNames:{label:"title",value:"name"},objectValue:!0,options:"{{ currentRoles }}"}}},{name:"expiresIn",type:"string",uiSchema:{type:"string",title:r("Expires"),"x-component":"ExpiresSelect",enum:[{label:r("1 Day"),value:"1d"},{label:r("7 Days"),value:"7d"},{label:r("30 Days"),value:"30d"},{label:r("90 Days"),value:"90d"},{label:r("Custom"),value:"custom"},{label:r("Never"),value:"never"}]}},{name:"token",type:"string",hidden:!0}]};function b(){return i.useTranslation([k,"client"],{nsMode:"fallback"})}const K=d().add(1,"days"),q=t.css`
2
2
  width: 100%;
3
3
  & > .ant-space-item {
4
4
  flex: 1;
5
5
  }
6
- `,F=n=>{const{onChange:s}=n,[l,{toggle:d,setFalse:x}]=C.useBoolean(),g=p=>{if(p==="custom")return s("1d"),d();x(),s(p)},A=p=>{p=p.millisecond(0).second(0);const v=u().millisecond(0).second(0),f=`${p.diff(v,"d")}d`;s(f)};return e.jsxs(a.Space,{className:q,children:[e.jsx(a.Select,I(w({},n),{value:l?"custom":n.value,onChange:g})),l?e.jsx(a.DatePicker,{disabledDate:p=>p.isSameOrBefore(),defaultValue:K,onChange:A,showToday:!1,allowClear:!1}):null]})},V=()=>{const{expiresIn:n,createdAt:s}=t.useRecord(),{t:l}=b(),d=y.useMemo(()=>n==="never"?l("Never expires"):u(s).add((n==null?void 0:n.replace("d",""))||0,"days").format("YYYY-MM-DD HH:mm:ss"),[s,n]);return e.jsx(a.Typography.Text,{children:d})},B=c.connect(F,c.mapProps({dataSource:"options"}),c.mapReadPretty(V)),{useModal:j}=a.Modal,N=()=>{const n=c.useForm(),{setVisible:s}=t.useActionContext(),{resource:l,service:d}=t.useBlockRequestContext(),{t:x}=b(),[g,A]=j();return{run(){return h(this,null,function*(){var f,P;yield n.submit();const v=yield l.create({values:n.values});g.success({title:x("API key created successfully"),onOk:()=>{n.reset(),s(!1)},content:e.jsxs(a.Space,{direction:"vertical",children:[e.jsx(a.Alert,{message:x("Make sure to copy your personal access key now as you will not be able to see this again."),type:"warning"}),e.jsx(a.Typography.Text,{copyable:!0,children:(P=(f=v.data)==null?void 0:f.data)==null?void 0:P.token})]})}),d==null||d.refresh()})},element:A}},O=()=>{const n=t.useRecord(),{resource:s,service:l}=t.useBlockRequestContext();return{run(){return h(this,null,function*(){yield s.destroy({filterByTk:n.id}),l.refresh()})}}},E={type:"object",properties:{configuration:{type:"void","x-decorator":"TableBlockProvider","x-decorator-props":{collection:"apiKeys",resource:"apiKeys",action:"list",params:{pageSize:20,appends:["role"],sort:["-createdAt"]},rowKey:"name",showIndex:!0},"x-component":"CardItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--nb-spacing)"}},properties:{create:{type:"void","x-action":"create",title:r("Add API key"),"x-component":"Action","x-component-props":{openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:r("Add API key"),"x-decorator":"Form","x-component":"Action.Modal","x-component-props":{maskClosable:!1,style:{maxWidth:"520px",width:"100%"}},properties:{name:{type:"string",title:r("Key name"),required:!0,"x-component":"CollectionField","x-decorator":"FormItem"},role:{type:"string",title:r("Role"),required:!0,"x-decorator-props":{tooltip:r("Allow only your own roles to be selected")},"x-collection-field":"apiKeys.role","x-component":"CollectionField","x-decorator":"FormItem"},expiresIn:{type:"string",title:r("Expiration"),required:!0,"x-component":"CollectionField","x-decorator":"FormItem",default:"30d"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:N}}}}}}},"x-align":"right"}}},[m.uid()]:{type:"array","x-component":"TableV2","x-component-props":{rowKey:"id",useProps:"{{ useTableBlockProps }}"},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Key name"),properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Role"),properties:{role:{type:"object","x-collection-field":"apiKeys.role","x-component":"CollectionField","x-component-props":{enableLink:!1},"x-read-pretty":!0}}},column3:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Expiration"),properties:{expiresIn:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Created at"),properties:{createdAt:{type:"date","x-component":"DatePicker","x-component-props":{format:"YYYY-MM-DD HH:mm:ss"},"x-read-pretty":!0}}},actionColumn:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column",properties:{columnActions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:r("Delete API key"),content:"{{t('Are you sure you want to delete it?')}}"},useAction:O}}}}}}}}}}}},Y=()=>{const n=t.useCurrentRoles();return e.jsx(t.CollectionManagerProvider,{collections:[M],children:e.jsx(t.SchemaComponentOptions,{scope:{currentRoles:n},components:{ExpiresSelect:B},children:e.jsx(c.RecursionField,{schema:E})})})},T=y.memo(n=>{const{t:s}=b();return e.jsx(t.SettingsCenterProvider,{settings:{"api-keys":{title:s("API keys"),icon:"EnvironmentOutlined",tabs:{configuration:{title:s("Keys manager"),component:Y}}}},children:e.jsx(t.SchemaComponentOptions,{components:{},children:n.children})})});T.displayName="ApiKeysProvider";class H extends t.Plugin{load(){return h(this,null,function*(){this.app.addProvider(T)})}}o.default=H,Object.defineProperties(o,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
6
+ `,F=n=>{const{onChange:s}=n,[l,{toggle:u,setFalse:x}]=C.useBoolean(),g=p=>{if(p==="custom")return s("1d"),u();x(),s(p)},A=p=>{p=p.millisecond(0).second(0);const v=d().millisecond(0).second(0),f=`${p.diff(v,"d")}d`;s(f)};return e.jsxs(a.Space,{className:q,children:[e.jsx(a.Select,I(w({"data-testid":"antd-select"},n),{value:l?"custom":n.value,onChange:g})),l?e.jsx(a.DatePicker,{disabledDate:p=>p.isSameOrBefore(),defaultValue:K,onChange:A,showToday:!1,allowClear:!1}):null]})},V=()=>{const{expiresIn:n,createdAt:s}=t.useRecord(),{t:l}=b(),u=y.useMemo(()=>n==="never"?l("Never expires"):d(s).add((n==null?void 0:n.replace("d",""))||0,"days").format("YYYY-MM-DD HH:mm:ss"),[s,n]);return e.jsx(a.Typography.Text,{children:u})},B=c.connect(F,c.mapProps({dataSource:"options"}),c.mapReadPretty(V)),{useModal:j}=a.Modal,N=()=>{const n=c.useForm(),{setVisible:s}=t.useActionContext(),{resource:l,service:u}=t.useBlockRequestContext(),{t:x}=b(),[g,A]=j();return{run(){return h(this,null,function*(){var f,P;yield n.submit();const v=yield l.create({values:n.values});g.success({title:x("API key created successfully"),onOk:()=>{n.reset(),s(!1)},content:e.jsxs(a.Space,{direction:"vertical",children:[e.jsx(a.Alert,{message:x("Make sure to copy your personal access key now as you will not be able to see this again."),type:"warning"}),e.jsx(a.Typography.Text,{copyable:!0,children:(P=(f=v.data)==null?void 0:f.data)==null?void 0:P.token})]})}),u==null||u.refresh()})},element:A}},O=()=>{const n=t.useRecord(),{resource:s,service:l}=t.useBlockRequestContext();return{run(){return h(this,null,function*(){yield s.destroy({filterByTk:n.id}),l.refresh()})}}},E={type:"object",properties:{configuration:{type:"void","x-decorator":"TableBlockProvider","x-decorator-props":{collection:"apiKeys",resource:"apiKeys",action:"list",params:{pageSize:20,appends:["role"],sort:["-createdAt"]},rowKey:"name",showIndex:!0},"x-component":"CardItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--nb-spacing)"}},properties:{create:{type:"void","x-action":"create",title:r("Add API key"),"x-component":"Action","x-component-props":{openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:r("Add API key"),"x-decorator":"Form","x-component":"Action.Modal","x-component-props":{maskClosable:!1,style:{maxWidth:"520px",width:"100%"}},properties:{name:{type:"string",title:r("Key name"),required:!0,"x-component":"CollectionField","x-decorator":"FormItem"},role:{type:"string",title:r("Role"),required:!0,"x-decorator-props":{tooltip:r("Allow only your own roles to be selected")},"x-collection-field":"apiKeys.role","x-component":"CollectionField","x-decorator":"FormItem"},expiresIn:{type:"string",title:r("Expiration"),required:!0,"x-component":"CollectionField","x-decorator":"FormItem",default:"30d"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:N}}}}}}},"x-align":"right"}}},[m.uid()]:{type:"array","x-component":"TableV2","x-component-props":{rowKey:"id",useProps:"{{ useTableBlockProps }}"},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Key name"),properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Role"),properties:{role:{type:"object","x-collection-field":"apiKeys.role","x-component":"CollectionField","x-component-props":{enableLink:!1},"x-read-pretty":!0}}},column3:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Expiration"),properties:{expiresIn:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",title:r("Created at"),properties:{createdAt:{type:"date","x-component":"DatePicker","x-component-props":{format:"YYYY-MM-DD HH:mm:ss"},"x-read-pretty":!0}}},actionColumn:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column",properties:{columnActions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:r("Delete API key"),content:"{{t('Are you sure you want to delete it?')}}"},useAction:O}}}}}}}}}}}},Y=()=>{const n=t.useCurrentRoles();return e.jsx(t.CollectionManagerProvider,{collections:[M],children:e.jsx(t.SchemaComponentOptions,{scope:{currentRoles:n},components:{ExpiresSelect:B},children:e.jsx(c.RecursionField,{schema:E})})})},T=y.memo(n=>{const{t:s}=b();return e.jsx(t.SettingsCenterProvider,{settings:{"api-keys":{title:s("API keys"),icon:"EnvironmentOutlined",tabs:{configuration:{title:s("Keys manager"),component:Y}}}},children:e.jsx(t.SchemaComponentOptions,{components:{},children:n.children})})});T.displayName="ApiKeysProvider";class H extends t.Plugin{load(){return h(this,null,function*(){this.app.addProvider(T)})}}o.default=H,Object.defineProperties(o,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -1,13 +1,13 @@
1
1
  module.exports = {
2
- "@nocobase/client": "0.14.0-alpha.6",
2
+ "@nocobase/client": "0.14.0-alpha.7",
3
3
  "react": "18.2.0",
4
- "@nocobase/database": "0.14.0-alpha.6",
5
- "@nocobase/server": "0.14.0-alpha.6",
4
+ "@nocobase/database": "0.14.0-alpha.7",
5
+ "@nocobase/server": "0.14.0-alpha.7",
6
6
  "@formily/react": "2.2.27",
7
- "dayjs": "1.11.9",
8
7
  "ahooks": "3.7.8",
9
8
  "antd": "5.8.6",
9
+ "dayjs": "1.11.9",
10
10
  "@formily/shared": "2.2.27",
11
11
  "react-i18next": "11.18.6",
12
- "@nocobase/actions": "0.14.0-alpha.6"
12
+ "@nocobase/actions": "0.14.0-alpha.7"
13
13
  };
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "API 密钥",
5
5
  "description": "Allows users to use API key to access NocoBase HTTP API",
6
6
  "description.zh-CN": "允许用户使用 API 密钥访问 NocoBase HTTP API",
7
- "version": "0.14.0-alpha.6",
7
+ "version": "0.14.0-alpha.7",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "devDependencies": {
@@ -27,5 +27,5 @@
27
27
  "@nocobase/test": "0.x",
28
28
  "@nocobase/utils": "0.x"
29
29
  },
30
- "gitHead": "7f2858222231c207030b57704a0bb6ebc98e4e45"
30
+ "gitHead": "dc958417d27ed0753439bcef192be91a03dfc30f"
31
31
  }