From 3fa75c9702a58a24c1373582259048f0f04c8631 Mon Sep 17 00:00:00 2001 From: Jarek Krochmalski Date: Wed, 2 Sep 2026 15:52:44 +0200 Subject: [PATCH] drop the unused hawser stacks-dir column and layout --- drizzle-pg/0015_hawser_stacks_dir.sql | 1 - drizzle-pg/meta/0015_snapshot.json | 3587 ---------------------- drizzle-pg/meta/_journal.json | 9 +- drizzle/0015_hawser_stacks_dir.sql | 1 - drizzle/meta/0015_snapshot.json | 3754 ------------------------ drizzle/meta/_journal.json | 9 +- src/lib/server/db/schema/index.ts | 1 - src/lib/server/db/schema/pg-schema.ts | 1 - src/lib/server/stacks-display-paths.ts | 72 - tests/hawser-display-paths.test.ts | 95 - 10 files changed, 2 insertions(+), 7528 deletions(-) delete mode 100644 drizzle-pg/0015_hawser_stacks_dir.sql delete mode 100644 drizzle-pg/meta/0015_snapshot.json delete mode 100644 drizzle/0015_hawser_stacks_dir.sql delete mode 100644 drizzle/meta/0015_snapshot.json delete mode 100644 src/lib/server/stacks-display-paths.ts delete mode 100644 tests/hawser-display-paths.test.ts diff --git a/drizzle-pg/0015_hawser_stacks_dir.sql b/drizzle-pg/0015_hawser_stacks_dir.sql deleted file mode 100644 index d0b938d..0000000 --- a/drizzle-pg/0015_hawser_stacks_dir.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "environments" ADD COLUMN "hawser_stacks_dir" text; diff --git a/drizzle-pg/meta/0015_snapshot.json b/drizzle-pg/meta/0015_snapshot.json deleted file mode 100644 index c0ebd33..0000000 --- a/drizzle-pg/meta/0015_snapshot.json +++ /dev/null @@ -1,3587 +0,0 @@ -{ - "id": "3e5a7c91-2b4d-4f80-9a1c-6d8e0f2b4c5a", - "prevId": "ed69891b-926f-4272-a30f-fe32b68e5b43", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.api_tokens": { - "name": "api_tokens", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "token_hash": { - "name": "token_hash", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "token_prefix": { - "name": "token_prefix", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "last_used": { - "name": "last_used", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "api_tokens_user_id_idx": { - "name": "api_tokens_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "api_tokens_token_prefix_idx": { - "name": "api_tokens_token_prefix_idx", - "columns": [ - { - "expression": "token_prefix", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "api_tokens_user_id_users_id_fk": { - "name": "api_tokens_user_id_users_id_fk", - "tableFrom": "api_tokens", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "api_tokens_token_hash_unique": { - "name": "api_tokens_token_hash_unique", - "nullsNotDistinct": false, - "columns": [ - "token_hash" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.audit_logs": { - "name": "audit_logs", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "action": { - "name": "action", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "entity_type": { - "name": "entity_type", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "entity_id": { - "name": "entity_id", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "entity_name": { - "name": "entity_name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "details": { - "name": "details", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "ip_address": { - "name": "ip_address", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "user_agent": { - "name": "user_agent", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "audit_logs_user_id_idx": { - "name": "audit_logs_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "audit_logs_created_at_idx": { - "name": "audit_logs_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "audit_logs_user_id_users_id_fk": { - "name": "audit_logs_user_id_users_id_fk", - "tableFrom": "audit_logs", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "audit_logs_environment_id_environments_id_fk": { - "name": "audit_logs_environment_id_environments_id_fk", - "tableFrom": "audit_logs", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.auth_settings": { - "name": "auth_settings", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "auth_enabled": { - "name": "auth_enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "default_provider": { - "name": "default_provider", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'local'" - }, - "session_timeout": { - "name": "session_timeout", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 86400 - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.auto_update_settings": { - "name": "auto_update_settings", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "schedule_type": { - "name": "schedule_type", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'daily'" - }, - "cron_expression": { - "name": "cron_expression", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "vulnerability_criteria": { - "name": "vulnerability_criteria", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'never'" - }, - "last_checked": { - "name": "last_checked", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "last_updated": { - "name": "last_updated", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "auto_update_settings_environment_id_environments_id_fk": { - "name": "auto_update_settings_environment_id_environments_id_fk", - "tableFrom": "auto_update_settings", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "auto_update_settings_environment_id_container_name_unique": { - "name": "auto_update_settings_environment_id_container_name_unique", - "nullsNotDistinct": false, - "columns": [ - "environment_id", - "container_name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.backup_configs": { - "name": "backup_configs", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "'container'" - }, - "target_name": { - "name": "target_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "destination_id": { - "name": "destination_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "all_volumes": { - "name": "all_volumes", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "selected_volumes": { - "name": "selected_volumes", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "stop_before_backup": { - "name": "stop_before_backup", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "schedule": { - "name": "schedule", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "retention": { - "name": "retention", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "options": { - "name": "options", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "tags": { - "name": "tags", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "last_backup_at": { - "name": "last_backup_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "last_backup_status": { - "name": "last_backup_status", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "backup_configs_environment_id_environments_id_fk": { - "name": "backup_configs_environment_id_environments_id_fk", - "tableFrom": "backup_configs", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "backup_configs_destination_id_backup_destinations_id_fk": { - "name": "backup_configs_destination_id_backup_destinations_id_fk", - "tableFrom": "backup_configs", - "tableTo": "backup_destinations", - "columnsFrom": [ - "destination_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.backup_destinations": { - "name": "backup_destinations", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "repository": { - "name": "repository", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "env_vars": { - "name": "env_vars", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "flags": { - "name": "flags", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "host_path": { - "name": "host_path", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "cacert": { - "name": "cacert", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "tls_client_cert": { - "name": "tls_client_cert", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "policies": { - "name": "policies", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "last_test_at": { - "name": "last_test_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "last_test_status": { - "name": "last_test_status", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "last_test_error": { - "name": "last_test_error", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "backup_destinations_name_unique": { - "name": "backup_destinations_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.config_sets": { - "name": "config_sets", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "env_vars": { - "name": "env_vars", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "labels": { - "name": "labels", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "ports": { - "name": "ports", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "volumes": { - "name": "volumes", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "network_mode": { - "name": "network_mode", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'bridge'" - }, - "restart_policy": { - "name": "restart_policy", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'no'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "config_sets_name_unique": { - "name": "config_sets_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.container_events": { - "name": "container_events", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "container_id": { - "name": "container_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "action": { - "name": "action", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "actor_attributes": { - "name": "actor_attributes", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "container_events_env_timestamp_idx": { - "name": "container_events_env_timestamp_idx", - "columns": [ - { - "expression": "environment_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "timestamp", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "container_events_environment_id_environments_id_fk": { - "name": "container_events_environment_id_environments_id_fk", - "tableFrom": "container_events", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.container_icon_overrides": { - "name": "container_icon_overrides", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "container_icon_overrides_environment_id_environments_id_fk": { - "name": "container_icon_overrides_environment_id_environments_id_fk", - "tableFrom": "container_icon_overrides", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "container_icon_overrides_container_name_environment_id_unique": { - "name": "container_icon_overrides_container_name_environment_id_unique", - "nullsNotDistinct": false, - "columns": [ - "container_name", - "environment_id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.environment_notifications": { - "name": "environment_notifications", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "notification_id": { - "name": "notification_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "event_types": { - "name": "event_types", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "environment_notifications_environment_id_environments_id_fk": { - "name": "environment_notifications_environment_id_environments_id_fk", - "tableFrom": "environment_notifications", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "environment_notifications_notification_id_notification_settings_id_fk": { - "name": "environment_notifications_notification_id_notification_settings_id_fk", - "tableFrom": "environment_notifications", - "tableTo": "notification_settings", - "columnsFrom": [ - "notification_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "environment_notifications_environment_id_notification_id_unique": { - "name": "environment_notifications_environment_id_notification_id_unique", - "nullsNotDistinct": false, - "columns": [ - "environment_id", - "notification_id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.environments": { - "name": "environments", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "host": { - "name": "host", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "port": { - "name": "port", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 2375 - }, - "protocol": { - "name": "protocol", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'http'" - }, - "tls_ca": { - "name": "tls_ca", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "tls_cert": { - "name": "tls_cert", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "tls_key": { - "name": "tls_key", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "tls_skip_verify": { - "name": "tls_skip_verify", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'globe'" - }, - "collect_activity": { - "name": "collect_activity", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "collect_metrics": { - "name": "collect_metrics", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "highlight_changes": { - "name": "highlight_changes", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "labels": { - "name": "labels", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "connection_type": { - "name": "connection_type", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'socket'" - }, - "socket_path": { - "name": "socket_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'/var/run/docker.sock'" - }, - "hawser_token": { - "name": "hawser_token", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "hawser_last_seen": { - "name": "hawser_last_seen", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "hawser_agent_id": { - "name": "hawser_agent_id", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "hawser_agent_name": { - "name": "hawser_agent_name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "hawser_version": { - "name": "hawser_version", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "hawser_capabilities": { - "name": "hawser_capabilities", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "hawser_stacks_dir": { - "name": "hawser_stacks_dir", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "environments_name_unique": { - "name": "environments_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.git_credentials": { - "name": "git_credentials", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "auth_type": { - "name": "auth_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "'none'" - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "ssh_private_key": { - "name": "ssh_private_key", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "ssh_passphrase": { - "name": "ssh_passphrase", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "git_credentials_name_unique": { - "name": "git_credentials_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.git_repositories": { - "name": "git_repositories", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "branch": { - "name": "branch", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'main'" - }, - "credential_id": { - "name": "credential_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "compose_path": { - "name": "compose_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'docker-compose.yml'" - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "auto_update": { - "name": "auto_update", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "auto_update_schedule": { - "name": "auto_update_schedule", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'daily'" - }, - "auto_update_cron": { - "name": "auto_update_cron", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'0 3 * * *'" - }, - "webhook_enabled": { - "name": "webhook_enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "webhook_secret": { - "name": "webhook_secret", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "last_sync": { - "name": "last_sync", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "last_commit": { - "name": "last_commit", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "sync_status": { - "name": "sync_status", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'pending'" - }, - "sync_error": { - "name": "sync_error", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "git_repositories_credential_id_git_credentials_id_fk": { - "name": "git_repositories_credential_id_git_credentials_id_fk", - "tableFrom": "git_repositories", - "tableTo": "git_credentials", - "columnsFrom": [ - "credential_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "git_repositories_name_unique": { - "name": "git_repositories_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.git_stacks": { - "name": "git_stacks", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "repository_id": { - "name": "repository_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "branch": { - "name": "branch", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "compose_path": { - "name": "compose_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'docker-compose.yml'" - }, - "env_file_path": { - "name": "env_file_path", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "auto_update": { - "name": "auto_update", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "auto_update_schedule": { - "name": "auto_update_schedule", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'daily'" - }, - "auto_update_cron": { - "name": "auto_update_cron", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'0 3 * * *'" - }, - "webhook_enabled": { - "name": "webhook_enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "webhook_secret": { - "name": "webhook_secret", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "context_dir": { - "name": "context_dir", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "build_on_deploy": { - "name": "build_on_deploy", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "no_build_cache": { - "name": "no_build_cache", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "repull_images": { - "name": "repull_images", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "force_redeploy": { - "name": "force_redeploy", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "last_sync": { - "name": "last_sync", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "last_commit": { - "name": "last_commit", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "sync_status": { - "name": "sync_status", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'pending'" - }, - "sync_error": { - "name": "sync_error", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "synced_files": { - "name": "synced_files", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "git_stacks_environment_id_environments_id_fk": { - "name": "git_stacks_environment_id_environments_id_fk", - "tableFrom": "git_stacks", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "git_stacks_repository_id_git_repositories_id_fk": { - "name": "git_stacks_repository_id_git_repositories_id_fk", - "tableFrom": "git_stacks", - "tableTo": "git_repositories", - "columnsFrom": [ - "repository_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "git_stacks_stack_name_environment_id_unique": { - "name": "git_stacks_stack_name_environment_id_unique", - "nullsNotDistinct": false, - "columns": [ - "stack_name", - "environment_id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.hawser_tokens": { - "name": "hawser_tokens", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "token_prefix": { - "name": "token_prefix", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "last_used": { - "name": "last_used", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "hawser_tokens_environment_id_environments_id_fk": { - "name": "hawser_tokens_environment_id_environments_id_fk", - "tableFrom": "hawser_tokens", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "hawser_tokens_token_unique": { - "name": "hawser_tokens_token_unique", - "nullsNotDistinct": false, - "columns": [ - "token" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.host_metrics": { - "name": "host_metrics", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "cpu_percent": { - "name": "cpu_percent", - "type": "double precision", - "primaryKey": false, - "notNull": true - }, - "memory_percent": { - "name": "memory_percent", - "type": "double precision", - "primaryKey": false, - "notNull": true - }, - "memory_used": { - "name": "memory_used", - "type": "bigint", - "primaryKey": false, - "notNull": false - }, - "memory_total": { - "name": "memory_total", - "type": "bigint", - "primaryKey": false, - "notNull": false - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "host_metrics_env_timestamp_idx": { - "name": "host_metrics_env_timestamp_idx", - "columns": [ - { - "expression": "environment_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "timestamp", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "host_metrics_environment_id_environments_id_fk": { - "name": "host_metrics_environment_id_environments_id_fk", - "tableFrom": "host_metrics", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.ldap_config": { - "name": "ldap_config", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "server_url": { - "name": "server_url", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "bind_dn": { - "name": "bind_dn", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "bind_password": { - "name": "bind_password", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "base_dn": { - "name": "base_dn", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "user_filter": { - "name": "user_filter", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'(uid={{username}})'" - }, - "username_attribute": { - "name": "username_attribute", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'uid'" - }, - "email_attribute": { - "name": "email_attribute", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'mail'" - }, - "display_name_attribute": { - "name": "display_name_attribute", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'cn'" - }, - "group_base_dn": { - "name": "group_base_dn", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "group_filter": { - "name": "group_filter", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "admin_group": { - "name": "admin_group", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "role_mappings": { - "name": "role_mappings", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "tls_enabled": { - "name": "tls_enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "tls_ca": { - "name": "tls_ca", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.notification_settings": { - "name": "notification_settings", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "config": { - "name": "config", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "event_types": { - "name": "event_types", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.oidc_config": { - "name": "oidc_config", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "issuer_url": { - "name": "issuer_url", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "client_id": { - "name": "client_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "client_secret": { - "name": "client_secret", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "redirect_uri": { - "name": "redirect_uri", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "scopes": { - "name": "scopes", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'openid profile email'" - }, - "username_claim": { - "name": "username_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'preferred_username'" - }, - "email_claim": { - "name": "email_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'email'" - }, - "display_name_claim": { - "name": "display_name_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'name'" - }, - "admin_claim": { - "name": "admin_claim", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "admin_value": { - "name": "admin_value", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "role_mappings_claim": { - "name": "role_mappings_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'groups'" - }, - "role_mappings": { - "name": "role_mappings", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.pending_container_updates": { - "name": "pending_container_updates", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "container_id": { - "name": "container_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "current_image": { - "name": "current_image", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "has_image_update": { - "name": "has_image_update", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "newer_version": { - "name": "newer_version", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "checked_at": { - "name": "checked_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "pending_container_updates_environment_id_environments_id_fk": { - "name": "pending_container_updates_environment_id_environments_id_fk", - "tableFrom": "pending_container_updates", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "pending_container_updates_environment_id_container_id_unique": { - "name": "pending_container_updates_environment_id_container_id_unique", - "nullsNotDistinct": false, - "columns": [ - "environment_id", - "container_id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.registries": { - "name": "registries", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "is_default": { - "name": "is_default", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "registries_name_unique": { - "name": "registries_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.roles": { - "name": "roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "is_system": { - "name": "is_system", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "permissions": { - "name": "permissions", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "environment_ids": { - "name": "environment_ids", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "roles_name_unique": { - "name": "roles_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.schedule_executions": { - "name": "schedule_executions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "schedule_type": { - "name": "schedule_type", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "schedule_id": { - "name": "schedule_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "entity_name": { - "name": "entity_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "triggered_by": { - "name": "triggered_by", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "triggered_at": { - "name": "triggered_at", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "started_at": { - "name": "started_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "completed_at": { - "name": "completed_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "duration": { - "name": "duration", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "status": { - "name": "status", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "error_message": { - "name": "error_message", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "details": { - "name": "details", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "logs": { - "name": "logs", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "schedule_executions_type_id_idx": { - "name": "schedule_executions_type_id_idx", - "columns": [ - { - "expression": "schedule_type", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "schedule_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "schedule_executions_environment_id_environments_id_fk": { - "name": "schedule_executions_environment_id_environments_id_fk", - "tableFrom": "schedule_executions", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.secret_providers": { - "name": "secret_providers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "config": { - "name": "config", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "secret_providers_name_unique": { - "name": "secret_providers_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.sessions": { - "name": "sessions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "provider": { - "name": "provider", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "sessions_user_id_idx": { - "name": "sessions_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "sessions_expires_at_idx": { - "name": "sessions_expires_at_idx", - "columns": [ - { - "expression": "expires_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.settings": { - "name": "settings", - "schema": "", - "columns": { - "key": { - "name": "key", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.stack_environment_variables": { - "name": "stack_environment_variables", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "key": { - "name": "key", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "is_secret": { - "name": "is_secret", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "stack_environment_variables_environment_id_environments_id_fk": { - "name": "stack_environment_variables_environment_id_environments_id_fk", - "tableFrom": "stack_environment_variables", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "stack_environment_variables_stack_name_environment_id_key_unique": { - "name": "stack_environment_variables_stack_name_environment_id_key_unique", - "nullsNotDistinct": false, - "columns": [ - "stack_name", - "environment_id", - "key" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.stack_events": { - "name": "stack_events", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "event_type": { - "name": "event_type", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "stack_events_environment_id_environments_id_fk": { - "name": "stack_events_environment_id_environments_id_fk", - "tableFrom": "stack_events", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.stack_sources": { - "name": "stack_sources", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "source_type": { - "name": "source_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "'internal'" - }, - "git_repository_id": { - "name": "git_repository_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "git_stack_id": { - "name": "git_stack_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "compose_path": { - "name": "compose_path", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "env_path": { - "name": "env_path", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "secret_provider_id": { - "name": "secret_provider_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "injected_secret_keys": { - "name": "injected_secret_keys", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "stack_sources_environment_id_environments_id_fk": { - "name": "stack_sources_environment_id_environments_id_fk", - "tableFrom": "stack_sources", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "stack_sources_git_repository_id_git_repositories_id_fk": { - "name": "stack_sources_git_repository_id_git_repositories_id_fk", - "tableFrom": "stack_sources", - "tableTo": "git_repositories", - "columnsFrom": [ - "git_repository_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "stack_sources_git_stack_id_git_stacks_id_fk": { - "name": "stack_sources_git_stack_id_git_stacks_id_fk", - "tableFrom": "stack_sources", - "tableTo": "git_stacks", - "columnsFrom": [ - "git_stack_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "stack_sources_secret_provider_id_secret_providers_id_fk": { - "name": "stack_sources_secret_provider_id_secret_providers_id_fk", - "tableFrom": "stack_sources", - "tableTo": "secret_providers", - "columnsFrom": [ - "secret_provider_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "stack_sources_stack_name_environment_id_unique": { - "name": "stack_sources_stack_name_environment_id_unique", - "nullsNotDistinct": false, - "columns": [ - "stack_name", - "environment_id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.template_sources": { - "name": "template_sources", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "source_id": { - "name": "source_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "builtin": { - "name": "builtin", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "sort_order": { - "name": "sort_order", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "template_sources_source_id_unique": { - "name": "template_sources_source_id_unique", - "nullsNotDistinct": false, - "columns": [ - "source_id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.user_preferences": { - "name": "user_preferences", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "key": { - "name": "key", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_preferences_user_id_users_id_fk": { - "name": "user_preferences_user_id_users_id_fk", - "tableFrom": "user_preferences", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_preferences_environment_id_environments_id_fk": { - "name": "user_preferences_environment_id_environments_id_fk", - "tableFrom": "user_preferences", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "user_preferences_user_id_environment_id_key_unique": { - "name": "user_preferences_user_id_environment_id_key_unique", - "nullsNotDistinct": false, - "columns": [ - "user_id", - "environment_id", - "key" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.user_roles": { - "name": "user_roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "role_id": { - "name": "role_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_roles_user_id_users_id_fk": { - "name": "user_roles_user_id_users_id_fk", - "tableFrom": "user_roles", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_role_id_roles_id_fk": { - "name": "user_roles_role_id_roles_id_fk", - "tableFrom": "user_roles", - "tableTo": "roles", - "columnsFrom": [ - "role_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_environment_id_environments_id_fk": { - "name": "user_roles_environment_id_environments_id_fk", - "tableFrom": "user_roles", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "user_roles_user_id_role_id_environment_id_unique": { - "name": "user_roles_user_id_role_id_environment_id_unique", - "nullsNotDistinct": false, - "columns": [ - "user_id", - "role_id", - "environment_id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "password_hash": { - "name": "password_hash", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "display_name": { - "name": "display_name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "avatar": { - "name": "avatar", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "auth_provider": { - "name": "auth_provider", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "'local'" - }, - "mfa_enabled": { - "name": "mfa_enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "mfa_secret": { - "name": "mfa_secret", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": true - }, - "last_login": { - "name": "last_login", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_username_unique": { - "name": "users_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.vulnerability_scans": { - "name": "vulnerability_scans", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "image_id": { - "name": "image_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "image_name": { - "name": "image_name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "scanner": { - "name": "scanner", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "scanned_at": { - "name": "scanned_at", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "scan_duration": { - "name": "scan_duration", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "critical_count": { - "name": "critical_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "high_count": { - "name": "high_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "medium_count": { - "name": "medium_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "low_count": { - "name": "low_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "negligible_count": { - "name": "negligible_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "unknown_count": { - "name": "unknown_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "vulnerabilities": { - "name": "vulnerabilities", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "error": { - "name": "error", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "vulnerability_scans_env_image_idx": { - "name": "vulnerability_scans_env_image_idx", - "columns": [ - { - "expression": "environment_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "image_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "vulnerability_scans_environment_id_environments_id_fk": { - "name": "vulnerability_scans_environment_id_environments_id_fk", - "tableFrom": "vulnerability_scans", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} diff --git a/drizzle-pg/meta/_journal.json b/drizzle-pg/meta/_journal.json index fe75597..47961cb 100644 --- a/drizzle-pg/meta/_journal.json +++ b/drizzle-pg/meta/_journal.json @@ -106,13 +106,6 @@ "when": 1787468505425, "tag": "0014_backup_tls_and_container_icons", "breakpoints": true - }, - { - "idx": 15, - "version": "7", - "when": 1787600000000, - "tag": "0015_hawser_stacks_dir", - "breakpoints": true } ] -} +} \ No newline at end of file diff --git a/drizzle/0015_hawser_stacks_dir.sql b/drizzle/0015_hawser_stacks_dir.sql deleted file mode 100644 index 65f7896..0000000 --- a/drizzle/0015_hawser_stacks_dir.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `environments` ADD `hawser_stacks_dir` text; diff --git a/drizzle/meta/0015_snapshot.json b/drizzle/meta/0015_snapshot.json deleted file mode 100644 index ed9f015..0000000 --- a/drizzle/meta/0015_snapshot.json +++ /dev/null @@ -1,3754 +0,0 @@ -{ - "version": "6", - "dialect": "sqlite", - "id": "7c8e1a20-9b4d-4f3a-8c2e-1f0a6b5d4e3c", - "prevId": "86ccd5df-da4c-42d7-87ad-43cc3989286d", - "tables": { - "api_tokens": { - "name": "api_tokens", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "token_hash": { - "name": "token_hash", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "token_prefix": { - "name": "token_prefix", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "last_used": { - "name": "last_used", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "api_tokens_token_hash_unique": { - "name": "api_tokens_token_hash_unique", - "columns": [ - "token_hash" - ], - "isUnique": true - }, - "api_tokens_user_id_idx": { - "name": "api_tokens_user_id_idx", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "api_tokens_token_prefix_idx": { - "name": "api_tokens_token_prefix_idx", - "columns": [ - "token_prefix" - ], - "isUnique": false - } - }, - "foreignKeys": { - "api_tokens_user_id_users_id_fk": { - "name": "api_tokens_user_id_users_id_fk", - "tableFrom": "api_tokens", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "audit_logs": { - "name": "audit_logs", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "action": { - "name": "action", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "entity_type": { - "name": "entity_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "entity_id": { - "name": "entity_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "entity_name": { - "name": "entity_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "details": { - "name": "details", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "ip_address": { - "name": "ip_address", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "user_agent": { - "name": "user_agent", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "audit_logs_user_id_idx": { - "name": "audit_logs_user_id_idx", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "audit_logs_created_at_idx": { - "name": "audit_logs_created_at_idx", - "columns": [ - "created_at" - ], - "isUnique": false - } - }, - "foreignKeys": { - "audit_logs_user_id_users_id_fk": { - "name": "audit_logs_user_id_users_id_fk", - "tableFrom": "audit_logs", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "audit_logs_environment_id_environments_id_fk": { - "name": "audit_logs_environment_id_environments_id_fk", - "tableFrom": "audit_logs", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "auth_settings": { - "name": "auth_settings", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "auth_enabled": { - "name": "auth_enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "default_provider": { - "name": "default_provider", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'local'" - }, - "session_timeout": { - "name": "session_timeout", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 86400 - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "auto_update_settings": { - "name": "auto_update_settings", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "enabled": { - "name": "enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "schedule_type": { - "name": "schedule_type", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'daily'" - }, - "cron_expression": { - "name": "cron_expression", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "vulnerability_criteria": { - "name": "vulnerability_criteria", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'never'" - }, - "last_checked": { - "name": "last_checked", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_updated": { - "name": "last_updated", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "auto_update_settings_environment_id_container_name_unique": { - "name": "auto_update_settings_environment_id_container_name_unique", - "columns": [ - "environment_id", - "container_name" - ], - "isUnique": true - } - }, - "foreignKeys": { - "auto_update_settings_environment_id_environments_id_fk": { - "name": "auto_update_settings_environment_id_environments_id_fk", - "tableFrom": "auto_update_settings", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "backup_configs": { - "name": "backup_configs", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'container'" - }, - "target_name": { - "name": "target_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "destination_id": { - "name": "destination_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "enabled": { - "name": "enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "all_volumes": { - "name": "all_volumes", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "selected_volumes": { - "name": "selected_volumes", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "stop_before_backup": { - "name": "stop_before_backup", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "schedule": { - "name": "schedule", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "retention": { - "name": "retention", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "options": { - "name": "options", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tags": { - "name": "tags", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_backup_at": { - "name": "last_backup_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_backup_status": { - "name": "last_backup_status", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": { - "backup_configs_environment_id_environments_id_fk": { - "name": "backup_configs_environment_id_environments_id_fk", - "tableFrom": "backup_configs", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "backup_configs_destination_id_backup_destinations_id_fk": { - "name": "backup_configs_destination_id_backup_destinations_id_fk", - "tableFrom": "backup_configs", - "tableTo": "backup_destinations", - "columnsFrom": [ - "destination_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "backup_destinations": { - "name": "backup_destinations", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "repository": { - "name": "repository", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "env_vars": { - "name": "env_vars", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "flags": { - "name": "flags", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "host_path": { - "name": "host_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "cacert": { - "name": "cacert", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tls_client_cert": { - "name": "tls_client_cert", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "policies": { - "name": "policies", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_test_at": { - "name": "last_test_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_test_status": { - "name": "last_test_status", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_test_error": { - "name": "last_test_error", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "backup_destinations_name_unique": { - "name": "backup_destinations_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "config_sets": { - "name": "config_sets", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "env_vars": { - "name": "env_vars", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "labels": { - "name": "labels", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "ports": { - "name": "ports", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "volumes": { - "name": "volumes", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "network_mode": { - "name": "network_mode", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'bridge'" - }, - "restart_policy": { - "name": "restart_policy", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'no'" - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "config_sets_name_unique": { - "name": "config_sets_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "container_events": { - "name": "container_events", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "container_id": { - "name": "container_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "action": { - "name": "action", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "actor_attributes": { - "name": "actor_attributes", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "timestamp": { - "name": "timestamp", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "container_events_env_timestamp_idx": { - "name": "container_events_env_timestamp_idx", - "columns": [ - "environment_id", - "timestamp" - ], - "isUnique": false - } - }, - "foreignKeys": { - "container_events_environment_id_environments_id_fk": { - "name": "container_events_environment_id_environments_id_fk", - "tableFrom": "container_events", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "container_icon_overrides": { - "name": "container_icon_overrides", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "container_icon_overrides_container_name_environment_id_unique": { - "name": "container_icon_overrides_container_name_environment_id_unique", - "columns": [ - "container_name", - "environment_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "container_icon_overrides_environment_id_environments_id_fk": { - "name": "container_icon_overrides_environment_id_environments_id_fk", - "tableFrom": "container_icon_overrides", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "environment_notifications": { - "name": "environment_notifications", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "notification_id": { - "name": "notification_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "enabled": { - "name": "enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "event_types": { - "name": "event_types", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "environment_notifications_environment_id_notification_id_unique": { - "name": "environment_notifications_environment_id_notification_id_unique", - "columns": [ - "environment_id", - "notification_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "environment_notifications_environment_id_environments_id_fk": { - "name": "environment_notifications_environment_id_environments_id_fk", - "tableFrom": "environment_notifications", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "environment_notifications_notification_id_notification_settings_id_fk": { - "name": "environment_notifications_notification_id_notification_settings_id_fk", - "tableFrom": "environment_notifications", - "tableTo": "notification_settings", - "columnsFrom": [ - "notification_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "environments": { - "name": "environments", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "host": { - "name": "host", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "port": { - "name": "port", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 2375 - }, - "protocol": { - "name": "protocol", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'http'" - }, - "tls_ca": { - "name": "tls_ca", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tls_cert": { - "name": "tls_cert", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tls_key": { - "name": "tls_key", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tls_skip_verify": { - "name": "tls_skip_verify", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'globe'" - }, - "collect_activity": { - "name": "collect_activity", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "collect_metrics": { - "name": "collect_metrics", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "highlight_changes": { - "name": "highlight_changes", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "labels": { - "name": "labels", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "connection_type": { - "name": "connection_type", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'socket'" - }, - "socket_path": { - "name": "socket_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'/var/run/docker.sock'" - }, - "hawser_token": { - "name": "hawser_token", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "hawser_last_seen": { - "name": "hawser_last_seen", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "hawser_agent_id": { - "name": "hawser_agent_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "hawser_agent_name": { - "name": "hawser_agent_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "hawser_version": { - "name": "hawser_version", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "hawser_capabilities": { - "name": "hawser_capabilities", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "hawser_stacks_dir": { - "name": "hawser_stacks_dir", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "environments_name_unique": { - "name": "environments_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "git_credentials": { - "name": "git_credentials", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "auth_type": { - "name": "auth_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'none'" - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "ssh_private_key": { - "name": "ssh_private_key", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "ssh_passphrase": { - "name": "ssh_passphrase", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "git_credentials_name_unique": { - "name": "git_credentials_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "git_repositories": { - "name": "git_repositories", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "branch": { - "name": "branch", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'main'" - }, - "credential_id": { - "name": "credential_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "compose_path": { - "name": "compose_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'docker-compose.yml'" - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "auto_update": { - "name": "auto_update", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "auto_update_schedule": { - "name": "auto_update_schedule", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'daily'" - }, - "auto_update_cron": { - "name": "auto_update_cron", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'0 3 * * *'" - }, - "webhook_enabled": { - "name": "webhook_enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "webhook_secret": { - "name": "webhook_secret", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_sync": { - "name": "last_sync", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_commit": { - "name": "last_commit", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "sync_status": { - "name": "sync_status", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'pending'" - }, - "sync_error": { - "name": "sync_error", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "git_repositories_name_unique": { - "name": "git_repositories_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": { - "git_repositories_credential_id_git_credentials_id_fk": { - "name": "git_repositories_credential_id_git_credentials_id_fk", - "tableFrom": "git_repositories", - "tableTo": "git_credentials", - "columnsFrom": [ - "credential_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "git_stacks": { - "name": "git_stacks", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "repository_id": { - "name": "repository_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "branch": { - "name": "branch", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "compose_path": { - "name": "compose_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'docker-compose.yml'" - }, - "env_file_path": { - "name": "env_file_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "auto_update": { - "name": "auto_update", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "auto_update_schedule": { - "name": "auto_update_schedule", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'daily'" - }, - "auto_update_cron": { - "name": "auto_update_cron", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'0 3 * * *'" - }, - "webhook_enabled": { - "name": "webhook_enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "webhook_secret": { - "name": "webhook_secret", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "context_dir": { - "name": "context_dir", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "build_on_deploy": { - "name": "build_on_deploy", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "no_build_cache": { - "name": "no_build_cache", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "repull_images": { - "name": "repull_images", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "force_redeploy": { - "name": "force_redeploy", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "last_sync": { - "name": "last_sync", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_commit": { - "name": "last_commit", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "sync_status": { - "name": "sync_status", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'pending'" - }, - "sync_error": { - "name": "sync_error", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "synced_files": { - "name": "synced_files", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "git_stacks_stack_name_environment_id_unique": { - "name": "git_stacks_stack_name_environment_id_unique", - "columns": [ - "stack_name", - "environment_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "git_stacks_environment_id_environments_id_fk": { - "name": "git_stacks_environment_id_environments_id_fk", - "tableFrom": "git_stacks", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "git_stacks_repository_id_git_repositories_id_fk": { - "name": "git_stacks_repository_id_git_repositories_id_fk", - "tableFrom": "git_stacks", - "tableTo": "git_repositories", - "columnsFrom": [ - "repository_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "hawser_tokens": { - "name": "hawser_tokens", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "token_prefix": { - "name": "token_prefix", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "is_active": { - "name": "is_active", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "last_used": { - "name": "last_used", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "expires_at": { - "name": "expires_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": { - "hawser_tokens_token_unique": { - "name": "hawser_tokens_token_unique", - "columns": [ - "token" - ], - "isUnique": true - } - }, - "foreignKeys": { - "hawser_tokens_environment_id_environments_id_fk": { - "name": "hawser_tokens_environment_id_environments_id_fk", - "tableFrom": "hawser_tokens", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "host_metrics": { - "name": "host_metrics", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "cpu_percent": { - "name": "cpu_percent", - "type": "real", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "memory_percent": { - "name": "memory_percent", - "type": "real", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "memory_used": { - "name": "memory_used", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "memory_total": { - "name": "memory_total", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "timestamp": { - "name": "timestamp", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "host_metrics_env_timestamp_idx": { - "name": "host_metrics_env_timestamp_idx", - "columns": [ - "environment_id", - "timestamp" - ], - "isUnique": false - } - }, - "foreignKeys": { - "host_metrics_environment_id_environments_id_fk": { - "name": "host_metrics_environment_id_environments_id_fk", - "tableFrom": "host_metrics", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "ldap_config": { - "name": "ldap_config", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "enabled": { - "name": "enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "server_url": { - "name": "server_url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "bind_dn": { - "name": "bind_dn", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "bind_password": { - "name": "bind_password", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "base_dn": { - "name": "base_dn", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "user_filter": { - "name": "user_filter", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'(uid={{username}})'" - }, - "username_attribute": { - "name": "username_attribute", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'uid'" - }, - "email_attribute": { - "name": "email_attribute", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'mail'" - }, - "display_name_attribute": { - "name": "display_name_attribute", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'cn'" - }, - "group_base_dn": { - "name": "group_base_dn", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "group_filter": { - "name": "group_filter", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "admin_group": { - "name": "admin_group", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "role_mappings": { - "name": "role_mappings", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tls_enabled": { - "name": "tls_enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "tls_ca": { - "name": "tls_ca", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "notification_settings": { - "name": "notification_settings", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "enabled": { - "name": "enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "config": { - "name": "config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "event_types": { - "name": "event_types", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oidc_config": { - "name": "oidc_config", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "enabled": { - "name": "enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "issuer_url": { - "name": "issuer_url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "client_id": { - "name": "client_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "client_secret": { - "name": "client_secret", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "redirect_uri": { - "name": "redirect_uri", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "scopes": { - "name": "scopes", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'openid profile email'" - }, - "username_claim": { - "name": "username_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'preferred_username'" - }, - "email_claim": { - "name": "email_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'email'" - }, - "display_name_claim": { - "name": "display_name_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'name'" - }, - "admin_claim": { - "name": "admin_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "admin_value": { - "name": "admin_value", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "role_mappings_claim": { - "name": "role_mappings_claim", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'groups'" - }, - "role_mappings": { - "name": "role_mappings", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "pending_container_updates": { - "name": "pending_container_updates", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "container_id": { - "name": "container_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "container_name": { - "name": "container_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "current_image": { - "name": "current_image", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "has_image_update": { - "name": "has_image_update", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": true - }, - "newer_version": { - "name": "newer_version", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "checked_at": { - "name": "checked_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "pending_container_updates_environment_id_container_id_unique": { - "name": "pending_container_updates_environment_id_container_id_unique", - "columns": [ - "environment_id", - "container_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "pending_container_updates_environment_id_environments_id_fk": { - "name": "pending_container_updates_environment_id_environments_id_fk", - "tableFrom": "pending_container_updates", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "registries": { - "name": "registries", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "is_default": { - "name": "is_default", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "registries_name_unique": { - "name": "registries_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "roles": { - "name": "roles", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "is_system": { - "name": "is_system", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "permissions": { - "name": "permissions", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_ids": { - "name": "environment_ids", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "roles_name_unique": { - "name": "roles_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "schedule_executions": { - "name": "schedule_executions", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "schedule_type": { - "name": "schedule_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "schedule_id": { - "name": "schedule_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "entity_name": { - "name": "entity_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "triggered_by": { - "name": "triggered_by", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "triggered_at": { - "name": "triggered_at", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "started_at": { - "name": "started_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "completed_at": { - "name": "completed_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "duration": { - "name": "duration", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "status": { - "name": "status", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "error_message": { - "name": "error_message", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "details": { - "name": "details", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "logs": { - "name": "logs", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "schedule_executions_type_id_idx": { - "name": "schedule_executions_type_id_idx", - "columns": [ - "schedule_type", - "schedule_id" - ], - "isUnique": false - } - }, - "foreignKeys": { - "schedule_executions_environment_id_environments_id_fk": { - "name": "schedule_executions_environment_id_environments_id_fk", - "tableFrom": "schedule_executions", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "secret_providers": { - "name": "secret_providers", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "config": { - "name": "config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "secret_providers_name_unique": { - "name": "secret_providers_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "sessions": { - "name": "sessions", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "provider": { - "name": "provider", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "sessions_user_id_idx": { - "name": "sessions_user_id_idx", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "sessions_expires_at_idx": { - "name": "sessions_expires_at_idx", - "columns": [ - "expires_at" - ], - "isUnique": false - } - }, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "settings": { - "name": "settings", - "columns": { - "key": { - "name": "key", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "stack_environment_variables": { - "name": "stack_environment_variables", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "key": { - "name": "key", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "is_secret": { - "name": "is_secret", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "stack_environment_variables_stack_name_environment_id_key_unique": { - "name": "stack_environment_variables_stack_name_environment_id_key_unique", - "columns": [ - "stack_name", - "environment_id", - "key" - ], - "isUnique": true - } - }, - "foreignKeys": { - "stack_environment_variables_environment_id_environments_id_fk": { - "name": "stack_environment_variables_environment_id_environments_id_fk", - "tableFrom": "stack_environment_variables", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "stack_events": { - "name": "stack_events", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "event_type": { - "name": "event_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "timestamp": { - "name": "timestamp", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": { - "stack_events_environment_id_environments_id_fk": { - "name": "stack_events_environment_id_environments_id_fk", - "tableFrom": "stack_events", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "stack_sources": { - "name": "stack_sources", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "stack_name": { - "name": "stack_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "source_type": { - "name": "source_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'internal'" - }, - "git_repository_id": { - "name": "git_repository_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "git_stack_id": { - "name": "git_stack_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "compose_path": { - "name": "compose_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "env_path": { - "name": "env_path", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "secret_provider_id": { - "name": "secret_provider_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "injected_secret_keys": { - "name": "injected_secret_keys", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "stack_sources_stack_name_environment_id_unique": { - "name": "stack_sources_stack_name_environment_id_unique", - "columns": [ - "stack_name", - "environment_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "stack_sources_environment_id_environments_id_fk": { - "name": "stack_sources_environment_id_environments_id_fk", - "tableFrom": "stack_sources", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "stack_sources_git_repository_id_git_repositories_id_fk": { - "name": "stack_sources_git_repository_id_git_repositories_id_fk", - "tableFrom": "stack_sources", - "tableTo": "git_repositories", - "columnsFrom": [ - "git_repository_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "stack_sources_git_stack_id_git_stacks_id_fk": { - "name": "stack_sources_git_stack_id_git_stacks_id_fk", - "tableFrom": "stack_sources", - "tableTo": "git_stacks", - "columnsFrom": [ - "git_stack_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "stack_sources_secret_provider_id_secret_providers_id_fk": { - "name": "stack_sources_secret_provider_id_secret_providers_id_fk", - "tableFrom": "stack_sources", - "tableTo": "secret_providers", - "columnsFrom": [ - "secret_provider_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "template_sources": { - "name": "template_sources", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "source_id": { - "name": "source_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "enabled": { - "name": "enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "builtin": { - "name": "builtin", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "sort_order": { - "name": "sort_order", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "template_sources_source_id_unique": { - "name": "template_sources_source_id_unique", - "columns": [ - "source_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "user_preferences": { - "name": "user_preferences", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "key": { - "name": "key", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "user_preferences_user_id_environment_id_key_unique": { - "name": "user_preferences_user_id_environment_id_key_unique", - "columns": [ - "user_id", - "environment_id", - "key" - ], - "isUnique": true - } - }, - "foreignKeys": { - "user_preferences_user_id_users_id_fk": { - "name": "user_preferences_user_id_users_id_fk", - "tableFrom": "user_preferences", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_preferences_environment_id_environments_id_fk": { - "name": "user_preferences_environment_id_environments_id_fk", - "tableFrom": "user_preferences", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "user_roles": { - "name": "user_roles", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "role_id": { - "name": "role_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "user_roles_user_id_role_id_environment_id_unique": { - "name": "user_roles_user_id_role_id_environment_id_unique", - "columns": [ - "user_id", - "role_id", - "environment_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "user_roles_user_id_users_id_fk": { - "name": "user_roles_user_id_users_id_fk", - "tableFrom": "user_roles", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_role_id_roles_id_fk": { - "name": "user_roles_role_id_roles_id_fk", - "tableFrom": "user_roles", - "tableTo": "roles", - "columnsFrom": [ - "role_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_environment_id_environments_id_fk": { - "name": "user_roles_environment_id_environments_id_fk", - "tableFrom": "user_roles", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "users": { - "name": "users", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "password_hash": { - "name": "password_hash", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "display_name": { - "name": "display_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "avatar": { - "name": "avatar", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "auth_provider": { - "name": "auth_provider", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'local'" - }, - "mfa_enabled": { - "name": "mfa_enabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "mfa_secret": { - "name": "mfa_secret", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "is_active": { - "name": "is_active", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": true - }, - "last_login": { - "name": "last_login", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - }, - "updated_at": { - "name": "updated_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "users_username_unique": { - "name": "users_username_unique", - "columns": [ - "username" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "vulnerability_scans": { - "name": "vulnerability_scans", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "environment_id": { - "name": "environment_id", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "image_id": { - "name": "image_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "image_name": { - "name": "image_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "scanner": { - "name": "scanner", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "scanned_at": { - "name": "scanned_at", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "scan_duration": { - "name": "scan_duration", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "critical_count": { - "name": "critical_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "high_count": { - "name": "high_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "medium_count": { - "name": "medium_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "low_count": { - "name": "low_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "negligible_count": { - "name": "negligible_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "unknown_count": { - "name": "unknown_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "vulnerabilities": { - "name": "vulnerabilities", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "error": { - "name": "error", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": { - "vulnerability_scans_env_image_idx": { - "name": "vulnerability_scans_env_image_idx", - "columns": [ - "environment_id", - "image_id" - ], - "isUnique": false - } - }, - "foreignKeys": { - "vulnerability_scans_environment_id_environments_id_fk": { - "name": "vulnerability_scans_environment_id_environments_id_fk", - "tableFrom": "vulnerability_scans", - "tableTo": "environments", - "columnsFrom": [ - "environment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - } - }, - "views": {}, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - }, - "internal": { - "indexes": {} - } -} diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 19472ac..b9aa6df 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -106,13 +106,6 @@ "when": 1787468495122, "tag": "0014_backup_tls_and_container_icons", "breakpoints": true - }, - { - "idx": 15, - "version": "6", - "when": 1787600000000, - "tag": "0015_hawser_stacks_dir", - "breakpoints": true } ] -} +} \ No newline at end of file diff --git a/src/lib/server/db/schema/index.ts b/src/lib/server/db/schema/index.ts index a4e401b..19a2651 100644 --- a/src/lib/server/db/schema/index.ts +++ b/src/lib/server/db/schema/index.ts @@ -44,7 +44,6 @@ export const environments = sqliteTable('environments', { hawserAgentName: text('hawser_agent_name'), hawserVersion: text('hawser_version'), hawserCapabilities: text('hawser_capabilities'), // JSON array: ["compose", "exec", "metrics"] - hawserStacksDir: text('hawser_stacks_dir'), // Remote STACKS_DIR reported by agent createdAt: text('created_at').default(sql`CURRENT_TIMESTAMP`), updatedAt: text('updated_at').default(sql`CURRENT_TIMESTAMP`) }); diff --git a/src/lib/server/db/schema/pg-schema.ts b/src/lib/server/db/schema/pg-schema.ts index d61f85a..cf54c5a 100644 --- a/src/lib/server/db/schema/pg-schema.ts +++ b/src/lib/server/db/schema/pg-schema.ts @@ -47,7 +47,6 @@ export const environments = pgTable('environments', { hawserAgentName: text('hawser_agent_name'), hawserVersion: text('hawser_version'), hawserCapabilities: text('hawser_capabilities'), // JSON array: ["compose", "exec", "metrics"] - hawserStacksDir: text('hawser_stacks_dir'), // Remote STACKS_DIR reported by agent createdAt: timestamp('created_at', { mode: 'string' }).defaultNow(), updatedAt: timestamp('updated_at', { mode: 'string' }).defaultNow() }); diff --git a/src/lib/server/stacks-display-paths.ts b/src/lib/server/stacks-display-paths.ts deleted file mode 100644 index e5cce08..0000000 --- a/src/lib/server/stacks-display-paths.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { join, relative, resolve } from 'node:path'; -import { isPathUnderRoot } from './path-utils'; - -function remapPathBetweenStackDirs(fromDir: string, toDir: string, path: string): string { - const fromResolved = resolve(fromDir); - const toResolved = resolve(toDir); - const resolved = resolve(path); - if (isPathUnderRoot(resolved, fromResolved)) { - return join(toResolved, relative(fromResolved, resolved)); - } - return path; -} - -function remapPathsBetweenStackDirs(fromDir: string, toDir: string, paths: string[]): string[] { - return paths.map((p) => remapPathBetweenStackDirs(fromDir, toDir, p)); -} - -function remapComposeContentsBetweenStackDirs( - fromDir: string, - toDir: string, - contents: Record -): Record { - const remapped: Record = {}; - for (const [path, content] of Object.entries(contents)) { - remapped[remapPathBetweenStackDirs(fromDir, toDir, path)] = content; - } - return remapped; -} - -/** - * Remap absolute paths from Dockhand's Hawser staging dir to the remote host stack dir. - */ -export function remapPathsFromStagingToRemote( - stagingStackDir: string, - remoteStackDir: string, - paths: string[] -): string[] { - return remapPathsBetweenStackDirs(stagingStackDir, remoteStackDir, paths); -} - -/** - * Remap absolute paths from the Hawser remote stack dir back to Dockhand staging. - */ -export function remapPathsFromRemoteToStaging( - stagingStackDir: string, - remoteStackDir: string, - paths: string[] -): string[] { - return remapPathsBetweenStackDirs(remoteStackDir, stagingStackDir, paths); -} - -/** - * Remap composeContents keys from staging paths to remote display paths. - */ -export function remapComposeContentsFromStagingToRemote( - stagingStackDir: string, - remoteStackDir: string, - contents: Record -): Record { - return remapComposeContentsBetweenStackDirs(stagingStackDir, remoteStackDir, contents); -} - -/** - * Remap composeContents keys from remote display paths back to staging paths. - */ -export function remapComposeContentsFromRemoteToStaging( - stagingStackDir: string, - remoteStackDir: string, - contents: Record -): Record { - return remapComposeContentsBetweenStackDirs(remoteStackDir, stagingStackDir, contents); -} diff --git a/tests/hawser-display-paths.test.ts b/tests/hawser-display-paths.test.ts deleted file mode 100644 index 39ebff0..0000000 --- a/tests/hawser-display-paths.test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import assert from 'node:assert/strict'; -import { describe, it } from 'node:test'; -import { join } from 'node:path'; -import { - remapComposeContentsFromRemoteToStaging, - remapComposeContentsFromStagingToRemote, - remapPathsFromRemoteToStaging, - remapPathsFromStagingToRemote -} from '../src/lib/server/stacks-display-paths'; - -describe('remapPathsFromStagingToRemote', () => { - it('remaps compose paths from Dockhand staging to Hawser STACKS_DIR', () => { - const staging = '/opt/docker/data/dockhand/stacks/nexz447/linkleaner'; - const remote = '/opt/docker/stacks/linkleaner'; - const paths = [ - join(staging, 'compose.yaml'), - join(staging, 'compose.override.yaml') - ]; - - const remapped = remapPathsFromStagingToRemote(staging, remote, paths); - - assert.deepEqual(remapped, [ - join(remote, 'compose.yaml'), - join(remote, 'compose.override.yaml') - ]); - }); - - it('leaves paths outside the staging dir unchanged', () => { - const staging = '/data/stacks/prod/myapp'; - const remote = '/opt/stacks/myapp'; - const external = '/srv/custom/myapp/compose.yaml'; - - const remapped = remapPathsFromStagingToRemote(staging, remote, [external]); - - assert.deepEqual(remapped, [external]); - }); -}); - -describe('remapPathsFromRemoteToStaging', () => { - it('remaps compose paths from Hawser STACKS_DIR back to Dockhand staging', () => { - const staging = '/opt/docker/data/dockhand/stacks/nexz447/linkleaner'; - const remote = '/opt/docker/stacks/linkleaner'; - const paths = [ - join(remote, 'compose.yaml'), - join(remote, 'compose.override.yaml') - ]; - - const remapped = remapPathsFromRemoteToStaging(staging, remote, paths); - - assert.deepEqual(remapped, [ - join(staging, 'compose.yaml'), - join(staging, 'compose.override.yaml') - ]); - }); -}); - -describe('remapComposeContentsFromStagingToRemote', () => { - it('remaps composeContents keys to remote display paths', () => { - const staging = '/opt/docker/data/dockhand/stacks/prod/linkleaner'; - const remote = '/opt/docker/stacks/linkleaner'; - const contents = { - [join(staging, 'compose.yaml')]: 'services:\n app:\n image: app', - [join(staging, 'compose.override.yaml')]: 'services:\n app:\n ports:\n - 8080:80' - }; - - const remapped = remapComposeContentsFromStagingToRemote(staging, remote, contents); - - assert.equal(remapped[join(remote, 'compose.yaml')], contents[join(staging, 'compose.yaml')]); - assert.equal( - remapped[join(remote, 'compose.override.yaml')], - contents[join(staging, 'compose.override.yaml')] - ); - assert.equal(Object.keys(remapped).length, 2); - }); -}); - -describe('remapComposeContentsFromRemoteToStaging', () => { - it('remaps composeContents keys back to staging paths', () => { - const staging = '/opt/docker/data/dockhand/stacks/prod/linkleaner'; - const remote = '/opt/docker/stacks/linkleaner'; - const contents = { - [join(remote, 'compose.yaml')]: 'services:\n app:\n image: app', - [join(remote, 'compose.override.yaml')]: 'services:\n app:\n ports:\n - 8080:80' - }; - - const remapped = remapComposeContentsFromRemoteToStaging(staging, remote, contents); - - assert.equal(remapped[join(staging, 'compose.yaml')], contents[join(remote, 'compose.yaml')]); - assert.equal( - remapped[join(staging, 'compose.override.yaml')], - contents[join(remote, 'compose.override.yaml')] - ); - assert.equal(Object.keys(remapped).length, 2); - }); -});