39054-vm/backend/src/db/seeders/20231127130745-sample-data.js
2026-03-08 20:32:56 +00:00

8200 lines
169 KiB
JavaScript

const db = require('../models');
const Users = db.users;
const Organizations = db.organizations;
const Assets = db.assets;
const DataSources = db.data_sources;
const IngestionPipelines = db.ingestion_pipelines;
const TelemetryEvents = db.telemetry_events;
const AiModels = db.ai_models;
const Detections = db.detections;
const Incidents = db.incidents;
const ResponsePlaybooks = db.response_playbooks;
const ResponseActions = db.response_actions;
const SocAgents = db.soc_agents;
const ThreatActors = db.threat_actors;
const ThreatIndicators = db.threat_indicators;
const ThreatCampaigns = db.threat_campaigns;
const AttackMapEvents = db.attack_map_events;
const RiskAssessments = db.risk_assessments;
const SimulationLabs = db.simulation_labs;
const SimulationRuns = db.simulation_runs;
const InfrastructureClusters = db.infrastructure_clusters;
const EdgeSensors = db.edge_sensors;
const Reports = db.reports;
const AiRecommendations = db.ai_recommendations;
const OrganizationsData = [
{
"name": "Apex National Bank",
},
{
"name": "Northbridge Health Systems",
},
{
"name": "Ministry of Transport Digital",
},
];
const AssetsData = [
{
// type code here for "relation_one" field
"name": "Core Banking API",
"asset_type": "host",
"environment": "production",
"ip_address": "10.20.5.14",
"hostname": "corebank-api-01",
"os": "Linux",
"cloud_provider": "AWS",
"criticality": "low",
"internet_exposed": true,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
"name": "Customer Web Portal",
"asset_type": "workstation",
"environment": "production",
"ip_address": "10.20.8.21",
"hostname": "cust-portal-01",
"os": "Linux",
"cloud_provider": "AWS",
"criticality": "medium",
"internet_exposed": true,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
"name": "EHR Database",
"asset_type": "server",
"environment": "production",
"ip_address": "10.30.2.10",
"hostname": "ehr-db-01",
"os": "Linux",
"cloud_provider": "Azure",
"criticality": "low",
"internet_exposed": false,
// type code here for "relation_one" field
},
];
const DataSourcesData = [
{
// type code here for "relation_one" field
"name": "Apex EDR Tenant",
"source_type": "siem",
"status": "onboarding",
"connector_type": "crowdstrike",
"endpoint_url": "https://api.edr.example/apex",
"auth_method": "oauth2",
"poll_interval_seconds": 60,
"last_ingested_at": new Date('2026-03-07T15:09:30Z'),
"notes": "Endpoint telemetry from corporate workstations",
},
{
// type code here for "relation_one" field
"name": "Apex Firewall Logs",
"source_type": "edr",
"status": "error",
"connector_type": "syslog",
"endpoint_url": "udp://logs.apexbank.com:514",
"auth_method": "none",
"poll_interval_seconds": 0,
"last_ingested_at": new Date('2026-03-07T15:09:10Z'),
"notes": "Perimeter firewall syslog stream",
},
{
// type code here for "relation_one" field
"name": "Northbridge O365 Email Gateway",
"source_type": "cloud_logs",
"status": "error",
"connector_type": "microsoft_graph",
"endpoint_url": "https://graph.microsoft.com",
"auth_method": "oauth2",
"poll_interval_seconds": 120,
"last_ingested_at": new Date('2026-03-07T15:07:55Z'),
"notes": "Mail flow and phishing signals",
},
];
const IngestionPipelinesData = [
{
"name": "Kafka Stream NA-Logs",
"pipeline_type": "webhook",
"status": "degraded",
// type code here for "relation_many" field
"kafka_topic": "na.security.logs",
"data_lake_path": "s3://cybershield-datalake/na/logs/",
"throughput_eps": 18500.0,
"error_rate_percent": 0.3,
"last_health_check_at": new Date('2026-03-07T15:05:00Z'),
// type code here for "relation_one" field
},
{
"name": "Collector O365-Mail",
"pipeline_type": "kafka_stream",
"status": "healthy",
// type code here for "relation_many" field
"kafka_topic": "mail.security.events",
"data_lake_path": "s3://cybershield-datalake/mail/events/",
"throughput_eps": 2400.0,
"error_rate_percent": 0.2,
"last_health_check_at": new Date('2026-03-07T15:05:00Z'),
// type code here for "relation_one" field
},
{
"name": "Webhook K8s-Audit",
"pipeline_type": "file_drop",
"status": "down",
// type code here for "relation_many" field
"kafka_topic": "k8s.audit.events",
"data_lake_path": "s3://cybershield-datalake/k8s/audit/",
"throughput_eps": 3200.0,
"error_rate_percent": 0.4,
"last_health_check_at": new Date('2026-03-07T15:05:00Z'),
// type code here for "relation_one" field
},
];
const TelemetryEventsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"observed_at": new Date('2026-03-07T15:01:12Z'),
"event_type": "email",
"severity": "medium",
"summary": "Multiple failed connections to admin endpoint",
"raw_payload": "src=198.51.100.24 dst=203.0.113.10 path=/admin/login status=401 count=35",
"hash": "evt-7f3a1c2b",
"flagged": true,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"observed_at": new Date('2026-03-07T14:58:44Z'),
"event_type": "cloud",
"severity": "informational",
"summary": "Suspicious process spawned from service account",
"raw_payload": "proc=cmd.exe parent=svc_host user=svc_api args=/c powershell -enc ...",
"hash": "evt-91b0d7aa",
"flagged": true,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"observed_at": new Date('2026-03-07T14:55:09Z'),
"event_type": "iam",
"severity": "low",
"summary": "Inbound email with credential harvesting link",
"raw_payload": "from=payroll-update@external.example subject=Action required url=https://login-secure.example/nbh",
"hash": "evt-0c7d2e11",
"flagged": true,
},
];
const AiModelsData = [
{
"name": "AnomalyNet Stream v2",
"model_type": "risk_scoring",
"status": "active",
"version": "2.1.0",
"framework": "PyTorch",
"artifact_uri": "s3://cybershield-models/anomalynet/2.1.0/model.pt",
"threshold": 0.78,
"trained_at": new Date('2026-02-10T11:30:00Z'),
"activated_at": new Date('2026-02-12T09:00:00Z'),
"description": "Streaming anomaly detection for auth and network behaviors",
// type code here for "relation_one" field
},
{
"name": "MalwareVision CNN v3",
"model_type": "risk_scoring",
"status": "deprecated",
"version": "3.0.2",
"framework": "TensorFlow",
"artifact_uri": "s3://cybershield-models/malwarevision/3.0.2/model.h5",
"threshold": 0.84,
"trained_at": new Date('2026-01-28T16:00:00Z'),
"activated_at": new Date('2026-02-02T10:00:00Z'),
"description": "Malware family classification from static features",
// type code here for "relation_one" field
},
{
"name": "PhishGuard NLP v1",
"model_type": "soc_agent_policy",
"status": "active",
"version": "1.4.5",
"framework": "Transformers",
"artifact_uri": "s3://cybershield-models/phishguard/1.4.5/model.bin",
"threshold": 0.73,
"trained_at": new Date('2026-02-05T13:00:00Z'),
"activated_at": new Date('2026-02-06T09:00:00Z'),
"description": "Email and URL phishing detection with explainability",
// type code here for "relation_one" field
},
];
const DetectionsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"detected_at": new Date('2026-03-07T15:01:20Z'),
"detection_type": "anomaly",
"status": "confirmed",
"confidence": 0.81,
"risk_score": 72.0,
"title": "Anomalous admin endpoint probing",
"evidence": "Spike in 401 responses and unusual source ASN for portal admin route",
"requires_response": true,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"detected_at": new Date('2026-03-07T14:59:10Z'),
"detection_type": "data_exfiltration",
"status": "confirmed",
"confidence": 0.88,
"risk_score": 86.0,
"title": "Possible living-off-the-land execution on API host",
"evidence": "Encoded PowerShell execution chain consistent with initial loader behavior",
"requires_response": true,
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"detected_at": new Date('2026-03-07T14:55:20Z'),
"detection_type": "malware",
"status": "triaged",
"confidence": 0.92,
"risk_score": 90.0,
"title": "Credential phishing attempt targeting payroll users",
"evidence": "URL similarity to known kit infrastructure and malicious language features",
"requires_response": true,
},
];
const IncidentsData = [
{
// type code here for "relation_one" field
"name": "Portal Admin Probing March 2026",
"severity": "medium",
"status": "recovered",
"opened_at": new Date('2026-03-07T15:02:00Z'),
"closed_at": new Date('2026-03-08T03:00:00Z'),
// type code here for "relation_many" field
// type code here for "relation_one" field
"summary": "Elevated probing activity against administrative routes; IPs added to watchlist and WAF rules tightened.",
"business_impact_score": 65.0,
},
{
// type code here for "relation_one" field
"name": "Suspicious Service Account Execution",
"severity": "high",
"status": "contained",
"opened_at": new Date('2026-03-07T15:00:00Z'),
"closed_at": new Date('2026-03-08T10:00:00Z'),
// type code here for "relation_many" field
// type code here for "relation_one" field
"summary": "Service account activity triggered isolation of affected host and credential rotation while forensic triage runs.",
"business_impact_score": 92.0,
},
{
// type code here for "relation_one" field
"name": "Payroll Phishing Campaign",
"severity": "critical",
"status": "recovered",
"opened_at": new Date('2026-03-07T14:56:00Z'),
"closed_at": new Date('2026-03-09T14:00:00Z'),
// type code here for "relation_many" field
// type code here for "relation_one" field
"summary": "Malicious email campaign blocked; affected users notified; conditional access tightened.",
"business_impact_score": 70.0,
},
];
const ResponsePlaybooksData = [
{
"name": "Isolate Host and Collect Triage",
"category": "notification",
"status": "active",
"trigger_conditions": "Detection type malware with risk score above 80",
"steps": "1 Identify affected asset 2 Isolate endpoint 3 Collect memory and triage bundle 4 Open incident ticket 5 Notify on-call",
"requires_approval": true,
"expected_duration_minutes": 25.0,
"description": "Contain suspected compromise while preserving evidence",
// type code here for "relation_one" field
},
{
"name": "Block IP and Harden WAF",
"category": "containment",
"status": "draft",
"trigger_conditions": "Anomalous probing against admin paths",
"steps": "1 Add IP to WAF blocklist 2 Add rate limiting rule 3 Validate logs for spread 4 Add watch query",
"requires_approval": true,
"expected_duration_minutes": 15.0,
"description": "Automated edge blocking for suspicious scanners",
// type code here for "relation_one" field
},
{
"name": "Phishing Takedown and User Notice",
"category": "notification",
"status": "active",
"trigger_conditions": "Phishing detection confirmed",
"steps": "1 Quarantine message 2 Block sender and URLs 3 Create user notification 4 Trigger password reset for clicked users",
"requires_approval": true,
"expected_duration_minutes": 40.0,
"description": "Respond to credential phishing with containment and comms",
// type code here for "relation_one" field
},
];
const ResponseActionsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"action_type": "restore_backup",
"status": "succeeded",
"requested_at": new Date('2026-03-07T15:03:00Z'),
"executed_at": new Date('2026-03-07T15:03:20Z'),
// type code here for "relation_one" field
"target": "198.51.100.24",
"action_result": "Added to WAF blocklist and rate limiting applied",
"automated": true,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"action_type": "notify",
"status": "running",
"requested_at": new Date('2026-03-07T15:02:00Z'),
"executed_at": new Date('2026-03-07T15:06:00Z'),
// type code here for "relation_one" field
"target": "corebank-api-01",
"action_result": "Awaiting manager approval for isolation",
"automated": true,
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"action_type": "quarantine_file",
"status": "running",
"requested_at": new Date('2026-03-07T15:00:00Z'),
"executed_at": new Date('2026-03-07T15:05:00Z'),
// type code here for "relation_one" field
"target": "Payroll user distribution list",
"action_result": "Notification draft generated and quarantine in progress",
"automated": true,
// type code here for "relation_one" field
},
];
const SocAgentsData = [
{
"name": "Aegis SOC Agent",
"agent_type": "automation_engine",
"status": "online",
// type code here for "relation_one" field
"capabilities": "Triage detections, correlate signals, propose actions, execute low-risk playbooks",
"approval_required_by_default": true,
"last_heartbeat_at": new Date('2026-03-07T15:09:50Z'),
"actions_success_rate": 96.4,
// type code here for "relation_one" field
},
{
"name": "AutoResponse Engine NA",
"agent_type": "self_healing_network_controller",
"status": "online",
// type code here for "relation_one" field
"capabilities": "Execute WAF blocks, firewall updates, account disables, ticket creation",
"approval_required_by_default": true,
"last_heartbeat_at": new Date('2026-03-07T15:09:45Z'),
"actions_success_rate": 93.1,
// type code here for "relation_one" field
},
{
"name": "SelfHeal Net Controller",
"agent_type": "self_healing_network_controller",
"status": "degraded",
// type code here for "relation_one" field
"capabilities": "Network segmentation, route changes, quarantine zones, rollback configs",
"approval_required_by_default": true,
"last_heartbeat_at": new Date('2026-03-07T15:00:10Z'),
"actions_success_rate": 88.7,
// type code here for "relation_one" field
},
];
const ThreatActorsData = [
{
"name": "Silver Hydra",
"actor_type": "insider",
"motivation": "unknown",
"origin_country": "Unknown",
"aliases": "SH-Group, HydraSil",
"profile": "Advanced actor targeting government and critical infrastructure with cloud credential theft.",
"threat_level": 88.0,
"first_seen_at": new Date('2024-11-12T00:00:00Z'),
"last_seen_at": new Date('2026-03-01T00:00:00Z'),
// type code here for "relation_one" field
},
{
"name": "Crimson Ledger",
"actor_type": "hacktivist",
"motivation": "unknown",
"origin_country": "Unknown",
"aliases": "CL-Collective",
"profile": "Financially motivated group deploying ransomware via phishing and remote services.",
"threat_level": 82.0,
"first_seen_at": new Date('2023-06-04T00:00:00Z'),
"last_seen_at": new Date('2026-02-25T00:00:00Z'),
// type code here for "relation_one" field
},
{
"name": "Northwind Jackal",
"actor_type": "insider",
"motivation": "espionage",
"origin_country": "Unknown",
"aliases": "NWJ",
"profile": "Stealthy operator leveraging supply-chain compromise for long-term persistence.",
"threat_level": 76.0,
"first_seen_at": new Date('2022-09-18T00:00:00Z'),
"last_seen_at": new Date('2026-02-10T00:00:00Z'),
// type code here for "relation_one" field
},
];
const ThreatIndicatorsData = [
{
"indicator_value": "203.0.113.77",
"indicator_type": "user_agent",
"confidence": "low",
"severity": "low",
// type code here for "relation_one" field
"first_seen_at": new Date('2026-02-20T00:00:00Z'),
"last_seen_at": new Date('2026-03-07T00:00:00Z'),
"source": "Global Threat Feed Premium",
"context": "Known C2 endpoint associated with ransomware staging.",
"active": true,
// type code here for "relation_one" field
},
{
"indicator_value": "login-secure.example",
"indicator_type": "url",
"confidence": "medium",
"severity": "low",
// type code here for "relation_one" field
"first_seen_at": new Date('2026-03-01T00:00:00Z'),
"last_seen_at": new Date('2026-03-07T00:00:00Z'),
"source": "Global Threat Feed Premium",
"context": "Credential phishing domain used in payroll-themed lures.",
"active": true,
// type code here for "relation_one" field
},
{
"indicator_value": "198.51.100.24",
"indicator_type": "certificate",
"confidence": "low",
"severity": "medium",
// type code here for "relation_one" field
"first_seen_at": new Date('2026-03-05T00:00:00Z'),
"last_seen_at": new Date('2026-03-07T00:00:00Z'),
"source": "Internal Observation",
"context": "Repeated probing of admin endpoints across multiple tenants.",
"active": true,
// type code here for "relation_one" field
},
];
const ThreatCampaignsData = [
{
"name": "Payroll Refresh 2026",
// type code here for "relation_one" field
"status": "dormant",
"start_at": new Date('2026-02-25T00:00:00Z'),
"end_at": new Date('2026-03-20T00:00:00Z'),
"summary": "Phishing campaign targeting payroll and HR teams with credential harvesting and MFA fatigue follow-ups.",
// type code here for "relation_many" field
"global_risk_score": 78.0,
// type code here for "relation_one" field
},
{
"name": "Hydra Cloud Token Hunt",
// type code here for "relation_one" field
"status": "active",
"start_at": new Date('2026-01-10T00:00:00Z'),
"end_at": new Date('2026-04-10T00:00:00Z'),
"summary": "Long-running cloud credential theft with token replay and persistence via OAuth app abuse.",
// type code here for "relation_many" field
"global_risk_score": 84.0,
// type code here for "relation_one" field
},
{
"name": "Public Sector Defacement Wave",
// type code here for "relation_one" field
"status": "ended",
"start_at": new Date('2025-11-01T00:00:00Z'),
"end_at": new Date('2026-01-15T00:00:00Z'),
"summary": "Opportunistic scanning and defacement attempts against public-facing portals.",
// type code here for "relation_many" field
"global_risk_score": 52.0,
// type code here for "relation_one" field
},
];
const AttackMapEventsData = [
{
"occurred_at": new Date('2026-03-07T14:59:00Z'),
"event_kind": "ransomware",
"source_country": "Unknown",
"source_ip": "203.0.113.77",
"destination_country": "United States",
"destination_ip": "203.0.113.10",
"latitude": 40.7128,
"longitude": -74.006,
"risk_score": 82.0,
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
"occurred_at": new Date('2026-03-07T15:00:30Z'),
"event_kind": "phishing",
"source_country": "Unknown",
"source_ip": "198.51.100.24",
"destination_country": "United States",
"destination_ip": "203.0.113.10",
"latitude": 40.7128,
"longitude": -74.006,
"risk_score": 60.0,
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
"occurred_at": new Date('2026-03-07T14:53:20Z'),
"event_kind": "c2_activity",
"source_country": "Unknown",
"source_ip": "198.51.100.24",
"destination_country": "United Kingdom",
"destination_ip": "203.0.113.55",
"latitude": 51.5074,
"longitude": -0.1278,
"risk_score": 58.0,
// type code here for "relation_one" field
// type code here for "relation_one" field
},
];
const RiskAssessmentsData = [
{
// type code here for "relation_one" field
"assessed_at": new Date('2026-03-01T00:00:00Z'),
"scope": "business_unit",
// type code here for "relation_one" field
"overall_risk_score": 78.0,
"risk_level": "medium",
"top_risks": "Credential abuse exposure, elevated attack surface on web entry points, high-value APIs.",
"recommendations": "Enforce privileged access management, strengthen WAF rules, add continuous service account monitoring.",
},
{
// type code here for "relation_one" field
"assessed_at": new Date('2026-03-02T00:00:00Z'),
"scope": "organization",
// type code here for "relation_one" field
"overall_risk_score": 82.0,
"risk_level": "low",
"top_risks": "Phishing-driven credential compromise, lateral movement to sensitive data stores.",
"recommendations": "Implement phishing-resistant MFA, restrict admin access paths, increase email security controls.",
},
{
// type code here for "relation_one" field
"assessed_at": new Date('2026-03-03T00:00:00Z'),
"scope": "asset",
// type code here for "relation_one" field
"overall_risk_score": 66.0,
"risk_level": "critical",
"top_risks": "Privileged workload creation, misconfigured admission policies, token sprawl.",
"recommendations": "Harden admission control, rotate service account tokens, enforce least privilege for namespaces.",
},
];
const SimulationLabsData = [
{
"name": "Banking Digital Twin Lab",
"lab_type": "digital_twin",
"status": "maintenance",
// type code here for "relation_one" field
"description": "Digital twin of core banking and portal stack for safe testing of response actions.",
"created_on": new Date('2026-02-01T10:00:00Z'),
"max_duration_minutes": 180.0,
},
{
"name": "Healthcare Phishing Simulation Lab",
"lab_type": "ai_hacker_simulator",
"status": "available",
// type code here for "relation_one" field
"description": "Email and identity attack scenarios to validate training and controls.",
"created_on": new Date('2026-02-10T10:00:00Z'),
"max_duration_minutes": 120.0,
},
{
"name": "GovCloud Attack Simulation Range",
"lab_type": "ai_hacker_simulator",
"status": "maintenance",
// type code here for "relation_one" field
"description": "Controlled Kubernetes and IAM scenarios for policy validation.",
"created_on": new Date('2026-01-20T10:00:00Z'),
"max_duration_minutes": 150.0,
},
];
const SimulationRunsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"scenario_type": "ransomware",
"status": "canceled",
"started_at": new Date('2026-03-05T09:00:00Z'),
"ended_at": new Date('2026-03-05T10:20:00Z'),
"success_score": 84.0,
"findings": "Isolation action executed successfully; recommended faster credential rotation and improved alert routing.",
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"scenario_type": "ddos",
"status": "canceled",
"started_at": new Date('2026-03-04T13:00:00Z'),
"ended_at": new Date('2026-03-04T14:10:00Z'),
"success_score": 79.0,
"findings": "High click rate in test group; AI recommendations prioritized phishing-resistant MFA rollout.",
// type code here for "relation_many" field
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"scenario_type": "lateral_movement",
"status": "queued",
"started_at": new Date('2026-03-03T11:00:00Z'),
"ended_at": new Date('2026-03-03T11:25:00Z'),
"success_score": 20.0,
"findings": "Lab service outage prevented full run; schedule retry after maintenance window.",
// type code here for "relation_many" field
// type code here for "relation_one" field
},
];
const InfrastructureClustersData = [
{
"name": "Kubernetes Control Plane NA-1",
"cluster_type": "storage_cluster",
"status": "healthy",
"region": "us-east-1",
"provider": "AWS",
"api_gateway_url": "https://api-na1.cybershield.example",
"cpu_capacity": 320.0,
"gpu_capacity": 64.0,
"storage_capacity_tb": 1200.0,
"last_audit_at": new Date('2026-02-20T12:00:00Z'),
// type code here for "relation_one" field
},
{
"name": "GPU Inference Cluster NA-1",
"cluster_type": "kubernetes",
"status": "degraded",
"region": "us-east-1",
"provider": "AWS",
"api_gateway_url": "https://gpu-na1.cybershield.example",
"cpu_capacity": 96.0,
"gpu_capacity": 128.0,
"storage_capacity_tb": 400.0,
"last_audit_at": new Date('2026-02-18T12:00:00Z'),
// type code here for "relation_one" field
},
{
"name": "Distributed Storage EU-1",
"cluster_type": "gpu_cluster",
"status": "down",
"region": "eu-west-1",
"provider": "Azure",
"api_gateway_url": "https://storage-eu1.cybershield.example",
"cpu_capacity": 48.0,
"gpu_capacity": 0.0,
"storage_capacity_tb": 2400.0,
"last_audit_at": new Date('2026-02-25T12:00:00Z'),
// type code here for "relation_one" field
},
];
const EdgeSensorsData = [
{
"name": "Edge Sensor NYC-01",
"status": "offline",
"location": "New York, NY",
"site": "ApexBank HQ",
"hardware_model": "CS-Edge-220",
"firmware_version": "3.4.1",
"last_seen_at": new Date('2026-03-07T15:10:00Z'),
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
"name": "Edge Sensor BOS-02",
"status": "offline",
"location": "Boston, MA",
"site": "Northbridge DC1",
"hardware_model": "CS-Edge-220",
"firmware_version": "3.4.1",
"last_seen_at": new Date('2026-03-07T15:08:00Z'),
// type code here for "relation_one" field
// type code here for "relation_one" field
},
{
"name": "Edge Sensor LON-01",
"status": "degraded",
"location": "London, UK",
"site": "MOTD Primary",
"hardware_model": "CS-Edge-210",
"firmware_version": "3.3.8",
"last_seen_at": new Date('2026-03-07T14:58:00Z'),
// type code here for "relation_one" field
// type code here for "relation_one" field
},
];
const ReportsData = [
{
// type code here for "relation_one" field
"name": "Weekly SOC Summary - Week 10",
"report_type": "executive_summary",
"status": "published",
"period_start_at": new Date('2026-03-01T00:00:00Z'),
"period_end_at": new Date('2026-03-07T23:59:59Z'),
// type code here for "files" field
"content": "Summary of key detections, response actions, and risk changes for the reporting period.",
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
"name": "Phishing Incident Report - Payroll Refresh",
"report_type": "incident_report",
"status": "archived",
"period_start_at": new Date('2026-03-07T00:00:00Z'),
"period_end_at": new Date('2026-03-09T00:00:00Z'),
// type code here for "files" field
"content": "Incident timeline, impacted users, actions taken, and lessons learned for the phishing campaign.",
// type code here for "relation_one" field
},
{
// type code here for "relation_one" field
"name": "Kubernetes Policy Audit Findings",
"report_type": "monthly_soc_metrics",
"status": "draft",
"period_start_at": new Date('2026-02-15T00:00:00Z'),
"period_end_at": new Date('2026-03-07T00:00:00Z'),
// type code here for "files" field
"content": "Review of privileged workload events and recommended policy updates for admission control.",
// type code here for "relation_one" field
},
];
const AiRecommendationsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"generated_at": new Date('2026-03-07T15:01:30Z'),
"recommendation_type": "patching",
"status": "rejected",
"estimated_risk_reduction": 18.0,
"title": "Temporarily isolate API host and restrict egress",
"details": "Isolate corebank-api-01, restrict outbound traffic to approved destinations, and capture triage bundle.",
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"generated_at": new Date('2026-03-07T15:02:20Z'),
"recommendation_type": "hardening",
"status": "implemented",
"estimated_risk_reduction": 10.0,
"title": "Enable adaptive rate limiting on admin routes",
"details": "Apply rate limits for /admin paths, require step-up authentication, and alert on repeated 401 spikes.",
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"generated_at": new Date('2026-03-07T14:56:30Z'),
"recommendation_type": "containment",
"status": "implemented",
"estimated_risk_reduction": 12.0,
"title": "Run targeted phishing awareness refresh for payroll teams",
"details": "Schedule focused training and simulated follow-up tests for payroll and HR groups within two weeks.",
},
];
// Similar logic for "relation_many"
async function associateUserWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User0 = await Users.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (User0?.setOrganization)
{
await
User0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User1 = await Users.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (User1?.setOrganization)
{
await
User1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const User2 = await Users.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (User2?.setOrganization)
{
await
User2.
setOrganization(relatedOrganization2);
}
}
async function associateAssetWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset0 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Asset0?.setOrganization)
{
await
Asset0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset1 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Asset1?.setOrganization)
{
await
Asset1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Asset2 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Asset2?.setOrganization)
{
await
Asset2.
setOrganization(relatedOrganization2);
}
}
async function associateAssetWithSensor() {
const relatedSensor0 = await EdgeSensors.findOne({
offset: Math.floor(Math.random() * (await EdgeSensors.count())),
});
const Asset0 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Asset0?.setSensor)
{
await
Asset0.
setSensor(relatedSensor0);
}
const relatedSensor1 = await EdgeSensors.findOne({
offset: Math.floor(Math.random() * (await EdgeSensors.count())),
});
const Asset1 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Asset1?.setSensor)
{
await
Asset1.
setSensor(relatedSensor1);
}
const relatedSensor2 = await EdgeSensors.findOne({
offset: Math.floor(Math.random() * (await EdgeSensors.count())),
});
const Asset2 = await Assets.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Asset2?.setSensor)
{
await
Asset2.
setSensor(relatedSensor2);
}
}
async function associateDataSourceWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const DataSource0 = await DataSources.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (DataSource0?.setOrganization)
{
await
DataSource0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const DataSource1 = await DataSources.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (DataSource1?.setOrganization)
{
await
DataSource1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const DataSource2 = await DataSources.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (DataSource2?.setOrganization)
{
await
DataSource2.
setOrganization(relatedOrganization2);
}
}
// Similar logic for "relation_many"
async function associateIngestionPipelineWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const IngestionPipeline0 = await IngestionPipelines.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (IngestionPipeline0?.setOrganization)
{
await
IngestionPipeline0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const IngestionPipeline1 = await IngestionPipelines.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (IngestionPipeline1?.setOrganization)
{
await
IngestionPipeline1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const IngestionPipeline2 = await IngestionPipelines.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (IngestionPipeline2?.setOrganization)
{
await
IngestionPipeline2.
setOrganization(relatedOrganization2);
}
}
async function associateTelemetryEventWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const TelemetryEvent0 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (TelemetryEvent0?.setOrganization)
{
await
TelemetryEvent0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const TelemetryEvent1 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (TelemetryEvent1?.setOrganization)
{
await
TelemetryEvent1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const TelemetryEvent2 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (TelemetryEvent2?.setOrganization)
{
await
TelemetryEvent2.
setOrganization(relatedOrganization2);
}
}
async function associateTelemetryEventWithData_source() {
const relatedData_source0 = await DataSources.findOne({
offset: Math.floor(Math.random() * (await DataSources.count())),
});
const TelemetryEvent0 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (TelemetryEvent0?.setData_source)
{
await
TelemetryEvent0.
setData_source(relatedData_source0);
}
const relatedData_source1 = await DataSources.findOne({
offset: Math.floor(Math.random() * (await DataSources.count())),
});
const TelemetryEvent1 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (TelemetryEvent1?.setData_source)
{
await
TelemetryEvent1.
setData_source(relatedData_source1);
}
const relatedData_source2 = await DataSources.findOne({
offset: Math.floor(Math.random() * (await DataSources.count())),
});
const TelemetryEvent2 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (TelemetryEvent2?.setData_source)
{
await
TelemetryEvent2.
setData_source(relatedData_source2);
}
}
async function associateTelemetryEventWithAsset() {
const relatedAsset0 = await Assets.findOne({
offset: Math.floor(Math.random() * (await Assets.count())),
});
const TelemetryEvent0 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (TelemetryEvent0?.setAsset)
{
await
TelemetryEvent0.
setAsset(relatedAsset0);
}
const relatedAsset1 = await Assets.findOne({
offset: Math.floor(Math.random() * (await Assets.count())),
});
const TelemetryEvent1 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (TelemetryEvent1?.setAsset)
{
await
TelemetryEvent1.
setAsset(relatedAsset1);
}
const relatedAsset2 = await Assets.findOne({
offset: Math.floor(Math.random() * (await Assets.count())),
});
const TelemetryEvent2 = await TelemetryEvents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (TelemetryEvent2?.setAsset)
{
await
TelemetryEvent2.
setAsset(relatedAsset2);
}
}
async function associateAiModelWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AiModel0 = await AiModels.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (AiModel0?.setOrganization)
{
await
AiModel0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AiModel1 = await AiModels.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (AiModel1?.setOrganization)
{
await
AiModel1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AiModel2 = await AiModels.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (AiModel2?.setOrganization)
{
await
AiModel2.
setOrganization(relatedOrganization2);
}
}
async function associateDetectionWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Detection0 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Detection0?.setOrganization)
{
await
Detection0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Detection1 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Detection1?.setOrganization)
{
await
Detection1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Detection2 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Detection2?.setOrganization)
{
await
Detection2.
setOrganization(relatedOrganization2);
}
}
async function associateDetectionWithEvent() {
const relatedEvent0 = await TelemetryEvents.findOne({
offset: Math.floor(Math.random() * (await TelemetryEvents.count())),
});
const Detection0 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Detection0?.setEvent)
{
await
Detection0.
setEvent(relatedEvent0);
}
const relatedEvent1 = await TelemetryEvents.findOne({
offset: Math.floor(Math.random() * (await TelemetryEvents.count())),
});
const Detection1 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Detection1?.setEvent)
{
await
Detection1.
setEvent(relatedEvent1);
}
const relatedEvent2 = await TelemetryEvents.findOne({
offset: Math.floor(Math.random() * (await TelemetryEvents.count())),
});
const Detection2 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Detection2?.setEvent)
{
await
Detection2.
setEvent(relatedEvent2);
}
}
async function associateDetectionWithModel() {
const relatedModel0 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const Detection0 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Detection0?.setModel)
{
await
Detection0.
setModel(relatedModel0);
}
const relatedModel1 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const Detection1 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Detection1?.setModel)
{
await
Detection1.
setModel(relatedModel1);
}
const relatedModel2 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const Detection2 = await Detections.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Detection2?.setModel)
{
await
Detection2.
setModel(relatedModel2);
}
}
async function associateIncidentWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Incident0 = await Incidents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Incident0?.setOrganization)
{
await
Incident0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Incident1 = await Incidents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Incident1?.setOrganization)
{
await
Incident1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Incident2 = await Incidents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Incident2?.setOrganization)
{
await
Incident2.
setOrganization(relatedOrganization2);
}
}
// Similar logic for "relation_many"
async function associateIncidentWithAssignee() {
const relatedAssignee0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Incident0 = await Incidents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Incident0?.setAssignee)
{
await
Incident0.
setAssignee(relatedAssignee0);
}
const relatedAssignee1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Incident1 = await Incidents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Incident1?.setAssignee)
{
await
Incident1.
setAssignee(relatedAssignee1);
}
const relatedAssignee2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Incident2 = await Incidents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Incident2?.setAssignee)
{
await
Incident2.
setAssignee(relatedAssignee2);
}
}
async function associateResponsePlaybookWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ResponsePlaybook0 = await ResponsePlaybooks.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ResponsePlaybook0?.setOrganization)
{
await
ResponsePlaybook0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ResponsePlaybook1 = await ResponsePlaybooks.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ResponsePlaybook1?.setOrganization)
{
await
ResponsePlaybook1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ResponsePlaybook2 = await ResponsePlaybooks.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ResponsePlaybook2?.setOrganization)
{
await
ResponsePlaybook2.
setOrganization(relatedOrganization2);
}
}
async function associateResponseActionWithIncident() {
const relatedIncident0 = await Incidents.findOne({
offset: Math.floor(Math.random() * (await Incidents.count())),
});
const ResponseAction0 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ResponseAction0?.setIncident)
{
await
ResponseAction0.
setIncident(relatedIncident0);
}
const relatedIncident1 = await Incidents.findOne({
offset: Math.floor(Math.random() * (await Incidents.count())),
});
const ResponseAction1 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ResponseAction1?.setIncident)
{
await
ResponseAction1.
setIncident(relatedIncident1);
}
const relatedIncident2 = await Incidents.findOne({
offset: Math.floor(Math.random() * (await Incidents.count())),
});
const ResponseAction2 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ResponseAction2?.setIncident)
{
await
ResponseAction2.
setIncident(relatedIncident2);
}
}
async function associateResponseActionWithPlaybook() {
const relatedPlaybook0 = await ResponsePlaybooks.findOne({
offset: Math.floor(Math.random() * (await ResponsePlaybooks.count())),
});
const ResponseAction0 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ResponseAction0?.setPlaybook)
{
await
ResponseAction0.
setPlaybook(relatedPlaybook0);
}
const relatedPlaybook1 = await ResponsePlaybooks.findOne({
offset: Math.floor(Math.random() * (await ResponsePlaybooks.count())),
});
const ResponseAction1 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ResponseAction1?.setPlaybook)
{
await
ResponseAction1.
setPlaybook(relatedPlaybook1);
}
const relatedPlaybook2 = await ResponsePlaybooks.findOne({
offset: Math.floor(Math.random() * (await ResponsePlaybooks.count())),
});
const ResponseAction2 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ResponseAction2?.setPlaybook)
{
await
ResponseAction2.
setPlaybook(relatedPlaybook2);
}
}
async function associateResponseActionWithRequested_by() {
const relatedRequested_by0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const ResponseAction0 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ResponseAction0?.setRequested_by)
{
await
ResponseAction0.
setRequested_by(relatedRequested_by0);
}
const relatedRequested_by1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const ResponseAction1 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ResponseAction1?.setRequested_by)
{
await
ResponseAction1.
setRequested_by(relatedRequested_by1);
}
const relatedRequested_by2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const ResponseAction2 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ResponseAction2?.setRequested_by)
{
await
ResponseAction2.
setRequested_by(relatedRequested_by2);
}
}
async function associateResponseActionWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ResponseAction0 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ResponseAction0?.setOrganization)
{
await
ResponseAction0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ResponseAction1 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ResponseAction1?.setOrganization)
{
await
ResponseAction1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ResponseAction2 = await ResponseActions.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ResponseAction2?.setOrganization)
{
await
ResponseAction2.
setOrganization(relatedOrganization2);
}
}
async function associateSocAgentWithModel() {
const relatedModel0 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const SocAgent0 = await SocAgents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (SocAgent0?.setModel)
{
await
SocAgent0.
setModel(relatedModel0);
}
const relatedModel1 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const SocAgent1 = await SocAgents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (SocAgent1?.setModel)
{
await
SocAgent1.
setModel(relatedModel1);
}
const relatedModel2 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const SocAgent2 = await SocAgents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (SocAgent2?.setModel)
{
await
SocAgent2.
setModel(relatedModel2);
}
}
async function associateSocAgentWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SocAgent0 = await SocAgents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (SocAgent0?.setOrganization)
{
await
SocAgent0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SocAgent1 = await SocAgents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (SocAgent1?.setOrganization)
{
await
SocAgent1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SocAgent2 = await SocAgents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (SocAgent2?.setOrganization)
{
await
SocAgent2.
setOrganization(relatedOrganization2);
}
}
async function associateThreatActorWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatActor0 = await ThreatActors.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ThreatActor0?.setOrganization)
{
await
ThreatActor0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatActor1 = await ThreatActors.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ThreatActor1?.setOrganization)
{
await
ThreatActor1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatActor2 = await ThreatActors.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ThreatActor2?.setOrganization)
{
await
ThreatActor2.
setOrganization(relatedOrganization2);
}
}
async function associateThreatIndicatorWithThreat_actor() {
const relatedThreat_actor0 = await ThreatActors.findOne({
offset: Math.floor(Math.random() * (await ThreatActors.count())),
});
const ThreatIndicator0 = await ThreatIndicators.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ThreatIndicator0?.setThreat_actor)
{
await
ThreatIndicator0.
setThreat_actor(relatedThreat_actor0);
}
const relatedThreat_actor1 = await ThreatActors.findOne({
offset: Math.floor(Math.random() * (await ThreatActors.count())),
});
const ThreatIndicator1 = await ThreatIndicators.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ThreatIndicator1?.setThreat_actor)
{
await
ThreatIndicator1.
setThreat_actor(relatedThreat_actor1);
}
const relatedThreat_actor2 = await ThreatActors.findOne({
offset: Math.floor(Math.random() * (await ThreatActors.count())),
});
const ThreatIndicator2 = await ThreatIndicators.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ThreatIndicator2?.setThreat_actor)
{
await
ThreatIndicator2.
setThreat_actor(relatedThreat_actor2);
}
}
async function associateThreatIndicatorWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatIndicator0 = await ThreatIndicators.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ThreatIndicator0?.setOrganization)
{
await
ThreatIndicator0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatIndicator1 = await ThreatIndicators.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ThreatIndicator1?.setOrganization)
{
await
ThreatIndicator1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatIndicator2 = await ThreatIndicators.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ThreatIndicator2?.setOrganization)
{
await
ThreatIndicator2.
setOrganization(relatedOrganization2);
}
}
async function associateThreatCampaignWithThreat_actor() {
const relatedThreat_actor0 = await ThreatActors.findOne({
offset: Math.floor(Math.random() * (await ThreatActors.count())),
});
const ThreatCampaign0 = await ThreatCampaigns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ThreatCampaign0?.setThreat_actor)
{
await
ThreatCampaign0.
setThreat_actor(relatedThreat_actor0);
}
const relatedThreat_actor1 = await ThreatActors.findOne({
offset: Math.floor(Math.random() * (await ThreatActors.count())),
});
const ThreatCampaign1 = await ThreatCampaigns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ThreatCampaign1?.setThreat_actor)
{
await
ThreatCampaign1.
setThreat_actor(relatedThreat_actor1);
}
const relatedThreat_actor2 = await ThreatActors.findOne({
offset: Math.floor(Math.random() * (await ThreatActors.count())),
});
const ThreatCampaign2 = await ThreatCampaigns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ThreatCampaign2?.setThreat_actor)
{
await
ThreatCampaign2.
setThreat_actor(relatedThreat_actor2);
}
}
// Similar logic for "relation_many"
async function associateThreatCampaignWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatCampaign0 = await ThreatCampaigns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (ThreatCampaign0?.setOrganization)
{
await
ThreatCampaign0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatCampaign1 = await ThreatCampaigns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (ThreatCampaign1?.setOrganization)
{
await
ThreatCampaign1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const ThreatCampaign2 = await ThreatCampaigns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (ThreatCampaign2?.setOrganization)
{
await
ThreatCampaign2.
setOrganization(relatedOrganization2);
}
}
async function associateAttackMapEventWithIndicator() {
const relatedIndicator0 = await ThreatIndicators.findOne({
offset: Math.floor(Math.random() * (await ThreatIndicators.count())),
});
const AttackMapEvent0 = await AttackMapEvents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (AttackMapEvent0?.setIndicator)
{
await
AttackMapEvent0.
setIndicator(relatedIndicator0);
}
const relatedIndicator1 = await ThreatIndicators.findOne({
offset: Math.floor(Math.random() * (await ThreatIndicators.count())),
});
const AttackMapEvent1 = await AttackMapEvents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (AttackMapEvent1?.setIndicator)
{
await
AttackMapEvent1.
setIndicator(relatedIndicator1);
}
const relatedIndicator2 = await ThreatIndicators.findOne({
offset: Math.floor(Math.random() * (await ThreatIndicators.count())),
});
const AttackMapEvent2 = await AttackMapEvents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (AttackMapEvent2?.setIndicator)
{
await
AttackMapEvent2.
setIndicator(relatedIndicator2);
}
}
async function associateAttackMapEventWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AttackMapEvent0 = await AttackMapEvents.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (AttackMapEvent0?.setOrganization)
{
await
AttackMapEvent0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AttackMapEvent1 = await AttackMapEvents.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (AttackMapEvent1?.setOrganization)
{
await
AttackMapEvent1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AttackMapEvent2 = await AttackMapEvents.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (AttackMapEvent2?.setOrganization)
{
await
AttackMapEvent2.
setOrganization(relatedOrganization2);
}
}
async function associateRiskAssessmentWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const RiskAssessment0 = await RiskAssessments.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (RiskAssessment0?.setOrganization)
{
await
RiskAssessment0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const RiskAssessment1 = await RiskAssessments.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (RiskAssessment1?.setOrganization)
{
await
RiskAssessment1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const RiskAssessment2 = await RiskAssessments.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (RiskAssessment2?.setOrganization)
{
await
RiskAssessment2.
setOrganization(relatedOrganization2);
}
}
async function associateRiskAssessmentWithAsset() {
const relatedAsset0 = await Assets.findOne({
offset: Math.floor(Math.random() * (await Assets.count())),
});
const RiskAssessment0 = await RiskAssessments.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (RiskAssessment0?.setAsset)
{
await
RiskAssessment0.
setAsset(relatedAsset0);
}
const relatedAsset1 = await Assets.findOne({
offset: Math.floor(Math.random() * (await Assets.count())),
});
const RiskAssessment1 = await RiskAssessments.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (RiskAssessment1?.setAsset)
{
await
RiskAssessment1.
setAsset(relatedAsset1);
}
const relatedAsset2 = await Assets.findOne({
offset: Math.floor(Math.random() * (await Assets.count())),
});
const RiskAssessment2 = await RiskAssessments.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (RiskAssessment2?.setAsset)
{
await
RiskAssessment2.
setAsset(relatedAsset2);
}
}
async function associateSimulationLabWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SimulationLab0 = await SimulationLabs.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (SimulationLab0?.setOrganization)
{
await
SimulationLab0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SimulationLab1 = await SimulationLabs.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (SimulationLab1?.setOrganization)
{
await
SimulationLab1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SimulationLab2 = await SimulationLabs.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (SimulationLab2?.setOrganization)
{
await
SimulationLab2.
setOrganization(relatedOrganization2);
}
}
async function associateSimulationRunWithLab() {
const relatedLab0 = await SimulationLabs.findOne({
offset: Math.floor(Math.random() * (await SimulationLabs.count())),
});
const SimulationRun0 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (SimulationRun0?.setLab)
{
await
SimulationRun0.
setLab(relatedLab0);
}
const relatedLab1 = await SimulationLabs.findOne({
offset: Math.floor(Math.random() * (await SimulationLabs.count())),
});
const SimulationRun1 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (SimulationRun1?.setLab)
{
await
SimulationRun1.
setLab(relatedLab1);
}
const relatedLab2 = await SimulationLabs.findOne({
offset: Math.floor(Math.random() * (await SimulationLabs.count())),
});
const SimulationRun2 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (SimulationRun2?.setLab)
{
await
SimulationRun2.
setLab(relatedLab2);
}
}
async function associateSimulationRunWithInitiated_by() {
const relatedInitiated_by0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const SimulationRun0 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (SimulationRun0?.setInitiated_by)
{
await
SimulationRun0.
setInitiated_by(relatedInitiated_by0);
}
const relatedInitiated_by1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const SimulationRun1 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (SimulationRun1?.setInitiated_by)
{
await
SimulationRun1.
setInitiated_by(relatedInitiated_by1);
}
const relatedInitiated_by2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const SimulationRun2 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (SimulationRun2?.setInitiated_by)
{
await
SimulationRun2.
setInitiated_by(relatedInitiated_by2);
}
}
// Similar logic for "relation_many"
async function associateSimulationRunWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SimulationRun0 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (SimulationRun0?.setOrganization)
{
await
SimulationRun0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SimulationRun1 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (SimulationRun1?.setOrganization)
{
await
SimulationRun1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const SimulationRun2 = await SimulationRuns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (SimulationRun2?.setOrganization)
{
await
SimulationRun2.
setOrganization(relatedOrganization2);
}
}
async function associateInfrastructureClusterWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const InfrastructureCluster0 = await InfrastructureClusters.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (InfrastructureCluster0?.setOrganization)
{
await
InfrastructureCluster0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const InfrastructureCluster1 = await InfrastructureClusters.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (InfrastructureCluster1?.setOrganization)
{
await
InfrastructureCluster1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const InfrastructureCluster2 = await InfrastructureClusters.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (InfrastructureCluster2?.setOrganization)
{
await
InfrastructureCluster2.
setOrganization(relatedOrganization2);
}
}
async function associateEdgeSensorWithCluster() {
const relatedCluster0 = await InfrastructureClusters.findOne({
offset: Math.floor(Math.random() * (await InfrastructureClusters.count())),
});
const EdgeSensor0 = await EdgeSensors.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EdgeSensor0?.setCluster)
{
await
EdgeSensor0.
setCluster(relatedCluster0);
}
const relatedCluster1 = await InfrastructureClusters.findOne({
offset: Math.floor(Math.random() * (await InfrastructureClusters.count())),
});
const EdgeSensor1 = await EdgeSensors.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EdgeSensor1?.setCluster)
{
await
EdgeSensor1.
setCluster(relatedCluster1);
}
const relatedCluster2 = await InfrastructureClusters.findOne({
offset: Math.floor(Math.random() * (await InfrastructureClusters.count())),
});
const EdgeSensor2 = await EdgeSensors.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EdgeSensor2?.setCluster)
{
await
EdgeSensor2.
setCluster(relatedCluster2);
}
}
async function associateEdgeSensorWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const EdgeSensor0 = await EdgeSensors.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EdgeSensor0?.setOrganization)
{
await
EdgeSensor0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const EdgeSensor1 = await EdgeSensors.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EdgeSensor1?.setOrganization)
{
await
EdgeSensor1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const EdgeSensor2 = await EdgeSensors.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EdgeSensor2?.setOrganization)
{
await
EdgeSensor2.
setOrganization(relatedOrganization2);
}
}
async function associateReportWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Report0 = await Reports.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Report0?.setOrganization)
{
await
Report0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Report1 = await Reports.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Report1?.setOrganization)
{
await
Report1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const Report2 = await Reports.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Report2?.setOrganization)
{
await
Report2.
setOrganization(relatedOrganization2);
}
}
async function associateReportWithAuthor() {
const relatedAuthor0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Report0 = await Reports.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Report0?.setAuthor)
{
await
Report0.
setAuthor(relatedAuthor0);
}
const relatedAuthor1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Report1 = await Reports.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Report1?.setAuthor)
{
await
Report1.
setAuthor(relatedAuthor1);
}
const relatedAuthor2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Report2 = await Reports.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Report2?.setAuthor)
{
await
Report2.
setAuthor(relatedAuthor2);
}
}
async function associateAiRecommendationWithOrganization() {
const relatedOrganization0 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AiRecommendation0 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (AiRecommendation0?.setOrganization)
{
await
AiRecommendation0.
setOrganization(relatedOrganization0);
}
const relatedOrganization1 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AiRecommendation1 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (AiRecommendation1?.setOrganization)
{
await
AiRecommendation1.
setOrganization(relatedOrganization1);
}
const relatedOrganization2 = await Organizations.findOne({
offset: Math.floor(Math.random() * (await Organizations.count())),
});
const AiRecommendation2 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (AiRecommendation2?.setOrganization)
{
await
AiRecommendation2.
setOrganization(relatedOrganization2);
}
}
async function associateAiRecommendationWithIncident() {
const relatedIncident0 = await Incidents.findOne({
offset: Math.floor(Math.random() * (await Incidents.count())),
});
const AiRecommendation0 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (AiRecommendation0?.setIncident)
{
await
AiRecommendation0.
setIncident(relatedIncident0);
}
const relatedIncident1 = await Incidents.findOne({
offset: Math.floor(Math.random() * (await Incidents.count())),
});
const AiRecommendation1 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (AiRecommendation1?.setIncident)
{
await
AiRecommendation1.
setIncident(relatedIncident1);
}
const relatedIncident2 = await Incidents.findOne({
offset: Math.floor(Math.random() * (await Incidents.count())),
});
const AiRecommendation2 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (AiRecommendation2?.setIncident)
{
await
AiRecommendation2.
setIncident(relatedIncident2);
}
}
async function associateAiRecommendationWithModel() {
const relatedModel0 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const AiRecommendation0 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (AiRecommendation0?.setModel)
{
await
AiRecommendation0.
setModel(relatedModel0);
}
const relatedModel1 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const AiRecommendation1 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (AiRecommendation1?.setModel)
{
await
AiRecommendation1.
setModel(relatedModel1);
}
const relatedModel2 = await AiModels.findOne({
offset: Math.floor(Math.random() * (await AiModels.count())),
});
const AiRecommendation2 = await AiRecommendations.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (AiRecommendation2?.setModel)
{
await
AiRecommendation2.
setModel(relatedModel2);
}
}
module.exports = {
up: async (queryInterface, Sequelize) => {
await Organizations.bulkCreate(OrganizationsData);
await Assets.bulkCreate(AssetsData);
await DataSources.bulkCreate(DataSourcesData);
await IngestionPipelines.bulkCreate(IngestionPipelinesData);
await TelemetryEvents.bulkCreate(TelemetryEventsData);
await AiModels.bulkCreate(AiModelsData);
await Detections.bulkCreate(DetectionsData);
await Incidents.bulkCreate(IncidentsData);
await ResponsePlaybooks.bulkCreate(ResponsePlaybooksData);
await ResponseActions.bulkCreate(ResponseActionsData);
await SocAgents.bulkCreate(SocAgentsData);
await ThreatActors.bulkCreate(ThreatActorsData);
await ThreatIndicators.bulkCreate(ThreatIndicatorsData);
await ThreatCampaigns.bulkCreate(ThreatCampaignsData);
await AttackMapEvents.bulkCreate(AttackMapEventsData);
await RiskAssessments.bulkCreate(RiskAssessmentsData);
await SimulationLabs.bulkCreate(SimulationLabsData);
await SimulationRuns.bulkCreate(SimulationRunsData);
await InfrastructureClusters.bulkCreate(InfrastructureClustersData);
await EdgeSensors.bulkCreate(EdgeSensorsData);
await Reports.bulkCreate(ReportsData);
await AiRecommendations.bulkCreate(AiRecommendationsData);
await Promise.all([
// Similar logic for "relation_many"
await associateUserWithOrganization(),
await associateAssetWithOrganization(),
await associateAssetWithSensor(),
await associateDataSourceWithOrganization(),
// Similar logic for "relation_many"
await associateIngestionPipelineWithOrganization(),
await associateTelemetryEventWithOrganization(),
await associateTelemetryEventWithData_source(),
await associateTelemetryEventWithAsset(),
await associateAiModelWithOrganization(),
await associateDetectionWithOrganization(),
await associateDetectionWithEvent(),
await associateDetectionWithModel(),
await associateIncidentWithOrganization(),
// Similar logic for "relation_many"
await associateIncidentWithAssignee(),
await associateResponsePlaybookWithOrganization(),
await associateResponseActionWithIncident(),
await associateResponseActionWithPlaybook(),
await associateResponseActionWithRequested_by(),
await associateResponseActionWithOrganization(),
await associateSocAgentWithModel(),
await associateSocAgentWithOrganization(),
await associateThreatActorWithOrganization(),
await associateThreatIndicatorWithThreat_actor(),
await associateThreatIndicatorWithOrganization(),
await associateThreatCampaignWithThreat_actor(),
// Similar logic for "relation_many"
await associateThreatCampaignWithOrganization(),
await associateAttackMapEventWithIndicator(),
await associateAttackMapEventWithOrganization(),
await associateRiskAssessmentWithOrganization(),
await associateRiskAssessmentWithAsset(),
await associateSimulationLabWithOrganization(),
await associateSimulationRunWithLab(),
await associateSimulationRunWithInitiated_by(),
// Similar logic for "relation_many"
await associateSimulationRunWithOrganization(),
await associateInfrastructureClusterWithOrganization(),
await associateEdgeSensorWithCluster(),
await associateEdgeSensorWithOrganization(),
await associateReportWithOrganization(),
await associateReportWithAuthor(),
await associateAiRecommendationWithOrganization(),
await associateAiRecommendationWithIncident(),
await associateAiRecommendationWithModel(),
]);
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('organizations', null, {});
await queryInterface.bulkDelete('assets', null, {});
await queryInterface.bulkDelete('data_sources', null, {});
await queryInterface.bulkDelete('ingestion_pipelines', null, {});
await queryInterface.bulkDelete('telemetry_events', null, {});
await queryInterface.bulkDelete('ai_models', null, {});
await queryInterface.bulkDelete('detections', null, {});
await queryInterface.bulkDelete('incidents', null, {});
await queryInterface.bulkDelete('response_playbooks', null, {});
await queryInterface.bulkDelete('response_actions', null, {});
await queryInterface.bulkDelete('soc_agents', null, {});
await queryInterface.bulkDelete('threat_actors', null, {});
await queryInterface.bulkDelete('threat_indicators', null, {});
await queryInterface.bulkDelete('threat_campaigns', null, {});
await queryInterface.bulkDelete('attack_map_events', null, {});
await queryInterface.bulkDelete('risk_assessments', null, {});
await queryInterface.bulkDelete('simulation_labs', null, {});
await queryInterface.bulkDelete('simulation_runs', null, {});
await queryInterface.bulkDelete('infrastructure_clusters', null, {});
await queryInterface.bulkDelete('edge_sensors', null, {});
await queryInterface.bulkDelete('reports', null, {});
await queryInterface.bulkDelete('ai_recommendations', null, {});
},
};