tapimo 0.4.0 → 0.4.3
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 +1 -1
- package/dist/ApiKey.d.ts +1 -9
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +2 -3
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +53 -27
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +32 -17
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +2451 -1533
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +23 -9
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts +10 -0
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +4 -0
- package/dist/Assets.js.map +1 -1
- package/dist/Auth.d.ts +2 -1
- package/dist/Auth.d.ts.map +1 -1
- package/dist/Auth.js +2 -1
- package/dist/Auth.js.map +1 -1
- package/dist/Scope.d.ts +40 -15
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +44 -13
- package/dist/Scope.js.map +1 -1
- package/dist/admin/App.d.ts +560 -9
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +38 -6
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +10 -24
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +10 -3
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +833 -0
- package/dist/admin/apps/organizations.d.ts.map +1 -0
- package/dist/admin/apps/organizations.js +733 -0
- package/dist/admin/apps/organizations.js.map +1 -0
- package/dist/admin/apps/scopes.d.ts +8 -0
- package/dist/admin/apps/scopes.d.ts.map +1 -1
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.d.ts.map +1 -1
- package/dist/admin/ui.generated.js +53 -13
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +10 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +8 -0
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +9 -0
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +14 -0
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/data/App.d.ts +1354 -984
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +20 -3
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/FundingRouteProviders.d.ts +94 -5
- package/dist/apps/data/FundingRouteProviders.d.ts.map +1 -1
- package/dist/apps/data/FundingRouteProviders.js +196 -5
- package/dist/apps/data/FundingRouteProviders.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +38 -38
- package/dist/apps/data/routes/addresses.d.ts +24 -24
- package/dist/apps/data/routes/balances.d.ts +45 -45
- package/dist/apps/data/routes/blocks.d.ts +39 -39
- package/dist/apps/data/routes/coingecko.d.ts +176 -176
- package/dist/apps/data/routes/exchanges.d.ts +453 -453
- package/dist/apps/data/routes/fee-amm.d.ts +101 -101
- package/dist/apps/data/routes/funding.d.ts +730 -138
- package/dist/apps/data/routes/funding.d.ts.map +1 -1
- package/dist/apps/data/routes/funding.js +234 -0
- package/dist/apps/data/routes/funding.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +5 -5
- package/dist/apps/data/routes/rpc.d.ts +31 -31
- package/dist/apps/data/routes/verified-tokens.d.ts +81 -81
- package/dist/apps/management/App.d.ts +1156 -615
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +2 -2
- package/dist/apps/management/Billing.d.ts +3 -0
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +7 -2
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +106 -90
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +41 -30
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +278 -146
- package/dist/apps/management/routes/billing.d.ts.map +1 -1
- package/dist/apps/management/routes/billing.js +14 -14
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +93 -20
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +12 -15
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/me.d.ts +13 -13
- package/dist/apps/management/routes/members.d.ts +89 -18
- package/dist/apps/management/routes/members.d.ts.map +1 -1
- package/dist/apps/management/routes/members.js +10 -10
- package/dist/apps/management/routes/members.js.map +1 -1
- package/dist/apps/management/routes/orgs.d.ts +130 -70
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +19 -19
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +137 -48
- package/dist/apps/management/routes/projects.d.ts.map +1 -1
- package/dist/apps/management/routes/projects.js +12 -13
- package/dist/apps/management/routes/projects.js.map +1 -1
- package/dist/apps/management/routes/scopes.d.ts +14 -28
- package/dist/apps/management/routes/scopes.d.ts.map +1 -1
- package/dist/apps/management/routes/scopes.js +6 -7
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +63 -19
- package/dist/apps/management/routes/usage.d.ts.map +1 -1
- package/dist/apps/management/routes/usage.js +9 -10
- package/dist/apps/management/routes/usage.js.map +1 -1
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +35 -3
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/relay/App.d.ts +26 -4
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +17 -14
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/db/Db.d.ts +5 -3
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +52 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +13 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +16 -1
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/adminAuditLogs.d.ts +27 -0
- package/dist/db/tables/adminAuditLogs.d.ts.map +1 -0
- package/dist/db/tables/adminAuditLogs.js +19 -0
- package/dist/db/tables/adminAuditLogs.js.map +1 -0
- package/dist/db/tables/invitations.d.ts +1 -1
- package/dist/db/tables/invitations.d.ts.map +1 -1
- package/dist/db/tables/memberships.d.ts +32 -4
- package/dist/db/tables/memberships.d.ts.map +1 -1
- package/dist/db/tables/memberships.js +31 -0
- package/dist/db/tables/memberships.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +43 -1
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +103 -0
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +25 -0
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +22 -0
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/webhookDeliveries.d.ts +26 -0
- package/dist/db/tables/webhookDeliveries.d.ts.map +1 -1
- package/dist/db/tables/webhookDeliveries.js +37 -0
- package/dist/db/tables/webhookDeliveries.js.map +1 -1
- package/dist/handlers/relay.d.ts +13 -10
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +46 -16
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +13 -18
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +78 -58
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cursor.d.ts +1 -1
- package/dist/internal/Cursor.d.ts.map +1 -1
- package/dist/internal/Cursor.js +4 -0
- package/dist/internal/Cursor.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +2 -0
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/FundingRoutes.d.ts +170 -0
- package/dist/internal/FundingRoutes.d.ts.map +1 -1
- package/dist/internal/FundingRoutes.js +68 -6
- package/dist/internal/FundingRoutes.js.map +1 -1
- package/dist/internal/Log.d.ts +16 -1
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +5 -3
- package/dist/internal/Log.js.map +1 -1
- package/package.json +2 -2
- package/src/ApiKey.ts +2 -3
- package/src/ApiKeys.ts +95 -17
- package/src/App.test.ts +44 -2
- package/src/App.ts +29 -9
- package/src/Assets.ts +8 -0
- package/src/Auth.test-d.ts +36 -0
- package/src/Auth.ts +20 -1
- package/src/Client.test-d.ts +64 -17
- package/src/Scope.test.ts +34 -0
- package/src/Scope.ts +53 -17
- package/src/admin/App.test.ts +33 -3
- package/src/admin/App.ts +49 -14
- package/src/admin/apps/api-keys.ts +10 -3
- package/src/admin/apps/organizations.test.ts +455 -0
- package/src/admin/apps/organizations.ts +953 -0
- package/src/admin/apps/scopes.test.ts +10 -0
- package/src/admin/ui/plugin.ts +1 -1
- package/src/admin/ui/src/components/MobileProfile.tsx +2 -0
- package/src/admin/ui/src/components/ThemeToggle.tsx +20 -0
- package/src/admin/ui/src/lib/api-keys.ts +36 -19
- package/src/admin/ui/src/lib/config.ts +2 -3
- package/src/admin/ui/src/lib/organizations.test.ts +89 -0
- package/src/admin/ui/src/lib/organizations.ts +262 -0
- package/src/admin/ui/src/lib/query-client.ts +3 -1
- package/src/admin/ui/src/lib/theme.ts +57 -0
- package/src/admin/ui/src/routeTree.gen.ts +47 -4
- package/src/admin/ui/src/routes/__root.tsx +18 -3
- package/src/admin/ui/src/routes/api-keys.tsx +52 -7
- package/src/admin/ui/src/routes/index.tsx +1 -1
- package/src/admin/ui/src/routes/organizations.tsx +158 -0
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +710 -0
- package/src/admin/ui/src/start.ts +6 -0
- package/src/admin/ui.generated.ts +63 -13
- package/src/analytics/Analytics.ts +25 -0
- package/src/analytics/tables/requestEvents.ts +33 -0
- package/src/apps/composition.test.ts +82 -2
- package/src/apps/data/App.ts +24 -3
- package/src/apps/data/FundingRouteProviders.test.ts +204 -0
- package/src/apps/data/FundingRouteProviders.ts +294 -9
- package/src/apps/data/routes/funding.test.ts +90 -23
- package/src/apps/data/routes/funding.ts +315 -0
- package/src/apps/data/routes/rpc.test.ts +33 -0
- package/src/apps/management/App.ts +2 -2
- package/src/apps/management/Billing.ts +10 -2
- package/src/apps/management/routes/api-keys.test.ts +137 -1
- package/src/apps/management/routes/api-keys.ts +63 -38
- package/src/apps/management/routes/billing.ts +14 -14
- package/src/apps/management/routes/invitations.test.ts +102 -1
- package/src/apps/management/routes/invitations.ts +13 -15
- package/src/apps/management/routes/members.ts +10 -10
- package/src/apps/management/routes/orgs.test.ts +78 -16
- package/src/apps/management/routes/orgs.ts +21 -20
- package/src/apps/management/routes/projects.ts +12 -13
- package/src/apps/management/routes/scopes.test.ts +16 -0
- package/src/apps/management/routes/scopes.ts +6 -7
- package/src/apps/management/routes/usage.ts +9 -14
- package/src/apps/mcp.test.ts +25 -1
- package/src/apps/mcp.ts +43 -3
- package/src/apps/relay/App.test.ts +23 -18
- package/src/apps/relay/App.ts +35 -14
- package/src/db/Db.ts +59 -3
- package/src/db/Schema.ts +20 -1
- package/src/db/tables/adminAuditLogs.ts +47 -0
- package/src/db/tables/invitations.ts +1 -1
- package/src/db/tables/memberships.ts +59 -3
- package/src/db/tables/organizations.ts +148 -1
- package/src/db/tables/projects.ts +47 -0
- package/src/db/tables/webhookDeliveries.ts +83 -0
- package/src/handlers/relay.test-d.ts +8 -0
- package/src/handlers/relay.test.ts +2 -2
- package/src/handlers/relay.ts +62 -22
- package/src/internal/Auth.test.ts +174 -7
- package/src/internal/Auth.ts +90 -62
- package/src/internal/Cursor.test.ts +10 -0
- package/src/internal/Cursor.ts +5 -1
- package/src/internal/EdgeCache.test.ts +11 -0
- package/src/internal/EdgeCache.ts +2 -0
- package/src/internal/FundingRoutes.test.ts +26 -0
- package/src/internal/FundingRoutes.ts +187 -18
- package/src/internal/Log.test.ts +41 -3
- package/src/internal/Log.ts +23 -4
package/dist/admin/App.js
CHANGED
|
@@ -2,8 +2,11 @@ import { Hono } from 'hono';
|
|
|
2
2
|
import { HTTPException } from 'hono/http-exception';
|
|
3
3
|
import { requestId } from 'hono/request-id';
|
|
4
4
|
import * as ApiKey from '../ApiKey.js';
|
|
5
|
+
import * as Db from '../db/Db.js';
|
|
6
|
+
import * as AdminAuditLogs from '../db/tables/adminAuditLogs.js';
|
|
5
7
|
import * as Response from '../internal/Response.js';
|
|
6
8
|
import { apiKeys } from './apps/api-keys.js';
|
|
9
|
+
import { organizations } from './apps/organizations.js';
|
|
7
10
|
import { scopes } from './apps/scopes.js';
|
|
8
11
|
import { verifiedTokens } from './apps/verified-tokens.js';
|
|
9
12
|
import * as Ui from './ui.generated.js';
|
|
@@ -22,6 +25,7 @@ export function create(options) {
|
|
|
22
25
|
app.use('*', async (c, next) => {
|
|
23
26
|
// Admin data is per-principal and mutating: never cache.
|
|
24
27
|
c.header('Cache-Control', 'no-store');
|
|
28
|
+
c.set('analytics', options.analytics);
|
|
25
29
|
c.set('assets', options.assets);
|
|
26
30
|
c.set('db', options.db);
|
|
27
31
|
c.set('kv', options.kv);
|
|
@@ -39,13 +43,14 @@ export function create(options) {
|
|
|
39
43
|
},
|
|
40
44
|
};
|
|
41
45
|
}
|
|
42
|
-
// Renders the public SPA shell:
|
|
43
|
-
//
|
|
44
|
-
// `identity` is `null` when logged out). `<` is escaped to keep `<script>`.
|
|
46
|
+
// Renders the public SPA shell: stamps its hydration-safe base and auth
|
|
47
|
+
// placeholders with request values. `<` is escaped to keep the config script.
|
|
45
48
|
const serveShell = (c) => {
|
|
46
49
|
const mount = c.req.routePath.replace(/\*$/, '').replace(/\/$/, '');
|
|
47
50
|
const config = JSON.stringify(authConfig(c.get('identity'))).replaceAll('<', '\\u003c');
|
|
48
|
-
return c.html(Ui.shell
|
|
51
|
+
return c.html(Ui.shell
|
|
52
|
+
.replace('<base data-tempo-base="true" href="/"/>', `<base data-tempo-base="true" href="${mount}/"/>`)
|
|
53
|
+
.replace('window.__TEMPO_API_CONFIG__=undefined', `window.__TEMPO_API_CONFIG__=${config}`));
|
|
49
54
|
};
|
|
50
55
|
// Browser navigations (`Accept: text/html`) get the public shell before the
|
|
51
56
|
// data routes match, so SPA routes that share a path with a data endpoint
|
|
@@ -63,19 +68,46 @@ export function create(options) {
|
|
|
63
68
|
});
|
|
64
69
|
return next();
|
|
65
70
|
};
|
|
66
|
-
|
|
71
|
+
const protectedPaths = [
|
|
67
72
|
'/config.json',
|
|
68
73
|
'/api-keys',
|
|
69
74
|
'/api-keys/*',
|
|
75
|
+
'/organizations',
|
|
76
|
+
'/organizations/*',
|
|
70
77
|
'/scopes',
|
|
71
78
|
'/scopes/*',
|
|
72
79
|
'/verified-tokens',
|
|
73
80
|
'/verified-tokens/*',
|
|
74
|
-
]
|
|
81
|
+
];
|
|
82
|
+
for (const path of protectedPaths)
|
|
75
83
|
app.use(path, requireAuth);
|
|
84
|
+
for (const path of protectedPaths)
|
|
85
|
+
app.use(path, async (c, next) => {
|
|
86
|
+
const identity = c.get('identity');
|
|
87
|
+
if (!identity)
|
|
88
|
+
return;
|
|
89
|
+
const search = new URL(c.req.url).searchParams;
|
|
90
|
+
const record = (status) => AdminAuditLogs.insert(Db.get(c.get('db')), {
|
|
91
|
+
actor: identity.email,
|
|
92
|
+
method: c.req.method,
|
|
93
|
+
path: c.req.path,
|
|
94
|
+
query: search.size ? search.toString() : undefined,
|
|
95
|
+
requestId: c.get('requestId'),
|
|
96
|
+
status,
|
|
97
|
+
});
|
|
98
|
+
try {
|
|
99
|
+
await next();
|
|
100
|
+
}
|
|
101
|
+
catch (cause) {
|
|
102
|
+
await record(500);
|
|
103
|
+
throw cause;
|
|
104
|
+
}
|
|
105
|
+
await record(c.res.status);
|
|
106
|
+
});
|
|
76
107
|
const routed = app
|
|
77
108
|
.get('/config.json', (c) => c.json(authConfig(c.get('identity')), 200))
|
|
78
109
|
.route('/api-keys', apiKeys())
|
|
110
|
+
.route('/organizations', organizations())
|
|
79
111
|
.route('/scopes', scopes())
|
|
80
112
|
.route('/verified-tokens', verifiedTokens());
|
|
81
113
|
// Any other non-API GET renders the public SPA shell (catch-all last, so data
|
package/dist/admin/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/admin/App.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAa,MAAM,MAAM,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAA2B,MAAM,iBAAiB,CAAA;AAEpE,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/admin/App.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,17 +20,19 @@ export declare namespace schema {
|
|
|
20
20
|
rateLimits: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
21
21
|
perMinute: z.ZodMiniNumber<number>;
|
|
22
22
|
}, z.core.$strip>>>;
|
|
23
|
+
expiresAt: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
24
|
+
orgId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
23
25
|
scopes: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
24
26
|
"*": "*";
|
|
25
27
|
"data:read": "data:read";
|
|
26
28
|
"indexer:query": "indexer:query";
|
|
29
|
+
"management:read": "management:read";
|
|
30
|
+
"management:write": "management:write";
|
|
27
31
|
"rpc-relay:read": "rpc-relay:read";
|
|
28
32
|
"rpc-relay:sponsor": "rpc-relay:sponsor";
|
|
29
33
|
"webhooks:read": "webhooks:read";
|
|
30
34
|
"webhooks:write": "webhooks:write";
|
|
31
35
|
}>>>;
|
|
32
|
-
expiresAt: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
33
|
-
orgId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
34
36
|
}, z.core.$strip>;
|
|
35
37
|
/** Response: the record plus the one-time plaintext token. */
|
|
36
38
|
const Response: z.ZodMiniObject<{
|
|
@@ -46,15 +48,7 @@ export declare namespace schema {
|
|
|
46
48
|
rateLimits: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
47
49
|
perMinute: z.ZodMiniNumber<number>;
|
|
48
50
|
}, z.core.$strip>>>;
|
|
49
|
-
scopes: z.ZodMiniReadonly<z.ZodMiniArray<z.
|
|
50
|
-
"*": "*";
|
|
51
|
-
"data:read": "data:read";
|
|
52
|
-
"indexer:query": "indexer:query";
|
|
53
|
-
"rpc-relay:read": "rpc-relay:read";
|
|
54
|
-
"rpc-relay:sponsor": "rpc-relay:sponsor";
|
|
55
|
-
"webhooks:read": "webhooks:read";
|
|
56
|
-
"webhooks:write": "webhooks:write";
|
|
57
|
-
}>>>;
|
|
51
|
+
scopes: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
58
52
|
createdAt: z.ZodMiniString<string>;
|
|
59
53
|
createdBy: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
60
54
|
expiresAt: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -83,15 +77,7 @@ export declare namespace schema {
|
|
|
83
77
|
rateLimits: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
84
78
|
perMinute: z.ZodMiniNumber<number>;
|
|
85
79
|
}, z.core.$strip>>>;
|
|
86
|
-
scopes: z.ZodMiniReadonly<z.ZodMiniArray<z.
|
|
87
|
-
"*": "*";
|
|
88
|
-
"data:read": "data:read";
|
|
89
|
-
"indexer:query": "indexer:query";
|
|
90
|
-
"rpc-relay:read": "rpc-relay:read";
|
|
91
|
-
"rpc-relay:sponsor": "rpc-relay:sponsor";
|
|
92
|
-
"webhooks:read": "webhooks:read";
|
|
93
|
-
"webhooks:write": "webhooks:write";
|
|
94
|
-
}>>>;
|
|
80
|
+
scopes: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
95
81
|
createdAt: z.ZodMiniString<string>;
|
|
96
82
|
createdBy: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
97
83
|
expiresAt: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -168,7 +154,7 @@ export declare function apiKeys(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
168
154
|
perMinute: number;
|
|
169
155
|
};
|
|
170
156
|
} | undefined;
|
|
171
|
-
scopes: readonly
|
|
157
|
+
scopes: readonly string[];
|
|
172
158
|
createdAt: string;
|
|
173
159
|
createdBy?: string | undefined;
|
|
174
160
|
expiresAt?: string | undefined;
|
|
@@ -186,9 +172,9 @@ export declare function apiKeys(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
186
172
|
rateLimits?: Record<string, {
|
|
187
173
|
perMinute: number;
|
|
188
174
|
}> | undefined;
|
|
189
|
-
scopes: readonly ("*" | "data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[];
|
|
190
175
|
expiresAt?: string | undefined;
|
|
191
176
|
orgId?: string | undefined;
|
|
177
|
+
scopes: readonly ("*" | "data:read" | "indexer:query" | "management:read" | "management:write" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[];
|
|
192
178
|
};
|
|
193
179
|
};
|
|
194
180
|
};
|
|
@@ -209,7 +195,7 @@ export declare function apiKeys(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
209
195
|
perMinute: number;
|
|
210
196
|
};
|
|
211
197
|
} | undefined;
|
|
212
|
-
scopes: readonly
|
|
198
|
+
scopes: readonly string[];
|
|
213
199
|
createdAt: string;
|
|
214
200
|
createdBy?: string | undefined;
|
|
215
201
|
expiresAt?: string | undefined;
|
|
@@ -292,7 +278,7 @@ export declare function apiKeys(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
292
278
|
perMinute: number;
|
|
293
279
|
};
|
|
294
280
|
} | undefined;
|
|
295
|
-
scopes: readonly
|
|
281
|
+
scopes: readonly string[];
|
|
296
282
|
createdAt: string;
|
|
297
283
|
createdBy?: string | undefined;
|
|
298
284
|
expiresAt?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/admin/apps/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/admin/apps/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AAGtD,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAA;AAErC,uDAAuD;AACvD,yBAAiB,MAAM,CAAC;IACtB,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B;;;WAGG;QACI,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;yBAOhB,CAAA;QAED,8DAA8D;QACvD,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;yBAOpB,CAAA;KACF;IAED,6CAA6C;IAC7C,UAAiB,WAAW,CAAC;QAC3B,yCAAyC;QAClC,MAAM,KAAK;;yBAM4C,CAAA;QAE9D,2EAA2E;QACpE,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;yBAOpB,CAAA;KACF;IAED,iDAAiD;IACjD,UAAiB,eAAe,CAAC;QAC/B,0EAA0E;QACnE,MAAM,IAAI;;;yBAMhB,CAAA;QAED,6CAA6C;QACtC,MAAM,MAAM;;yBAIgD,CAAA;KACpE;IAED,iDAAiD;IACjD,UAAiB,eAAe,CAAC;QAC/B,4CAA4C;QACrC,MAAM,QAAQ;;;yBAMpB,CAAA;KACF;IAED,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,0CAA0C;QACnC,MAAM,MAAM;;yBAI6C,CAAA;QAEhE,iDAAiD;QAC1C,MAAM,QAAQ;;yBAE6B,CAAA;KACnD;CACF;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiItB"}
|
|
@@ -4,6 +4,7 @@ import * as ApiKeys from '../../ApiKeys.js';
|
|
|
4
4
|
import * as OpenApi from '../../internal/OpenApi.js';
|
|
5
5
|
import * as Response from '../../internal/Response.js';
|
|
6
6
|
import * as Schema from '../../internal/Schema.js';
|
|
7
|
+
import * as Scope from '../../Scope.js';
|
|
7
8
|
/** Zod schemas owned by the admin API-keys handler. */
|
|
8
9
|
export var schema;
|
|
9
10
|
(function (schema) {
|
|
@@ -14,7 +15,11 @@ export var schema;
|
|
|
14
15
|
* Request body for minting a key (`MintInput` minus `createdBy`, which the
|
|
15
16
|
* server sets from the verified identity so it can't be spoofed).
|
|
16
17
|
*/
|
|
17
|
-
createApiKey.Body = Schema.describe(z.omit(ApiKeys.schema.MintInput, { createdBy: true }),
|
|
18
|
+
createApiKey.Body = Schema.describe(z.extend(z.omit(ApiKeys.schema.MintInput, { createdBy: true }), {
|
|
19
|
+
scopes: z
|
|
20
|
+
.readonly(z.array(z.enum([...Scope.catalog.map((entry) => entry.scope), Scope.wildcard])))
|
|
21
|
+
.check(z.describe("Granted scopes. '*' grants all scopes.")),
|
|
22
|
+
}), 'Fields accepted when minting an API key.');
|
|
18
23
|
/** Response: the record plus the one-time plaintext token. */
|
|
19
24
|
createApiKey.Response = Schema.describe(z.extend(ApiKeys.schema.Record, {
|
|
20
25
|
token: z
|
|
@@ -46,7 +51,7 @@ export var schema;
|
|
|
46
51
|
/** Request body re-attributing a key; omitted fields keep their value. */
|
|
47
52
|
attributeApiKey.Body = Schema.describe(z.object({
|
|
48
53
|
orgId: z.optional(z.string()).check(z.describe('New owning organization id (`org_…`).')),
|
|
49
|
-
projectId: z.optional(z.string()).check(z.describe('New
|
|
54
|
+
projectId: z.optional(z.string()).check(z.describe('New attributed project id (`prj_…`).')),
|
|
50
55
|
}), 'Attribution to apply to an API key.');
|
|
51
56
|
/** Path parameters for attributing a key. */
|
|
52
57
|
attributeApiKey.Params = z
|
|
@@ -140,7 +145,9 @@ export function apiKeys() {
|
|
|
140
145
|
tags: ['API keys'],
|
|
141
146
|
}), async (c) => {
|
|
142
147
|
const { orgId } = c.req.valid('query');
|
|
143
|
-
const data =
|
|
148
|
+
const data = orgId
|
|
149
|
+
? await ApiKeys.listByOrg(c.get('kv').store, orgId)
|
|
150
|
+
: await ApiKeys.list(c.get('kv').store);
|
|
144
151
|
return c.json(Response.validated(schema.listApiKeys.Response, { data }));
|
|
145
152
|
})
|
|
146
153
|
.delete('/:id', OpenApi.validate('param', schema.revokeApiKey.Params, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../src/admin/apps/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAA;AACpD,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../src/admin/apps/api-keys.ts"],"names":[],"mappings":"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"}
|