nexarch 0.12.19 → 0.12.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ import { proposalsStart } from "./commands/proposals-start.js";
28
28
  import { registerRuntime } from "./commands/register-runtime.js";
29
29
  import { ingestInfra } from "./commands/ingest-infra.js";
30
30
  import { verifyTrust } from "./commands/verify-trust.js";
31
+ import { cliBuild, formatBuild } from "./lib/version.js";
31
32
  const [, , command, ...args] = process.argv;
32
33
  const commands = {
33
34
  login,
@@ -75,6 +76,17 @@ async function main() {
75
76
  return;
76
77
  }
77
78
  }
79
+ // Answered before dispatch, and before any credential is required: "which
80
+ // copy am I running" has to work when nothing else does.
81
+ if (command === "--version" || command === "-v" || command === "version") {
82
+ const build = cliBuild();
83
+ if (args.includes("--json"))
84
+ process.stdout.write(`${JSON.stringify(build, null, 2)}
85
+ `);
86
+ else
87
+ console.log(formatBuild(build));
88
+ return;
89
+ }
78
90
  const handler = commands[command ?? ""];
79
91
  if (!handler) {
80
92
  console.log(`
@@ -83,6 +95,7 @@ nexarch — Your architecture workspace for AI delivery.
83
95
  Usage:
84
96
  nexarch login Authenticate in browser and store company-scoped credentials
85
97
  Option: --company <id>
98
+ nexarch --version Print the version and the path this copy runs from
86
99
  nexarch logout Remove stored credentials
87
100
  nexarch status Check connection and show architecture summary
88
101
  nexarch verify-trust Verify this repo's Nexarch trust attestation. Reads the token
@@ -12,9 +12,18 @@
12
12
  * ahead of it: editing it by hand recreates the two-sources-of-truth problem
13
13
  * moving the catalogue out of the CLI was meant to end.
14
14
  *
15
- * 30 entries, exported 2026-08-21.
15
+ * 86 entries, exported 2026-08-22.
16
16
  */
17
17
  export const IAC_CATALOGUE_SEED = [
18
+ {
19
+ resourceType: "aws_ecs_cluster",
20
+ entityTypeCode: "platform_component",
21
+ entitySubtypeCode: "platform_runtime",
22
+ role: "compute_environment",
23
+ attributes: ["name"],
24
+ canonicalEntityRef: "global:platform_component:aws_ecs",
25
+ cloudResourceType: "AWS::ECS::Cluster",
26
+ },
18
27
  {
19
28
  resourceType: "azurerm_container_app_environment",
20
29
  entityTypeCode: "platform_component",
@@ -34,6 +43,71 @@ export const IAC_CATALOGUE_SEED = [
34
43
  canonicalEntityRef: "global:platform_component:azure_app_service",
35
44
  cloudResourceType: "Microsoft.Web/serverfarms",
36
45
  },
46
+ {
47
+ resourceType: "aws_ecs_service",
48
+ entityTypeCode: "platform_component",
49
+ entitySubtypeCode: "platform_runtime",
50
+ role: "compute_host",
51
+ bindable: true,
52
+ attributes: ["name", "cluster", "task_definition", "desired_count", "launch_type"],
53
+ references: { "cluster": "aws_ecs_cluster" },
54
+ nameReferences: { "task_definition": "aws_ecs_task_definition" },
55
+ canonicalEntityRef: "global:platform_component:aws_ecs",
56
+ cloudResourceType: "AWS::ECS::Service",
57
+ },
58
+ {
59
+ resourceType: "aws_ecs_task_definition",
60
+ entityTypeCode: "platform_component",
61
+ entitySubtypeCode: "platform_runtime",
62
+ role: "compute_host",
63
+ attributes: ["family", "network_mode", "requires_compatibilities", "cpu", "memory"],
64
+ canonicalEntityRef: "global:platform_component:aws_ecs",
65
+ cloudResourceType: "AWS::ECS::TaskDefinition",
66
+ nameAttribute: "family",
67
+ },
68
+ {
69
+ resourceType: "aws_instance",
70
+ entityTypeCode: "platform_component",
71
+ entitySubtypeCode: "platform_runtime",
72
+ role: "compute_host",
73
+ bindable: true,
74
+ attributes: ["ami", "instance_type", "availability_zone", "subnet_id", "vpc_security_group_ids", "private_ip", "associate_public_ip_address", "iam_instance_profile"],
75
+ references: { "subnet_id": "aws_subnet" },
76
+ canonicalEntityRef: "global:platform_component:aws_ec2",
77
+ cloudResourceType: "AWS::EC2::Instance",
78
+ },
79
+ {
80
+ resourceType: "aws_lambda_function",
81
+ entityTypeCode: "platform_component",
82
+ entitySubtypeCode: "platform_runtime",
83
+ role: "compute_host",
84
+ bindable: true,
85
+ attributes: ["function_name", "runtime", "handler", "memory_size", "timeout", "role", "architectures", "package_type"],
86
+ references: { "role": "aws_iam_role" },
87
+ canonicalEntityRef: "global:platform_component:aws_lambda",
88
+ cloudResourceType: "AWS::Lambda::Function",
89
+ nameAttribute: "function_name",
90
+ },
91
+ {
92
+ resourceType: "azurerm_ai_foundry",
93
+ entityTypeCode: "platform_component",
94
+ entitySubtypeCode: "platform_service",
95
+ role: "compute_host",
96
+ attributes: ["name", "location", "resource_group_name", "storage_account_id", "key_vault_id", "public_network_access"],
97
+ references: { "key_vault_id": "azurerm_key_vault", "storage_account_id": "azurerm_storage_account" },
98
+ canonicalEntityRef: "global:platform_component:azure_ai_foundry",
99
+ cloudResourceType: "Microsoft.MachineLearningServices/workspaces",
100
+ },
101
+ {
102
+ resourceType: "azurerm_ai_foundry_project",
103
+ entityTypeCode: "platform_component",
104
+ entitySubtypeCode: "platform_service",
105
+ role: "compute_host",
106
+ attributes: ["name", "location", "ai_services_hub_id", "description"],
107
+ references: { "ai_services_hub_id": "azurerm_ai_foundry" },
108
+ canonicalEntityRef: "global:platform_component:azure_ai_foundry",
109
+ cloudResourceType: "Microsoft.MachineLearningServices/workspaces/projects",
110
+ },
37
111
  {
38
112
  resourceType: "azurerm_cognitive_account",
39
113
  entityTypeCode: "platform_component",
@@ -86,6 +160,45 @@ export const IAC_CATALOGUE_SEED = [
86
160
  canonicalEntityRef: "global:platform_component:azure_static_web_apps",
87
161
  cloudResourceType: "Microsoft.Web/staticSites",
88
162
  },
163
+ {
164
+ resourceType: "aws_db_instance",
165
+ entityTypeCode: "data_store",
166
+ entitySubtypeCode: "store_relational",
167
+ role: "data_store",
168
+ attributes: ["identifier", "engine", "engine_version", "instance_class", "allocated_storage", "publicly_accessible", "multi_az", "db_subnet_group_name"],
169
+ canonicalEntityRef: "global:platform_component:aws_rds",
170
+ cloudResourceType: "AWS::RDS::DBInstance",
171
+ nameAttribute: "identifier",
172
+ },
173
+ {
174
+ resourceType: "aws_dynamodb_table",
175
+ entityTypeCode: "data_store",
176
+ entitySubtypeCode: "store_document",
177
+ role: "data_store",
178
+ attributes: ["name", "billing_mode", "hash_key", "range_key", "stream_enabled"],
179
+ canonicalEntityRef: "global:platform_component:aws_dynamodb",
180
+ cloudResourceType: "AWS::DynamoDB::Table",
181
+ },
182
+ {
183
+ resourceType: "aws_elasticache_cluster",
184
+ entityTypeCode: "data_store",
185
+ entitySubtypeCode: "store_cache",
186
+ role: "data_store",
187
+ attributes: ["cluster_id", "engine", "engine_version", "node_type", "num_cache_nodes"],
188
+ canonicalEntityRef: "global:platform_component:aws_elasticache",
189
+ cloudResourceType: "AWS::ElastiCache::CacheCluster",
190
+ nameAttribute: "cluster_id",
191
+ },
192
+ {
193
+ resourceType: "aws_s3_bucket",
194
+ entityTypeCode: "data_store",
195
+ entitySubtypeCode: "store_object",
196
+ role: "data_store",
197
+ attributes: ["bucket", "bucket_prefix", "force_destroy"],
198
+ canonicalEntityRef: "global:platform_component:aws_s3",
199
+ cloudResourceType: "AWS::S3::Bucket",
200
+ nameAttribute: "bucket",
201
+ },
89
202
  {
90
203
  resourceType: "azurerm_cosmosdb_account",
91
204
  entityTypeCode: "data_store",
@@ -131,6 +244,65 @@ export const IAC_CATALOGUE_SEED = [
131
244
  canonicalEntityRef: "global:platform_component:azure_storage",
132
245
  cloudResourceType: "Microsoft.Storage/storageAccounts/blobServices/containers",
133
246
  },
247
+ {
248
+ resourceType: "aws_cloudfront_distribution",
249
+ entityTypeCode: "platform_component",
250
+ entitySubtypeCode: "platform_service",
251
+ role: "edge",
252
+ attributes: ["enabled", "comment", "default_root_object", "domain_name"],
253
+ canonicalEntityRef: "global:platform_component:aws_cloudfront",
254
+ cloudResourceType: "AWS::CloudFront::Distribution",
255
+ nameAttribute: "domain_name",
256
+ },
257
+ {
258
+ resourceType: "aws_lb",
259
+ entityTypeCode: "platform_component",
260
+ entitySubtypeCode: "platform_service",
261
+ role: "edge",
262
+ attributes: ["name", "internal", "load_balancer_type", "security_groups", "subnets", "dns_name"],
263
+ canonicalEntityRef: "global:platform_component:aws_elastic_load_balancing",
264
+ cloudResourceType: "AWS::ElasticLoadBalancingV2::LoadBalancer",
265
+ },
266
+ {
267
+ resourceType: "aws_lb_listener",
268
+ entityTypeCode: "platform_component",
269
+ entitySubtypeCode: "platform_service",
270
+ role: "edge",
271
+ attributes: ["port", "protocol", "load_balancer_arn"],
272
+ references: { "load_balancer_arn": "aws_lb" },
273
+ canonicalEntityRef: "global:platform_component:aws_elastic_load_balancing",
274
+ cloudResourceType: "AWS::ElasticLoadBalancingV2::Listener",
275
+ },
276
+ {
277
+ resourceType: "aws_lb_target_group",
278
+ entityTypeCode: "platform_component",
279
+ entitySubtypeCode: "platform_service",
280
+ role: "edge",
281
+ attributes: ["name", "port", "protocol", "target_type", "vpc_id"],
282
+ references: { "vpc_id": "aws_vpc" },
283
+ canonicalEntityRef: "global:platform_component:aws_elastic_load_balancing",
284
+ cloudResourceType: "AWS::ElasticLoadBalancingV2::TargetGroup",
285
+ },
286
+ {
287
+ resourceType: "azurerm_cdn_frontdoor_custom_domain",
288
+ entityTypeCode: "platform_component",
289
+ entitySubtypeCode: "platform_service",
290
+ role: "edge",
291
+ attributes: ["name", "host_name", "cdn_frontdoor_profile_id", "dns_zone_id"],
292
+ references: { "dns_zone_id": "azurerm_dns_zone", "cdn_frontdoor_profile_id": "azurerm_cdn_frontdoor_profile" },
293
+ canonicalEntityRef: "global:platform_component:azure_front_door",
294
+ cloudResourceType: "Microsoft.Cdn/profiles/customDomains",
295
+ },
296
+ {
297
+ resourceType: "azurerm_cdn_frontdoor_custom_domain_association",
298
+ entityTypeCode: "platform_component",
299
+ entitySubtypeCode: "platform_service",
300
+ role: "edge",
301
+ attributes: ["cdn_frontdoor_custom_domain_id"],
302
+ references: { "cdn_frontdoor_custom_domain_id": "azurerm_cdn_frontdoor_custom_domain" },
303
+ canonicalEntityRef: "global:platform_component:azure_front_door",
304
+ cloudResourceType: "Microsoft.Cdn/profiles/customDomains/associations",
305
+ },
134
306
  {
135
307
  resourceType: "azurerm_cdn_frontdoor_endpoint",
136
308
  entityTypeCode: "platform_component",
@@ -149,6 +321,26 @@ export const IAC_CATALOGUE_SEED = [
149
321
  canonicalEntityRef: "global:platform_component:azure_web_application_firewall",
150
322
  cloudResourceType: "Microsoft.Network/frontDoorWebApplicationFirewallPolicies",
151
323
  },
324
+ {
325
+ resourceType: "azurerm_cdn_frontdoor_origin",
326
+ entityTypeCode: "platform_component",
327
+ entitySubtypeCode: "platform_service",
328
+ role: "edge",
329
+ attributes: ["name", "host_name", "enabled", "certificate_name_check_enabled", "cdn_frontdoor_origin_group_id"],
330
+ references: { "cdn_frontdoor_origin_group_id": "azurerm_cdn_frontdoor_origin_group" },
331
+ canonicalEntityRef: "global:platform_component:azure_front_door",
332
+ cloudResourceType: "Microsoft.Cdn/profiles/originGroups/origins",
333
+ },
334
+ {
335
+ resourceType: "azurerm_cdn_frontdoor_origin_group",
336
+ entityTypeCode: "platform_component",
337
+ entitySubtypeCode: "platform_service",
338
+ role: "edge",
339
+ attributes: ["name", "session_affinity_enabled", "cdn_frontdoor_profile_id"],
340
+ references: { "cdn_frontdoor_profile_id": "azurerm_cdn_frontdoor_profile" },
341
+ canonicalEntityRef: "global:platform_component:azure_front_door",
342
+ cloudResourceType: "Microsoft.Cdn/profiles/originGroups",
343
+ },
152
344
  {
153
345
  resourceType: "azurerm_cdn_frontdoor_profile",
154
346
  entityTypeCode: "platform_component",
@@ -158,6 +350,25 @@ export const IAC_CATALOGUE_SEED = [
158
350
  canonicalEntityRef: "global:platform_component:azure_front_door",
159
351
  cloudResourceType: "Microsoft.Cdn/profiles",
160
352
  },
353
+ {
354
+ resourceType: "azurerm_cdn_frontdoor_route",
355
+ entityTypeCode: "platform_component",
356
+ entitySubtypeCode: "platform_service",
357
+ role: "edge",
358
+ attributes: ["name", "enabled", "patterns_to_match", "supported_protocols", "forwarding_protocol", "https_redirect_enabled", "cdn_frontdoor_endpoint_id", "cdn_frontdoor_origin_group_id"],
359
+ references: { "cdn_frontdoor_endpoint_id": "azurerm_cdn_frontdoor_endpoint", "cdn_frontdoor_origin_group_id": "azurerm_cdn_frontdoor_origin_group" },
360
+ canonicalEntityRef: "global:platform_component:azure_front_door",
361
+ cloudResourceType: "Microsoft.Cdn/profiles/afdEndpoints/routes",
362
+ },
363
+ {
364
+ resourceType: "azurerm_cdn_frontdoor_security_policy",
365
+ entityTypeCode: "policy_control",
366
+ role: "edge",
367
+ attributes: ["name", "cdn_frontdoor_profile_id"],
368
+ references: { "cdn_frontdoor_profile_id": "azurerm_cdn_frontdoor_profile" },
369
+ canonicalEntityRef: "global:platform_component:azure_web_application_firewall",
370
+ cloudResourceType: "Microsoft.Cdn/profiles/securityPolicies",
371
+ },
161
372
  {
162
373
  resourceType: "azurerm_static_web_app_custom_domain",
163
374
  entityTypeCode: "platform_component",
@@ -187,6 +398,100 @@ export const IAC_CATALOGUE_SEED = [
187
398
  canonicalEntityRef: "global:platform_component:azure_traffic_manager",
188
399
  cloudResourceType: "Microsoft.Network/trafficManagerProfiles",
189
400
  },
401
+ {
402
+ resourceType: "aws_iam_policy",
403
+ entityTypeCode: "policy_control",
404
+ role: "governance",
405
+ attributes: ["name", "path", "description"],
406
+ canonicalEntityRef: "global:platform_component:aws_iam",
407
+ cloudResourceType: "AWS::IAM::ManagedPolicy",
408
+ },
409
+ {
410
+ resourceType: "aws_iam_role_policy_attachment",
411
+ entityTypeCode: "policy_control",
412
+ role: "governance",
413
+ attributes: ["role", "policy_arn"],
414
+ canonicalEntityRef: "global:platform_component:aws_iam",
415
+ cloudResourceType: "AWS::IAM::RolePolicyAttachment",
416
+ },
417
+ {
418
+ resourceType: "azurerm_policy_definition_built_in",
419
+ entityTypeCode: "policy_control",
420
+ role: "governance",
421
+ attributes: ["name", "display_name", "policy_type", "mode"],
422
+ canonicalEntityRef: "global:platform_component:azure_policy",
423
+ cloudResourceType: "Microsoft.Authorization/policyDefinitions",
424
+ },
425
+ {
426
+ resourceType: "azurerm_policy_set_definition",
427
+ entityTypeCode: "policy_control",
428
+ role: "governance",
429
+ attributes: ["name", "display_name", "policy_type", "management_group_id"],
430
+ canonicalEntityRef: "global:platform_component:azure_policy",
431
+ cloudResourceType: "Microsoft.Authorization/policySetDefinitions",
432
+ },
433
+ {
434
+ resourceType: "azurerm_security_center_contact",
435
+ entityTypeCode: "policy_control",
436
+ role: "governance",
437
+ attributes: ["name", "alert_notifications", "alerts_to_admins"],
438
+ canonicalEntityRef: "global:platform_component:azure_defender_for_cloud",
439
+ cloudResourceType: "Microsoft.Security/securityContacts",
440
+ },
441
+ {
442
+ resourceType: "azurerm_security_center_subscription_pricing",
443
+ entityTypeCode: "policy_control",
444
+ role: "governance",
445
+ attributes: ["tier", "resource_type"],
446
+ canonicalEntityRef: "global:platform_component:azure_defender_for_cloud",
447
+ cloudResourceType: "Microsoft.Security/pricings",
448
+ },
449
+ {
450
+ resourceType: "azurerm_security_center_workspace",
451
+ entityTypeCode: "policy_control",
452
+ role: "governance",
453
+ attributes: ["scope", "workspace_id"],
454
+ references: { "workspace_id": "azurerm_log_analytics_workspace" },
455
+ canonicalEntityRef: "global:platform_component:azure_defender_for_cloud",
456
+ cloudResourceType: "Microsoft.Security/workspaceSettings",
457
+ },
458
+ {
459
+ resourceType: "azurerm_storage_container_immutability_policy",
460
+ entityTypeCode: "policy_control",
461
+ role: "governance",
462
+ attributes: ["storage_container_resource_manager_id", "immutability_period_in_days", "protected_append_writes_all_enabled"],
463
+ references: { "storage_container_resource_manager_id": "azurerm_storage_container" },
464
+ canonicalEntityRef: "global:platform_component:azure_storage",
465
+ cloudResourceType: "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies",
466
+ },
467
+ {
468
+ resourceType: "azurerm_subscription_policy_assignment",
469
+ entityTypeCode: "policy_control",
470
+ role: "governance",
471
+ attributes: ["name", "display_name", "policy_definition_id", "subscription_id", "enforce"],
472
+ references: { "policy_definition_id": "azurerm_policy_set_definition" },
473
+ canonicalEntityRef: "global:platform_component:azure_policy",
474
+ cloudResourceType: "Microsoft.Authorization/policyAssignments",
475
+ },
476
+ {
477
+ resourceType: "aws_iam_role",
478
+ entityTypeCode: "platform_component",
479
+ entitySubtypeCode: "platform_control_plane",
480
+ role: "identity",
481
+ attributes: ["name", "path", "description", "max_session_duration"],
482
+ canonicalEntityRef: "global:platform_component:aws_iam",
483
+ cloudResourceType: "AWS::IAM::Role",
484
+ },
485
+ {
486
+ resourceType: "azurerm_federated_identity_credential",
487
+ entityTypeCode: "platform_component",
488
+ entitySubtypeCode: "platform_control_plane",
489
+ role: "identity",
490
+ attributes: ["name", "resource_group_name", "audience", "issuer", "subject", "parent_id"],
491
+ references: { "parent_id": "azurerm_user_assigned_identity" },
492
+ canonicalEntityRef: "global:platform_component:azure_managed_identity",
493
+ cloudResourceType: "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
494
+ },
190
495
  {
191
496
  resourceType: "azurerm_role_assignment",
192
497
  entityTypeCode: "policy_control",
@@ -204,6 +509,34 @@ export const IAC_CATALOGUE_SEED = [
204
509
  canonicalEntityRef: "global:platform_component:azure_managed_identity",
205
510
  cloudResourceType: "Microsoft.ManagedIdentity/userAssignedIdentities",
206
511
  },
512
+ {
513
+ resourceType: "aws_sns_topic",
514
+ entityTypeCode: "platform_component",
515
+ entitySubtypeCode: "platform_service",
516
+ role: "messaging",
517
+ attributes: ["name", "display_name", "fifo_topic"],
518
+ canonicalEntityRef: "global:platform_component:aws_sns",
519
+ cloudResourceType: "AWS::SNS::Topic",
520
+ },
521
+ {
522
+ resourceType: "aws_sns_topic_subscription",
523
+ entityTypeCode: "platform_component",
524
+ entitySubtypeCode: "platform_service",
525
+ role: "messaging",
526
+ attributes: ["protocol", "topic_arn"],
527
+ references: { "topic_arn": "aws_sns_topic" },
528
+ canonicalEntityRef: "global:platform_component:aws_sns",
529
+ cloudResourceType: "AWS::SNS::Subscription",
530
+ },
531
+ {
532
+ resourceType: "aws_sqs_queue",
533
+ entityTypeCode: "platform_component",
534
+ entitySubtypeCode: "platform_service",
535
+ role: "messaging",
536
+ attributes: ["name", "fifo_queue", "visibility_timeout_seconds", "message_retention_seconds", "delay_seconds"],
537
+ canonicalEntityRef: "global:platform_component:aws_sqs",
538
+ cloudResourceType: "AWS::SQS::Queue",
539
+ },
207
540
  {
208
541
  resourceType: "azurerm_servicebus_namespace",
209
542
  entityTypeCode: "platform_component",
@@ -223,6 +556,133 @@ export const IAC_CATALOGUE_SEED = [
223
556
  canonicalEntityRef: "global:platform_component:azure_service_bus",
224
557
  cloudResourceType: "Microsoft.ServiceBus/namespaces/queues",
225
558
  },
559
+ {
560
+ resourceType: "aws_db_subnet_group",
561
+ entityTypeCode: "platform_component",
562
+ entitySubtypeCode: "platform_service",
563
+ role: "network_boundary",
564
+ attributes: ["name", "vpc_id"],
565
+ references: { "vpc_id": "aws_vpc" },
566
+ canonicalEntityRef: "global:platform_component:aws_rds",
567
+ cloudResourceType: "AWS::RDS::DBSubnetGroup",
568
+ },
569
+ {
570
+ resourceType: "aws_internet_gateway",
571
+ entityTypeCode: "platform_component",
572
+ entitySubtypeCode: "platform_service",
573
+ role: "network_boundary",
574
+ attributes: ["vpc_id"],
575
+ references: { "vpc_id": "aws_vpc" },
576
+ canonicalEntityRef: "global:platform_component:aws_vpc",
577
+ cloudResourceType: "AWS::EC2::InternetGateway",
578
+ },
579
+ {
580
+ resourceType: "aws_nat_gateway",
581
+ entityTypeCode: "platform_component",
582
+ entitySubtypeCode: "platform_service",
583
+ role: "network_boundary",
584
+ attributes: ["subnet_id", "allocation_id", "connectivity_type"],
585
+ references: { "subnet_id": "aws_subnet" },
586
+ canonicalEntityRef: "global:platform_component:aws_vpc",
587
+ cloudResourceType: "AWS::EC2::NatGateway",
588
+ },
589
+ {
590
+ resourceType: "aws_route53_record",
591
+ entityTypeCode: "platform_component",
592
+ entitySubtypeCode: "platform_service",
593
+ role: "network_boundary",
594
+ attributes: ["name", "type", "ttl", "zone_id"],
595
+ canonicalEntityRef: "global:platform_component:aws_route53",
596
+ cloudResourceType: "AWS::Route53::RecordSet",
597
+ },
598
+ {
599
+ resourceType: "aws_route53_zone",
600
+ entityTypeCode: "platform_component",
601
+ entitySubtypeCode: "platform_service",
602
+ role: "network_boundary",
603
+ attributes: ["name", "comment"],
604
+ canonicalEntityRef: "global:platform_component:aws_route53",
605
+ cloudResourceType: "AWS::Route53::HostedZone",
606
+ },
607
+ {
608
+ resourceType: "aws_route_table",
609
+ entityTypeCode: "platform_component",
610
+ entitySubtypeCode: "platform_service",
611
+ role: "network_boundary",
612
+ attributes: ["vpc_id"],
613
+ references: { "vpc_id": "aws_vpc" },
614
+ canonicalEntityRef: "global:platform_component:aws_vpc",
615
+ cloudResourceType: "AWS::EC2::RouteTable",
616
+ },
617
+ {
618
+ resourceType: "aws_security_group",
619
+ entityTypeCode: "platform_component",
620
+ entitySubtypeCode: "platform_service",
621
+ role: "network_boundary",
622
+ attributes: ["name", "description", "vpc_id"],
623
+ references: { "vpc_id": "aws_vpc" },
624
+ canonicalEntityRef: "global:platform_component:aws_security_group",
625
+ cloudResourceType: "AWS::EC2::SecurityGroup",
626
+ },
627
+ {
628
+ resourceType: "aws_subnet",
629
+ entityTypeCode: "platform_component",
630
+ entitySubtypeCode: "platform_service",
631
+ role: "network_boundary",
632
+ attributes: ["cidr_block", "availability_zone", "vpc_id", "map_public_ip_on_launch"],
633
+ references: { "vpc_id": "aws_vpc" },
634
+ canonicalEntityRef: "global:platform_component:aws_vpc",
635
+ cloudResourceType: "AWS::EC2::Subnet",
636
+ nameAttribute: "id",
637
+ },
638
+ {
639
+ resourceType: "aws_vpc",
640
+ entityTypeCode: "platform_component",
641
+ entitySubtypeCode: "platform_service",
642
+ role: "network_boundary",
643
+ attributes: ["cidr_block", "enable_dns_support", "enable_dns_hostnames", "instance_tenancy"],
644
+ canonicalEntityRef: "global:platform_component:aws_vpc",
645
+ cloudResourceType: "AWS::EC2::VPC",
646
+ nameAttribute: "id",
647
+ },
648
+ {
649
+ resourceType: "azurerm_dns_cname_record",
650
+ entityTypeCode: "platform_component",
651
+ entitySubtypeCode: "platform_service",
652
+ role: "network_boundary",
653
+ attributes: ["name", "resource_group_name", "zone_name", "ttl", "record"],
654
+ nameReferences: { "zone_name": "azurerm_dns_zone" },
655
+ canonicalEntityRef: "global:platform_component:azure_dns",
656
+ cloudResourceType: "Microsoft.Network/dnsZones/CNAME",
657
+ },
658
+ {
659
+ resourceType: "azurerm_dns_txt_record",
660
+ entityTypeCode: "platform_component",
661
+ entitySubtypeCode: "platform_service",
662
+ role: "network_boundary",
663
+ attributes: ["name", "resource_group_name", "zone_name", "ttl"],
664
+ nameReferences: { "zone_name": "azurerm_dns_zone" },
665
+ canonicalEntityRef: "global:platform_component:azure_dns",
666
+ cloudResourceType: "Microsoft.Network/dnsZones/TXT",
667
+ },
668
+ {
669
+ resourceType: "azurerm_dns_zone",
670
+ entityTypeCode: "platform_component",
671
+ entitySubtypeCode: "platform_service",
672
+ role: "network_boundary",
673
+ attributes: ["name", "resource_group_name", "number_of_record_sets", "name_servers"],
674
+ canonicalEntityRef: "global:platform_component:azure_dns",
675
+ cloudResourceType: "Microsoft.Network/dnsZones",
676
+ },
677
+ {
678
+ resourceType: "azurerm_network_security_group",
679
+ entityTypeCode: "platform_component",
680
+ entitySubtypeCode: "platform_service",
681
+ role: "network_boundary",
682
+ attributes: ["name", "location", "resource_group_name"],
683
+ canonicalEntityRef: "global:platform_component:azure_network_security_group",
684
+ cloudResourceType: "Microsoft.Network/networkSecurityGroups",
685
+ },
226
686
  {
227
687
  resourceType: "azurerm_private_dns_zone",
228
688
  entityTypeCode: "platform_component",
@@ -232,6 +692,17 @@ export const IAC_CATALOGUE_SEED = [
232
692
  canonicalEntityRef: "global:platform_component:azure_private_dns",
233
693
  cloudResourceType: "Microsoft.Network/privateDnsZones",
234
694
  },
695
+ {
696
+ resourceType: "azurerm_private_dns_zone_virtual_network_link",
697
+ entityTypeCode: "platform_component",
698
+ entitySubtypeCode: "platform_service",
699
+ role: "network_boundary",
700
+ attributes: ["name", "resource_group_name", "private_dns_zone_name", "virtual_network_id", "registration_enabled"],
701
+ references: { "virtual_network_id": "azurerm_virtual_network" },
702
+ nameReferences: { "private_dns_zone_name": "azurerm_private_dns_zone" },
703
+ canonicalEntityRef: "global:platform_component:azure_private_dns",
704
+ cloudResourceType: "Microsoft.Network/privateDnsZones/virtualNetworkLinks",
705
+ },
235
706
  {
236
707
  resourceType: "azurerm_private_endpoint",
237
708
  entityTypeCode: "platform_component",
@@ -252,6 +723,16 @@ export const IAC_CATALOGUE_SEED = [
252
723
  canonicalEntityRef: "global:platform_component:azure_virtual_network",
253
724
  cloudResourceType: "Microsoft.Network/virtualNetworks/subnets",
254
725
  },
726
+ {
727
+ resourceType: "azurerm_subnet_network_security_group_association",
728
+ entityTypeCode: "platform_component",
729
+ entitySubtypeCode: "platform_service",
730
+ role: "network_boundary",
731
+ attributes: ["subnet_id", "network_security_group_id"],
732
+ references: { "subnet_id": "azurerm_subnet", "network_security_group_id": "azurerm_network_security_group" },
733
+ canonicalEntityRef: "global:platform_component:azure_network_security_group",
734
+ cloudResourceType: "Microsoft.Network/virtualNetworks/subnets/networkSecurityGroupAssociations",
735
+ },
255
736
  {
256
737
  resourceType: "azurerm_virtual_network",
257
738
  entityTypeCode: "platform_component",
@@ -261,6 +742,25 @@ export const IAC_CATALOGUE_SEED = [
261
742
  canonicalEntityRef: "global:platform_component:azure_virtual_network",
262
743
  cloudResourceType: "Microsoft.Network/virtualNetworks",
263
744
  },
745
+ {
746
+ resourceType: "aws_cloudwatch_log_group",
747
+ entityTypeCode: "platform_component",
748
+ entitySubtypeCode: "platform_service",
749
+ role: "observability",
750
+ attributes: ["name", "retention_in_days"],
751
+ canonicalEntityRef: "global:platform_component:aws_cloudwatch",
752
+ cloudResourceType: "AWS::Logs::LogGroup",
753
+ },
754
+ {
755
+ resourceType: "aws_cloudwatch_metric_alarm",
756
+ entityTypeCode: "platform_component",
757
+ entitySubtypeCode: "platform_service",
758
+ role: "observability",
759
+ attributes: ["alarm_name", "comparison_operator", "evaluation_periods", "metric_name", "namespace", "period", "statistic", "threshold"],
760
+ canonicalEntityRef: "global:platform_component:aws_cloudwatch",
761
+ cloudResourceType: "AWS::CloudWatch::Alarm",
762
+ nameAttribute: "alarm_name",
763
+ },
264
764
  {
265
765
  resourceType: "azurerm_log_analytics_workspace",
266
766
  entityTypeCode: "platform_component",
@@ -270,6 +770,25 @@ export const IAC_CATALOGUE_SEED = [
270
770
  canonicalEntityRef: "global:platform_component:azure_monitor",
271
771
  cloudResourceType: "Microsoft.OperationalInsights/workspaces",
272
772
  },
773
+ {
774
+ resourceType: "azurerm_monitor_diagnostic_setting",
775
+ entityTypeCode: "platform_component",
776
+ entitySubtypeCode: "platform_service",
777
+ role: "observability",
778
+ attributes: ["name", "target_resource_id", "log_analytics_workspace_id", "storage_account_id"],
779
+ references: { "storage_account_id": "azurerm_storage_account", "log_analytics_workspace_id": "azurerm_log_analytics_workspace" },
780
+ canonicalEntityRef: "global:platform_component:azure_monitor",
781
+ cloudResourceType: "Microsoft.Insights/diagnosticSettings",
782
+ },
783
+ {
784
+ resourceType: "aws_ecr_repository",
785
+ entityTypeCode: "platform_component",
786
+ entitySubtypeCode: "platform_service",
787
+ role: "registry",
788
+ attributes: ["name", "image_tag_mutability", "force_delete"],
789
+ canonicalEntityRef: "global:platform_component:aws_ecr",
790
+ cloudResourceType: "AWS::ECR::Repository",
791
+ },
273
792
  {
274
793
  resourceType: "azurerm_container_registry",
275
794
  entityTypeCode: "platform_component",
@@ -288,6 +807,26 @@ export const IAC_CATALOGUE_SEED = [
288
807
  canonicalEntityRef: "global:platform_component:azure_resource_group",
289
808
  cloudResourceType: "Microsoft.Resources/resourceGroups",
290
809
  },
810
+ {
811
+ resourceType: "aws_kms_key",
812
+ entityTypeCode: "platform_component",
813
+ entitySubtypeCode: "platform_service",
814
+ role: "secret_store",
815
+ attributes: ["description", "key_usage", "deletion_window_in_days", "enable_key_rotation"],
816
+ canonicalEntityRef: "global:platform_component:aws_kms",
817
+ cloudResourceType: "AWS::KMS::Key",
818
+ nameAttribute: "id",
819
+ },
820
+ {
821
+ resourceType: "aws_secretsmanager_secret",
822
+ entityTypeCode: "platform_component",
823
+ entitySubtypeCode: "platform_service",
824
+ role: "secret_store",
825
+ attributes: ["name", "description", "kms_key_id"],
826
+ references: { "kms_key_id": "aws_kms_key" },
827
+ canonicalEntityRef: "global:platform_component:aws_secrets_manager",
828
+ cloudResourceType: "AWS::SecretsManager::Secret",
829
+ },
291
830
  {
292
831
  resourceType: "azurerm_key_vault",
293
832
  entityTypeCode: "platform_component",