{"ok":true,"meta":{"generatedAt":"2026-06-30T13:16:10.765Z"},"data":{"version":"tzv3-database-audit-policy-v1","endpoint":"/api/database/audit-policy","command":"npm run database:audit","script":"scripts/tzv3-database-audit.mjs","requiredEnvironment":["DATABASE_URL"],"configured":false,"provider":"static-seed","timeoutSeconds":5,"manifests":{"migrations":"/api/database/migration-manifest","seed":"/api/database/seed-manifest","bootstrap":"/api/database/bootstrap-policy"},"requiredTables":["profiles","media_assets","services","reviews","bookings","collections","programmatic_seo_pages","collection_profiles","status_events","admin_audit_logs"],"requiredIndexes":["profiles_slug_idx","profiles_status_idx","profiles_city_idx","profiles_published_idx","media_assets_profile_idx","services_profile_idx","reviews_profile_idx","reviews_published_idx","bookings_profile_idx","bookings_status_idx","collections_slug_idx","programmatic_seo_pages_slug_idx","programmatic_seo_pages_path_idx","programmatic_seo_pages_indexable_idx","status_events_profile_idx","status_events_source_idx"],"seedBaseline":{"profiles":8,"media_assets":16,"services":32,"collections":3,"collection_profiles":12,"programmatic_seo_pages":27},"selectOnlyQueries":[{"id":"database-required-tables","purpose":"Read public schema table inventory.","sql":"select tablename from pg_tables where schemaname = 'public'"},{"id":"database-required-indexes","purpose":"Read public schema index inventory.","sql":"select indexname from pg_indexes where schemaname = 'public'"},{"id":"database-count-profiles","purpose":"Read seed baseline count for profiles.","sql":"select count(*)::int as value from profiles"},{"id":"database-count-media_assets","purpose":"Read seed baseline count for media_assets.","sql":"select count(*)::int as value from media_assets"},{"id":"database-count-services","purpose":"Read seed baseline count for services.","sql":"select count(*)::int as value from services"},{"id":"database-count-collections","purpose":"Read seed baseline count for collections.","sql":"select count(*)::int as value from collections"},{"id":"database-count-collection_profiles","purpose":"Read seed baseline count for collection_profiles.","sql":"select count(*)::int as value from collection_profiles"},{"id":"database-count-programmatic_seo_pages","purpose":"Read seed baseline count for programmatic_seo_pages.","sql":"select count(*)::int as value from programmatic_seo_pages"}],"expectedChecks":["database-connection","database-required-tables","database-required-indexes","database-seed-baseline"],"expectedOutput":{"ok":"boolean","generatedAt":"ISO timestamp","safety":"read-only/no-secret boundary","checks":"array of { id, ok, messages, ...meta }"},"productionReady":false,"productionBlockers":["DATABASE_URL is missing"],"safety":{"mode":"read-only","writes":false,"printsSecrets":false,"note":"The database audit uses SELECT-only PostgreSQL queries, never mutates data, and must not print DATABASE_URL or admin tokens."}}}