IKHSAN
EN Read in EnglishID

homeio

Publik

Fork dari doctor-io/homeio

Branch
main
Commit terakhir
958d74616 Oktober 2026

0008_snapshot.json

Buka raw
{
  "id": "ad67f70c-6378-42ff-8e80-03505c6b19ef",
  "prevId": "0d319176-0d28-4ae3-939d-9d03f0c47a4e",
  "version": "7",
  "dialect": "postgresql",
  "tables": {
    "public.app_operations": {
      "name": "app_operations",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "app_id": {
          "name": "app_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "action": {
          "name": "action",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "progress_percent": {
          "name": "progress_percent",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "current_step": {
          "name": "current_step",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'queued'"
        },
        "error_message": {
          "name": "error_message",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "started_at": {
          "name": "started_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "finished_at": {
          "name": "finished_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "app_operations_app_id_idx": {
          "name": "app_operations_app_id_idx",
          "columns": [
            {
              "expression": "app_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "app_operations_status_idx": {
          "name": "app_operations_status_idx",
          "columns": [
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "app_operations_updated_at_idx": {
          "name": "app_operations_updated_at_idx",
          "columns": [
            {
              "expression": "updated_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.app_stacks": {
      "name": "app_stacks",
      "schema": "",
      "columns": {
        "app_id": {
          "name": "app_id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "template_name": {
          "name": "template_name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "stack_name": {
          "name": "stack_name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "compose_path": {
          "name": "compose_path",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'not_installed'"
        },
        "web_ui_port": {
          "name": "web_ui_port",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "env_json": {
          "name": "env_json",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "display_name": {
          "name": "display_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "icon_url": {
          "name": "icon_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "installed_at": {
          "name": "installed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "is_up_to_date": {
          "name": "is_up_to_date",
          "type": "boolean",
          "primaryKey": false,
          "notNull": false,
          "default": true
        },
        "last_update_check": {
          "name": "last_update_check",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "local_digest": {
          "name": "local_digest",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "remote_digest": {
          "name": "remote_digest",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "app_stacks_status_idx": {
          "name": "app_stacks_status_idx",
          "columns": [
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "app_stacks_web_ui_port_idx": {
          "name": "app_stacks_web_ui_port_idx",
          "columns": [
            {
              "expression": "web_ui_port",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.apps": {
      "name": "apps",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'unknown'"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "apps_name_idx": {
          "name": "apps_name_idx",
          "columns": [
            {
              "expression": "name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.custom_store_apps": {
      "name": "custom_store_apps",
      "schema": "",
      "columns": {
        "app_id": {
          "name": "app_id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "icon_url": {
          "name": "icon_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "web_ui_url": {
          "name": "web_ui_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "source_type": {
          "name": "source_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "source_text": {
          "name": "source_text",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "compose_content": {
          "name": "compose_content",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "repository_url": {
          "name": "repository_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "custom_store_apps_updated_at_idx": {
          "name": "custom_store_apps_updated_at_idx",
          "columns": [
            {
              "expression": "updated_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.files_google_drive_tokens": {
      "name": "files_google_drive_tokens",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "display_name": {
          "name": "display_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "access_token_ciphertext": {
          "name": "access_token_ciphertext",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "access_token_iv": {
          "name": "access_token_iv",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "access_token_tag": {
          "name": "access_token_tag",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "refresh_token_ciphertext": {
          "name": "refresh_token_ciphertext",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "refresh_token_iv": {
          "name": "refresh_token_iv",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "refresh_token_tag": {
          "name": "refresh_token_tag",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "files_google_drive_tokens_email_idx": {
          "name": "files_google_drive_tokens_email_idx",
          "columns": [
            {
              "expression": "email",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "files_google_drive_tokens_created_at_idx": {
          "name": "files_google_drive_tokens_created_at_idx",
          "columns": [
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.files_local_shares": {
      "name": "files_local_shares",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "share_name": {
          "name": "share_name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "source_path": {
          "name": "source_path",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "shared_path": {
          "name": "shared_path",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "files_local_shares_share_name_idx": {
          "name": "files_local_shares_share_name_idx",
          "columns": [
            {
              "expression": "share_name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "files_local_shares_source_path_idx": {
          "name": "files_local_shares_source_path_idx",
          "columns": [
            {
              "expression": "source_path",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "files_local_shares_shared_path_idx": {
          "name": "files_local_shares_shared_path_idx",
          "columns": [
            {
              "expression": "shared_path",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "files_local_shares_created_at_idx": {
          "name": "files_local_shares_created_at_idx",
          "columns": [
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.files_network_shares": {
      "name": "files_network_shares",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "host": {
          "name": "host",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "share": {
          "name": "share",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "username": {
          "name": "username",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "password_ciphertext": {
          "name": "password_ciphertext",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "password_iv": {
          "name": "password_iv",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "password_tag": {
          "name": "password_tag",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "mount_path": {
          "name": "mount_path",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "files_network_shares_mount_path_idx": {
          "name": "files_network_shares_mount_path_idx",
          "columns": [
            {
              "expression": "mount_path",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "files_network_shares_created_at_idx": {
          "name": "files_network_shares_created_at_idx",
          "columns": [
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.files_trash_entries": {
      "name": "files_trash_entries",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "trash_path": {
          "name": "trash_path",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "original_path": {
          "name": "original_path",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "deleted_at": {
          "name": "deleted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "files_trash_entries_trash_path_idx": {
          "name": "files_trash_entries_trash_path_idx",
          "columns": [
            {
              "expression": "trash_path",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "files_trash_entries_deleted_at_idx": {
          "name": "files_trash_entries_deleted_at_idx",
          "columns": [
            {
              "expression": "deleted_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.notifications": {
      "name": "notifications",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "body": {
          "name": "body",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "kind": {
          "name": "kind",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'info'"
        },
        "read": {
          "name": "read",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "notifications_created_at_idx": {
          "name": "notifications_created_at_idx",
          "columns": [
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.scheduled_task_executions": {
      "name": "scheduled_task_executions",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "task_id": {
          "name": "task_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "output": {
          "name": "output",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "started_at": {
          "name": "started_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "duration_ms": {
          "name": "duration_ms",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "scheduled_task_executions_task_id_idx": {
          "name": "scheduled_task_executions_task_id_idx",
          "columns": [
            {
              "expression": "task_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "scheduled_task_executions_started_at_idx": {
          "name": "scheduled_task_executions_started_at_idx",
          "columns": [
            {
              "expression": "started_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "scheduled_task_executions_task_id_scheduled_tasks_id_fk": {
          "name": "scheduled_task_executions_task_id_scheduled_tasks_id_fk",
          "tableFrom": "scheduled_task_executions",
          "tableTo": "scheduled_tasks",
          "columnsFrom": [
            "task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.scheduled_tasks": {
      "name": "scheduled_tasks",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "label": {
          "name": "label",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "task_type": {
          "name": "task_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "task_config": {
          "name": "task_config",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "cron_expression": {
          "name": "cron_expression",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "enabled": {
          "name": "enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "last_run_at": {
          "name": "last_run_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "last_run_status": {
          "name": "last_run_status",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "last_run_output": {
          "name": "last_run_output",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "next_run_at": {
          "name": "next_run_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "scheduled_tasks_next_run_at_idx": {
          "name": "scheduled_tasks_next_run_at_idx",
          "columns": [
            {
              "expression": "next_run_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "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": "text",
          "primaryKey": false,
          "notNull": true
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "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": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true,
          "default": "'singleton'"
        },
        "appearance_json": {
          "name": "appearance_json",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "google_client_id": {
          "name": "google_client_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "google_client_secret_ciphertext": {
          "name": "google_client_secret_ciphertext",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "google_client_secret_iv": {
          "name": "google_client_secret_iv",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "google_client_secret_tag": {
          "name": "google_client_secret_tag",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "google_redirect_uri": {
          "name": "google_redirect_uri",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "tailscale_tailnet": {
          "name": "tailscale_tailnet",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "tailscale_api_key_ciphertext": {
          "name": "tailscale_api_key_ciphertext",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "tailscale_api_key_iv": {
          "name": "tailscale_api_key_iv",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "tailscale_api_key_tag": {
          "name": "tailscale_api_key_tag",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.users": {
      "name": "users",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "username": {
          "name": "username",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "password_hash": {
          "name": "password_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "totp_secret": {
          "name": "totp_secret",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "totp_enabled": {
          "name": "totp_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "totp_backup_codes": {
          "name": "totp_backup_codes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "totp_enrolled_at": {
          "name": "totp_enrolled_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "users_username_idx": {
          "name": "users_username_idx",
          "columns": [
            {
              "expression": "username",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "users_username_unique": {
          "name": "users_username_unique",
          "nullsNotDistinct": false,
          "columns": [
            "username"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    }
  },
  "enums": {},
  "schemas": {},
  "sequences": {},
  "roles": {},
  "policies": {},
  "views": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}
byte
35.309
baris
1.356
Jenis
json
Commit terakhir
16 Oktober 2026