@frogbotai/plugin-api-keys 0.19.0 → 0.20.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/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { type CollectionConfig, type FrogbotRequest, type Plugin } from 'frogbot';
2
- export type { PolicyDocument } from './policy.js';
3
2
  export type { MintApiKeyOptions, RevokeApiKeyOptions, RotateApiKeyOptions, } from './server/services.js';
4
3
  export { ApiKeyServiceError, mintApiKey, revokeApiKey, rotateApiKey } from './server/services.js';
5
4
  export type { ApiKeyHeaderOptions, ApiKeyTokenOptions } from './server/token.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,KAAK,MAAM,EACZ,MAAM,SAAS,CAAC;AAQjB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,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,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,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;AAsBF,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAyKxE"}
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,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,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,CA+ExE"}
package/dist/index.js CHANGED
@@ -1,49 +1,16 @@
1
- import { calculateCostUSD, calculateModelCostUSD } from '@frogbotai/gateway';
2
- import { BudgetExceededError, ModelNotAllowedError } from '@frogbotai/gateway/errors';
3
- import { getConfiguredModelIds, } from 'frogbot';
4
1
  import { createApiKeysCollection } from './collection.js';
5
- import { createPolicyFields } from './fields.js';
6
- import { SerialQueue } from './policy.js';
7
2
  import { createApiKeyStrategy } from './strategy.js';
8
3
  export { ApiKeyServiceError, mintApiKey, revokeApiKey, rotateApiKey } from './server/services.js';
9
4
  export { createApiKeyToken, extractApiKeyToken, getApiKeyPrefix, hashApiKeyToken, } from './server/token.js';
10
5
  export { isApiKeyStrategy } from './strategy.js';
