forked from wrenn/wrenn
Disk sizing: - Add disk_size_mb column to sandboxes table (default 20480 = 20GB) - Add disk_size_mb to CreateSandboxRequest proto, passed through the full chain: service → RPC → host agent → sandbox manager → devicemapper - devicemapper.CreateSnapshot takes separate cowSizeBytes param so the sparse CoW file can be sized independently from the origin - EnsureImageSizes() runs at host agent startup: expands any base image smaller than 20GB via truncate + resize2fs (sparse, no extra physical disk). Sandboxes then get the full 20GB via fast dm-snapshot path - FlattenRootfs shrinks output images with resize2fs -M so stored templates are compact; EnsureImageSizes re-expands on next startup Admin templates visibility: - Add GET /v1/admin/templates endpoint listing all templates across teams - Frontend admin templates page uses listAdminTemplates() instead of team-scoped listSnapshots() - Platform templates (team_id = all-zeros UUID) now visible to all teams: GetTemplateByTeam, ListTemplatesByTeam, ListTemplatesByTeamAndType queries include platform team_id in WHERE clause
32 lines
1.2 KiB
SQL
32 lines
1.2 KiB
SQL
-- name: InsertTemplate :one
|
|
INSERT INTO templates (name, type, vcpus, memory_mb, size_bytes, team_id)
|
|
VALUES ($1, $2, $3, $4, $5, $6)
|
|
RETURNING *;
|
|
|
|
-- name: GetTemplate :one
|
|
SELECT * FROM templates WHERE name = $1;
|
|
|
|
-- name: GetTemplateByTeam :one
|
|
-- Platform templates (team_id = 00000000-...) are visible to all teams.
|
|
SELECT * FROM templates WHERE name = $1 AND (team_id = $2 OR team_id = '00000000-0000-0000-0000-000000000000');
|
|
|
|
-- name: ListTemplates :many
|
|
SELECT * FROM templates ORDER BY created_at DESC;
|
|
|
|
-- name: ListTemplatesByType :many
|
|
SELECT * FROM templates WHERE type = $1 ORDER BY created_at DESC;
|
|
|
|
-- name: ListTemplatesByTeam :many
|
|
-- Platform templates are visible to all teams.
|
|
SELECT * FROM templates WHERE (team_id = $1 OR team_id = '00000000-0000-0000-0000-000000000000') ORDER BY created_at DESC;
|
|
|
|
-- name: ListTemplatesByTeamAndType :many
|
|
-- Platform templates are visible to all teams.
|
|
SELECT * FROM templates WHERE (team_id = $1 OR team_id = '00000000-0000-0000-0000-000000000000') AND type = $2 ORDER BY created_at DESC;
|
|
|
|
-- name: DeleteTemplate :exec
|
|
DELETE FROM templates WHERE name = $1;
|
|
|
|
-- name: DeleteTemplateByTeam :exec
|
|
DELETE FROM templates WHERE name = $1 AND team_id = $2;
|