Files
hristudio/drizzle/meta/0001_snapshot.json
Sean O'Connor 433c1c4517 docs: consolidate and restructure documentation architecture
- Remove outdated root-level documentation files
  - Delete IMPLEMENTATION_STATUS.md, WORK_IN_PROGRESS.md, UI_IMPROVEMENTS_SUMMARY.md, CLAUDE.md

- Reorganize documentation into docs/ folder
  - Move UNIFIED_EDITOR_EXPERIENCES.md → docs/unified-editor-experiences.md
  - Move DATATABLE_MIGRATION_PROGRESS.md → docs/datatable-migration-progress.md
  - Move SEED_SCRIPT_README.md → docs/seed-script-readme.md

- Create comprehensive new documentation
  - Add docs/implementation-status.md with production readiness assessment
  - Add docs/work-in-progress.md with active development tracking
  - Add docs/development-achievements.md consolidating all major accomplishments

- Update documentation hub
  - Enhance docs/README.md with complete 13-document structure
  - Organize into logical categories: Core, Status, Achievements
  - Provide clear navigation and purpose for each document

Features:
- 73% code reduction achievement through unified editor experiences
- Complete DataTable migration with enterprise features
- Comprehensive seed database with realistic research scenarios
- Production-ready status with 100% backend, 95% frontend completion
- Clean documentation architecture supporting future development

Breaking Changes: None - documentation restructuring only
Migration: Documentation moved to docs/ folder, no code changes required
2025-08-04 23:54:47 -04:00

3251 lines
84 KiB
JSON

