@frogbotai/plugin-usage-reports 0.14.0 → 0.15.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 +18 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -8
- package/dist/index.js.map +1 -1
- package/package.json +10 -6
package/README.md
CHANGED
|
@@ -17,6 +17,22 @@ export default buildConfig({
|
|
|
17
17
|
|
|
18
18
|
The plugin adds a Usage Analytics admin view with the Firmware date range control and sortable Models and Users tables. Reports page through the marker-resolved usage collection with Payload's local API and aggregate in memory, so SQLite, PostgreSQL, and MongoDB use the same path.
|
|
19
19
|
|
|
20
|
-
The usage-log list gains Payload's experimental visual grouping and export-only CSV support
|
|
20
|
+
The usage-log list gains Payload's experimental visual grouping and export-only CSV support, delegated to `@frogbotai/plugin-import-export`. That package is an optional peer loaded only when raw export is on; set `rawExport: false` to skip it entirely. Set `pageSize` to change the local API batch size from its default of `5000`.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
`GET /api/usage/report` accepts `groupBy=model|user|day`, `from`, and `to`. It allows any authenticated caller by default. Pass `access` to narrow it with a normal access function, returning `false` to forbid the request or a `Where` to restrict the rows the report reads:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
usageReportsPlugin({
|
|
26
|
+
access: ({ req }) => (req.user?.isAdmin ? true : { user: { equals: req.user!.id } }),
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The roles plugin composes here without being required, since `allow()` returns an access function:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { allow } from '@frogbotai/plugin-roles';
|
|
34
|
+
|
|
35
|
+
usageReportsPlugin({ access: allow('admin', 'finance', 'auditor') });
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`groupBy=apiKey` is accepted only when the usage collection already has an `apiKey` relationship. `@frogbotai/plugin-api-keys` adds it, so list `usageReportsPlugin()` after `apiKeysPlugin()`.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Plugin } from 'frogbot';
|
|
1
|
+
import type { Access, Plugin } from 'frogbot';
|
|
2
2
|
export type UsageReportGroup = 'apiKey' | 'day' | 'model' | 'user';
|
|
3
3
|
export type UsageReportRow = {
|
|
4
4
|
key: string;
|
|
@@ -22,6 +22,7 @@ export type UsageReport = {
|
|
|
22
22
|
export type UsageReportsPluginOptions = {
|
|
23
23
|
pageSize?: number;
|
|
24
24
|
rawExport?: boolean;
|
|
25
|
+
access?: Access;
|
|
25
26
|
};
|
|
26
27
|
export declare function usageReportsPlugin(options?: UsageReportsPluginOptions): Plugin;
|
|
27
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAA0C,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AA0IF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,MAAM,CA0ClF"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { hasRole } from '@frogbotai/plugin-roles';
|
|
3
|
-
const groups = new Set(['apiKey', 'day', 'model', 'user']);
|
|
1
|
+
const loggedIn = ({ req }) => Boolean(req.user);
|
|
4
2
|
function idAndLabel(value) {
|
|
5
3
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
6
4
|
const key = String(value);
|
|
@@ -57,7 +55,7 @@ function addDoc(row, doc) {
|
|
|
57
55
|
row.totalTokens += number(doc, 'totalTokens');
|
|
58
56
|
row.costUSD += number(doc, 'costUSD');
|
|
59
57
|
}
|
|
60
|
-
function parseRequest(req) {
|
|
58
|
+
function parseRequest(req, groups) {
|
|
61
59
|
const search = new URL(req.url ?? '', 'http://localhost').searchParams;
|
|
62
60
|
const groupBy = search.get('groupBy');
|
|
63
61
|
const fromDate = new Date(search.get('from') ?? '');
|
|
@@ -66,16 +64,18 @@ function parseRequest(req) {
|
|
|
66
64
|
return;
|
|
67
65
|
return { groupBy, from: fromDate.toISOString(), to: toDate.toISOString() };
|
|
68
66
|
}
|
|
69
|
-
function buildReportEndpoint(slug, pageSize) {
|
|
67
|
+
function buildReportEndpoint({ slug, pageSize, groups, access }) {
|
|
70
68
|
return {
|
|
71
69
|
method: 'get',
|
|
72
70
|
path: '/usage/report',
|
|
73
71
|
handler: async (req) => {
|
|
74
72
|
if (!req.user)
|
|
75
73
|
return Response.json({ error: 'Unauthorized' }, { status: 401 });
|
|
76
|
-
|
|
74
|
+
const permitted = await access({ req });
|
|
75
|
+
if (permitted === false)
|
|
77
76
|
return Response.json({ error: 'Forbidden' }, { status: 403 });
|
|
78
|
-
const
|
|
77
|
+
const scope = permitted === true ? [] : [permitted];
|
|
78
|
+
const query = parseRequest(req, groups);
|
|
79
79
|
if (!query)
|
|
80
80
|
return Response.json({ error: 'Invalid groupBy or date range' }, { status: 400 });
|
|
81
81
|
const rows = new Map();
|
|
@@ -87,6 +87,7 @@ function buildReportEndpoint(slug, pageSize) {
|
|
|
87
87
|
and: [
|
|
88
88
|
{ requestedAt: { greater_than_equal: query.from } },
|
|
89
89
|
{ requestedAt: { less_than_equal: query.to } },
|
|
90
|
+
...scope,
|
|
90
91
|
],
|
|
91
92
|
},
|
|
92
93
|
page,
|
|
@@ -142,10 +143,13 @@ export function usageReportsPlugin(options = {}) {
|
|
|
142
143
|
? { ...collection, admin: { ...collection.admin, groupBy: true } }
|
|
143
144
|
: collection)
|
|
144
145
|
: [...config.collections, { ...usage, admin: { groupBy: true } }];
|
|
146
|
+
const groups = new Set(['day', 'model', 'user']);
|
|
147
|
+
if (usage.fields.some((field) => 'name' in field && field.name === 'apiKey'))
|
|
148
|
+
groups.add('apiKey');
|
|
145
149
|
const next = {
|
|
146
150
|
...config,
|
|
147
151
|
collections,
|
|
148
|
-
endpoints: [...(config.endpoints ?? []), buildReportEndpoint(usage.slug, pageSize)],
|
|
152
|
+
endpoints: [...(config.endpoints ?? []), buildReportEndpoint({ slug: usage.slug, pageSize, groups, access: options.access ?? loggedIn })],
|
|
149
153
|
admin: {
|
|
150
154
|
...config.admin,
|
|
151
155
|
components: {
|
|
@@ -166,6 +170,7 @@ export function usageReportsPlugin(options = {}) {
|
|
|
166
170
|
};
|
|
167
171
|
if (options.rawExport === false)
|
|
168
172
|
return next;
|
|
173
|
+
const { importExportPlugin } = await import('@frogbotai/plugin-import-export');
|
|
169
174
|
return await importExportPlugin({
|
|
170
175
|
collections: [{ slug: usage.slug, import: false, export: { format: 'csv' } }],
|
|
171
176
|
})(next);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frogbotai/plugin-usage-reports",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Usage analytics reports for FrogBot.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Colby Gilbert",
|
|
@@ -35,12 +35,16 @@
|
|
|
35
35
|
"node": ">=22"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@payloadcms/plugin-import-export": "3.85.1",
|
|
39
38
|
"@payloadcms/ui": "3.85.1",
|
|
40
39
|
"react": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
41
40
|
"react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
41
|
+
"@frogbotai/plugin-import-export": "0.15.0",
|
|
42
|
+
"frogbot": "0.15.0"
|
|
43
|
+
},
|
|
44
|
+
"peerDependenciesMeta": {
|
|
45
|
+
"@frogbotai/plugin-import-export": {
|
|
46
|
+
"optional": true
|
|
47
|
+
}
|
|
44
48
|
},
|
|
45
49
|
"devDependencies": {
|
|
46
50
|
"@payloadcms/plugin-import-export": "3.85.1",
|
|
@@ -50,8 +54,8 @@
|
|
|
50
54
|
"react": "19.2.6",
|
|
51
55
|
"react-dom": "19.2.6",
|
|
52
56
|
"typescript": "5.6.2",
|
|
53
|
-
"@frogbotai/plugin-
|
|
54
|
-
"frogbot": "0.
|
|
57
|
+
"@frogbotai/plugin-import-export": "0.15.0",
|
|
58
|
+
"frogbot": "0.15.0"
|
|
55
59
|
},
|
|
56
60
|
"publishConfig": {
|
|
57
61
|
"access": "public"
|