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
+8
View File
@@ -145,6 +145,14 @@ func main() {
nodeFonts.DELETE("/:id", fontH.Delete)
}
// ── Exports management (admin: all users' rendered videos) ────────────────
adminExports := v1.Group("/admin-exports", auth, admin)
{
adminExports.GET("", exportH.AdminList)
adminExports.DELETE("/:export_id", exportH.AdminDelete)
adminExports.GET("/:export_id/download-url", exportH.AdminDownloadURL)
}
// ── Internal (node agents only — HMAC auth) ───────────────────────────────
internal := v1.Group("/internal", nodeAuth)
{