{
"id": "188fed9e-746f-41c3-808d-e3ad24dcc16f",
"prevId": "4544f0a3-520c-413b-b962-88f101724bbf",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.hs_account": {
"name": "hs_account",
"schema": "",
"columns": {
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"type": {
"name": "type",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"provider": {
"name": "provider",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"provider_account_id": {
"name": "provider_account_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"refresh_token": {
"name": "refresh_token",
"type": "text",
"primaryKey": false,
"notNull": false
},
"access_token": {
"name": "access_token",
"type": "text",
"primaryKey": false,
"notNull": false
},
"expires_at": {
"name": "expires_at",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"token_type": {
"name": "token_type",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"scope": {
"name": "scope",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"id_token": {
"name": "id_token",
"type": "text",
"primaryKey": false,
"notNull": false
},
"session_state": {
"name": "session_state",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {
"account_user_id_idx": {
"name": "account_user_id_idx",
"columns": [
{
"expression": "user_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"hs_account_user_id_hs_user_id_fk": {
"name": "hs_account_user_id_hs_user_id_fk",
"tableFrom": "hs_account",
"tableTo": "hs_user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"hs_account_provider_provider_account_id_pk": {
"name": "hs_account_provider_provider_account_id_pk",
"columns": [
"provider",
"provider_account_id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_action": {
"name": "hs_action",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"step_id": {
"name": "step_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"type": {
"name": "type",
"type": "varchar(100)",
"primaryKey": false,
"notNull": true
},
"order_index": {
"name": "order_index",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"parameters": {
"name": "parameters",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"validation_schema": {
"name": "validation_schema",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"timeout": {
"name": "timeout",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"retry_count": {
"name": "retry_count",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_action_step_id_hs_step_id_fk": {
"name": "hs_action_step_id_hs_step_id_fk",
"tableFrom": "hs_action",
"tableTo": "hs_step",
"columnsFrom": [
"step_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_action_step_id_order_index_unique": {
"name": "hs_action_step_id_order_index_unique",
"nullsNotDistinct": false,
"columns": [
"step_id",
"order_index"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_activity_log": {
"name": "hs_activity_log",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"action": {
"name": "action",
"type": "varchar(100)",
"primaryKey": false,
"notNull": true
},
"resource_type": {
"name": "resource_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": false
},
"resource_id": {
"name": "resource_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"ip_address": {
"name": "ip_address",
"type": "inet",
"primaryKey": false,
"notNull": false
},
"user_agent": {
"name": "user_agent",
"type": "text",
"primaryKey": false,
"notNull": false
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {
"activity_logs_study_created_idx": {
"name": "activity_logs_study_created_idx",
"columns": [
{
"expression": "study_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "created_at",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"hs_activity_log_study_id_hs_study_id_fk": {
"name": "hs_activity_log_study_id_hs_study_id_fk",
"tableFrom": "hs_activity_log",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_activity_log_user_id_hs_user_id_fk": {
"name": "hs_activity_log_user_id_hs_user_id_fk",
"tableFrom": "hs_activity_log",
"tableTo": "hs_user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_annotation": {
"name": "hs_annotation",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"trial_id": {
"name": "trial_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"annotator_id": {
"name": "annotator_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"timestamp_start": {
"name": "timestamp_start",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true
},
"timestamp_end": {
"name": "timestamp_end",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"category": {
"name": "category",
"type": "varchar(100)",
"primaryKey": false,
"notNull": false
},
"label": {
"name": "label",
"type": "varchar(100)",
"primaryKey": false,
"notNull": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"tags": {
"name": "tags",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'[]'::jsonb"
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_annotation_trial_id_hs_trial_id_fk": {
"name": "hs_annotation_trial_id_hs_trial_id_fk",
"tableFrom": "hs_annotation",
"tableTo": "hs_trial",
"columnsFrom": [
"trial_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_annotation_annotator_id_hs_user_id_fk": {
"name": "hs_annotation_annotator_id_hs_user_id_fk",
"tableFrom": "hs_annotation",
"tableTo": "hs_user",
"columnsFrom": [
"annotator_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_attachment": {
"name": "hs_attachment",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"resource_type": {
"name": "resource_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"resource_id": {
"name": "resource_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"file_name": {
"name": "file_name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"file_size": {
"name": "file_size",
"type": "bigint",
"primaryKey": false,
"notNull": true
},
"file_path": {
"name": "file_path",
"type": "text",
"primaryKey": false,
"notNull": true
},
"content_type": {
"name": "content_type",
"type": "varchar(100)",
"primaryKey": false,
"notNull": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"uploaded_by": {
"name": "uploaded_by",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_attachment_uploaded_by_hs_user_id_fk": {
"name": "hs_attachment_uploaded_by_hs_user_id_fk",
"tableFrom": "hs_attachment",
"tableTo": "hs_user",
"columnsFrom": [
"uploaded_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_audit_log": {
"name": "hs_audit_log",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"action": {
"name": "action",
"type": "varchar(100)",
"primaryKey": false,
"notNull": true
},
"resource_type": {
"name": "resource_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": false
},
"resource_id": {
"name": "resource_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"changes": {
"name": "changes",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"ip_address": {
"name": "ip_address",
"type": "inet",
"primaryKey": false,
"notNull": false
},
"user_agent": {
"name": "user_agent",
"type": "text",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {
"audit_logs_created_idx": {
"name": "audit_logs_created_idx",
"columns": [
{
"expression": "created_at",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"hs_audit_log_user_id_hs_user_id_fk": {
"name": "hs_audit_log_user_id_hs_user_id_fk",
"tableFrom": "hs_audit_log",
"tableTo": "hs_user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_comment": {
"name": "hs_comment",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"parent_id": {
"name": "parent_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"resource_type": {
"name": "resource_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"resource_id": {
"name": "resource_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"author_id": {
"name": "author_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"content": {
"name": "content",
"type": "text",
"primaryKey": false,
"notNull": true
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_comment_author_id_hs_user_id_fk": {
"name": "hs_comment_author_id_hs_user_id_fk",
"tableFrom": "hs_comment",
"tableTo": "hs_user",
"columnsFrom": [
"author_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_consent_form": {
"name": "hs_consent_form",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"version": {
"name": "version",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 1
},
"title": {
"name": "title",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"content": {
"name": "content",
"type": "text",
"primaryKey": false,
"notNull": true
},
"active": {
"name": "active",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": true
},
"created_by": {
"name": "created_by",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"storage_path": {
"name": "storage_path",
"type": "text",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_consent_form_study_id_hs_study_id_fk": {
"name": "hs_consent_form_study_id_hs_study_id_fk",
"tableFrom": "hs_consent_form",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_consent_form_created_by_hs_user_id_fk": {
"name": "hs_consent_form_created_by_hs_user_id_fk",
"tableFrom": "hs_consent_form",
"tableTo": "hs_user",
"columnsFrom": [
"created_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_consent_form_study_id_version_unique": {
"name": "hs_consent_form_study_id_version_unique",
"nullsNotDistinct": false,
"columns": [
"study_id",
"version"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_experiment": {
"name": "hs_experiment",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"version": {
"name": "version",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 1
},
"robot_id": {
"name": "robot_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"status": {
"name": "status",
"type": "experiment_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'draft'"
},
"estimated_duration": {
"name": "estimated_duration",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"created_by": {
"name": "created_by",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"deleted_at": {
"name": "deleted_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_experiment_study_id_hs_study_id_fk": {
"name": "hs_experiment_study_id_hs_study_id_fk",
"tableFrom": "hs_experiment",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_experiment_robot_id_hs_robot_id_fk": {
"name": "hs_experiment_robot_id_hs_robot_id_fk",
"tableFrom": "hs_experiment",
"tableTo": "hs_robot",
"columnsFrom": [
"robot_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"hs_experiment_created_by_hs_user_id_fk": {
"name": "hs_experiment_created_by_hs_user_id_fk",
"tableFrom": "hs_experiment",
"tableTo": "hs_user",
"columnsFrom": [
"created_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_experiment_study_id_name_version_unique": {
"name": "hs_experiment_study_id_name_version_unique",
"nullsNotDistinct": false,
"columns": [
"study_id",
"name",
"version"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_export_job": {
"name": "hs_export_job",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"requested_by": {
"name": "requested_by",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"export_type": {
"name": "export_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"format": {
"name": "format",
"type": "varchar(20)",
"primaryKey": false,
"notNull": true
},
"filters": {
"name": "filters",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"status": {
"name": "status",
"type": "export_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
},
"storage_path": {
"name": "storage_path",
"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": "CURRENT_TIMESTAMP"
},
"completed_at": {
"name": "completed_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"error_message": {
"name": "error_message",
"type": "text",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_export_job_study_id_hs_study_id_fk": {
"name": "hs_export_job_study_id_hs_study_id_fk",
"tableFrom": "hs_export_job",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_export_job_requested_by_hs_user_id_fk": {
"name": "hs_export_job_requested_by_hs_user_id_fk",
"tableFrom": "hs_export_job",
"tableTo": "hs_user",
"columnsFrom": [
"requested_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_media_capture": {
"name": "hs_media_capture",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"trial_id": {
"name": "trial_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"media_type": {
"name": "media_type",
"type": "media_type",
"typeSchema": "public",
"primaryKey": false,
"notNull": false
},
"storage_path": {
"name": "storage_path",
"type": "text",
"primaryKey": false,
"notNull": true
},
"file_size": {
"name": "file_size",
"type": "bigint",
"primaryKey": false,
"notNull": false
},
"duration": {
"name": "duration",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"format": {
"name": "format",
"type": "varchar(20)",
"primaryKey": false,
"notNull": false
},
"resolution": {
"name": "resolution",
"type": "varchar(20)",
"primaryKey": false,
"notNull": false
},
"start_timestamp": {
"name": "start_timestamp",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"end_timestamp": {
"name": "end_timestamp",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_media_capture_trial_id_hs_trial_id_fk": {
"name": "hs_media_capture_trial_id_hs_trial_id_fk",
"tableFrom": "hs_media_capture",
"tableTo": "hs_trial",
"columnsFrom": [
"trial_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_participant_consent": {
"name": "hs_participant_consent",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"participant_id": {
"name": "participant_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"consent_form_id": {
"name": "consent_form_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"signed_at": {
"name": "signed_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"signature_data": {
"name": "signature_data",
"type": "text",
"primaryKey": false,
"notNull": false
},
"ip_address": {
"name": "ip_address",
"type": "inet",
"primaryKey": false,
"notNull": false
},
"storage_path": {
"name": "storage_path",
"type": "text",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_participant_consent_participant_id_hs_participant_id_fk": {
"name": "hs_participant_consent_participant_id_hs_participant_id_fk",
"tableFrom": "hs_participant_consent",
"tableTo": "hs_participant",
"columnsFrom": [
"participant_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_participant_consent_consent_form_id_hs_consent_form_id_fk": {
"name": "hs_participant_consent_consent_form_id_hs_consent_form_id_fk",
"tableFrom": "hs_participant_consent",
"tableTo": "hs_consent_form",
"columnsFrom": [
"consent_form_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_participant_consent_participant_id_consent_form_id_unique": {
"name": "hs_participant_consent_participant_id_consent_form_id_unique",
"nullsNotDistinct": false,
"columns": [
"participant_id",
"consent_form_id"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_participant": {
"name": "hs_participant",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"participant_code": {
"name": "participant_code",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"email": {
"name": "email",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"demographics": {
"name": "demographics",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"consent_given": {
"name": "consent_given",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"consent_date": {
"name": "consent_date",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"notes": {
"name": "notes",
"type": "text",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_participant_study_id_hs_study_id_fk": {
"name": "hs_participant_study_id_hs_study_id_fk",
"tableFrom": "hs_participant",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_participant_study_id_participant_code_unique": {
"name": "hs_participant_study_id_participant_code_unique",
"nullsNotDistinct": false,
"columns": [
"study_id",
"participant_code"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_permission": {
"name": "hs_permission",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"name": {
"name": "name",
"type": "varchar(100)",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"resource": {
"name": "resource",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"action": {
"name": "action",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_permission_name_unique": {
"name": "hs_permission_name_unique",
"nullsNotDistinct": false,
"columns": [
"name"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_plugin": {
"name": "hs_plugin",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"robot_id": {
"name": "robot_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"version": {
"name": "version",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"author": {
"name": "author",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"repository_url": {
"name": "repository_url",
"type": "text",
"primaryKey": false,
"notNull": false
},
"trust_level": {
"name": "trust_level",
"type": "trust_level",
"typeSchema": "public",
"primaryKey": false,
"notNull": false
},
"status": {
"name": "status",
"type": "plugin_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'active'"
},
"configuration_schema": {
"name": "configuration_schema",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"action_definitions": {
"name": "action_definitions",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'[]'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
}
},
"indexes": {},
"foreignKeys": {
"hs_plugin_robot_id_hs_robot_id_fk": {
"name": "hs_plugin_robot_id_hs_robot_id_fk",
"tableFrom": "hs_plugin",
"tableTo": "hs_robot",
"columnsFrom": [
"robot_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_plugin_name_version_unique": {
"name": "hs_plugin_name_version_unique",
"nullsNotDistinct": false,
"columns": [
"name",
"version"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_robot": {
"name": "hs_robot",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"manufacturer": {
"name": "manufacturer",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"model": {
"name": "model",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"capabilities": {
"name": "capabilities",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'[]'::jsonb"
},
"communication_protocol": {
"name": "communication_protocol",
"type": "communication_protocol",
"typeSchema": "public",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_role_permission": {
"name": "hs_role_permission",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"role": {
"name": "role",
"type": "system_role",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"permission_id": {
"name": "permission_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"hs_role_permission_permission_id_hs_permission_id_fk": {
"name": "hs_role_permission_permission_id_hs_permission_id_fk",
"tableFrom": "hs_role_permission",
"tableTo": "hs_permission",
"columnsFrom": [
"permission_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_role_permission_role_permission_id_unique": {
"name": "hs_role_permission_role_permission_id_unique",
"nullsNotDistinct": false,
"columns": [
"role",
"permission_id"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_sensor_data": {
"name": "hs_sensor_data",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"trial_id": {
"name": "trial_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"sensor_type": {
"name": "sensor_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"timestamp": {
"name": "timestamp",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true
},
"data": {
"name": "data",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"robot_state": {
"name": "robot_state",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {
"sensor_data_trial_timestamp_idx": {
"name": "sensor_data_trial_timestamp_idx",
"columns": [
{
"expression": "trial_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "timestamp",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"hs_sensor_data_trial_id_hs_trial_id_fk": {
"name": "hs_sensor_data_trial_id_hs_trial_id_fk",
"tableFrom": "hs_sensor_data",
"tableTo": "hs_trial",
"columnsFrom": [
"trial_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_session": {
"name": "hs_session",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"session_token": {
"name": "session_token",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"expires": {
"name": "expires",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {
"session_user_id_idx": {
"name": "session_user_id_idx",
"columns": [
{
"expression": "user_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"hs_session_user_id_hs_user_id_fk": {
"name": "hs_session_user_id_hs_user_id_fk",
"tableFrom": "hs_session",
"tableTo": "hs_user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_session_session_token_unique": {
"name": "hs_session_session_token_unique",
"nullsNotDistinct": false,
"columns": [
"session_token"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_shared_resource": {
"name": "hs_shared_resource",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"resource_type": {
"name": "resource_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"resource_id": {
"name": "resource_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"shared_by": {
"name": "shared_by",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"share_token": {
"name": "share_token",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"permissions": {
"name": "permissions",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'[\"read\"]'::jsonb"
},
"expires_at": {
"name": "expires_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"access_count": {
"name": "access_count",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_shared_resource_study_id_hs_study_id_fk": {
"name": "hs_shared_resource_study_id_hs_study_id_fk",
"tableFrom": "hs_shared_resource",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_shared_resource_shared_by_hs_user_id_fk": {
"name": "hs_shared_resource_shared_by_hs_user_id_fk",
"tableFrom": "hs_shared_resource",
"tableTo": "hs_user",
"columnsFrom": [
"shared_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_shared_resource_share_token_unique": {
"name": "hs_shared_resource_share_token_unique",
"nullsNotDistinct": false,
"columns": [
"share_token"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_step": {
"name": "hs_step",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"experiment_id": {
"name": "experiment_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"type": {
"name": "type",
"type": "step_type",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"order_index": {
"name": "order_index",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"duration_estimate": {
"name": "duration_estimate",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"required": {
"name": "required",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": true
},
"conditions": {
"name": "conditions",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_step_experiment_id_hs_experiment_id_fk": {
"name": "hs_step_experiment_id_hs_experiment_id_fk",
"tableFrom": "hs_step",
"tableTo": "hs_experiment",
"columnsFrom": [
"experiment_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_step_experiment_id_order_index_unique": {
"name": "hs_step_experiment_id_order_index_unique",
"nullsNotDistinct": false,
"columns": [
"experiment_id",
"order_index"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_study": {
"name": "hs_study",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"institution": {
"name": "institution",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"irb_protocol": {
"name": "irb_protocol",
"type": "varchar(100)",
"primaryKey": false,
"notNull": false
},
"status": {
"name": "status",
"type": "study_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'draft'"
},
"created_by": {
"name": "created_by",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"settings": {
"name": "settings",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"deleted_at": {
"name": "deleted_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_study_created_by_hs_user_id_fk": {
"name": "hs_study_created_by_hs_user_id_fk",
"tableFrom": "hs_study",
"tableTo": "hs_user",
"columnsFrom": [
"created_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_study_member": {
"name": "hs_study_member",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"role": {
"name": "role",
"type": "study_member_role",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"permissions": {
"name": "permissions",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'[]'::jsonb"
},
"joined_at": {
"name": "joined_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"invited_by": {
"name": "invited_by",
"type": "uuid",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_study_member_study_id_hs_study_id_fk": {
"name": "hs_study_member_study_id_hs_study_id_fk",
"tableFrom": "hs_study_member",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_study_member_user_id_hs_user_id_fk": {
"name": "hs_study_member_user_id_hs_user_id_fk",
"tableFrom": "hs_study_member",
"tableTo": "hs_user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_study_member_invited_by_hs_user_id_fk": {
"name": "hs_study_member_invited_by_hs_user_id_fk",
"tableFrom": "hs_study_member",
"tableTo": "hs_user",
"columnsFrom": [
"invited_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_study_member_study_id_user_id_unique": {
"name": "hs_study_member_study_id_user_id_unique",
"nullsNotDistinct": false,
"columns": [
"study_id",
"user_id"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_study_plugin": {
"name": "hs_study_plugin",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"study_id": {
"name": "study_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"plugin_id": {
"name": "plugin_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"configuration": {
"name": "configuration",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"installed_at": {
"name": "installed_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"installed_by": {
"name": "installed_by",
"type": "uuid",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"hs_study_plugin_study_id_hs_study_id_fk": {
"name": "hs_study_plugin_study_id_hs_study_id_fk",
"tableFrom": "hs_study_plugin",
"tableTo": "hs_study",
"columnsFrom": [
"study_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_study_plugin_plugin_id_hs_plugin_id_fk": {
"name": "hs_study_plugin_plugin_id_hs_plugin_id_fk",
"tableFrom": "hs_study_plugin",
"tableTo": "hs_plugin",
"columnsFrom": [
"plugin_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"hs_study_plugin_installed_by_hs_user_id_fk": {
"name": "hs_study_plugin_installed_by_hs_user_id_fk",
"tableFrom": "hs_study_plugin",
"tableTo": "hs_user",
"columnsFrom": [
"installed_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_study_plugin_study_id_plugin_id_unique": {
"name": "hs_study_plugin_study_id_plugin_id_unique",
"nullsNotDistinct": false,
"columns": [
"study_id",
"plugin_id"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_system_setting": {
"name": "hs_system_setting",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"key": {
"name": "key",
"type": "varchar(100)",
"primaryKey": false,
"notNull": true
},
"value": {
"name": "value",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"updated_by": {
"name": "updated_by",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"hs_system_setting_updated_by_hs_user_id_fk": {
"name": "hs_system_setting_updated_by_hs_user_id_fk",
"tableFrom": "hs_system_setting",
"tableTo": "hs_user",
"columnsFrom": [
"updated_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_system_setting_key_unique": {
"name": "hs_system_setting_key_unique",
"nullsNotDistinct": false,
"columns": [
"key"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_trial_event": {
"name": "hs_trial_event",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"trial_id": {
"name": "trial_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"event_type": {
"name": "event_type",
"type": "varchar(50)",
"primaryKey": false,
"notNull": true
},
"action_id": {
"name": "action_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"timestamp": {
"name": "timestamp",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"data": {
"name": "data",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"created_by": {
"name": "created_by",
"type": "uuid",
"primaryKey": false,
"notNull": false
}
},
"indexes": {
"trial_events_trial_timestamp_idx": {
"name": "trial_events_trial_timestamp_idx",
"columns": [
{
"expression": "trial_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "timestamp",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": false,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"hs_trial_event_trial_id_hs_trial_id_fk": {
"name": "hs_trial_event_trial_id_hs_trial_id_fk",
"tableFrom": "hs_trial_event",
"tableTo": "hs_trial",
"columnsFrom": [
"trial_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_trial_event_action_id_hs_action_id_fk": {
"name": "hs_trial_event_action_id_hs_action_id_fk",
"tableFrom": "hs_trial_event",
"tableTo": "hs_action",
"columnsFrom": [
"action_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"hs_trial_event_created_by_hs_user_id_fk": {
"name": "hs_trial_event_created_by_hs_user_id_fk",
"tableFrom": "hs_trial_event",
"tableTo": "hs_user",
"columnsFrom": [
"created_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_trial": {
"name": "hs_trial",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"experiment_id": {
"name": "experiment_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"participant_id": {
"name": "participant_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"wizard_id": {
"name": "wizard_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"session_number": {
"name": "session_number",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 1
},
"status": {
"name": "status",
"type": "trial_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'scheduled'"
},
"scheduled_at": {
"name": "scheduled_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"started_at": {
"name": "started_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"completed_at": {
"name": "completed_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"duration": {
"name": "duration",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"notes": {
"name": "notes",
"type": "text",
"primaryKey": false,
"notNull": false
},
"parameters": {
"name": "parameters",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"metadata": {
"name": "metadata",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
}
},
"indexes": {},
"foreignKeys": {
"hs_trial_experiment_id_hs_experiment_id_fk": {
"name": "hs_trial_experiment_id_hs_experiment_id_fk",
"tableFrom": "hs_trial",
"tableTo": "hs_experiment",
"columnsFrom": [
"experiment_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"hs_trial_participant_id_hs_participant_id_fk": {
"name": "hs_trial_participant_id_hs_participant_id_fk",
"tableFrom": "hs_trial",
"tableTo": "hs_participant",
"columnsFrom": [
"participant_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"hs_trial_wizard_id_hs_user_id_fk": {
"name": "hs_trial_wizard_id_hs_user_id_fk",
"tableFrom": "hs_trial",
"tableTo": "hs_user",
"columnsFrom": [
"wizard_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_user_system_role": {
"name": "hs_user_system_role",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"role": {
"name": "role",
"type": "system_role",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"granted_at": {
"name": "granted_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"granted_by": {
"name": "granted_by",
"type": "uuid",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_user_system_role_user_id_hs_user_id_fk": {
"name": "hs_user_system_role_user_id_hs_user_id_fk",
"tableFrom": "hs_user_system_role",
"tableTo": "hs_user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_user_system_role_granted_by_hs_user_id_fk": {
"name": "hs_user_system_role_granted_by_hs_user_id_fk",
"tableFrom": "hs_user_system_role",
"tableTo": "hs_user",
"columnsFrom": [
"granted_by"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_user_system_role_user_id_role_unique": {
"name": "hs_user_system_role_user_id_role_unique",
"nullsNotDistinct": false,
"columns": [
"user_id",
"role"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_user": {
"name": "hs_user",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"email": {
"name": "email",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"email_verified": {
"name": "email_verified",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"image": {
"name": "image",
"type": "text",
"primaryKey": false,
"notNull": false
},
"password": {
"name": "password",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"deleted_at": {
"name": "deleted_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hs_user_email_unique": {
"name": "hs_user_email_unique",
"nullsNotDistinct": false,
"columns": [
"email"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_verification_token": {
"name": "hs_verification_token",
"schema": "",
"columns": {
"identifier": {
"name": "identifier",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"token": {
"name": "token",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"expires": {
"name": "expires",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {
"hs_verification_token_identifier_token_pk": {
"name": "hs_verification_token_identifier_token_pk",
"columns": [
"identifier",
"token"
]
}
},
"uniqueConstraints": {
"hs_verification_token_token_unique": {
"name": "hs_verification_token_token_unique",
"nullsNotDistinct": false,
"columns": [
"token"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hs_wizard_intervention": {
"name": "hs_wizard_intervention",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"trial_id": {
"name": "trial_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"wizard_id": {
"name": "wizard_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"intervention_type": {
"name": "intervention_type",
"type": "varchar(100)",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"timestamp": {
"name": "timestamp",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "CURRENT_TIMESTAMP"
},
"parameters": {
"name": "parameters",
"type": "jsonb",
"primaryKey": false,
"notNull": false,
"default": "'{}'::jsonb"
},
"reason": {
"name": "reason",
"type": "text",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"hs_wizard_intervention_trial_id_hs_trial_id_fk": {
"name": "hs_wizard_intervention_trial_id_hs_trial_id_fk",
"tableFrom": "hs_wizard_intervention",
"tableTo": "hs_trial",
"columnsFrom": [
"trial_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"hs_wizard_intervention_wizard_id_hs_user_id_fk": {
"name": "hs_wizard_intervention_wizard_id_hs_user_id_fk",
"tableFrom": "hs_wizard_intervention",
"tableTo": "hs_user",
"columnsFrom": [
"wizard_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {
"public.communication_protocol": {
"name": "communication_protocol",
"schema": "public",
"values": [
"rest",
"ros2",
"custom"
]
},
"public.experiment_status": {
"name": "experiment_status",
"schema": "public",
"values": [
"draft",
"testing",
"ready",
"deprecated"
]
},
"public.export_status": {
"name": "export_status",
"schema": "public",
"values": [
"pending",
"processing",
"completed",
"failed"
]
},
"public.media_type": {
"name": "media_type",
"schema": "public",
"values": [
"video",
"audio",
"image"
]
},
"public.plugin_status": {
"name": "plugin_status",
"schema": "public",
"values": [
"active",
"deprecated",
"disabled"
]
},
"public.step_type": {
"name": "step_type",
"schema": "public",
"values": [
"wizard",
"robot",
"delay",
"parallel",
"conditional"
]
},
"public.study_member_role": {
"name": "study_member_role",
"schema": "public",
"values": [
"owner",
"researcher",
"wizard",
"observer"
]
},
"public.study_status": {
"name": "study_status",
"schema": "public",
"values": [
"draft",
"active",
"completed",
"archived"
]
},
"public.system_role": {
"name": "system_role",
"schema": "public",
"values": [
"administrator",
"researcher",
"wizard",
"observer"
]
},
"public.trial_status": {
"name": "trial_status",
"schema": "public",
"values": [
"scheduled",
"in_progress",
"completed",
"aborted",
"failed"
]
},
"public.trust_level": {
"name": "trust_level",
"schema": "public",
"values": [
"official",
"verified",
"community"
]
}
},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}