{
  "format": "groundroster-organisation-export",
  "formatVersion": 1,
  "files": [
    {
      "path": "data/organization.json",
      "table": "organization",
      "scope": "organisation",
      "columns": ["id", "name", "code", "type", "created_at", "updated_at"]
    },
    {
      "path": "data/station.json",
      "table": "station",
      "scope": "organisation",
      "columns": ["id", "org_id", "iata", "icao", "name", "timezone", "created_at", "updated_at"]
    },
    {
      "path": "data/stand.json",
      "table": "stand",
      "scope": "organisation",
      "columns": ["id", "station_id", "code", "type", "max_size_category", "zone", "restricts_stand_codes", "restriction_threshold", "walk_minutes_to_terminal", "closed", "created_at", "updated_at"]
    },
    {
      "path": "data/qualification.json",
      "table": "qualification",
      "scope": "organisation",
      "columns": ["id", "station_id", "code", "name", "category", "created_at", "updated_at"]
    },
    {
      "path": "data/agency.json",
      "table": "agency",
      "scope": "organisation",
      "columns": ["id", "station_id", "code", "name", "certification", "certified_until", "active", "created_at", "updated_at"]
    },
    {
      "path": "data/task_type.json",
      "table": "task_type",
      "scope": "organisation",
      "columns": ["id", "code", "name", "required_qualification_id", "required_gse_type_id", "default_duration_minutes", "anchor", "offset_start_minutes", "headcount", "applies_when", "created_at", "updated_at", "station_id"]
    },
    {
      "path": "data/shift_template.json",
      "table": "shift_template",
      "scope": "organisation",
      "columns": ["id", "station_id", "code", "name", "start_time", "end_time", "ends_next_day", "break_minutes", "category", "color", "created_at", "updated_at"]
    },
    {
      "path": "data/roster_period.json",
      "table": "roster_period",
      "scope": "organisation",
      "columns": ["id", "station_id", "name", "start_date", "end_date", "status", "published_at", "score", "created_at", "updated_at", "demand_mode", "coverage_snapshot_at", "status_before_solve", "solving_since", "imported"]
    },
    {
      "path": "data/gse_unit.json",
      "table": "gse_unit",
      "scope": "organisation",
      "columns": ["id", "station_id", "gse_type_id", "code", "status", "zone", "created_at", "updated_at"]
    },
    {
      "path": "data/entra_tenant.json",
      "table": "entra_tenant",
      "scope": "organisation",
      "columns": ["id", "tenant_id", "org_id", "created_at", "updated_at"]
    },
    {
      "path": "data/employee.json",
      "table": "employee",
      "scope": "organisation",
      "columns": ["id", "station_id", "employee_number", "first_name", "last_name", "email", "phone", "team", "contract_type", "fte_hours_per_week", "max_hours_per_week", "hire_date", "active", "created_at", "updated_at", "agency_id"]
    },
    {
      "path": "data/aircraft_visit.json",
      "table": "aircraft_visit",
      "scope": "organisation",
      "columns": ["id", "station_id", "op_date", "airline_code", "airline_name", "flight_no_arr", "flight_no_dep", "aircraft_type_id", "registration", "origin", "destination", "sta", "eta", "ata", "std", "etd", "atd", "pax_arr", "pax_dep", "status", "stand_id", "stand_pinned", "baseline_stand_id", "handler_note", "created_at", "updated_at"]
    },
    {
      "path": "data/station_location.json",
      "table": "station_location",
      "scope": "organisation",
      "columns": ["id", "station_id", "code", "name", "type", "terminal", "active", "created_at", "updated_at"]
    },
    {
      "path": "data/shift_pattern.json",
      "table": "shift_pattern",
      "scope": "organisation",
      "columns": ["id", "station_id", "code", "name", "description", "anchor_date", "active", "created_at", "updated_at"]
    },
    {
      "path": "data/shift_assignment.json",
      "table": "shift_assignment",
      "scope": "organisation",
      "columns": ["id", "roster_period_id", "date", "shift_template_id", "required_qualification_id", "slot_index", "employee_id", "pinned", "source", "created_at", "updated_at"]
    },
    {
      "path": "data/ground_task.json",
      "table": "ground_task",
      "scope": "organisation",
      "columns": ["id", "station_id", "visit_id", "task_type_id", "op_date", "window_start", "window_end", "duration_minutes", "slot_index", "status", "assigned_employee_id", "assigned_gse_unit_id", "pinned", "baseline_employee_id", "baseline_gse_unit_id", "created_at", "updated_at", "actual_start", "actual_end"]
    },
    {
      "path": "data/forecast_run.json",
      "table": "forecast_run",
      "scope": "organisation",
      "columns": ["id", "station_id", "from_date", "to_date", "location_scope", "run_trigger", "status", "flights_considered", "intervals_written", "params_snapshot_json", "error", "started_at", "finished_at", "created_at", "updated_at"]
    },
    {
      "path": "data/app_user.json",
      "table": "app_user",
      "scope": "organisation",
      "columns": ["id", "org_id", "station_id", "email", "display_name", "role", "employee_id", "active", "created_at", "updated_at", "entra_tenant_id", "entra_object_id"]
    },
    {
      "path": "data/task_photo.json",
      "table": "task_photo",
      "scope": "organisation",
      "columns": ["id", "task_id", "employee_id", "content_type", "created_at", "updated_at"]
    },
    {
      "path": "data/swap_request.json",
      "table": "swap_request",
      "scope": "organisation",
      "columns": ["id", "station_id", "requester_id", "offered_assignment_id", "requested_assignment_id", "acceptor_id", "status", "validation_json", "decided_by", "decided_at", "created_at", "updated_at"]
    },
    {
      "path": "data/station_demand_settings.json",
      "table": "station_demand_settings",
      "scope": "organisation",
      "columns": ["id", "station_id", "default_load_factor_pct", "auto_refresh_enabled", "auto_refresh_days", "created_at", "updated_at"]
    },
    {
      "path": "data/show_up_profile.json",
      "table": "show_up_profile",
      "scope": "organisation",
      "columns": ["id", "station_id", "code", "name", "direction", "priority", "match_airlines", "match_airports", "match_size_categories", "is_default", "buckets_json", "created_at", "updated_at"]
    },
    {
      "path": "data/shift_pattern_step.json",
      "table": "shift_pattern_step",
      "scope": "organisation",
      "columns": ["id", "pattern_id", "step_index", "shift_template_id", "created_at", "updated_at"]
    },
    {
      "path": "data/shift_demand.json",
      "table": "shift_demand",
      "scope": "organisation",
      "columns": ["id", "roster_period_id", "date", "shift_template_id", "required_qualification_id", "headcount", "created_at", "updated_at"]
    },
    {
      "path": "data/service_parameter_set.json",
      "table": "service_parameter_set",
      "scope": "organisation",
      "columns": ["id", "location_id", "effective_from", "pax_share_pct", "max_lanes", "min_lanes", "lane_throughput_pax_per_hour", "service_level_target_pct", "max_wait_minutes", "staff_per_lane", "lane_qualification_id", "fixed_overhead_headcount", "fixed_overhead_qualification_id", "open_time", "close_time", "created_at", "updated_at"]
    },
    {
      "path": "data/schedule_import.json",
      "table": "schedule_import",
      "scope": "organisation",
      "columns": ["id", "station_id", "filename", "rows_imported", "rows_rejected", "status", "error_summary", "created_at", "updated_at"]
    },
    {
      "path": "data/rule_setting.json",
      "table": "rule_setting",
      "scope": "organisation",
      "columns": ["id", "station_id", "rule_code", "enabled", "hardness", "weight", "params_json", "created_at", "updated_at"]
    },
    {
      "path": "data/pattern_assignment.json",
      "table": "pattern_assignment",
      "scope": "organisation",
      "columns": ["id", "pattern_id", "employee_id", "team", "effective_from", "effective_to", "cycle_offset", "created_at", "updated_at"]
    },
    {
      "path": "data/passenger_forecast.json",
      "table": "passenger_forecast",
      "scope": "organisation",
      "columns": ["id", "station_id", "location_id", "op_date", "interval_index", "interval_start_utc", "forecast_pax", "actual_pax", "run_id", "created_at", "updated_at"]
    },
    {
      "path": "data/ops_event.json",
      "table": "ops_event",
      "scope": "organisation",
      "columns": ["id", "station_id", "op_date", "type", "headline", "payload_json", "sim_clock", "applied", "created_at", "updated_at"]
    },
    {
      "path": "data/notification.json",
      "table": "notification",
      "scope": "organisation",
      "columns": ["id", "user_id", "type", "title", "body", "payload_json", "read_flag", "created_at", "updated_at"]
    },
    {
      "path": "data/leave_request.json",
      "table": "leave_request",
      "scope": "organisation",
      "columns": ["id", "employee_id", "start_date", "end_date", "type", "status", "comment", "decided_by", "decided_at", "created_at", "updated_at", "auto_approved"]
    },
    {
      "path": "data/leave_policy.json",
      "table": "leave_policy",
      "scope": "organisation",
      "columns": ["id", "station_id", "day_counting", "default_annual_days", "notice_days", "auto_approve_enabled", "insufficient_balance_action", "created_at", "updated_at"]
    },
    {
      "path": "data/leave_entitlement.json",
      "table": "leave_entitlement",
      "scope": "organisation",
      "columns": ["id", "employee_id", "leave_year", "entitled_days", "carried_over_days", "note", "created_at", "updated_at"]
    },
    {
      "path": "data/leave_allowance_rule.json",
      "table": "leave_allowance_rule",
      "scope": "organisation",
      "columns": ["id", "station_id", "team", "max_concurrent", "created_at", "updated_at"]
    },
    {
      "path": "data/interval_demand.json",
      "table": "interval_demand",
      "scope": "organisation",
      "columns": ["id", "station_id", "location_id", "op_date", "interval_index", "interval_start_utc", "qualification_id", "team", "headcount", "origin", "explanation_json", "run_id", "created_at", "updated_at"]
    },
    {
      "path": "data/fixed_post_rule.json",
      "table": "fixed_post_rule",
      "scope": "organisation",
      "columns": ["id", "location_id", "qualification_id", "team", "days_of_week", "start_time", "end_time", "ends_next_day", "headcount", "effective_from", "effective_to", "created_at", "updated_at"]
    },
    {
      "path": "data/employee_qualification.json",
      "table": "employee_qualification",
      "scope": "organisation",
      "columns": ["id", "employee_id", "qualification_id", "valid_from", "valid_until", "created_at", "updated_at"]
    },
    {
      "path": "data/employee_preference.json",
      "table": "employee_preference",
      "scope": "organisation",
      "columns": ["id", "employee_id", "type", "pref_value", "weight", "created_at", "updated_at"]
    },
    {
      "path": "data/demand_upload.json",
      "table": "demand_upload",
      "scope": "organisation",
      "columns": ["id", "station_id", "filename", "kind", "rows_imported", "rows_rejected", "status", "error_summary", "created_at", "updated_at"]
    },
    {
      "path": "data/coverage_requirement.json",
      "table": "coverage_requirement",
      "scope": "organisation",
      "columns": ["id", "roster_period_id", "date", "required_qualification_id", "intervals_json", "source", "created_at", "updated_at"]
    },
    {
      "path": "data/actuals_import.json",
      "table": "actuals_import",
      "scope": "organisation",
      "columns": ["id", "station_id", "kind", "filename", "rows_imported", "rows_rejected", "status", "error_summary", "created_at", "updated_at"]
    },
    {
      "path": "data/actual_demand_interval.json",
      "table": "actual_demand_interval",
      "scope": "organisation",
      "columns": ["id", "station_id", "location_code", "date", "interval_start_minute", "interval_minutes", "metric", "metric_value", "created_at", "updated_at"]
    },
    {
      "path": "data/actual_attendance.json",
      "table": "actual_attendance",
      "scope": "organisation",
      "columns": ["id", "shift_assignment_id", "station_id", "employee_id", "date", "actual_start", "actual_end", "absence_reason", "source", "note", "created_at", "updated_at"]
    },
    {
      "path": "data/subscription.json",
      "table": "subscription",
      "scope": "organisation",
      "columns": ["id", "marketplace_subscription_id", "org_id", "offer_id", "plan_id", "quantity", "state", "purchaser_tenant_id", "purchaser_object_id", "purchaser_email", "activated_at", "suspended_at", "unsubscribed_at", "delete_after", "deleted_at", "created_at", "updated_at"]
    },
    {
      "path": "data/audit_event.json",
      "table": "audit_event",
      "scope": "organisation",
      "columns": ["id", "occurred_at", "actor_user_id", "actor_email", "actor_role", "org_id", "station_id", "action", "entity_type", "entity_id", "summary", "payload_json", "created_at", "updated_at"]
    },
    {
      "path": "data/aircraft_type.json",
      "table": "aircraft_type",
      "scope": "reference",
      "columns": ["id", "code", "name", "size_category", "default_turnaround_minutes", "pax_capacity", "created_at", "updated_at"]
    },
    {
      "path": "data/gse_type.json",
      "table": "gse_type",
      "scope": "reference",
      "columns": ["id", "code", "name", "created_at", "updated_at"]
    }
  ],
  "links": [
    {
      "table": "actual_attendance",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "actual_attendance",
      "columns": ["shift_assignment_id"],
      "references": "shift_assignment",
      "referencedColumns": ["id"]
    },
    {
      "table": "actual_attendance",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "actual_demand_interval",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "actuals_import",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "agency",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "aircraft_visit",
      "columns": ["aircraft_type_id"],
      "references": "aircraft_type",
      "referencedColumns": ["id"]
    },
    {
      "table": "aircraft_visit",
      "columns": ["stand_id"],
      "references": "stand",
      "referencedColumns": ["id"]
    },
    {
      "table": "aircraft_visit",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "app_user",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "app_user",
      "columns": ["entra_tenant_id", "org_id"],
      "references": "entra_tenant",
      "referencedColumns": ["tenant_id", "org_id"]
    },
    {
      "table": "app_user",
      "columns": ["org_id"],
      "references": "organization",
      "referencedColumns": ["id"]
    },
    {
      "table": "app_user",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "coverage_requirement",
      "columns": ["required_qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "coverage_requirement",
      "columns": ["roster_period_id"],
      "references": "roster_period",
      "referencedColumns": ["id"]
    },
    {
      "table": "demand_upload",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "employee",
      "columns": ["agency_id"],
      "references": "agency",
      "referencedColumns": ["id"]
    },
    {
      "table": "employee",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "employee_preference",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "employee_qualification",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "employee_qualification",
      "columns": ["qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "entra_tenant",
      "columns": ["org_id"],
      "references": "organization",
      "referencedColumns": ["id"]
    },
    {
      "table": "fixed_post_rule",
      "columns": ["location_id"],
      "references": "station_location",
      "referencedColumns": ["id"]
    },
    {
      "table": "fixed_post_rule",
      "columns": ["qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "forecast_run",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "ground_task",
      "columns": ["assigned_employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "ground_task",
      "columns": ["assigned_gse_unit_id"],
      "references": "gse_unit",
      "referencedColumns": ["id"]
    },
    {
      "table": "ground_task",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "ground_task",
      "columns": ["task_type_id"],
      "references": "task_type",
      "referencedColumns": ["id"]
    },
    {
      "table": "ground_task",
      "columns": ["visit_id"],
      "references": "aircraft_visit",
      "referencedColumns": ["id"]
    },
    {
      "table": "gse_unit",
      "columns": ["gse_type_id"],
      "references": "gse_type",
      "referencedColumns": ["id"]
    },
    {
      "table": "gse_unit",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "interval_demand",
      "columns": ["location_id"],
      "references": "station_location",
      "referencedColumns": ["id"]
    },
    {
      "table": "interval_demand",
      "columns": ["qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "interval_demand",
      "columns": ["run_id"],
      "references": "forecast_run",
      "referencedColumns": ["id"]
    },
    {
      "table": "interval_demand",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "leave_allowance_rule",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "leave_entitlement",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "leave_policy",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "leave_request",
      "columns": ["decided_by"],
      "references": "app_user",
      "referencedColumns": ["id"]
    },
    {
      "table": "leave_request",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "notification",
      "columns": ["user_id"],
      "references": "app_user",
      "referencedColumns": ["id"]
    },
    {
      "table": "ops_event",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "passenger_forecast",
      "columns": ["location_id"],
      "references": "station_location",
      "referencedColumns": ["id"]
    },
    {
      "table": "passenger_forecast",
      "columns": ["run_id"],
      "references": "forecast_run",
      "referencedColumns": ["id"]
    },
    {
      "table": "passenger_forecast",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "pattern_assignment",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "pattern_assignment",
      "columns": ["pattern_id"],
      "references": "shift_pattern",
      "referencedColumns": ["id"]
    },
    {
      "table": "qualification",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "roster_period",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "rule_setting",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "schedule_import",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "service_parameter_set",
      "columns": ["fixed_overhead_qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "service_parameter_set",
      "columns": ["lane_qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "service_parameter_set",
      "columns": ["location_id"],
      "references": "station_location",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_assignment",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_assignment",
      "columns": ["required_qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_assignment",
      "columns": ["roster_period_id"],
      "references": "roster_period",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_assignment",
      "columns": ["shift_template_id"],
      "references": "shift_template",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_demand",
      "columns": ["required_qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_demand",
      "columns": ["roster_period_id"],
      "references": "roster_period",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_demand",
      "columns": ["shift_template_id"],
      "references": "shift_template",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_pattern",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_pattern_step",
      "columns": ["pattern_id"],
      "references": "shift_pattern",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_pattern_step",
      "columns": ["shift_template_id"],
      "references": "shift_template",
      "referencedColumns": ["id"]
    },
    {
      "table": "shift_template",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "show_up_profile",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "stand",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "station",
      "columns": ["org_id"],
      "references": "organization",
      "referencedColumns": ["id"]
    },
    {
      "table": "station_demand_settings",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "station_location",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "subscription",
      "columns": ["org_id"],
      "references": "organization",
      "referencedColumns": ["id"]
    },
    {
      "table": "swap_request",
      "columns": ["acceptor_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "swap_request",
      "columns": ["decided_by"],
      "references": "app_user",
      "referencedColumns": ["id"]
    },
    {
      "table": "swap_request",
      "columns": ["offered_assignment_id"],
      "references": "shift_assignment",
      "referencedColumns": ["id"]
    },
    {
      "table": "swap_request",
      "columns": ["requested_assignment_id"],
      "references": "shift_assignment",
      "referencedColumns": ["id"]
    },
    {
      "table": "swap_request",
      "columns": ["requester_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "swap_request",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    },
    {
      "table": "task_photo",
      "columns": ["employee_id"],
      "references": "employee",
      "referencedColumns": ["id"]
    },
    {
      "table": "task_photo",
      "columns": ["task_id"],
      "references": "ground_task",
      "referencedColumns": ["id"]
    },
    {
      "table": "task_type",
      "columns": ["required_gse_type_id"],
      "references": "gse_type",
      "referencedColumns": ["id"]
    },
    {
      "table": "task_type",
      "columns": ["required_qualification_id"],
      "references": "qualification",
      "referencedColumns": ["id"]
    },
    {
      "table": "task_type",
      "columns": ["station_id"],
      "references": "station",
      "referencedColumns": ["id"]
    }
  ],
  "notExported": {
    "tables": [
      {
        "table": "refresh_token",
        "reason": "Sign-in sessions. They hold hashes of session tokens: security material of the Service."
      },
      {
        "table": "password_reset_token",
        "reason": "Password-reset and invitation links, kept as hashes: single-use credentials."
      },
      {
        "table": "sso_link_token",
        "reason": "Single-use links that connect a Microsoft account, kept as hashes: credentials."
      },
      {
        "table": "ical_feed_token",
        "reason": "Calendar feed addresses, kept as hashes: the address is the key to a person's feed."
      },
      {
        "table": "push_subscription",
        "reason": "Browser registrations for push notifications: an address and keys that belong to one person's browser and are a credential for sending to it."
      },
      {
        "table": "shedlock",
        "reason": "The Service's own lock for its scheduled jobs. It holds nothing of any customer."
      },
      {
        "table": "flyway_schema_history",
        "reason": "The Service's own record of its database versions. It holds nothing of any customer."
      }
    ],
    "columns": [
      {
        "table": "app_user",
        "column": "password_hash",
        "reason": "A password is kept only as a hash, and the hash is a secret."
      },
      {
        "table": "app_user",
        "column": "session_version",
        "reason": "A counter that ends a user's sessions: session material of the Service."
      },
      {
        "table": "task_photo",
        "column": "data",
        "reason": "The picture itself. It is in this archive as an image file under photos/."
      },
      {
        "table": "task_photo",
        "column": "storage_key",
        "reason": "Where the Service keeps the picture: internal to the Service."
      }
    ],
    "records": [
      {
        "table": "app_user",
        "records": "accounts of TECHNOBYTE support, and their notifications",
        "reason": "They are TECHNOBYTE's accounts, not your users; the user list in the app leaves them out too. What such an account changed is in your audit trail."
      }
    ]
  }
}
