@frogbotai/plugin-api-keys 0.34.0 → 0.36.0

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.
package/README.md CHANGED
@@ -21,7 +21,7 @@ Authorization: Bearer fb_...
21
21
  X-API-Key: fb_...
22
22
  ```
23
23
 
24
- Plaintext keys are returned only when created. The collection stores SHA-256 hashes and supports multiple independently revoked keys per user.
24
+ Plaintext keys are returned only when created. The collection stores SHA-256 hashes and supports multiple independently revoked keys per user. Minting and rotating need a signed-in session: a request authenticated by an API key gets `403`, so a leaked key can't leave new keys behind. A key can still list, rename, and revoke keys.
25
25
 
26
26
  A key has no budget or model limits of its own; requests use the owner's AI policy. With AI configured, usage rows include an optional `apiKey` relationship to the authenticating key. Cookie-authenticated requests omit it, and the relationship follows `collectionSlug`.
27
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeysManager.d.ts","sourceRoot":"","sources":["../../src/client/ApiKeysManager.tsx"],"names":[],"mappings":"AAEA,OAAO,cAAc,CAAC;AAqBtB,wBAAgB,cAAc,4CA8J7B;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,GACR,EAAE;IACD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC5E,2CAkEA"}
1
+ {"version":3,"file":"ApiKeysManager.d.ts","sourceRoot":"","sources":["../../src/client/ApiKeysManager.tsx"],"names":[],"mappings":"AAEA,OAAO,cAAc,CAAC;AAkBtB,wBAAgB,cAAc,4CAyJ7B;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,GACR,EAAE;IACD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC5E,2CAkEA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import './styles.css';
4
- import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, Input, Label, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@frogbotai/ui';
4
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, Input, Label, Tooltip } from '@frogbotai/ui';
5
5
  import { useConfig, useListQuery, useRouteCache } from '@frogbotai/ui/admin';
6
6
  import { CopyIcon } from '@frogbotai/ui/icons';
7
7
  import { useId, useState } from 'react';
@@ -94,51 +94,35 @@ export function ApiKeysManager() {
94
94
  role: "alert",
95
95
  children: "Key generated! Copy it now — you won't see it again."
96
96
  }),
97
- /*#__PURE__*/ _jsx(TooltipProvider, {
98
- children: /*#__PURE__*/ _jsxs("div", {
99
- className: "api-keys-dialog__token-row",
100
- children: [
101
- /*#__PURE__*/ _jsxs(Tooltip, {
102
- open: hoveredControl === 'token',
103
- children: [
104
- /*#__PURE__*/ _jsx(TooltipTrigger, {
105
- asChild: true,
106
- children: /*#__PURE__*/ _jsx("button", {
107
- "aria-label": "Click to copy API key",
108
- className: "api-keys-dialog__token",
109
- type: "button",
110
- ...copyHandlers('token'),
111
- children: /*#__PURE__*/ _jsx("code", {
112
- children: token
113
- })
114
- })
115
- }),
116
- /*#__PURE__*/ _jsx(TooltipContent, {
117
- children: copied ? 'Copied' : 'Click to copy'
118
- })
119
- ]
120
- }),
121
- /*#__PURE__*/ _jsxs(Tooltip, {
122
- open: hoveredControl === 'icon',
123
- children: [
124
- /*#__PURE__*/ _jsx(TooltipTrigger, {
125
- asChild: true,
126
- children: /*#__PURE__*/ _jsx(Button, {
127
- "aria-label": "Copy API key",
128
- size: "icon",
129
- type: "button",
130
- variant: "ghost",
131
- ...copyHandlers('icon'),
132
- children: /*#__PURE__*/ _jsx(CopyIcon, {})
133
- })
134
- }),
135
- /*#__PURE__*/ _jsx(TooltipContent, {
136
- children: copied ? 'Copied' : 'Copy'
137
- })
138
- ]
97
+ /*#__PURE__*/ _jsxs("div", {
98
+ className: "api-keys-dialog__token-row",
99
+ children: [
100
+ /*#__PURE__*/ _jsx(Tooltip, {
101
+ label: copied ? 'Copied' : 'Click to copy',
102
+ open: hoveredControl === 'token',
103
+ children: /*#__PURE__*/ _jsx("button", {
104
+ "aria-label": "Click to copy API key",
105
+ className: "api-keys-dialog__token",
106
+ type: "button",
107
+ ...copyHandlers('token'),
108
+ children: /*#__PURE__*/ _jsx("code", {
109
+ children: token
110
+ })
111
+ })
112
+ }),
113
+ /*#__PURE__*/ _jsx(Tooltip, {
114
+ label: copied ? 'Copied' : 'Copy',
115
+ open: hoveredControl === 'icon',
116
+ children: /*#__PURE__*/ _jsx(Button, {
117
+ "aria-label": "Copy API key",
118
+ size: "icon",
119
+ type: "button",
120
+ variant: "ghost",
121
+ ...copyHandlers('icon'),
122
+ children: /*#__PURE__*/ _jsx(CopyIcon, {})
139
123
  })
140
- ]
141
- })
124
+ })
125
+ ]
142
126
  })
143
127
  ]
144
128
  }) : /*#__PURE__*/ _jsxs(_Fragment, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/ApiKeysManager.tsx"],"names":["Button","Dialog","DialogContent","DialogDescription","DialogFooter","DialogTitle","DialogTrigger","Input","Label","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","useConfig","useListQuery","useRouteCache","CopyIcon","useId","useState","ApiKeysManager","config","collectionSlug","clearRouteCache","nameId","open","setOpen","name","setName","token","setToken","error","setError","loading","setLoading","copied","setCopied","hoveredControl","setHoveredControl","changeOpen","next","undefined","createKey","trim","response","fetch","routes","api","method","headers","body","JSON","stringify","result","json","ok","copyToken","navigator","clipboard","writeText","copyHandlers","control","onClick","onMouseEnter","onMouseLeave","onOpenChange","asChild","variant","type","className","withCloseButton","role","div","button","aria-label","code","size","htmlFor","id","placeholder","readOnly","value","onChange","event","target","onKeyDown","key","preventDefault","p","disabled","RevokeApiKey","rowData","revoked","setRevoked","revoke","revokedAt","span"],"mappings":"AAAA;;AAEA,OAAO,eAAe;AAEtB,SACEA,MAAM,EACNC,MAAM,EACNC,aAAa,EACbC,iBAAiB,EACjBC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,cAAc,EACdC,eAAe,EACfC,cAAc,QACT,gBAAgB;AACvB,SAASC,SAAS,EAAEC,YAAY,EAAEC,aAAa,QAAQ,sBAAsB;AAC7E,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,KAAK,EAAEC,QAAQ,QAAQ,QAAQ;AAExC,OAAO,SAASC;IACd,MAAM,EAAEC,MAAM,EAAE,GAAGP;IACnB,MAAM,EAAEQ,cAAc,EAAE,GAAGP;IAC3B,MAAM,EAAEQ,eAAe,EAAE,GAAGP;IAC5B,MAAMQ,SAASN;IACf,MAAM,CAACO,MAAMC,QAAQ,GAAGP,SAAS;IACjC,MAAM,CAACQ,MAAMC,QAAQ,GAAGT,SAAS;IACjC,MAAM,CAACU,OAAOC,SAAS,GAAGX;IAC1B,MAAM,CAACY,OAAOC,SAAS,GAAGb;IAC1B,MAAM,CAACc,SAASC,WAAW,GAAGf,SAAS;IACvC,MAAM,CAACgB,QAAQC,UAAU,GAAGjB,SAAS;IACrC,MAAM,CAACkB,gBAAgBC,kBAAkB,GAAGnB;IAE5C,SAASoB,WAAWC,IAAa;QAC/B,IAAIA,MAAM;YACRZ,QAAQ;YACRE,SAASW;YACTT,SAASS;YACTL,UAAU;YACVE,kBAAkBG;QACpB,OAAO,IAAIZ,OAAO;YAChBN;QACF;QAEAG,QAAQc;IACV;IAEA,eAAeE;QACb,IAAIT,WAAW,CAACN,KAAKgB,IAAI,IAAI;QAE7BT,WAAW;QACXF,SAASS;QAET,MAAMG,WAAW,MAAMC,MAAM,GAAGxB,OAAOyB,MAAM,CAACC,GAAG,CAAC,CAAC,EAAEzB,eAAe,KAAK,CAAC,EAAE;YAC1E0B,QAAQ;YACRC,SAAS;gBAAE,gBAAgB;YAAmB;YAC9CC,MAAMC,KAAKC,SAAS,CAAC;gBAAEzB;YAAK;QAC9B;QAEA,MAAM0B,SAAU,MAAMT,SAASU,IAAI;QAEnCpB,WAAW;QACX,IAAI,CAACU,SAASW,EAAE,IAAI,CAACF,OAAOxB,KAAK,EAAE;YACjCG,SAASqB,OAAOtB,KAAK,IAAI;YAEzB;QACF;QAEAD,SAASuB,OAAOxB,KAAK;IACvB;IAEA,eAAe2B;QACb,IAAI,CAAC3B,OAAO;QACZ,MAAM4B,UAAUC,SAAS,CAACC,SAAS,CAAC9B;QACpCO,UAAU;IACZ;IAEA,SAASwB,aAAaC,OAAyB;QAC7C,OAAO;YACLC,SAASN;YACTO,cAAc;gBACZzB,kBAAkBuB;gBAClBzB,UAAU;YACZ;YACA4B,cAAc;gBACZ1B,kBAAkBG;gBAClBL,UAAU;YACZ;QACF;IACF;IAEA,qBACE,MAAClC;QAAOuB,MAAMA;QAAMwC,cAAc1B;;0BAChC,KAAChC;gBAAc2D,OAAO;0BACpB,cAAA,KAACjE;oBAAOkE,SAAQ;oBAAYC,MAAK;8BAAS;;;0BAI5C,MAACjE;gBAAckE,WAAU;gBAAkBC,iBAAiB;;kCAC1D,KAAChE;kCAAY;;oBACZuB,sBACC;;0CACE,KAACzB;gCAAkBiE,WAAU;gCAA2BE,MAAK;0CAAQ;;0CAGrE,KAAC3D;0CACC,cAAA,MAAC4D;oCAAIH,WAAU;;sDACb,MAAC3D;4CAAQe,MAAMY,mBAAmB;;8DAChC,KAACxB;oDAAeqD,OAAO;8DACrB,cAAA,KAACO;wDACCC,cAAW;wDACXL,WAAU;wDACVD,MAAK;wDACJ,GAAGR,aAAa,QAAQ;kEAEzB,cAAA,KAACe;sEAAM9C;;;;8DAGX,KAAClB;8DAAgBwB,SAAS,WAAW;;;;sDAEvC,MAACzB;4CAAQe,MAAMY,mBAAmB;;8DAChC,KAACxB;oDAAeqD,OAAO;8DACrB,cAAA,KAACjE;wDACCyE,cAAW;wDACXE,MAAK;wDACLR,MAAK;wDACLD,SAAQ;wDACP,GAAGP,aAAa,OAAO;kEAExB,cAAA,KAAC3C;;;8DAGL,KAACN;8DAAgBwB,SAAS,WAAW;;;;;;;;uCAM7C;;0CACE,KAAC/B;0CAAkB;;0CAGnB,MAACoE;gCAAIH,WAAU;;kDACb,KAAC5D;wCAAMoE,SAASrD;kDAAQ;;kDACxB,KAAChB;wCACCsE,IAAItD;wCACJuD,aAAY;wCACZC,UAAU/C;wCACVgD,OAAOtD;wCACPuD,UAAU,CAACC,QAAUvD,QAAQuD,MAAMC,MAAM,CAACH,KAAK;wCAC/CI,WAAW,CAACF;4CACV,IAAIA,MAAMG,GAAG,KAAK,SAAS;gDACzBH,MAAMI,cAAc;gDACpB,KAAK7C;4CACP;wCACF;;;;;;oBAKPX,sBACC,KAACyD;wBAAEnB,WAAU;wBAAyBE,MAAK;kCACxCxC;yBAED;kCACJ,MAAC1B;;0CACC,KAACJ;gCAAOkE,SAAQ;gCAAYL,SAAS,IAAMvB,WAAW;gCAAQ6B,MAAK;0CAChEvC,QAAQ,UAAU;;4BAEpBA,QAAQ,qBACP,KAAC5B;gCAAOwF,UAAUxD,WAAW,CAACN,KAAKgB,IAAI;gCAAImB,SAASpB;gCAAW0B,MAAK;0CACjEnC,UAAU,gBAAgB;;;;;;;;AAOzC;AAEA,OAAO,SAASyD,aAAa,EAC3BC,OAAO,EAGR;IACC,MAAM,EAAEtE,MAAM,EAAE,GAAGP;IACnB,MAAM,EAAEQ,cAAc,EAAE,GAAGP;IAC3B,MAAM,EAAEQ,eAAe,EAAE,GAAGP;IAC5B,MAAM,CAACS,MAAMC,QAAQ,GAAGP,SAAS;IACjC,MAAM,CAACc,SAASC,WAAW,GAAGf,SAAS;IACvC,MAAM,CAACyE,SAASC,WAAW,GAAG1E,SAAS;IACvC,MAAM,CAACY,OAAOC,SAAS,GAAGb;IAE1B,SAASoB,WAAWC,IAAa;QAC/B,IAAIA,MAAMR,SAASS;QAEnBf,QAAQc;IACV;IAEA,eAAesD;QACb5D,WAAW;QACXF,SAASS;QACT,MAAMG,WAAW,MAAMC,MAAM,GAAGxB,OAAOyB,MAAM,CAACC,GAAG,CAAC,CAAC,EAAEzB,eAAe,CAAC,EAAEqE,QAAQb,EAAE,CAAC,OAAO,CAAC,EAAE;YAC1F9B,QAAQ;QACV;QAEAd,WAAW;QACX,IAAI,CAACU,SAASW,EAAE,EAAE;YAChB,MAAMF,SAAU,MAAMT,SAASU,IAAI;YACnCtB,SAASqB,OAAOtB,KAAK,IAAI;YAEzB;QACF;QAEAL,QAAQ;QACRmE,WAAW;QACXtE;IACF;IAEA,IAAIqE,WAAWD,QAAQI,SAAS,EAAE,qBAAO,KAACC;kBAAK;;IAE/C,qBACE,MAAC9F;QAAOuB,MAAMA;QAAMwC,cAAc1B;;0BAChC,KAAChC;gBAAc2D,OAAO;0BACpB,cAAA,KAACjE;oBAAO2E,MAAK;oBAAKR,MAAK;oBAASD,SAAQ;8BAAY;;;0BAItD,MAAChE;gBAAckE,WAAU;gBAAkBC,iBAAiB;;kCAC1D,KAAChE;kCAAY;;kCACb,MAACF;;4BAAkB;4BACcuF,QAAQhE,IAAI,IAAI;4BAAW;;;oBAG3DI,sBACC,KAACyD;wBAAEnB,WAAU;wBAAyBE,MAAK;kCACxCxC;yBAED;kCACJ,MAAC1B;;0CACC,KAACJ;gCAAOkE,SAAQ;gCAAYL,SAAS,IAAMvB,WAAW;gCAAQ6B,MAAK;0CAAS;;0CAG5E,KAACnE;gCAAOwF,UAAUxD;gCAAS6B,SAASgC;gCAAQ1B,MAAK;0CAC9CnC,UAAU,cAAc;;;;;;;;AAMrC","file":"ApiKeysManager.js"}
1
+ {"version":3,"sources":["../../src/client/ApiKeysManager.tsx"],"names":["Button","Dialog","DialogContent","DialogDescription","DialogFooter","DialogTitle","DialogTrigger","Input","Label","Tooltip","useConfig","useListQuery","useRouteCache","CopyIcon","useId","useState","ApiKeysManager","config","collectionSlug","clearRouteCache","nameId","open","setOpen","name","setName","token","setToken","error","setError","loading","setLoading","copied","setCopied","hoveredControl","setHoveredControl","changeOpen","next","undefined","createKey","trim","response","fetch","routes","api","method","headers","body","JSON","stringify","result","json","ok","copyToken","navigator","clipboard","writeText","copyHandlers","control","onClick","onMouseEnter","onMouseLeave","onOpenChange","asChild","variant","type","className","withCloseButton","role","div","label","button","aria-label","code","size","htmlFor","id","placeholder","readOnly","value","onChange","event","target","onKeyDown","key","preventDefault","p","disabled","RevokeApiKey","rowData","revoked","setRevoked","revoke","revokedAt","span"],"mappings":"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","file":"ApiKeysManager.js"}
@@ -11,13 +11,13 @@
11
11
  }
12
12
 
13
13
  .fb-dialog__description.api-keys-dialog__warning {
14
- color: var(--fb-theme-base-900);
14
+ color: var(--color-text);
15
15
  font-weight: 600;
16
16
  }
17
17
 
18
18
  .api-keys-dialog__error {
19
19
  margin: 0;
20
- color: var(--fb-theme-red-500);
20
+ color: var(--color-text-danger);
21
21
  font-size: var(--fb-text-sm);
22
22
  line-height: var(--fb-text-sm--line-height);
23
23
  }
@@ -28,14 +28,14 @@
28
28
  gap: 0.5rem;
29
29
  min-width: 0;
30
30
  padding: 0.25rem 0.25rem 0.25rem 1rem;
31
- background: var(--fb-theme-base-100);
32
- border: 1px solid var(--fb-theme-base-150);
31
+ background: var(--color-bg-secondary);
32
+ border: 1px solid var(--color-border);
33
33
  border-radius: var(--fb-radius-lg);
34
34
  transition: border-color 200ms ease-out;
35
35
  }
36
36
 
37
37
  .api-keys-dialog__token-row:hover {
38
- border-color: var(--fb-theme-base-400);
38
+ border-color: var(--special-border-translucent-strong);
39
39
  }
40
40
 
41
41
  .api-keys-dialog__token {
@@ -53,7 +53,7 @@
53
53
  }
54
54
 
55
55
  .api-keys-dialog__token:focus-visible {
56
- outline: 2px solid var(--fb-theme-base-900);
56
+ outline: 2px solid var(--accessibility-focus-color);
57
57
  outline-offset: 2px;
58
58
  }
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAIrB,KAAK,cAAc,EAEpB,MAAM,SAAS,CAAC;AAMjB,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAiJF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAqHpF"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAIrB,KAAK,cAAc,EAEpB,MAAM,SAAS,CAAC;AAYjB,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAyJF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAqHpF"}
@@ -1,6 +1,11 @@
1
1
  import { moneyField } from 'frogbot';
2
- import { ApiKeyServiceError, mintApiKey, revokeApiKey, rotateApiKey } from './server/services.js';
2
+ import { ApiKeyServiceError, isApiKeyRequest, mintApiKey, revokeApiKey, rotateApiKey } from './server/services.js';
3
3
  const MANAGER_COMPONENT = '@frogbotai/plugin-api-keys/client#ApiKeysManager';
4
+ const sessionRequired = ()=>Response.json({
5
+ error: 'An API key cannot mint or rotate API keys. Sign in to manage keys.'
6
+ }, {
7
+ status: 403
8
+ });
4
9
  const ownKeys = ({ req })=>req.user ? {
5
10
  owner: {
6
11
  equals: req.user.id
@@ -64,6 +69,7 @@ function createEndpoints({ collectionSlug, tokenPrefix, canRevokeAnyKey }) {
64
69
  }, {
65
70
  status: 401
66
71
  });
72
+ if (isApiKeyRequest(req)) return sessionRequired();
67
73
  const body = await req.json?.().catch(()=>null) ?? null;
68
74
  const name = typeof body?.name === 'string' ? body.name.trim() : '';
69
75
  if (!name) return Response.json({
@@ -146,6 +152,7 @@ function createEndpoints({ collectionSlug, tokenPrefix, canRevokeAnyKey }) {
146
152
  }, {
147
153
  status: 401
148
154
  });
155
+ if (isApiKeyRequest(req)) return sessionRequired();
149
156
  const id = req.routeParams?.id;
150
157
  if (typeof id !== 'string' || !id) {
151
158
  return Response.json({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/collection.ts"],"names":["moneyField","ApiKeyServiceError","mintApiKey","revokeApiKey","rotateApiKey","MANAGER_COMPONENT","ownKeys","req","user","owner","equals","id","mergeFields","groups","fields","Map","group","field","key","name","JSON","stringify","set","values","createViews","usageCollection","views","length","type","defaultFields","components","beforeTable","index","findIndex","view","map","position","createEndpoints","collectionSlug","tokenPrefix","canRevokeAnyKey","method","path","handler","Response","json","error","status","body","catch","trim","code","routeParams","anyOwner","_name","_owner","result","createApiKeysCollection","options","authCollection","collection","existing","required","relationTo","access","update","admin","readOnly","unique","read","hidden","condition","_","siblingData","Boolean","revokedAt","label","virtual","hooks","afterRead","data","undefined","frogbot","find","depth","overrideAccess","pagination","where","apiKey","docs","reduce","total","doc","cost","costUSD","Cell","endpoints","slug","labels","singular","plural","timestamps","versions","authorship","custom","internal","create","delete","icon","useAsTitle"],"mappings":"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","file":"collection.js"}
1
+ {"version":3,"sources":["../src/collection.ts"],"names":["moneyField","ApiKeyServiceError","isApiKeyRequest","mintApiKey","revokeApiKey","rotateApiKey","MANAGER_COMPONENT","sessionRequired","Response","json","error","status","ownKeys","req","user","owner","equals","id","mergeFields","groups","fields","Map","group","field","key","name","JSON","stringify","set","values","createViews","usageCollection","views","length","type","defaultFields","components","beforeTable","index","findIndex","view","map","position","createEndpoints","collectionSlug","tokenPrefix","canRevokeAnyKey","method","path","handler","body","catch","trim","code","routeParams","anyOwner","_name","_owner","result","createApiKeysCollection","options","authCollection","collection","existing","required","relationTo","access","update","admin","readOnly","unique","read","hidden","condition","_","siblingData","Boolean","revokedAt","label","virtual","hooks","afterRead","data","undefined","frogbot","find","depth","overrideAccess","pagination","where","apiKey","docs","reduce","total","doc","cost","costUSD","Cell","endpoints","slug","labels","singular","plural","timestamps","versions","authorship","custom","internal","create","delete","icon","useAsTitle"],"mappings":"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","file":"collection.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAKlF,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClG,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvE,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAgGxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAMlF,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClG,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvE,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAmGxE"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { cascadeDelete } from 'frogbot/internal';
1
2
  import { createApiKeysCollection } from './collection.js';
2
3
  import { apiKeyMeHook, apiKeyStrategyName, createApiKeyStrategy } from './strategy.js';
3
4
  export { ApiKeyServiceError, mintApiKey, revokeApiKey, rotateApiKey } from './server/services.js';
@@ -43,7 +44,7 @@ export function apiKeysPlugin(options = {}) {
43
44
  if (item.slug === collectionSlug) next = collection;
44
45
  if (item.slug === authCollection) {
45
46
  const authConfig = typeof next.auth === 'object' ? next.auth : {};
46
- next = {
47
+ next = cascadeDelete({
47
48
  ...next,
48
49
  auth: {
49
50
  ...authConfig,
@@ -59,7 +60,10 @@ export function apiKeysPlugin(options = {}) {
59
60
  apiKeyMeHook
60
61
  ]
61
62
  }
62
- };
63
+ }, {
64
+ collection: collectionSlug,
65
+ field: 'owner'
66
+ });
63
67
  }
64
68
  if (item === usageLog) next = {
65
69
  ...next,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["createApiKeysCollection","apiKeyMeHook","apiKeyStrategyName","createApiKeyStrategy","ApiKeyServiceError","mintApiKey","revokeApiKey","rotateApiKey","createApiKeyToken","extractApiKeyToken","getApiKeyPrefix","hashApiKeyToken","isApiKeyStrategy","apiKeysPlugin","options","config","authCollection","collectionSlug","auth","collections","find","collection","slug","undefined","Error","existing","usageLog","ai","item","fields","tokenPrefix","usageCollection","canRevokeAnyKey","strategy","headerNames","usageField","name","type","relationTo","index","map","next","authConfig","strategies","hooks","me","includes","beforeOperation","req","context","user","apiKeyId","_strategy","usageFields","apiKey"],"mappings":"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","file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["cascadeDelete","createApiKeysCollection","apiKeyMeHook","apiKeyStrategyName","createApiKeyStrategy","ApiKeyServiceError","mintApiKey","revokeApiKey","rotateApiKey","createApiKeyToken","extractApiKeyToken","getApiKeyPrefix","hashApiKeyToken","isApiKeyStrategy","apiKeysPlugin","options","config","authCollection","collectionSlug","auth","collections","find","collection","slug","undefined","Error","existing","usageLog","ai","item","fields","tokenPrefix","usageCollection","canRevokeAnyKey","strategy","headerNames","usageField","name","type","relationTo","index","map","next","authConfig","strategies","hooks","me","field","includes","beforeOperation","req","context","user","apiKeyId","_strategy","usageFields","apiKey"],"mappings":"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","file":"index.js"}
@@ -12,9 +12,10 @@ export type RevokeApiKeyOptions = {
12
12
  anyOwner?: boolean;
13
13
  };
14
14
  export declare class ApiKeyServiceError extends Error {
15
- readonly code: 'authentication_required' | 'not_found';
16
- constructor(code: 'authentication_required' | 'not_found');
15
+ readonly code: 'authentication_required' | 'not_found' | 'session_required';
16
+ constructor(code: 'authentication_required' | 'not_found' | 'session_required');
17
17
  }
18
+ export declare function isApiKeyRequest(req: FrogBotRequest): boolean;
18
19
  export declare function mintApiKey(options: MintApiKeyOptions): Promise<{
19
20
  id: unknown;
20
21
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/server/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,cAAc,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,cAAc,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK;aACf,IAAI,EAAE,yBAAyB,GAAG,WAAW;gBAA7C,IAAI,EAAE,yBAAyB,GAAG,WAAW;CAG1E;AAuBD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB;;;;;;GAW1D;AAED,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,wBAAsB,YAAY,CAAC,EACjC,GAAG,EACH,cAAc,EACd,EAAE,EACF,WAAW,EACX,QAAQ,GACT,EAAE,mBAAmB;;;;;;GAUrB;AAED,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,mBAAmB;;;;;GAmC5F"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/server/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,cAAc,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,cAAc,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK;aACf,IAAI,EAAE,yBAAyB,GAAG,WAAW,GAAG,kBAAkB;gBAAlE,IAAI,EAAE,yBAAyB,GAAG,WAAW,GAAG,kBAAkB;CAG/F;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE5D;AA+BD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB;;;;;;GAU1D;AAED,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,wBAAsB,YAAY,CAAC,EACjC,GAAG,EACH,cAAc,EACd,EAAE,EACF,WAAW,EACX,QAAQ,GACT,EAAE,mBAAmB;;;;;;GAWrB;AAED,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,mBAAmB;;;;;GAmC5F"}
@@ -1,3 +1,4 @@
1
+ import { apiKeyStrategyName } from '../strategy.js';
1
2
  import { createApiKeyToken, getApiKeyPrefix, hashApiKeyToken } from './token.js';
2
3
  export class ApiKeyServiceError extends Error {
3
4
  code;
@@ -5,6 +6,15 @@ export class ApiKeyServiceError extends Error {
5
6
  super(code), this.code = code;
6
7
  }
7
8
  }
9
+ export function isApiKeyRequest(req) {
10
+ return req.user?._strategy === apiKeyStrategyName;
11
+ }
12
+ function requireSessionOwner(req) {
13
+ const owner = req.user?.id;
14
+ if (owner === undefined) throw new ApiKeyServiceError('authentication_required');
15
+ if (isApiKeyRequest(req)) throw new ApiKeyServiceError('session_required');
16
+ return owner;
17
+ }
8
18
  async function mintForOwner({ req, collectionSlug, tokenPrefix, name, owner }) {
9
19
  const token = createApiKeyToken({
10
20
  tokenPrefix
@@ -30,8 +40,7 @@ async function mintForOwner({ req, collectionSlug, tokenPrefix, name, owner }) {
30
40
  };
31
41
  }
32
42
  export async function mintApiKey(options) {
33
- const owner = options.req.user?.id;
34
- if (owner === undefined) throw new ApiKeyServiceError('authentication_required');
43
+ const owner = requireSessionOwner(options.req);
35
44
  return mintForOwner({
36
45
  req: options.req,
37
46
  collectionSlug: options.collectionSlug,
@@ -41,6 +50,7 @@ export async function mintApiKey(options) {
41
50
  });
42
51
  }
43
52
  export async function rotateApiKey({ req, collectionSlug, id, tokenPrefix, anyOwner }) {
53
+ requireSessionOwner(req);
44
54
  const revoked = await revokeApiKey({
45
55
  req,
46
56
  collectionSlug,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/services.ts"],"names":["createApiKeyToken","getApiKeyPrefix","hashApiKeyToken","ApiKeyServiceError","Error","code","mintForOwner","req","collectionSlug","tokenPrefix","name","owner","token","prefix","doc","frogbot","create","collection","data","tokenHash","overrideAccess","id","createdAt","mintApiKey","options","user","undefined","rotateApiKey","anyOwner","revoked","revokeApiKey","result","find","depth","limit","where","equals","and","key","docs","revokedAt","Date","toISOString","update"],"mappings":"AAEA,SAASA,iBAAiB,EAAEC,eAAe,EAAEC,eAAe,QAAQ,aAAa;AAgBjF,OAAO,MAAMC,2BAA2BC;;IACtC,YAAY,AAAgBC,IAA6C,CAAE;QACzE,KAAK,CAACA,YADoBA,OAAAA;IAE5B;AACF;AAIA,eAAeC,aAAa,EAC1BC,GAAG,EACHC,cAAc,EACdC,WAAW,EACXC,IAAI,EACJC,KAAK,EACe;IACpB,MAAMC,QAAQZ,kBAAkB;QAAES;IAAY;IAC9C,MAAMI,SAASZ,gBAAgBW;IAC/B,MAAME,MAAO,MAAMP,IAAIQ,OAAO,CAACC,MAAM,CAAC;QACpCC,YAAYT;QACZU,MAAM;YAAER;YAAMC;YAAOE;YAAQM,WAAWjB,gBAAgBU;QAAO;QAC/DQ,gBAAgB;QAChBb;IACF;IAEA,OAAO;QAAEc,IAAIP,IAAIO,EAAE;QAAEX;QAAMG;QAAQD;QAAOU,WAAWR,IAAIQ,SAAS;IAAC;AACrE;AAEA,OAAO,eAAeC,WAAWC,OAA0B;IACzD,MAAMb,QAAQa,QAAQjB,GAAG,CAACkB,IAAI,EAAEJ;IAChC,IAAIV,UAAUe,WAAW,MAAM,IAAIvB,mBAAmB;IAEtD,OAAOG,aAAa;QAClBC,KAAKiB,QAAQjB,GAAG;QAChBC,gBAAgBgB,QAAQhB,cAAc;QACtCC,aAAae,QAAQf,WAAW;QAChCC,MAAMc,QAAQd,IAAI;QAClBC;IACF;AACF;AAIA,OAAO,eAAegB,aAAa,EACjCpB,GAAG,EACHC,cAAc,EACda,EAAE,EACFZ,WAAW,EACXmB,QAAQ,EACY;IACpB,MAAMC,UAAU,MAAMC,aAAa;QAAEvB;QAAKC;QAAgBa;QAAIO;IAAS;IAEvE,OAAOtB,aAAa;QAClBC;QACAC;QACAC;QACAC,MAAMmB,QAAQnB,IAAI;QAClBC,OAAOkB,QAAQlB,KAAK;IACtB;AACF;AAEA,OAAO,eAAemB,aAAa,EAAEvB,GAAG,EAAEC,cAAc,EAAEa,EAAE,EAAEO,QAAQ,EAAuB;IAC3F,MAAMjB,QAAQJ,IAAIkB,IAAI,EAAEJ;IACxB,IAAIV,UAAUe,WAAW,MAAM,IAAIvB,mBAAmB;IACtD,MAAM4B,SAAS,MAAMxB,IAAIQ,OAAO,CAACiB,IAAI,CAAC;QACpCf,YAAYT;QACZyB,OAAO;QACPC,OAAO;QACPd,gBAAgB;QAChBb;QACA4B,OAAOP,WACH;YAAEP,IAAI;gBAAEe,QAAQf;YAAG;QAAE,IACrB;YAAEgB,KAAK;gBAAC;oBAAEhB,IAAI;wBAAEe,QAAQf;oBAAG;gBAAE;gBAAG;oBAAEV,OAAO;wBAAEyB,QAAQzB;oBAAM;gBAAE;aAAE;QAAC;IACpE;IAEA,MAAM2B,MAAMP,OAAOQ,IAAI,CAAC,EAAE;IAC1B,IACE,CAACD,OACA,OAAOA,IAAIjB,EAAE,KAAK,YAAY,OAAOiB,IAAIjB,EAAE,KAAK,YACjD,OAAOiB,IAAI5B,IAAI,KAAK,YACnB,OAAO4B,IAAI3B,KAAK,KAAK,YAAY,OAAO2B,IAAI3B,KAAK,KAAK,UACvD;QACA,MAAM,IAAIR,mBAAmB;IAC/B;IAEA,MAAMqC,YAAY,OAAOF,IAAIE,SAAS,KAAK,WAAWF,IAAIE,SAAS,GAAG,IAAIC,OAAOC,WAAW;IAE5F,MAAMnC,IAAIQ,OAAO,CAAC4B,MAAM,CAAC;QACvB1B,YAAYT;QACZa,IAAIiB,IAAIjB,EAAE;QACVH,MAAM;YAAEsB;QAAU;QAClBpB,gBAAgB;QAChBb;IACF;IAEA,OAAO;QAAEc,IAAIiB,IAAIjB,EAAE;QAAEX,MAAM4B,IAAI5B,IAAI;QAAEC,OAAO2B,IAAI3B,KAAK;QAAE6B;IAAU;AACnE","file":"services.js"}
1
+ {"version":3,"sources":["../../src/server/services.ts"],"names":["apiKeyStrategyName","createApiKeyToken","getApiKeyPrefix","hashApiKeyToken","ApiKeyServiceError","Error","code","isApiKeyRequest","req","user","_strategy","requireSessionOwner","owner","id","undefined","mintForOwner","collectionSlug","tokenPrefix","name","token","prefix","doc","frogbot","create","collection","data","tokenHash","overrideAccess","createdAt","mintApiKey","options","rotateApiKey","anyOwner","revoked","revokeApiKey","result","find","depth","limit","where","equals","and","key","docs","revokedAt","Date","toISOString","update"],"mappings":"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","file":"services.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frogbotai/plugin-api-keys",
3
- "version": "0.34.0",
3
+ "version": "0.36.0",
4
4
  "description": "Multiple named API keys for FrogBot.",
5
5
  "license": "MIT",
6
6
  "author": "Colby Gilbert",
@@ -37,9 +37,9 @@
37
37
  "peerDependencies": {
38
38
  "react": "^19.0.1 || ^19.1.2 || ^19.2.1",
39
39
  "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
40
- "@frogbotai/gateway": "0.34.0",
41
- "frogbot": "0.34.0",
42
- "@frogbotai/ui": "0.34.0"
40
+ "@frogbotai/gateway": "0.36.0",
41
+ "@frogbotai/ui": "0.36.0",
42
+ "frogbot": "0.36.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@testing-library/react": "^16.3.0",
@@ -47,10 +47,10 @@
47
47
  "react": "19.3.1",
48
48
  "react-dom": "19.3.1",
49
49
  "typescript": "6.0.3",
50
- "@frogbotai/plugin-roles": "0.34.0",
51
- "@frogbotai/gateway": "0.34.0",
52
- "@frogbotai/ui": "0.34.0",
53
- "frogbot": "0.34.0"
50
+ "@frogbotai/gateway": "0.36.0",
51
+ "@frogbotai/ui": "0.36.0",
52
+ "@frogbotai/plugin-roles": "0.36.0",
53
+ "frogbot": "0.36.0"
54
54
  },
55
55
  "publishConfig": {
56
56
  "access": "public"