DUC SQL Schema Reference — Version 4.0.0

@duc_schema

sq inspect @ 2026-09-27T14:30:46Z

PropertyValue
Nameduc_schema.sqlite
FQ nameduc_schema.sqlite.main
Driversqlite3
DB productSQLite3 v3.53.4
DB version3.53.4
DB semverv3.53.4
Schemamain
Catalogdefault
Size712.0KB
Tables93
Views0
Locationsqlite3:///home/runner/work/duc/duc/target/duc_schema.sqlite

Entity Relationship Diagram

erDiagram
    backgrounds {
        int id PK
        text owner_type
        text owner_id
        int sort_order
        int preference
        text src
        int visible
        float opacity
        float tiling_size_in_percent
        float tiling_angle
        float tiling_spacing
        float tiling_offset_x
        float tiling_offset_y
        int hatch_style
        text hatch_pattern_name
        float hatch_pattern_scale
        float hatch_pattern_angle
        float hatch_pattern_origin_x
        float hatch_pattern_origin_y
        int hatch_pattern_origin_mirror
        int hatch_pattern_double
        text hatch_custom_pattern_name
        text hatch_custom_pattern_desc
        float image_filter_brightness
        float image_filter_contrast
    }
    block_collection_entries {
        text collection_id PK,FK
        text child_id PK
        int is_collection
    }
    block_collections {
        text id PK
        text label
    }
    block_instance_overrides {
        text instance_id PK,FK
        text key PK
        text value
    }
    block_instances {
        text id PK
        text block_id FK
        int version
        int dup_rows
        int dup_cols
        float dup_row_spacing
        float dup_col_spacing
    }
    block_metadata {
        text owner_type PK
        text owner_id PK
        text source
        int usage_count
        int created_at
        int updated_at
        unknown localization
        bytes thumbnail
    }
    blocks {
        text id PK
        text label
        text description
        int version
    }
    checkpoint_data_chunks {
        text checkpoint_id PK,FK
        int chunk_index PK
        int offset_bytes
        int size_bytes
        bytes data
    }
    checkpoints {
        text id PK
        text parent_id
        text chain_id FK
        int version_number
        int schema_version
        int timestamp
        text description
        int is_manual_save
        int is_schema_boundary
        text user_id
        text data_checksum
        text storage_key
        int size_bytes
    }
    delta_changeset_chunks {
        text delta_id PK,FK
        int chunk_index PK
        int offset_bytes
        int size_bytes
        bytes data
    }
    deltas {
        text id PK
        text parent_id
        text base_checkpoint_id FK
        text chain_id FK
        int delta_sequence
        int version_number
        int schema_version
        int timestamp
        text description
        int is_manual_save
        text user_id
        text changeset_checksum
        int size_bytes
    }
    doc_element_referenced_files {
        text element_id PK,FK
        text file_id PK
        int sort_order
    }
    document_dictionary {
        text key PK
        text value
    }
    document_grid_config {
        text element_id PK,FK
        text file_id
        int grid_columns
        float grid_gap_x
        float grid_gap_y
        int grid_first_page_alone
        float grid_scale
    }
    duc_charter {
        int id PK
        text title
        text description
        text objective
        text phase
        text closed_reason
        int updated_at
    }
    duc_charter_constraints {
        text id PK
        text statement
        int hard
        int sort_order
    }
    duc_charter_decision_issue_ids {
        text decision_id PK,FK
        text issue_id
        int sort_order PK
    }
    duc_charter_decisions {
        text id PK
        int accepted
        text decision
        text rationale
        int decided_at
        int sort_order
    }
    duc_charter_requirement_acceptance_criteria {
        text requirement_id PK,FK
        int sort_order PK
        text criterion
    }
    duc_charter_requirements {
        text id PK
        text statement
        int must
        int sort_order
    }
    duc_charter_stakeholders {
        int sort_order PK
        text actor_identifier
        text actor_name
        text role
    }
    duc_document {
        text id PK
        text version
        text source
        text data_type
        bytes thumbnail
    }
    duc_global_state {
        int id PK
        text view_background_color
        text main_scope
        int scope_exponent_threshold
    }
    duc_issue_anchors {
        text issue_id PK,FK
        text anchor_type
        float canvas_x
        float canvas_y
        text canvas_scope
        text element_id
        float anchor_x
        float anchor_y
        float model_point_x
        float model_point_y
        float model_point_z
        float model_normal_x
        float model_normal_y
        float model_normal_z
        text topology_id
    }
    duc_issue_assignees {
        text issue_id PK,FK
        text actor_identifier PK
        int sort_order
    }
    duc_issue_followers {
        text issue_id PK,FK
        text actor_identifier PK
        int sort_order
    }
    duc_issue_message_reactions {
        text message_id PK,FK
        text emoji PK
        text actor_identifier PK
        int sort_order
    }
    duc_issue_messages {
        text id PK
        text issue_id FK
        text author_identifier
        text author_name
        text content
        text reply_to_id
        int created_at
        int edited_at
        int deleted_at
        int sort_order
    }
    duc_issues {
        text id PK
        int local_id
        text title
        text status
        text dismissed_reason
        int due_date
        text author_id
        int created_at
        int updated_at
        int deleted_at
        int sort_order
    }
    duc_local_state {
        int id PK
        text scope
        float scroll_x
        float scroll_y
        float zoom
        int is_binding_enabled
        float current_item_opacity
        text current_item_font_family
        float current_item_font_size
        int current_item_text_align
        float current_item_roundness
        int start_head_type
        text start_head_block_id
        float start_head_size
        int end_head_type
        text end_head_block_id
        float end_head_size
        int pen_mode
        int view_mode_enabled
        int objects_snap_mode_enabled
        int grid_mode_enabled
        int outline_mode_enabled
        int manual_save_mode
        int decimal_places
    }
    element_block_memberships {
        text element_id PK,FK
        text block_id PK,FK
        int sort_order
    }
    element_bound_elements {
        text element_id PK,FK
        text bound_element_id PK
        text bound_type
        int sort_order
    }
    element_doc {
        text element_id PK,FK
        text text
    }
    element_ellipse {
        text element_id PK,FK
        float ratio
        float start_angle
        float end_angle
        int show_aux_crosshair
    }
    element_embeddable {
        text element_id PK,FK
    }
    element_frame {
        text element_id PK,FK
    }
    element_freedraw {
        text element_id PK,FK
        float size
        float thinning
        float smoothing
        float streamline
        text easing
        int start_cap
        float start_taper
        text start_easing
        int end_cap
        float end_taper
        text end_easing
        bytes pressures
        int simulate_pressure
        float last_committed_point_x
        float last_committed_point_y
        int last_committed_point_mirror
        text svg_path
    }
    element_group_memberships {
        text element_id PK,FK
        text group_id PK,FK
        int sort_order
    }
    element_image {
        text element_id PK,FK
        text file_id
        int status
        float scale_x
        float scale_y
        float crop_x
        float crop_y
        float crop_width
        float crop_height
        float crop_natural_width
        float crop_natural_height
        float filter_brightness
        float filter_contrast
    }
    element_linear {
        text element_id PK,FK
        float last_committed_point_x
        float last_committed_point_y
        int last_committed_point_mirror
        text start_binding_element_id
        float start_binding_focus
        float start_binding_gap
        float start_binding_fixed_point_x
        float start_binding_fixed_point_y
        int start_binding_point_index
        float start_binding_point_offset
        int start_binding_head_type
        text start_binding_head_block_id
        float start_binding_head_size
        text end_binding_element_id
        float end_binding_focus
        float end_binding_gap
        float end_binding_fixed_point_x
        float end_binding_fixed_point_y
        int end_binding_point_index
        float end_binding_point_offset
        int end_binding_head_type
        text end_binding_head_block_id
        float end_binding_head_size
        int wipeout_below
        int elbowed
    }
    element_model {
        text element_id PK,FK
        text model_type
        text code
        bytes thumbnail
    }
    element_pdf {
        text element_id PK,FK
    }
    element_plot {
        text element_id PK,FK
        float margin_top
        float margin_right
        float margin_bottom
        float margin_left
    }
    element_polygon {
        text element_id PK,FK
        int sides
    }
    element_region_memberships {
        text element_id PK,FK
        text region_id PK,FK
        int sort_order
    }
    element_stack_properties {
        text element_id PK,FK
        text label
        text description
        int is_collapsed
        int is_plot
        int is_visible
        int locked
        float opacity
        int clip
        int label_visible
    }
    element_table {
        text element_id PK,FK
    }
    element_text {
        text element_id PK,FK
        text text
        text original_text
        int auto_resize
        text container_id
        int is_ltr
        text font_family
        text big_font_family
        int text_align
        int vertical_align
        float line_height
        float line_spacing_value
        int line_spacing_type
        float oblique_angle
        float font_size
        float width_factor
        int is_upside_down
        int is_backwards
    }
    elements {
        text id PK
        text element_type
        float x
        float y
        float width
        float height
        float angle
        text scope
        text label
        text description
        int is_visible
        int seed
        int version
        int version_nonce
        int updated
        text index
        int is_plot
        int is_deleted
        float roundness
        int blending
        float opacity
        text instance_id FK
        text layer_id FK
        text frame_id
        float z_index
        text link
        int locked
        unknown custom_data
    }
    external_file_revision_chunks {
        text revision_id PK,FK
        int chunk_index PK
        int offset_bytes
        int size_bytes
        bytes data
    }
    external_file_revisions {
        text id PK
        text file_id FK
        int size_bytes
        text checksum
        text source_name
        text mime_type
        text message
        int created
        int last_retrieved
    }
    external_file_text_index {
        int id PK
        text file_id
        text revision_id
        text mime_type
        text extracted_text
        int has_ocr
        int updated
    }
    external_files {
        text id PK
        text active_revision_id
        int updated
        int version
    }
    freedraw_element_points {
        text element_id PK,FK
        int sort_order PK
        float x
        float y
        int mirroring
    }
    groups {
        text id PK,FK
    }
    hatch_pattern_lines {
        int id PK
        text owner_type
        int owner_id
        int sort_order
        float angle
        float origin_x
        float origin_y
        int origin_mirroring
        float offset_x
        float offset_y
        bytes dash_pattern
    }
    layers {
        text id PK,FK
        int readonly
    }
    linear_element_lines {
        text element_id PK,FK
        int sort_order PK
        int start_index
        float start_handle_x
        float start_handle_y
        int end_index
        float end_handle_x
        float end_handle_y
    }
    linear_element_points {
        text element_id PK,FK
        int sort_order PK
        float x
        float y
        int mirroring
    }
    linear_path_override_indices {
        int path_override_id PK,FK
        int sort_order PK
        int line_index
    }
    linear_path_overrides {
        int id PK
        text element_id FK
        int sort_order
    }
    model_element_files {
        text element_id PK,FK
        text file_id PK
        int sort_order
    }
    model_viewer_state {
        text owner_type PK
        text owner_id PK
        text camera_control
        int camera_ortho
        text camera_up
        float camera_position_x
        float camera_position_y
        float camera_position_z
        float camera_quaternion_x
        float camera_quaternion_y
        float camera_quaternion_z
        float camera_quaternion_w
        float camera_target_x
        float camera_target_y
        float camera_target_z
        float camera_zoom
        float camera_pan_speed
        float camera_rotate_speed
        float camera_zoom_speed
        int camera_holroyd
        int display_wireframe
        int display_transparent
        int display_black_edges
        int display_grid_uniform
        int display_grid_xy
        int display_grid_xz
        int display_grid_yz
        int display_axes_visible
        int display_axes_at_origin
        float material_metalness
        float material_roughness
        float material_default_opacity
        int material_edge_color
        float material_ambient_intensity
        float material_direct_intensity
        int clip_x_enabled
        float clip_x_value
        float clip_x_normal_x
        float clip_x_normal_y
        float clip_x_normal_z
        int clip_y_enabled
        float clip_y_value
        float clip_y_normal_x
        float clip_y_normal_y
        float clip_y_normal_z
        int clip_z_enabled
        float clip_z_value
        float clip_z_normal_x
        float clip_z_normal_y
        float clip_z_normal_z
        int clip_intersection
        int clip_show_planes
        int clip_object_color_caps
        int explode_active
        float explode_value
        int zebra_active
        int zebra_stripe_count
        float zebra_stripe_direction
        text zebra_color_scheme
        float zebra_opacity
        text zebra_mapping_mode
    }
    regions {
        text id PK,FK
        int boolean_operation
    }
    schema_migrations {
        int id PK
        int from_schema_version
        int to_schema_version
        text migration_name
        text migration_sql
        text reverse_migration_sql
        text migration_checksum
        int applied_at
        text boundary_checkpoint_id
    }
    search_blocks_config {
        text k PK
        int v
    }
    search_blocks_data {
        int id PK
        bytes block
    }
    search_blocks_docsize {
        int id PK
        bytes sz
    }
    search_blocks_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
    search_element_doc_config {
        text k PK
        int v
    }
    search_element_doc_data {
        int id PK
        bytes block
    }
    search_element_doc_docsize {
        int id PK
        bytes sz
    }
    search_element_doc_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
    search_element_model_config {
        text k PK
        int v
    }
    search_element_model_data {
        int id PK
        bytes block
    }
    search_element_model_docsize {
        int id PK
        bytes sz
    }
    search_element_model_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
    search_element_text_config {
        text k PK
        int v
    }
    search_element_text_data {
        int id PK
        bytes block
    }
    search_element_text_docsize {
        int id PK
        bytes sz
    }
    search_element_text_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
    search_elements_config {
        text k PK
        int v
    }
    search_elements_data {
        int id PK
        bytes block
    }
    search_elements_docsize {
        int id PK
        bytes sz
    }
    search_elements_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
    search_external_file_text_config {
        text k PK
        int v
    }
    search_external_file_text_data {
        int id PK
        bytes block
    }
    search_external_file_text_docsize {
        int id PK
        bytes sz
    }
    search_external_file_text_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
    stack_properties {
        text id PK
        text label
        text description
        int is_collapsed
        int is_plot
        int is_visible
        int locked
        float opacity
    }
    strokes {
        int id PK
        text owner_type
        text owner_id
        int sort_order
        int preference
        text src
        int visible
        float opacity
        float tiling_size_in_percent
        float tiling_angle
        float tiling_spacing
        float tiling_offset_x
        float tiling_offset_y
        int hatch_style
        text hatch_pattern_name
        float hatch_pattern_scale
        float hatch_pattern_angle
        float hatch_pattern_origin_x
        float hatch_pattern_origin_y
        int hatch_pattern_origin_mirror
        int hatch_pattern_double
        text hatch_custom_pattern_name
        text hatch_custom_pattern_desc
        float image_filter_brightness
        float image_filter_contrast
        float width
        int style_preference
        int style_cap
        int style_join
        bytes style_dash
        text style_dash_line_override
        int style_dash_cap
        float style_miter_limit
        int placement
        int sides_preference
        bytes sides_values
    }
    version_chains {
        text id PK
        int schema_version
        int start_version
        int end_version
        int migration_id FK
        text root_checkpoint_id
    }
    version_graph {
        int id PK
        int current_version
        int current_schema_version
        text user_checkpoint_version_id
        text latest_version_id
        int chain_count
        int total_size
    }
    search_blocks {
        bytes label
        bytes description
    }
    search_element_doc {
        bytes text
    }
    search_element_model {
        bytes code
    }
    search_element_text {
        bytes text
        bytes original_text
    }
    search_elements {
        bytes label
        bytes description
    }
    search_external_file_text {
        bytes extracted_text
    }
    block_collections ||--o{ block_collection_entries : ""
    block_instances ||--o{ block_instance_overrides : ""
    blocks ||--o{ block_instances : ""
    checkpoints ||--o{ checkpoint_data_chunks : ""
    version_chains ||--o{ checkpoints : ""
    deltas ||--o{ delta_changeset_chunks : ""
    checkpoints ||--o{ deltas : ""
    version_chains ||--o{ deltas : ""
    element_doc ||--o{ doc_element_referenced_files : ""
    elements ||--|| document_grid_config : ""
    duc_charter_decisions ||--o{ duc_charter_decision_issue_ids : ""
    duc_charter_requirements ||--o{ duc_charter_requirement_acceptance_criteria : ""
    duc_issues ||--|| duc_issue_anchors : ""
    duc_issues ||--o{ duc_issue_assignees : ""
    duc_issues ||--o{ duc_issue_followers : ""
    duc_issue_messages ||--o{ duc_issue_message_reactions : ""
    duc_issues ||--o{ duc_issue_messages : ""
    blocks ||--o{ element_block_memberships : ""
    elements ||--o{ element_block_memberships : ""
    elements ||--o{ element_bound_elements : ""
    document_grid_config |o--|| element_doc : ""
    elements ||--|| element_ellipse : ""
    elements ||--|| element_embeddable : ""
    element_stack_properties ||--|| element_frame : ""
    elements ||--|| element_freedraw : ""
    elements ||--o{ element_group_memberships : ""
    groups ||--o{ element_group_memberships : ""
    elements ||--|| element_image : ""
    elements ||--|| element_linear : ""
    elements |o--|| element_model : ""
    document_grid_config ||--|| element_pdf : ""
    element_stack_properties ||--|| element_plot : ""
    elements ||--|| element_polygon : ""
    elements ||--o{ element_region_memberships : ""
    regions ||--o{ element_region_memberships : ""
    elements ||--|| element_stack_properties : ""
    document_grid_config ||--|| element_table : ""
    elements |o--|| element_text : ""
    block_instances |o--o{ elements : ""
    layers |o--o{ elements : ""
    external_file_revisions ||--o{ external_file_revision_chunks : ""
    external_files ||--o{ external_file_revisions : ""
    elements ||--o{ freedraw_element_points : ""
    stack_properties ||--|| groups : ""
    stack_properties ||--|| layers : ""
    elements ||--o{ linear_element_lines : ""
    elements ||--o{ linear_element_points : ""
    linear_path_overrides ||--o{ linear_path_override_indices : ""
    elements ||--o{ linear_path_overrides : ""
    elements ||--o{ model_element_files : ""
    stack_properties ||--|| regions : ""
    schema_migrations |o--o{ version_chains : ""

Tables

backgrounds

table · 0 rows

Entity Relationship Diagram

erDiagram
    backgrounds {
        int id PK
        text owner_type
        text owner_id
        int sort_order
        int preference
        text src
        int visible
        float opacity
        float tiling_size_in_percent
        float tiling_angle
        float tiling_spacing
        float tiling_offset_x
        float tiling_offset_y
        int hatch_style
        text hatch_pattern_name
        float hatch_pattern_scale
        float hatch_pattern_angle
        float hatch_pattern_origin_x
        float hatch_pattern_origin_y
        int hatch_pattern_origin_mirror
        int hatch_pattern_double
        text hatch_custom_pattern_name
        text hatch_custom_pattern_desc
        float image_filter_brightness
        float image_filter_contrast
    }
Columns
ColumnTypeNullablePKFKAutoDefault
idINTEGER✓✓auto_inc
owner_typeTEXT
owner_idTEXT
sort_orderINTEGER0
preferenceINTEGER✓
srcTEXT''
visibleINTEGER1
opacityREAL1.0
tiling_size_in_percentREAL✓
tiling_angleREAL✓
tiling_spacingREAL✓
tiling_offset_xREAL✓
tiling_offset_yREAL✓
hatch_styleINTEGER✓
hatch_pattern_nameTEXT✓
hatch_pattern_scaleREAL✓
hatch_pattern_angleREAL✓
hatch_pattern_origin_xREAL✓
hatch_pattern_origin_yREAL✓
hatch_pattern_origin_mirrorINTEGER✓
hatch_pattern_doubleINTEGER✓
hatch_custom_pattern_nameTEXT✓
hatch_custom_pattern_descTEXT✓
image_filter_brightnessREAL✓
image_filter_contrastREAL✓
Indexes
IndexColumnsUniquePrimaryType
idx_backgrounds_ownerowner_type, owner_id
idx_backgrounds_srcsrc

block_collection_entries

table · 0 rows

Entity Relationship Diagram

erDiagram
    block_collection_entries {
        text collection_id PK,FK
        text child_id PK
        int is_collection
    }
    block_collections ||--o{ block_collection_entries : ""
Columns
ColumnTypeNullablePKFKDefault
collection_idTEXT✓✓
child_idTEXT✓
is_collectionINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
collection_id → block_collections.id
Indexes
IndexColumnsUniquePrimaryType
idx_block_collection_entries_childchild_id
sqlite_autoindex_block_collection_entries_1collection_id, child_id✓✓

block_collections

table · 0 rows

Entity Relationship Diagram

erDiagram
    block_collections {
        text id PK
        text label
    }
    block_collections ||--o{ block_collection_entries : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
labelTEXT''
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← block_collection_entries.collection_id
Indexes
IndexColumnsUniquePrimaryType
idx_block_collections_labellabel
sqlite_autoindex_block_collections_1id✓✓

block_instance_overrides

table · 0 rows

Entity Relationship Diagram

erDiagram
    block_instance_overrides {
        text instance_id PK,FK
        text key PK
        text value
    }
    block_instances ||--o{ block_instance_overrides : ""
Columns
ColumnTypeNullablePKFK
instance_idTEXT✓✓
keyTEXT✓
valueTEXT
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
instance_id → block_instances.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_block_instance_overrides_1instance_id, key✓✓

block_instances

table · 0 rows

Entity Relationship Diagram

erDiagram
    block_instances {
        text id PK
        text block_id FK
        int version
        int dup_rows
        int dup_cols
        float dup_row_spacing
        float dup_col_spacing
    }
    block_instances ||--o{ block_instance_overrides : ""
    blocks ||--o{ block_instances : ""
    block_instances |o--o{ elements : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
block_idTEXT✓
versionINTEGER1
dup_rowsINTEGER✓
dup_colsINTEGER✓
dup_row_spacingREAL✓
dup_col_spacingREAL✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
block_id → blocks.id
id ← block_instance_overrides.instance_idcascade
id ← elements.instance_id
Indexes
IndexColumnsUniquePrimaryType
idx_block_instances_blockblock_id
sqlite_autoindex_block_instances_1id✓✓

block_metadata

table · 0 rows

Entity Relationship Diagram

erDiagram
    block_metadata {
        text owner_type PK
        text owner_id PK
        text source
        int usage_count
        int created_at
        int updated_at
        unknown localization
        bytes thumbnail
    }
Columns
ColumnTypeNullablePKFKDefault
owner_typeTEXT✓
owner_idTEXT✓
sourceTEXT✓
usage_countINTEGER0
created_atINTEGER
updated_atINTEGER
localizationJSONB✓
thumbnailBLOB✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_block_metadata_1owner_type, owner_id✓✓

blocks

table · 0 rows

Entity Relationship Diagram

erDiagram
    blocks {
        text id PK
        text label
        text description
        int version
    }
    blocks ||--o{ block_instances : ""
    blocks ||--o{ element_block_memberships : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓✓
labelTEXT''
descriptionTEXT✓
versionINTEGER1
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← block_instances.block_id
id ← element_block_memberships.block_id
Indexes
IndexColumnsUniquePrimaryType
idx_blocks_labellabel
sqlite_autoindex_blocks_1id✓✓
Triggers
TriggerTimingEventsDefinition
trg_blocks_adAFTERDELETECREATE TRIGGER trg_blocks_ad AFTER DELETE ON blocks BEGIN INSERT INTO search_blocks(search_blocks, rowid, label, description) VALUES ('delete', OLD.rowid, OLD.label, OLD.description); END
trg_blocks_aiAFTERINSERTCREATE TRIGGER trg_blocks_ai AFTER INSERT ON blocks BEGIN INSERT INTO search_blocks(rowid, label, description) VALUES (NEW.rowid, NEW.label, NEW.description); END
trg_blocks_auAFTERUPDATECREATE TRIGGER trg_blocks_au AFTER UPDATE OF label, description ON blocks BEGIN INSERT INTO search_blocks(search_blocks, rowid, label, description) VALUES ('delete', OLD.rowid, OLD.label, OLD.description); INSERT INTO search_blocks(rowid, label, description) VALUES (NEW.rowid, NEW.label, NEW.description); END

checkpoint_data_chunks

table · 0 rows

Entity Relationship Diagram

erDiagram
    checkpoint_data_chunks {
        text checkpoint_id PK,FK
        int chunk_index PK
        int offset_bytes
        int size_bytes
        bytes data
    }
    checkpoints ||--o{ checkpoint_data_chunks : ""
Columns
ColumnTypeNullablePKFK
checkpoint_idTEXT✓✓
chunk_indexINTEGER✓
offset_bytesINTEGER
size_bytesINTEGER
dataBLOB
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
checkpoint_id → checkpoints.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_checkpoint_data_chunks_checkpoint_offsetcheckpoint_id, offset_bytes
sqlite_autoindex_checkpoint_data_chunks_1checkpoint_id, chunk_index✓✓
Check constraints
ConstraintClause
chunk_index >= 0
offset_bytes >= 0
size_bytes >= 0

checkpoints

table · 0 rows

Entity Relationship Diagram

erDiagram
    checkpoints {
        text id PK
        text parent_id
        text chain_id FK
        int version_number
        int schema_version
        int timestamp
        text description
        int is_manual_save
        int is_schema_boundary
        text user_id
        text data_checksum
        text storage_key
        int size_bytes
    }
    checkpoints ||--o{ checkpoint_data_chunks : ""
    version_chains ||--o{ checkpoints : ""
    checkpoints ||--o{ deltas : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
parent_idTEXT✓
chain_idTEXT✓
version_numberINTEGER
schema_versionINTEGER
timestampINTEGER
descriptionTEXT✓
is_manual_saveINTEGER0
is_schema_boundaryINTEGER0
user_idTEXT✓
data_checksumTEXT✓
storage_keyTEXT✓
size_bytesINTEGER✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
chain_id → version_chains.id
id ← checkpoint_data_chunks.checkpoint_idcascade
id ← deltas.base_checkpoint_id
Unique constraints
ConstraintColumns
sqlite_autoindex_checkpoints_2version_number
Indexes
IndexColumnsUniquePrimaryType
idx_checkpoints_boundaryis_schema_boundary
idx_checkpoints_chainchain_id, version_number
idx_checkpoints_parentparent_id
idx_checkpoints_schema_versionschema_version, version_number
sqlite_autoindex_checkpoints_1id✓✓
sqlite_autoindex_checkpoints_2version_number✓
Check constraints
ConstraintClause
schema_version >= 1
is_schema_boundary IN (0, 1)

delta_changeset_chunks

table · 0 rows

Entity Relationship Diagram

erDiagram
    delta_changeset_chunks {
        text delta_id PK,FK
        int chunk_index PK
        int offset_bytes
        int size_bytes
        bytes data
    }
    deltas ||--o{ delta_changeset_chunks : ""
Columns
ColumnTypeNullablePKFK
delta_idTEXT✓✓
chunk_indexINTEGER✓
offset_bytesINTEGER
size_bytesINTEGER
dataBLOB
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
delta_id → deltas.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_delta_changeset_chunks_delta_offsetdelta_id, offset_bytes
sqlite_autoindex_delta_changeset_chunks_1delta_id, chunk_index✓✓
Check constraints
ConstraintClause
chunk_index >= 0
offset_bytes >= 0
size_bytes >= 0

deltas

table · 0 rows

Entity Relationship Diagram

erDiagram
    deltas {
        text id PK
        text parent_id
        text base_checkpoint_id FK
        text chain_id FK
        int delta_sequence
        int version_number
        int schema_version
        int timestamp
        text description
        int is_manual_save
        text user_id
        text changeset_checksum
        int size_bytes
    }
    deltas ||--o{ delta_changeset_chunks : ""
    checkpoints ||--o{ deltas : ""
    version_chains ||--o{ deltas : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
parent_idTEXT✓
base_checkpoint_idTEXT✓
chain_idTEXT✓
delta_sequenceINTEGER
version_numberINTEGER
schema_versionINTEGER
timestampINTEGER
descriptionTEXT✓
is_manual_saveINTEGER0
user_idTEXT✓
changeset_checksumTEXT✓
size_bytesINTEGER✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
base_checkpoint_id → checkpoints.id
chain_id → version_chains.id
id ← delta_changeset_chunks.delta_idcascade
Unique constraints
ConstraintColumns
sqlite_autoindex_deltas_2version_number
Indexes
IndexColumnsUniquePrimaryType
idx_deltas_base_checkpointbase_checkpoint_id, delta_sequence
idx_deltas_chainchain_id, version_number
idx_deltas_parentparent_id
idx_deltas_schema_versionschema_version, version_number
sqlite_autoindex_deltas_1id✓✓
sqlite_autoindex_deltas_2version_number✓
Check constraints
ConstraintClause
schema_version >= 1
delta_sequence >= 1

doc_element_referenced_files

table · 0 rows

Entity Relationship Diagram

erDiagram
    doc_element_referenced_files {
        text element_id PK,FK
        text file_id PK
        int sort_order
    }
    element_doc ||--o{ doc_element_referenced_files : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
file_idTEXT✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → element_doc.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_doc_referenced_files_filefile_id
sqlite_autoindex_doc_element_referenced_files_1element_id, file_id✓✓

document_dictionary

table · 0 rows

Entity Relationship Diagram

erDiagram
    document_dictionary {
        text key PK
        text value
    }
Columns
ColumnTypeNullablePKFK
keyTEXT✓
valueTEXT
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_document_dictionary_1key✓✓

document_grid_config

table · 0 rows

Entity Relationship Diagram

erDiagram
    document_grid_config {
        text element_id PK,FK
        text file_id
        int grid_columns
        float grid_gap_x
        float grid_gap_y
        int grid_first_page_alone
        float grid_scale
    }
    elements ||--|| document_grid_config : ""
    document_grid_config |o--|| element_doc : ""
    document_grid_config ||--|| element_pdf : ""
    document_grid_config ||--|| element_table : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
file_idTEXT✓
grid_columnsINTEGER1
grid_gap_xREAL0.0
grid_gap_yREAL0.0
grid_first_page_aloneINTEGER0
grid_scaleREAL1.0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
element_id ← element_doc.element_idcascade
element_id ← element_pdf.element_idcascade
element_id ← element_table.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_doc_grid_config_filefile_id
sqlite_autoindex_document_grid_config_1element_id✓✓

duc_charter

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_charter {
        int id PK
        text title
        text description
        text objective
        text phase
        text closed_reason
        int updated_at
    }
Columns
ColumnTypeNullablePKFKDefault
idINTEGER✓✓
titleTEXT''
descriptionTEXT✓
objectiveTEXT''
phaseTEXT'intent'
closed_reasonTEXT✓
updated_atINTEGER0
Check constraints
ConstraintClause
id = 1
phase IN ('intent', 'review', 'delivery', 'closed')

duc_charter_constraints

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_charter_constraints {
        text id PK
        text statement
        int hard
        int sort_order
    }
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
statementTEXT
hardINTEGER1
sort_orderINTEGER0
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_charter_constraints_1id✓✓

duc_charter_decision_issue_ids

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_charter_decision_issue_ids {
        text decision_id PK,FK
        text issue_id
        int sort_order PK
    }
    duc_charter_decisions ||--o{ duc_charter_decision_issue_ids : ""
Columns
ColumnTypeNullablePKFKDefault
decision_idTEXT✓✓
issue_idTEXT
sort_orderINTEGER✓0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
decision_id → duc_charter_decisions.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_charter_decision_issue_ids_1decision_id, sort_order✓✓

duc_charter_decisions

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_charter_decisions {
        text id PK
        int accepted
        text decision
        text rationale
        int decided_at
        int sort_order
    }
    duc_charter_decisions ||--o{ duc_charter_decision_issue_ids : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
acceptedINTEGER1
decisionTEXT
rationaleTEXT
decided_atINTEGER0
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← duc_charter_decision_issue_ids.decision_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_charter_decisions_1id✓✓

duc_charter_requirement_acceptance_criteria

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_charter_requirement_acceptance_criteria {
        text requirement_id PK,FK
        int sort_order PK
        text criterion
    }
    duc_charter_requirements ||--o{ duc_charter_requirement_acceptance_criteria : ""
Columns
ColumnTypeNullablePKFKDefault
requirement_idTEXT✓✓
sort_orderINTEGER✓0
criterionTEXT
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
requirement_id → duc_charter_requirements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_charter_requirement_acceptance_criteria_1requirement_id, sort_order✓✓

duc_charter_requirements

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_charter_requirements {
        text id PK
        text statement
        int must
        int sort_order
    }
    duc_charter_requirements ||--o{ duc_charter_requirement_acceptance_criteria : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
statementTEXT
mustINTEGER1
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← duc_charter_requirement_acceptance_criteria.requirement_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_charter_requirements_1id✓✓

duc_charter_stakeholders

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_charter_stakeholders {
        int sort_order PK
        text actor_identifier
        text actor_name
        text role
    }
Columns
ColumnTypeNullablePKFK
sort_orderINTEGER✓✓
actor_identifierTEXT
actor_nameTEXT✓
roleTEXT

duc_document

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_document {
        text id PK
        text version
        text source
        text data_type
        bytes thumbnail
    }
Columns
ColumnTypeNullablePKFK
idTEXT✓
versionTEXT
sourceTEXT
data_typeTEXT
thumbnailBLOB✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_document_1id✓✓

duc_global_state

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_global_state {
        int id PK
        text view_background_color
        text main_scope
        int scope_exponent_threshold
    }
Columns
ColumnTypeNullablePKFKDefault
idINTEGER✓✓
view_background_colorTEXT
main_scopeTEXT
scope_exponent_thresholdINTEGER3
Check constraints
ConstraintClause
id = 1

duc_issue_anchors

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_issue_anchors {
        text issue_id PK,FK
        text anchor_type
        float canvas_x
        float canvas_y
        text canvas_scope
        text element_id
        float anchor_x
        float anchor_y
        float model_point_x
        float model_point_y
        float model_point_z
        float model_normal_x
        float model_normal_y
        float model_normal_z
        text topology_id
    }
    duc_issues ||--|| duc_issue_anchors : ""
Columns
ColumnTypeNullablePKFK
issue_idTEXT✓✓
anchor_typeTEXT
canvas_xREAL✓
canvas_yREAL✓
canvas_scopeTEXT✓
element_idTEXT✓
anchor_xREAL✓
anchor_yREAL✓
model_point_xREAL✓
model_point_yREAL✓
model_point_zREAL✓
model_normal_xREAL✓
model_normal_yREAL✓
model_normal_zREAL✓
topology_idTEXT✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
issue_id → duc_issues.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_issue_anchors_1issue_id✓✓
Check constraints
ConstraintClause
anchor_type IN ('canvas', 'element', 'model')
Triggers
TriggerTimingEventsDefinition
model_viewer_state_delete_issue_anchorAFTERDELETECREATE TRIGGER model_viewer_state_delete_issue_anchor AFTER DELETE ON duc_issue_anchors BEGIN DELETE FROM model_viewer_state WHERE owner_type = 'issue_anchor' AND owner_id = OLD.issue_id; END

duc_issue_assignees

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_issue_assignees {
        text issue_id PK,FK
        text actor_identifier PK
        int sort_order
    }
    duc_issues ||--o{ duc_issue_assignees : ""
Columns
ColumnTypeNullablePKFKDefault
issue_idTEXT✓✓
actor_identifierTEXT✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
issue_id → duc_issues.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_issue_assignees_1issue_id, actor_identifier✓✓

duc_issue_followers

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_issue_followers {
        text issue_id PK,FK
        text actor_identifier PK
        int sort_order
    }
    duc_issues ||--o{ duc_issue_followers : ""
Columns
ColumnTypeNullablePKFKDefault
issue_idTEXT✓✓
actor_identifierTEXT✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
issue_id → duc_issues.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_issue_followers_1issue_id, actor_identifier✓✓

duc_issue_message_reactions

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_issue_message_reactions {
        text message_id PK,FK
        text emoji PK
        text actor_identifier PK
        int sort_order
    }
    duc_issue_messages ||--o{ duc_issue_message_reactions : ""
Columns
ColumnTypeNullablePKFKDefault
message_idTEXT✓✓
emojiTEXT✓
actor_identifierTEXT✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
message_id → duc_issue_messages.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_duc_issue_message_reactions_1message_id, emoji, actor_identifier✓✓

duc_issue_messages

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_issue_messages {
        text id PK
        text issue_id FK
        text author_identifier
        text author_name
        text content
        text reply_to_id
        int created_at
        int edited_at
        int deleted_at
        int sort_order
    }
    duc_issue_messages ||--o{ duc_issue_message_reactions : ""
    duc_issues ||--o{ duc_issue_messages : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
issue_idTEXT✓
author_identifierTEXT
author_nameTEXT✓
contentTEXT
reply_to_idTEXT✓
created_atINTEGER
edited_atINTEGER✓
deleted_atINTEGER✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
issue_id → duc_issues.idcascade
id ← duc_issue_message_reactions.message_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_duc_issue_messages_issueissue_id, sort_order
sqlite_autoindex_duc_issue_messages_1id✓✓

duc_issues

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_issues {
        text id PK
        int local_id
        text title
        text status
        text dismissed_reason
        int due_date
        text author_id
        int created_at
        int updated_at
        int deleted_at
        int sort_order
    }
    duc_issues ||--|| duc_issue_anchors : ""
    duc_issues ||--o{ duc_issue_assignees : ""
    duc_issues ||--o{ duc_issue_followers : ""
    duc_issues ||--o{ duc_issue_messages : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
local_idINTEGER
titleTEXT
statusTEXT
dismissed_reasonTEXT✓
due_dateINTEGER✓
author_idTEXT
created_atINTEGER
updated_atINTEGER
deleted_atINTEGER✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← duc_issue_anchors.issue_idcascade
id ← duc_issue_assignees.issue_idcascade
id ← duc_issue_followers.issue_idcascade
id ← duc_issue_messages.issue_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_duc_issues_local_idlocal_id✓
idx_duc_issues_statusstatus
idx_duc_issues_updatedupdated_at
sqlite_autoindex_duc_issues_1id✓✓
Check constraints
ConstraintClause
status IN ('open', 'closed', 'dismissed')

duc_local_state

table · 0 rows

Entity Relationship Diagram

erDiagram
    duc_local_state {
        int id PK
        text scope
        float scroll_x
        float scroll_y
        float zoom
        int is_binding_enabled
        float current_item_opacity
        text current_item_font_family
        float current_item_font_size
        int current_item_text_align
        float current_item_roundness
        int start_head_type
        text start_head_block_id
        float start_head_size
        int end_head_type
        text end_head_block_id
        float end_head_size
        int pen_mode
        int view_mode_enabled
        int objects_snap_mode_enabled
        int grid_mode_enabled
        int outline_mode_enabled
        int manual_save_mode
        int decimal_places
    }
Columns
ColumnTypeNullablePKFKDefault
idINTEGER✓✓
scopeTEXT'mm'
scroll_xREAL0.0
scroll_yREAL0.0
zoomREAL1.0
is_binding_enabledINTEGER1
current_item_opacityREAL1.0
current_item_font_familyTEXT'Roboto Mono'
current_item_font_sizeREAL20.0
current_item_text_alignINTEGER10
current_item_roundnessREAL0.0
start_head_typeINTEGER✓
start_head_block_idTEXT✓
start_head_sizeREAL✓
end_head_typeINTEGER✓
end_head_block_idTEXT✓
end_head_sizeREAL✓
pen_modeINTEGER0
view_mode_enabledINTEGER0
objects_snap_mode_enabledINTEGER1
grid_mode_enabledINTEGER1
outline_mode_enabledINTEGER0
manual_save_modeINTEGER0
decimal_placesINTEGER2
Check constraints
ConstraintClause
id = 1

element_block_memberships

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_block_memberships {
        text element_id PK,FK
        text block_id PK,FK
        int sort_order
    }
    blocks ||--o{ element_block_memberships : ""
    elements ||--o{ element_block_memberships : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
block_idTEXT✓✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
block_id → blocks.id
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_elem_blocks_blockblock_id
sqlite_autoindex_element_block_memberships_1element_id, block_id✓✓

element_bound_elements

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_bound_elements {
        text element_id PK,FK
        text bound_element_id PK
        text bound_type
        int sort_order
    }
    elements ||--o{ element_bound_elements : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
bound_element_idTEXT✓
bound_typeTEXT
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_bound_elements_boundbound_element_id
sqlite_autoindex_element_bound_elements_1element_id, bound_element_id✓✓

element_doc

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_doc {
        text element_id PK,FK
        text text
    }
    element_doc ||--o{ doc_element_referenced_files : ""
    document_grid_config |o--|| element_doc : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓✓
textTEXT''
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → document_grid_config.element_idcascade
element_id ← doc_element_referenced_files.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_doc_1element_id✓✓
Triggers
TriggerTimingEventsDefinition
trg_element_doc_adAFTERDELETECREATE TRIGGER trg_element_doc_ad AFTER DELETE ON element_doc BEGIN INSERT INTO search_element_doc(search_element_doc, rowid, text) VALUES ('delete', OLD.rowid, OLD.text); END
trg_element_doc_aiAFTERINSERTCREATE TRIGGER trg_element_doc_ai AFTER INSERT ON element_doc BEGIN INSERT INTO search_element_doc(rowid, text) VALUES (NEW.rowid, NEW.text); END
trg_element_doc_auAFTERUPDATECREATE TRIGGER trg_element_doc_au AFTER UPDATE OF text ON element_doc BEGIN INSERT INTO search_element_doc(search_element_doc, rowid, text) VALUES ('delete', OLD.rowid, OLD.text); INSERT INTO search_element_doc(rowid, text) VALUES (NEW.rowid, NEW.text); END

element_ellipse

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_ellipse {
        text element_id PK,FK
        float ratio
        float start_angle
        float end_angle
        int show_aux_crosshair
    }
    elements ||--|| element_ellipse : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
ratioREAL1.0
start_angleREAL0.0
end_angleREAL6.283185307
show_aux_crosshairINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_ellipse_1element_id✓✓

element_embeddable

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_embeddable {
        text element_id PK,FK
    }
    elements ||--|| element_embeddable : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_embeddable_1element_id✓✓

element_frame

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_frame {
        text element_id PK,FK
    }
    element_stack_properties ||--|| element_frame : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → element_stack_properties.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_frame_1element_id✓✓

element_freedraw

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_freedraw {
        text element_id PK,FK
        float size
        float thinning
        float smoothing
        float streamline
        text easing
        int start_cap
        float start_taper
        text start_easing
        int end_cap
        float end_taper
        text end_easing
        bytes pressures
        int simulate_pressure
        float last_committed_point_x
        float last_committed_point_y
        int last_committed_point_mirror
        text svg_path
    }
    elements ||--|| element_freedraw : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
sizeREAL2.0
thinningREAL0.6
smoothingREAL0.5
streamlineREAL0.5
easingTEXT'easeOutSine'
start_capINTEGER✓
start_taperREAL✓
start_easingTEXT✓
end_capINTEGER✓
end_taperREAL✓
end_easingTEXT✓
pressuresBLOB✓
simulate_pressureINTEGER1
last_committed_point_xREAL✓
last_committed_point_yREAL✓
last_committed_point_mirrorINTEGER✓
svg_pathTEXT✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_freedraw_1element_id✓✓

element_group_memberships

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_group_memberships {
        text element_id PK,FK
        text group_id PK,FK
        int sort_order
    }
    elements ||--o{ element_group_memberships : ""
    groups ||--o{ element_group_memberships : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
group_idTEXT✓✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
group_id → groups.id
Indexes
IndexColumnsUniquePrimaryType
idx_elem_groups_groupgroup_id
sqlite_autoindex_element_group_memberships_1element_id, group_id✓✓

element_image

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_image {
        text element_id PK,FK
        text file_id
        int status
        float scale_x
        float scale_y
        float crop_x
        float crop_y
        float crop_width
        float crop_height
        float crop_natural_width
        float crop_natural_height
        float filter_brightness
        float filter_contrast
    }
    elements ||--|| element_image : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
file_idTEXT✓
statusINTEGER10
scale_xREAL1.0
scale_yREAL1.0
crop_xREAL✓
crop_yREAL✓
crop_widthREAL✓
crop_heightREAL✓
crop_natural_widthREAL✓
crop_natural_heightREAL✓
filter_brightnessREAL✓
filter_contrastREAL✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_element_image_filefile_id
idx_element_image_statusstatus
sqlite_autoindex_element_image_1element_id✓✓

element_linear

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_linear {
        text element_id PK,FK
        float last_committed_point_x
        float last_committed_point_y
        int last_committed_point_mirror
        text start_binding_element_id
        float start_binding_focus
        float start_binding_gap
        float start_binding_fixed_point_x
        float start_binding_fixed_point_y
        int start_binding_point_index
        float start_binding_point_offset
        int start_binding_head_type
        text start_binding_head_block_id
        float start_binding_head_size
        text end_binding_element_id
        float end_binding_focus
        float end_binding_gap
        float end_binding_fixed_point_x
        float end_binding_fixed_point_y
        int end_binding_point_index
        float end_binding_point_offset
        int end_binding_head_type
        text end_binding_head_block_id
        float end_binding_head_size
        int wipeout_below
        int elbowed
    }
    elements ||--|| element_linear : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
last_committed_point_xREAL✓
last_committed_point_yREAL✓
last_committed_point_mirrorINTEGER✓
start_binding_element_idTEXT✓
start_binding_focusREAL✓
start_binding_gapREAL✓
start_binding_fixed_point_xREAL✓
start_binding_fixed_point_yREAL✓
start_binding_point_indexINTEGER✓
start_binding_point_offsetREAL✓
start_binding_head_typeINTEGER✓
start_binding_head_block_idTEXT✓
start_binding_head_sizeREAL✓
end_binding_element_idTEXT✓
end_binding_focusREAL✓
end_binding_gapREAL✓
end_binding_fixed_point_xREAL✓
end_binding_fixed_point_yREAL✓
end_binding_point_indexINTEGER✓
end_binding_point_offsetREAL✓
end_binding_head_typeINTEGER✓
end_binding_head_block_idTEXT✓
end_binding_head_sizeREAL✓
wipeout_belowINTEGER0
elbowedINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_linear_end_bindingend_binding_element_id
idx_linear_start_bindingstart_binding_element_id
sqlite_autoindex_element_linear_1element_id✓✓

element_model

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_model {
        text element_id PK,FK
        text model_type
        text code
        bytes thumbnail
    }
    elements |o--|| element_model : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓✓
model_typeTEXT✓
codeTEXT✓
thumbnailBLOB✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_element_model_typemodel_type
sqlite_autoindex_element_model_1element_id✓✓
Triggers
TriggerTimingEventsDefinition
trg_element_model_adAFTERDELETECREATE TRIGGER trg_element_model_ad AFTER DELETE ON element_model BEGIN INSERT INTO search_element_model(search_element_model, rowid, code) VALUES ('delete', OLD.rowid, OLD.code); END
trg_element_model_aiAFTERINSERTCREATE TRIGGER trg_element_model_ai AFTER INSERT ON element_model BEGIN INSERT INTO search_element_model(rowid, code) VALUES (NEW.rowid, NEW.code); END
trg_element_model_auAFTERUPDATECREATE TRIGGER trg_element_model_au AFTER UPDATE OF code ON element_model BEGIN INSERT INTO search_element_model(search_element_model, rowid, code) VALUES ('delete', OLD.rowid, OLD.code); INSERT INTO search_element_model(rowid, code) VALUES (NEW.rowid, NEW.code); END

element_pdf

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_pdf {
        text element_id PK,FK
    }
    document_grid_config ||--|| element_pdf : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → document_grid_config.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_pdf_1element_id✓✓

element_plot

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_plot {
        text element_id PK,FK
        float margin_top
        float margin_right
        float margin_bottom
        float margin_left
    }
    element_stack_properties ||--|| element_plot : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
margin_topREAL0.0
margin_rightREAL0.0
margin_bottomREAL0.0
margin_leftREAL0.0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → element_stack_properties.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_plot_1element_id✓✓

element_polygon

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_polygon {
        text element_id PK,FK
        int sides
    }
    elements ||--|| element_polygon : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
sidesINTEGER5
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_polygon_1element_id✓✓

element_region_memberships

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_region_memberships {
        text element_id PK,FK
        text region_id PK,FK
        int sort_order
    }
    elements ||--o{ element_region_memberships : ""
    regions ||--o{ element_region_memberships : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
region_idTEXT✓✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
region_id → regions.id
Indexes
IndexColumnsUniquePrimaryType
idx_elem_regions_regionregion_id
sqlite_autoindex_element_region_memberships_1element_id, region_id✓✓

element_stack_properties

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_stack_properties {
        text element_id PK,FK
        text label
        text description
        int is_collapsed
        int is_plot
        int is_visible
        int locked
        float opacity
        int clip
        int label_visible
    }
    element_stack_properties ||--|| element_frame : ""
    element_stack_properties ||--|| element_plot : ""
    elements ||--|| element_stack_properties : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
labelTEXT''
descriptionTEXT✓
is_collapsedINTEGER0
is_plotINTEGER1
is_visibleINTEGER1
lockedINTEGER0
opacityREAL1.0
clipINTEGER0
label_visibleINTEGER1
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
element_id ← element_frame.element_idcascade
element_id ← element_plot.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_stack_properties_1element_id✓✓

element_table

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_table {
        text element_id PK,FK
    }
    document_grid_config ||--|| element_table : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → document_grid_config.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_element_table_1element_id✓✓

element_text

table · 0 rows

Entity Relationship Diagram

erDiagram
    element_text {
        text element_id PK,FK
        text text
        text original_text
        int auto_resize
        text container_id
        int is_ltr
        text font_family
        text big_font_family
        int text_align
        int vertical_align
        float line_height
        float line_spacing_value
        int line_spacing_type
        float oblique_angle
        float font_size
        float width_factor
        int is_upside_down
        int is_backwards
    }
    elements |o--|| element_text : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓✓
textTEXT''
original_textTEXT''
auto_resizeINTEGER1
container_idTEXT✓
is_ltrINTEGER1
font_familyTEXT'Roboto Mono'
big_font_familyTEXT'sans-serif'
text_alignINTEGER10
vertical_alignINTEGER10
line_heightREAL1.2
line_spacing_valueREAL1.2
line_spacing_typeINTEGER✓
oblique_angleREAL0.0
font_sizeREAL20.0
width_factorREAL1.0
is_upside_downINTEGER0
is_backwardsINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_element_text_containercontainer_id
idx_element_text_font_familyfont_family
sqlite_autoindex_element_text_1element_id✓✓
Triggers
TriggerTimingEventsDefinition
trg_element_text_adAFTERDELETECREATE TRIGGER trg_element_text_ad AFTER DELETE ON element_text BEGIN INSERT INTO search_element_text(search_element_text, rowid, text, original_text) VALUES ('delete', OLD.rowid, OLD.text, OLD.original_text); END
trg_element_text_aiAFTERINSERTCREATE TRIGGER trg_element_text_ai AFTER INSERT ON element_text BEGIN INSERT INTO search_element_text(rowid, text, original_text) VALUES (NEW.rowid, NEW.text, NEW.original_text); END
trg_element_text_auAFTERUPDATECREATE TRIGGER trg_element_text_au AFTER UPDATE OF text, original_text ON element_text BEGIN INSERT INTO search_element_text(search_element_text, rowid, text, original_text) VALUES ('delete', OLD.rowid, OLD.text, OLD.original_text); INSERT INTO search_element_text(rowid, text, original_text) VALUES (NEW.rowid, NEW.text, NEW.original_text); END

elements

table · 0 rows

Entity Relationship Diagram

erDiagram
    elements {
        text id PK
        text element_type
        float x
        float y
        float width
        float height
        float angle
        text scope
        text label
        text description
        int is_visible
        int seed
        int version
        int version_nonce
        int updated
        text index
        int is_plot
        int is_deleted
        float roundness
        int blending
        float opacity
        text instance_id FK
        text layer_id FK
        text frame_id
        float z_index
        text link
        int locked
        unknown custom_data
    }
    elements ||--|| document_grid_config : ""
    elements ||--o{ element_block_memberships : ""
    elements ||--o{ element_bound_elements : ""
    elements ||--|| element_ellipse : ""
    elements ||--|| element_embeddable : ""
    elements ||--|| element_freedraw : ""
    elements ||--o{ element_group_memberships : ""
    elements ||--|| element_image : ""
    elements ||--|| element_linear : ""
    elements |o--|| element_model : ""
    elements ||--|| element_polygon : ""
    elements ||--o{ element_region_memberships : ""
    elements ||--|| element_stack_properties : ""
    elements |o--|| element_text : ""
    block_instances |o--o{ elements : ""
    layers |o--o{ elements : ""
    elements ||--o{ freedraw_element_points : ""
    elements ||--o{ linear_element_lines : ""
    elements ||--o{ linear_element_points : ""
    elements ||--o{ linear_path_overrides : ""
    elements ||--o{ model_element_files : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓✓
element_typeTEXT
xREAL0.0
yREAL0.0
widthREAL0.0
heightREAL0.0
angleREAL0.0
scopeTEXT'mm'
labelTEXT''
descriptionTEXT✓
is_visibleINTEGER1
seedINTEGER0
versionINTEGER1
version_nonceINTEGER0
updatedINTEGER0
indexTEXT✓
is_plotINTEGER1
is_deletedINTEGER0
roundnessREAL0.0
blendingINTEGER✓
opacityREAL1.0
instance_idTEXT✓✓
layer_idTEXT✓✓
frame_idTEXT✓
z_indexREAL0.0
linkTEXT✓
lockedINTEGER0
custom_dataJSONB✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
instance_id → block_instances.id
layer_id → layers.id
id ← document_grid_config.element_idcascade
id ← element_block_memberships.element_idcascade
id ← element_bound_elements.element_idcascade
id ← element_ellipse.element_idcascade
id ← element_embeddable.element_idcascade
id ← element_freedraw.element_idcascade
id ← element_group_memberships.element_idcascade
id ← element_image.element_idcascade
id ← element_linear.element_idcascade
id ← element_model.element_idcascade
id ← element_polygon.element_idcascade
id ← element_region_memberships.element_idcascade
id ← element_stack_properties.element_idcascade
id ← element_text.element_idcascade
id ← freedraw_element_points.element_idcascade
id ← linear_element_lines.element_idcascade
id ← linear_element_points.element_idcascade
id ← linear_path_overrides.element_idcascade
id ← model_element_files.element_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_elements_deletedis_deleted
idx_elements_frameframe_id
idx_elements_instanceinstance_id
idx_elements_labellabel
idx_elements_layerlayer_id
idx_elements_scopescope
idx_elements_spatialx, y, width, height
idx_elements_typeelement_type
idx_elements_updatedupdated
idx_elements_z_indexz_index
sqlite_autoindex_elements_1id✓✓
Triggers
TriggerTimingEventsDefinition
model_viewer_state_delete_elementAFTERDELETECREATE TRIGGER model_viewer_state_delete_element AFTER DELETE ON elements BEGIN DELETE FROM model_viewer_state WHERE owner_type = 'element' AND owner_id = OLD.id; END
trg_elements_adAFTERDELETECREATE TRIGGER trg_elements_ad AFTER DELETE ON elements BEGIN INSERT INTO search_elements(search_elements, rowid, label, description) VALUES ('delete', OLD.rowid, OLD.label, OLD.description); END
trg_elements_aiAFTERINSERTCREATE TRIGGER trg_elements_ai AFTER INSERT ON elements BEGIN INSERT INTO search_elements(rowid, label, description) VALUES (NEW.rowid, NEW.label, NEW.description); END
trg_elements_auAFTERUPDATECREATE TRIGGER trg_elements_au AFTER UPDATE OF label, description ON elements BEGIN INSERT INTO search_elements(search_elements, rowid, label, description) VALUES ('delete', OLD.rowid, OLD.label, OLD.description); INSERT INTO search_elements(rowid, label, description) VALUES (NEW.rowid, NEW.label, NEW.description); END

external_file_revision_chunks

table · 0 rows

Entity Relationship Diagram

erDiagram
    external_file_revision_chunks {
        text revision_id PK,FK
        int chunk_index PK
        int offset_bytes
        int size_bytes
        bytes data
    }
    external_file_revisions ||--o{ external_file_revision_chunks : ""
Columns
ColumnTypeNullablePKFK
revision_idTEXT✓✓
chunk_indexINTEGER✓
offset_bytesINTEGER
size_bytesINTEGER
dataBLOB
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
revision_id → external_file_revisions.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_external_file_revision_chunks_revision_offsetrevision_id, offset_bytes
sqlite_autoindex_external_file_revision_chunks_1revision_id, chunk_index✓✓
Check constraints
ConstraintClause
chunk_index >= 0
offset_bytes >= 0
size_bytes >= 0

external_file_revisions

table · 0 rows

Entity Relationship Diagram

erDiagram
    external_file_revisions {
        text id PK
        text file_id FK
        int size_bytes
        text checksum
        text source_name
        text mime_type
        text message
        int created
        int last_retrieved
    }
    external_file_revisions ||--o{ external_file_revision_chunks : ""
    external_files ||--o{ external_file_revisions : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
file_idTEXT✓
size_bytesINTEGER0
checksumTEXT✓
source_nameTEXT✓
mime_typeTEXT
messageTEXT✓
createdINTEGER
last_retrievedINTEGER✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
file_id → external_files.idcascade
id ← external_file_revision_chunks.revision_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_external_file_revisions_filefile_id
sqlite_autoindex_external_file_revisions_1id✓✓

external_file_text_index

table · 0 rows

Entity Relationship Diagram

erDiagram
    external_file_text_index {
        int id PK
        text file_id
        text revision_id
        text mime_type
        text extracted_text
        int has_ocr
        int updated
    }
Columns
ColumnTypeNullablePKFKAutoDefault
idINTEGER✓✓auto_inc
file_idTEXT
revision_idTEXT
mime_typeTEXT
extracted_textTEXT''
has_ocrINTEGER0
updatedINTEGER
Unique constraints
ConstraintColumns
sqlite_autoindex_external_file_text_index_1file_id, revision_id
Indexes
IndexColumnsUniquePrimaryType
idx_external_file_text_index_file_idfile_id
idx_external_file_text_index_revision_idrevision_id
sqlite_autoindex_external_file_text_index_1file_id, revision_id✓
Triggers
TriggerTimingEventsDefinition
trg_external_file_text_index_adAFTERDELETECREATE TRIGGER trg_external_file_text_index_ad AFTER DELETE ON external_file_text_index BEGIN INSERT INTO search_external_file_text(search_external_file_text, rowid, extracted_text) VALUES ('delete', OLD.id, OLD.extracted_text); END
trg_external_file_text_index_aiAFTERINSERTCREATE TRIGGER trg_external_file_text_index_ai AFTER INSERT ON external_file_text_index BEGIN INSERT INTO search_external_file_text(rowid, extracted_text) VALUES (NEW.id, NEW.extracted_text); END
trg_external_file_text_index_auAFTERUPDATECREATE TRIGGER trg_external_file_text_index_au AFTER UPDATE OF extracted_text ON external_file_text_index BEGIN INSERT INTO search_external_file_text(search_external_file_text, rowid, extracted_text) VALUES ('delete', OLD.id, OLD.extracted_text); INSERT INTO search_external_file_text(rowid, extracted_text) VALUES (NEW.id, NEW.extracted_text); END

external_files

table · 0 rows

Entity Relationship Diagram

erDiagram
    external_files {
        text id PK
        text active_revision_id
        int updated
        int version
    }
    external_files ||--o{ external_file_revisions : ""
Columns
ColumnTypeNullablePKFK
idTEXT✓
active_revision_idTEXT
updatedINTEGER
versionINTEGER✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← external_file_revisions.file_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_external_files_activeactive_revision_id
sqlite_autoindex_external_files_1id✓✓

freedraw_element_points

table · 0 rows

Entity Relationship Diagram

erDiagram
    freedraw_element_points {
        text element_id PK,FK
        int sort_order PK
        float x
        float y
        int mirroring
    }
    elements ||--o{ freedraw_element_points : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓
sort_orderINTEGER✓
xREAL
yREAL
mirroringINTEGER✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_freedraw_element_points_1element_id, sort_order✓✓

groups

table · 0 rows

Entity Relationship Diagram

erDiagram
    groups {
        text id PK,FK
    }
    groups ||--o{ element_group_memberships : ""
    stack_properties ||--|| groups : ""
Columns
ColumnTypeNullablePKFK
idTEXT✓✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id → stack_properties.idcascade
id ← element_group_memberships.group_id
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_groups_1id✓✓

hatch_pattern_lines

table · 0 rows

Entity Relationship Diagram

erDiagram
    hatch_pattern_lines {
        int id PK
        text owner_type
        int owner_id
        int sort_order
        float angle
        float origin_x
        float origin_y
        int origin_mirroring
        float offset_x
        float offset_y
        bytes dash_pattern
    }
Columns
ColumnTypeNullablePKFKAutoDefault
idINTEGER✓✓auto_inc
owner_typeTEXT
owner_idINTEGER
sort_orderINTEGER0
angleREAL0.0
origin_xREAL0.0
origin_yREAL0.0
origin_mirroringINTEGER✓
offset_xREAL0.0
offset_yREAL0.0
dash_patternBLOB✓
Indexes
IndexColumnsUniquePrimaryType
idx_hatch_lines_ownerowner_type, owner_id

layers

table · 0 rows

Entity Relationship Diagram

erDiagram
    layers {
        text id PK,FK
        int readonly
    }
    layers |o--o{ elements : ""
    stack_properties ||--|| layers : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓✓
readonlyINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id → stack_properties.idcascade
id ← elements.layer_id
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_layers_1id✓✓

linear_element_lines

table · 0 rows

Entity Relationship Diagram

erDiagram
    linear_element_lines {
        text element_id PK,FK
        int sort_order PK
        int start_index
        float start_handle_x
        float start_handle_y
        int end_index
        float end_handle_x
        float end_handle_y
    }
    elements ||--o{ linear_element_lines : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓
sort_orderINTEGER✓
start_indexINTEGER
start_handle_xREAL✓
start_handle_yREAL✓
end_indexINTEGER
end_handle_xREAL✓
end_handle_yREAL✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_linear_element_lines_1element_id, sort_order✓✓

linear_element_points

table · 0 rows

Entity Relationship Diagram

erDiagram
    linear_element_points {
        text element_id PK,FK
        int sort_order PK
        float x
        float y
        int mirroring
    }
    elements ||--o{ linear_element_points : ""
Columns
ColumnTypeNullablePKFK
element_idTEXT✓✓
sort_orderINTEGER✓
xREAL
yREAL
mirroringINTEGER✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_linear_element_points_1element_id, sort_order✓✓

linear_path_override_indices

table · 0 rows

Entity Relationship Diagram

erDiagram
    linear_path_override_indices {
        int path_override_id PK,FK
        int sort_order PK
        int line_index
    }
    linear_path_overrides ||--o{ linear_path_override_indices : ""
Columns
ColumnTypeNullablePKFK
path_override_idINTEGER✓✓
sort_orderINTEGER✓
line_indexINTEGER
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
path_override_id → linear_path_overrides.idcascade
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_linear_path_override_indices_1path_override_id, sort_order✓✓

linear_path_overrides

table · 0 rows

Entity Relationship Diagram

erDiagram
    linear_path_overrides {
        int id PK
        text element_id FK
        int sort_order
    }
    linear_path_overrides ||--o{ linear_path_override_indices : ""
    elements ||--o{ linear_path_overrides : ""
Columns
ColumnTypeNullablePKFKAuto
idINTEGER✓✓auto_inc
element_idTEXT✓
sort_orderINTEGER
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
id ← linear_path_override_indices.path_override_idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_path_overrides_elementelement_id

model_element_files

table · 0 rows

Entity Relationship Diagram

erDiagram
    model_element_files {
        text element_id PK,FK
        text file_id PK
        int sort_order
    }
    elements ||--o{ model_element_files : ""
Columns
ColumnTypeNullablePKFKDefault
element_idTEXT✓✓
file_idTEXT✓
sort_orderINTEGER0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
element_id → elements.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_model_files_filefile_id
sqlite_autoindex_model_element_files_1element_id, file_id✓✓

model_viewer_state

table · 0 rows

Entity Relationship Diagram

erDiagram
    model_viewer_state {
        text owner_type PK
        text owner_id PK
        text camera_control
        int camera_ortho
        text camera_up
        float camera_position_x
        float camera_position_y
        float camera_position_z
        float camera_quaternion_x
        float camera_quaternion_y
        float camera_quaternion_z
        float camera_quaternion_w
        float camera_target_x
        float camera_target_y
        float camera_target_z
        float camera_zoom
        float camera_pan_speed
        float camera_rotate_speed
        float camera_zoom_speed
        int camera_holroyd
        int display_wireframe
        int display_transparent
        int display_black_edges
        int display_grid_uniform
        int display_grid_xy
        int display_grid_xz
        int display_grid_yz
        int display_axes_visible
        int display_axes_at_origin
        float material_metalness
        float material_roughness
        float material_default_opacity
        int material_edge_color
        float material_ambient_intensity
        float material_direct_intensity
        int clip_x_enabled
        float clip_x_value
        float clip_x_normal_x
        float clip_x_normal_y
        float clip_x_normal_z
        int clip_y_enabled
        float clip_y_value
        float clip_y_normal_x
        float clip_y_normal_y
        float clip_y_normal_z
        int clip_z_enabled
        float clip_z_value
        float clip_z_normal_x
        float clip_z_normal_y
        float clip_z_normal_z
        int clip_intersection
        int clip_show_planes
        int clip_object_color_caps
        int explode_active
        float explode_value
        int zebra_active
        int zebra_stripe_count
        float zebra_stripe_direction
        text zebra_color_scheme
        float zebra_opacity
        text zebra_mapping_mode
    }
Columns
ColumnTypeNullablePKFKDefault
owner_typeTEXT✓
owner_idTEXT✓
camera_controlTEXT'orbit'
camera_orthoINTEGER0
camera_upTEXT'Z'
camera_position_xREAL0.0
camera_position_yREAL0.0
camera_position_zREAL0.0
camera_quaternion_xREAL0.0
camera_quaternion_yREAL0.0
camera_quaternion_zREAL0.0
camera_quaternion_wREAL1.0
camera_target_xREAL0.0
camera_target_yREAL0.0
camera_target_zREAL0.0
camera_zoomREAL1.0
camera_pan_speedREAL1.0
camera_rotate_speedREAL1.0
camera_zoom_speedREAL1.0
camera_holroydINTEGER0
display_wireframeINTEGER0
display_transparentINTEGER0
display_black_edgesINTEGER0
display_grid_uniformINTEGER✓
display_grid_xyINTEGER0
display_grid_xzINTEGER0
display_grid_yzINTEGER0
display_axes_visibleINTEGER0
display_axes_at_originINTEGER0
material_metalnessREAL0.0
material_roughnessREAL0.5
material_default_opacityREAL1.0
material_edge_colorINTEGER0
material_ambient_intensityREAL0.5
material_direct_intensityREAL0.5
clip_x_enabledINTEGER0
clip_x_valueREAL0.0
clip_x_normal_xREAL✓
clip_x_normal_yREAL✓
clip_x_normal_zREAL✓
clip_y_enabledINTEGER0
clip_y_valueREAL0.0
clip_y_normal_xREAL✓
clip_y_normal_yREAL✓
clip_y_normal_zREAL✓
clip_z_enabledINTEGER0
clip_z_valueREAL0.0
clip_z_normal_xREAL✓
clip_z_normal_yREAL✓
clip_z_normal_zREAL✓
clip_intersectionINTEGER0
clip_show_planesINTEGER0
clip_object_color_capsINTEGER0
explode_activeINTEGER0
explode_valueREAL0.0
zebra_activeINTEGER0
zebra_stripe_countINTEGER10
zebra_stripe_directionREAL0.0
zebra_color_schemeTEXT'blackwhite'
zebra_opacityREAL1.0
zebra_mapping_modeTEXT'reflection'
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_model_viewer_state_1owner_type, owner_id✓✓
Check constraints
ConstraintClause
owner_type IN ('element', 'issue_anchor')

regions

table · 0 rows

Entity Relationship Diagram

erDiagram
    regions {
        text id PK,FK
        int boolean_operation
    }
    regions ||--o{ element_region_memberships : ""
    stack_properties ||--|| regions : ""
Columns
ColumnTypeNullablePKFK
idTEXT✓✓
boolean_operationINTEGER
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id → stack_properties.idcascade
id ← element_region_memberships.region_id
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_regions_1id✓✓

schema_migrations

table · 0 rows

Entity Relationship Diagram

erDiagram
    schema_migrations {
        int id PK
        int from_schema_version
        int to_schema_version
        text migration_name
        text migration_sql
        text reverse_migration_sql
        text migration_checksum
        int applied_at
        text boundary_checkpoint_id
    }
    schema_migrations |o--o{ version_chains : ""
Columns
ColumnTypeNullablePKFKAuto
idINTEGER✓✓auto_inc
from_schema_versionINTEGER
to_schema_versionINTEGER
migration_nameTEXT
migration_sqlTEXT✓
reverse_migration_sqlTEXT✓
migration_checksumTEXT✓
applied_atINTEGER
boundary_checkpoint_idTEXT✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← version_chains.migration_id
Unique constraints
ConstraintColumns
sqlite_autoindex_schema_migrations_1from_schema_version, to_schema_version
Indexes
IndexColumnsUniquePrimaryType
idx_schema_migrations_to_versionto_schema_version
sqlite_autoindex_schema_migrations_1from_schema_version, to_schema_version✓
Check constraints
ConstraintClause
to_schema_version > from_schema_version

search_blocks_config

table · 1 rows

Entity Relationship Diagram

erDiagram
    search_blocks_config {
        text k PK
        int v
    }
Columns
ColumnTypeNullablePKFK
ktext✓
vinteger✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_blocks_config_1k✓✓

search_blocks_data

table · 2 rows

Entity Relationship Diagram

erDiagram
    search_blocks_data {
        int id PK
        bytes block
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
blockBLOB✓

search_blocks_docsize

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_blocks_docsize {
        int id PK
        bytes sz
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
szBLOB✓

search_blocks_idx

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_blocks_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
Columns
ColumnTypeNullablePKFK
segid✓
term✓
pgno✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_blocks_idx_1segid, term✓✓

search_element_doc_config

table · 1 rows

Entity Relationship Diagram

erDiagram
    search_element_doc_config {
        text k PK
        int v
    }
Columns
ColumnTypeNullablePKFK
ktext✓
vinteger✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_element_doc_config_1k✓✓

search_element_doc_data

table · 2 rows

Entity Relationship Diagram

erDiagram
    search_element_doc_data {
        int id PK
        bytes block
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
blockBLOB✓

search_element_doc_docsize

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_doc_docsize {
        int id PK
        bytes sz
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
szBLOB✓

search_element_doc_idx

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_doc_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
Columns
ColumnTypeNullablePKFK
segid✓
term✓
pgno✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_element_doc_idx_1segid, term✓✓

search_element_model_config

table · 1 rows

Entity Relationship Diagram

erDiagram
    search_element_model_config {
        text k PK
        int v
    }
Columns
ColumnTypeNullablePKFK
ktext✓
vinteger✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_element_model_config_1k✓✓

search_element_model_data

table · 2 rows

Entity Relationship Diagram

erDiagram
    search_element_model_data {
        int id PK
        bytes block
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
blockBLOB✓

search_element_model_docsize

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_model_docsize {
        int id PK
        bytes sz
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
szBLOB✓

search_element_model_idx

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_model_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
Columns
ColumnTypeNullablePKFK
segid✓
term✓
pgno✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_element_model_idx_1segid, term✓✓

search_element_text_config

table · 1 rows

Entity Relationship Diagram

erDiagram
    search_element_text_config {
        text k PK
        int v
    }
Columns
ColumnTypeNullablePKFK
ktext✓
vinteger✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_element_text_config_1k✓✓

search_element_text_data

table · 2 rows

Entity Relationship Diagram

erDiagram
    search_element_text_data {
        int id PK
        bytes block
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
blockBLOB✓

search_element_text_docsize

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_text_docsize {
        int id PK
        bytes sz
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
szBLOB✓

search_element_text_idx

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_text_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
Columns
ColumnTypeNullablePKFK
segid✓
term✓
pgno✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_element_text_idx_1segid, term✓✓

search_elements_config

table · 1 rows

Entity Relationship Diagram

erDiagram
    search_elements_config {
        text k PK
        int v
    }
Columns
ColumnTypeNullablePKFK
ktext✓
vinteger✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_elements_config_1k✓✓

search_elements_data

table · 2 rows

Entity Relationship Diagram

erDiagram
    search_elements_data {
        int id PK
        bytes block
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
blockBLOB✓

search_elements_docsize

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_elements_docsize {
        int id PK
        bytes sz
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
szBLOB✓

search_elements_idx

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_elements_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
Columns
ColumnTypeNullablePKFK
segid✓
term✓
pgno✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_elements_idx_1segid, term✓✓

search_external_file_text_config

table · 1 rows

Entity Relationship Diagram

erDiagram
    search_external_file_text_config {
        text k PK
        int v
    }
Columns
ColumnTypeNullablePKFK
ktext✓
vinteger✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_external_file_text_config_1k✓✓

search_external_file_text_data

table · 2 rows

Entity Relationship Diagram

erDiagram
    search_external_file_text_data {
        int id PK
        bytes block
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
blockBLOB✓

search_external_file_text_docsize

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_external_file_text_docsize {
        int id PK
        bytes sz
    }
Columns
ColumnTypeNullablePKFK
idINTEGER✓✓
szBLOB✓

search_external_file_text_idx

table · 0 rows

Entity Relationship Diagram

erDiagram
    search_external_file_text_idx {
        bytes segid PK
        bytes term PK
        bytes pgno
    }
Columns
ColumnTypeNullablePKFK
segid✓
term✓
pgno✓
Indexes
IndexColumnsUniquePrimaryType
sqlite_autoindex_search_external_file_text_idx_1segid, term✓✓

stack_properties

table · 0 rows

Entity Relationship Diagram

erDiagram
    stack_properties {
        text id PK
        text label
        text description
        int is_collapsed
        int is_plot
        int is_visible
        int locked
        float opacity
    }
    stack_properties ||--|| groups : ""
    stack_properties ||--|| layers : ""
    stack_properties ||--|| regions : ""
Columns
ColumnTypeNullablePKFKDefault
idTEXT✓
labelTEXT''
descriptionTEXT✓
is_collapsedINTEGER0
is_plotINTEGER0
is_visibleINTEGER1
lockedINTEGER0
opacityREAL1.0
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
id ← groups.idcascade
id ← layers.idcascade
id ← regions.idcascade
Indexes
IndexColumnsUniquePrimaryType
idx_stack_properties_labellabel
sqlite_autoindex_stack_properties_1id✓✓

strokes

table · 0 rows

Entity Relationship Diagram

erDiagram
    strokes {
        int id PK
        text owner_type
        text owner_id
        int sort_order
        int preference
        text src
        int visible
        float opacity
        float tiling_size_in_percent
        float tiling_angle
        float tiling_spacing
        float tiling_offset_x
        float tiling_offset_y
        int hatch_style
        text hatch_pattern_name
        float hatch_pattern_scale
        float hatch_pattern_angle
        float hatch_pattern_origin_x
        float hatch_pattern_origin_y
        int hatch_pattern_origin_mirror
        int hatch_pattern_double
        text hatch_custom_pattern_name
        text hatch_custom_pattern_desc
        float image_filter_brightness
        float image_filter_contrast
        float width
        int style_preference
        int style_cap
        int style_join
        bytes style_dash
        text style_dash_line_override
        int style_dash_cap
        float style_miter_limit
        int placement
        int sides_preference
        bytes sides_values
    }
Columns
ColumnTypeNullablePKFKAutoDefault
idINTEGER✓✓auto_inc
owner_typeTEXT
owner_idTEXT
sort_orderINTEGER0
preferenceINTEGER✓
srcTEXT''
visibleINTEGER1
opacityREAL1.0
tiling_size_in_percentREAL✓
tiling_angleREAL✓
tiling_spacingREAL✓
tiling_offset_xREAL✓
tiling_offset_yREAL✓
hatch_styleINTEGER✓
hatch_pattern_nameTEXT✓
hatch_pattern_scaleREAL✓
hatch_pattern_angleREAL✓
hatch_pattern_origin_xREAL✓
hatch_pattern_origin_yREAL✓
hatch_pattern_origin_mirrorINTEGER✓
hatch_pattern_doubleINTEGER✓
hatch_custom_pattern_nameTEXT✓
hatch_custom_pattern_descTEXT✓
image_filter_brightnessREAL✓
image_filter_contrastREAL✓
widthREAL1.0
style_preferenceINTEGER✓
style_capINTEGER✓
style_joinINTEGER✓
style_dashBLOB✓
style_dash_line_overrideTEXT✓
style_dash_capINTEGER✓
style_miter_limitREAL✓
placementINTEGER✓
sides_preferenceINTEGER✓
sides_valuesBLOB✓
Indexes
IndexColumnsUniquePrimaryType
idx_strokes_ownerowner_type, owner_id
idx_strokes_srcsrc

version_chains

table · 0 rows

Entity Relationship Diagram

erDiagram
    version_chains {
        text id PK
        int schema_version
        int start_version
        int end_version
        int migration_id FK
        text root_checkpoint_id
    }
    version_chains ||--o{ checkpoints : ""
    version_chains ||--o{ deltas : ""
    schema_migrations |o--o{ version_chains : ""
Columns
ColumnTypeNullablePKFK
idTEXT✓
schema_versionINTEGER
start_versionINTEGER
end_versionINTEGER✓
migration_idINTEGER✓✓
root_checkpoint_idTEXT✓
Foreign keys
Relationship (→ references · ← referenced by)ConstraintOn updateOn delete
migration_id → schema_migrations.id
id ← checkpoints.chain_id
id ← deltas.chain_id
Unique constraints
ConstraintColumns
sqlite_autoindex_version_chains_2schema_version, start_version
Indexes
IndexColumnsUniquePrimaryType
idx_version_chains_schema_versionschema_version, start_version
sqlite_autoindex_version_chains_1id✓✓
sqlite_autoindex_version_chains_2schema_version, start_version✓
Check constraints
ConstraintClause
schema_version >= 1
end_version IS NULL OR end_version >= start_version

version_graph

table · 1 rows

Entity Relationship Diagram

erDiagram
    version_graph {
        int id PK
        int current_version
        int current_schema_version
        text user_checkpoint_version_id
        text latest_version_id
        int chain_count
        int total_size
    }
Columns
ColumnTypeNullablePKFKDefault
idINTEGER✓✓
current_versionINTEGER0
current_schema_versionINTEGER1
user_checkpoint_version_idTEXT✓
latest_version_idTEXT✓
chain_countINTEGER1
total_sizeINTEGER✓
Check constraints
ConstraintClause
id = 1
current_schema_version >= 1
chain_count >= 1

search_blocks

virtual · 0 rows

Entity Relationship Diagram

erDiagram
    search_blocks {
        bytes label
        bytes description
    }
Columns
ColumnTypeNullablePKFK
label✓
description✓

search_element_doc

virtual · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_doc {
        bytes text
    }
Columns
ColumnTypeNullablePKFK
text✓

search_element_model

virtual · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_model {
        bytes code
    }
Columns
ColumnTypeNullablePKFK
code✓

search_element_text

virtual · 0 rows

Entity Relationship Diagram

erDiagram
    search_element_text {
        bytes text
        bytes original_text
    }
Columns
ColumnTypeNullablePKFK
text✓
original_text✓

search_elements

virtual · 0 rows

Entity Relationship Diagram

erDiagram
    search_elements {
        bytes label
        bytes description
    }
Columns
ColumnTypeNullablePKFK
label✓
description✓

search_external_file_text

virtual · 0 rows

Entity Relationship Diagram

erDiagram
    search_external_file_text {
        bytes extracted_text
    }
Columns
ColumnTypeNullablePKFK
extracted_text✓