feat(render+admin): exports management (all users' rendered videos)
Build backend images / build content-svc (push) Failing after 54s
Build backend images / build file-svc (push) Failing after 55s
Build backend images / build gateway (push) Failing after 52s
Build backend images / build identity-svc (push) Failing after 55s
Build backend images / build notification-svc (push) Failing after 58s
Build backend images / build render-svc (push) Failing after 48s
Build backend images / build studio-svc (push) Failing after 1m0s

- render-svc: admin-scoped store (ListAllExports / GetExportByIDAny /
  SoftDeleteExportAny) + GET/DELETE/download-url under /v1/admin-exports
  (admin-gated; separate prefix so it routes to render, not identity's /admin)
- gateway: /v1/admin-exports/* → render
- admin /admin/exports: paginated table of every rendered export with thumbnail,
  type/quality, size, duration, dimensions, produce + expiry dates; download
  (presigned URL) and delete

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-03 07:04:06 +03:30
parent db167062e6
commit 928956689b
9 changed files with 263 additions and 2 deletions
+7
View File
@@ -0,0 +1,7 @@
"use client";
import { ExportsAdmin } from "@/components/admin/ExportsAdmin";
export default function Page() {
return <ExportsAdmin />;
}
+1
View File
@@ -42,6 +42,7 @@ export default async function AdminLayout({
{ href: "/admin/nodes", label: t("nodes") },
{ href: "/admin/node-fonts", label: t("nodeFonts") },
{ href: "/admin/renders", label: t("renderQueue") },
{ href: "/admin/exports", label: t("exports") },
];
return (
<div className="min-h-screen bg-[#0c0e1a] text-gray-200">