11
- function isPricedCustomProvider(entry) {
12
- return (typeof entry === 'object' &&
13
- entry !== null &&
14
- 'type' in entry &&
15
- entry.type === 'openai-compatible' &&
16
- 'models' in entry &&
17
- Array.isArray(entry.models));
18
- }
19
6
  export function apiKeysPlugin(options = {}) {
20
- const queue = new SerialQueue();
21
7
  return (config) => {
22
8
  const authCollection = options.authCollection ?? 'users';
23
9
  const collectionSlug = options.collectionSlug ?? 'api-keys';
24
- const configuredCosts = new Map();
25
- for (const [provider, entry] of Object.entries(config.ai?.providers ?? {})) {
26
- if (!isPricedCustomProvider(entry))
27
- continue;
28
- for (const model of entry.models) {
29
- if (!model.cost)
30
- continue;
31
- configuredCosts.set(`${provider}/${model.id}`, {
32
- input: model.cost.input ?? 0,
33
- output: model.cost.output ?? 0,
34
- ...(model.cost.cache_read !== undefined && { cache_read: model.cost.cache_read }),
35
- });
36
- }
37
- }
38
10
  const auth = config.collections.find((collection) => collection.slug === authCollection);
39
11
  if (!auth || auth.auth === undefined || auth.auth === false) {
40
12
  throw new Error(`[plugin-api-keys] Auth collection '${authCollection}' must exist and have auth enabled.`);
41
13
  }
42
- const reservedPolicyFields = new Set(['monthlyBudget', 'models', 'spendThisPeriodUSD']);
43
- const collision = auth.fields.find((field) => 'name' in field && reservedPolicyFields.has(field.name));
44
- if (collision && 'name' in collision) {
45
- throw new Error(`[plugin-api-keys] Auth field '${collision.name}' is reserved.`);
46
- }
47
14
  const existing = config.collections.find((collection) => collection.slug === collectionSlug);
48
15
  const usageLog = config.ai
49
16
  ? (config.collections.find((item) => item.usageLog === true) ?? {
@@ -81,7 +48,6 @@ export function apiKeysPlugin(options = {}) {
81
48
  const authConfig = typeof next.auth === 'object' ? next.auth : {};
82
49
  next = {
83
50
  ...next,
84
- fields: [...next.fields, ...createPolicyFields(getConfiguredModelIds(config.ai))],
85
51
  auth: { ...authConfig, strategies: [...(authConfig.strategies ?? []), strategy] },
86
52
  };
87
53
  }
@@ -89,24 +55,8 @@ export function apiKeysPlugin(options = {}) {
89
55
  next = { ...next, fields: [...next.fields, usageField] };
90
56
  return next;
91
57
  });
92
- const resetTask = {
93
- slug: 'frogbot-reset-ai-budgets',
94
- schedule: [{ cron: '0 0 1 * *', queue: 'frogbot-reset-ai-budgets' }],
95
- handler: async ({ req }) => {
96
- await req.payload.update({
97
- collection: authCollection,
98
- where: { id: { exists: true } },
99
- data: { spendThisPeriodUSD: 0 },
100
- overrideAccess: true,
101
- req,
102
- });
103
- return { output: {} };
104
- },
105
- };
106
- const jobs = { ...config.jobs, tasks: [...(config.jobs?.tasks ?? []), resetTask] };
107
58
  return {
108
59
  ...config,
109
- jobs: config.ai ? jobs : config.jobs,
110
60
  collections: [
111
61
  ...collections,
112
62
  ...(existing ? [] : [collection]),
@@ -114,76 +64,22 @@ export function apiKeysPlugin(options = {}) {
114
64
  ? [{ ...usageLog, fields: [usageField] }]
115
65
  : []),
116
66
  ],
117
- ...(config.ai
118
- ? {
119
- ai: {
120
- ...config.ai,
121
- hooks: {
122
- ...config.ai.hooks,
123
- beforeOperation: [
124
- ...(config.ai.hooks?.beforeOperation ?? []),
125
- async (args) => {
126
- if (!args.req?.user)
127
- return;
128
- const policy = args.req.user;
129
- if (policy.monthlyBudget !== undefined &&
130
- (policy.spendThisPeriodUSD ?? 0) >= policy.monthlyBudget) {
131
- throw new BudgetExceededError();
132
- }
133
- Object.assign(args.context, {
134
- policy,
135
- ...('apiKeyId' in policy && typeof policy.apiKeyId === 'string'
136
- ? { usageFields: { apiKey: policy.apiKeyId } }
137
- : {}),
138
- });
139
- },
140
- ],
141
- beforeUpstream: [
142
- ...(config.ai.hooks?.beforeUpstream ?? []),
143
- (args) => {
144
- const models = args.context.policy?.models;
145
- if (models?.length && !models.includes(args.model)) {
146
- throw new ModelNotAllowedError(args.model);
147
- }
148
- },
149
- ],
150
- afterOperation: [
151
- ...(config.ai.hooks?.afterOperation ?? []),
152
- async (args) => {
153
- const req = args.req;
154
- if (!req?.user || args.error)
155
- return;
156
- const userId = req.user.id;
157
- const configuredCost = configuredCosts.get(args.model);
158
- const cost = args.usage
159
- ? configuredCost
160
- ? calculateCostUSD(args.usage, configuredCost)
161
- : calculateModelCostUSD(args.model, args.usage)
162
- : 0;
163
- if (cost <= 0)
164
- return;
165
- await queue.run(String(userId), async () => {
166
- const user = (await req.frogbot.findByID({
167
- collection: authCollection,
168
- id: userId,
169
- depth: 0,
170
- overrideAccess: true,
171
- req,
172
- }));
173
- await req.frogbot.update({
174
- collection: authCollection,
175
- id: userId,
176
- data: { spendThisPeriodUSD: (user.spendThisPeriodUSD ?? 0) + cost },
177
- overrideAccess: true,
178
- req,
179
- });
180
- });
181
- },
182
- ],
183
- },
67
+ ...(config.ai && {
68
+ ai: {
69
+ ...config.ai,
70
+ hooks: {
71
+ ...config.ai.hooks,
72
+ beforeOperation: [
73
+ ...(config.ai.hooks?.beforeOperation ?? []),
74
+ ({ req, context }) => {
75
+ if (req?.user && 'apiKeyId' in req.user && typeof req.user.apiKeyId === 'string') {
76
+ context.usageFields = { apiKey: req.user.apiKeyId };
77
+ }
78
+ },
79
+ ],
184
80
  },
185
- }
186
- : {}),
81
+ },
82
+ }),
187
83
  };
188
84
  };
189
85
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../src/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAI3E,KAAK,eAAe,GAAG;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAsD7E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAElE"}
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../src/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAI3E,KAAK,eAAe,GAAG;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAiE7E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAElE"}
package/dist/strategy.js CHANGED
@@ -42,6 +42,10 @@ export function createApiKeyStrategy(options) {
42
42
  collection: authCollection,
43
43
  _strategy: 'api-key',
44
44
  apiKeyId: key.id,
45
+ ...(key.capture !== undefined ? { capture: key.capture } : {}),
46
+ ...(typeof key.captureSampleRate === 'number'
47
+ ? { captureSampleRate: key.captureSampleRate }
48
+ : {}),
45
49
  },
46
50
  };
47
51
  },
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../src/strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIxE,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAkB,CAAC;AASvD,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC7E,MAAM,QAAQ,GAAmB;QAC/B,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3D,IACE,CAAC,KAAK;gBACN,CAAC,IAAI,MAAM,CACT,IAAI,WAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,CAC5E,CAAC,IAAI,CAAC,KAAK,CAAC,EACb,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACxB,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAC9B,UAAU,EAAE,cAAc;gBAC1B,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;gBACR,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE;oBACL,GAAG,EAAE;wBACH,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE;wBACjD,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;qBACjC;iBACF;aACF,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAiE,CAAC;YACzF,IAAI,CAAC,GAAG,EAAE,KAAK;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAEvC,MAAM,IAAI,GAAG,MAAM,OAAO;iBACvB,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;iBACvF,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAEjC,MAAM,OAAO,CAAC,MAAM,CAAC;gBACnB,UAAU,EAAE,cAAc;gBAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;gBAC9C,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE;oBACJ,GAAG,IAAI;oBACP,UAAU,EAAE,cAAc;oBAC1B,SAAS,EAAE,SAAS;oBACpB,QAAQ,EAAE,GAAG,CAAC,EAAE;iBACjB;aACF,CAAC;QACJ,CAAC;KACF,CAAC;IACF,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../src/strategy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frogbotai/plugin-api-keys",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "Multiple named API keys for FrogBot.",
5
5
  "license": "MIT",
6
6
  "author": "Colby Gilbert",
@@ -38,8 +38,8 @@
38
38
  "@payloadcms/ui": "3.85.1",
39
39
  "react": "^19.0.1 || ^19.1.2 || ^19.2.1",
40
40
  "react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
41
- "@frogbotai/gateway": "0.19.0",
42
- "frogbot": "0.19.0"
41
+ "@frogbotai/gateway": "0.20.0",
42
+ "frogbot": "0.20.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@payloadcms/ui": "3.85.1",
@@ -48,9 +48,9 @@
48
48
  "react": "19.2.6",
49
49
  "react-dom": "19.2.6",
50
50
  "typescript": "5.6.2",
51
- "frogbot": "0.19.0",
52
- "@frogbotai/gateway": "0.19.0",
53
- "@frogbotai/plugin-roles": "0.19.0"
51
+ "@frogbotai/gateway": "0.20.0",
52
+ "frogbot": "0.20.0",
53
+ "@frogbotai/plugin-roles": "0.20.0"
54
54
  },
55
55
  "publishConfig": {
56
56
  "access": "public"