diff options
| author | Mohamed Bassem <me@mbassem.com> | 2026-01-11 09:27:35 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-11 09:27:35 +0000 |
| commit | 0f9132b5a9186accd991492b73b9ef904342df29 (patch) | |
| tree | 4050d433cddc5092dc4dcfc2fae29deef4f0028f /packages/trpc/models/assets.ts | |
| parent | 0e938c14044f66f7ad0ffe3eeda5fa8969a83849 (diff) | |
| download | karakeep-0f9132b5a9186accd991492b73b9ef904342df29.tar.zst | |
feat: privacy-respecting bookmark debugger admin tool (#2373)
* fix: parallelize queue enqueues in bookmark routes
* fix: guard meilisearch client init with mutex
* feat: add bookmark debugging admin tool
* more fixes
* more fixes
* more fixes
Diffstat (limited to 'packages/trpc/models/assets.ts')
| -rw-r--r-- | packages/trpc/models/assets.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/trpc/models/assets.ts b/packages/trpc/models/assets.ts index ad114341..f97cfffb 100644 --- a/packages/trpc/models/assets.ts +++ b/packages/trpc/models/assets.ts @@ -4,7 +4,11 @@ import { z } from "zod"; import { assets } from "@karakeep/db/schema"; import { deleteAsset } from "@karakeep/shared/assetdb"; +import serverConfig from "@karakeep/shared/config"; +import { createSignedToken } from "@karakeep/shared/signedTokens"; +import { zAssetSignedTokenSchema } from "@karakeep/shared/types/assets"; import { zAssetTypesSchema } from "@karakeep/shared/types/bookmarks"; +import { getAssetUrl } from "@karakeep/shared/utils/assetUtils"; import { AuthedContext } from ".."; import { @@ -254,4 +258,25 @@ export class Asset { }); } } + + getUrl() { + return getAssetUrl(this.asset.id); + } + + static getPublicSignedAssetUrl( + assetId: string, + assetOwnerId: string, + expireAt: number, + ) { + const payload: z.infer<typeof zAssetSignedTokenSchema> = { + assetId, + userId: assetOwnerId, + }; + const signedToken = createSignedToken( + payload, + serverConfig.signingSecret(), + expireAt, + ); + return `${serverConfig.publicApiUrl}/public/assets/${assetId}?token=${signedToken}`; + } } |
