@scoutflo/topology-contracts 0.8.0 → 0.9.0

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.
Files changed (41) hide show
  1. package/README.md +1 -0
  2. package/dist/src/correlation/connectionContractV1.d.ts +100 -48
  3. package/dist/src/correlation/connectionContractV1.js +75 -3
  4. package/dist/src/correlation/connectionContractV1.js.map +1 -1
  5. package/dist/src/correlation/contracts/authoring.d.ts +1 -1
  6. package/dist/src/correlation/contracts/authoring.js +16 -5
  7. package/dist/src/correlation/contracts/authoring.js.map +1 -1
  8. package/dist/src/correlation/contracts/families/index.d.ts +39 -31
  9. package/dist/src/correlation/contracts/families/integrations/index.d.ts +39 -31
  10. package/dist/src/correlation/contracts/families/integrations/index.js +39 -36
  11. package/dist/src/correlation/contracts/families/integrations/index.js.map +1 -1
  12. package/dist/src/correlation/contracts/registry.d.ts +39 -31
  13. package/dist/src/index.d.ts +2 -0
  14. package/dist/src/index.js +2 -0
  15. package/dist/src/index.js.map +1 -1
  16. package/dist/src/investigation/context.d.ts +22185 -798
  17. package/dist/src/investigation/context.js +221 -58
  18. package/dist/src/investigation/context.js.map +1 -1
  19. package/dist/src/product-identity.d.ts +30 -0
  20. package/dist/src/product-identity.js +128 -0
  21. package/dist/src/product-identity.js.map +1 -0
  22. package/dist/src/provenance/index.d.ts +1 -0
  23. package/dist/src/provenance/index.js +18 -0
  24. package/dist/src/provenance/index.js.map +1 -0
  25. package/dist/src/provenance/runtimeContainer.d.ts +431 -0
  26. package/dist/src/provenance/runtimeContainer.js +139 -0
  27. package/dist/src/provenance/runtimeContainer.js.map +1 -0
  28. package/dist/src/schemas/index.d.ts +2 -1
  29. package/dist/src/schemas/index.js +12 -4
  30. package/dist/src/schemas/index.js.map +1 -1
  31. package/dist/test/contracts.test.js +59 -43
  32. package/dist/test/contracts.test.js.map +1 -1
  33. package/dist/test/investigation-context.test.js +184 -0
  34. package/dist/test/investigation-context.test.js.map +1 -1
  35. package/dist/test/product-identity.test.d.ts +1 -0
  36. package/dist/test/product-identity.test.js +103 -0
  37. package/dist/test/product-identity.test.js.map +1 -0
  38. package/dist/test/runtime-provenance.test.d.ts +1 -0
  39. package/dist/test/runtime-provenance.test.js +134 -0
  40. package/dist/test/runtime-provenance.test.js.map +1 -0
  41. package/package.json +3 -2
@@ -480,7 +480,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
480
480
  } | {
481
481
  readonly key: "k8s_workload_sends_metrics_to_prometheus_compatible";
482
482
  readonly version: "v1";
483
- readonly status: "active";
483
+ readonly status: "experimental";
484
484
  readonly family: "integrations";
485
485
  readonly source_endpoint: {
486
486
  readonly entity_type: "resource";
@@ -495,7 +495,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
495
495
  };
496
496
  readonly relation_class: "associative";
497
497
  readonly attribute_schema_key: "relationship.observability_binding.v1";
498
- readonly evidence_level: "implemented";
498
+ readonly evidence_level: "pre_prod_validation";
499
499
  readonly provider_family: "prometheus_compatible";
500
500
  readonly provider_category: "observability";
501
501
  readonly claim_layers: {
@@ -504,12 +504,12 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
504
504
  readonly diagnostic: readonly ["release", "version", "commit_sha"];
505
505
  readonly contract_scoped_identity: readonly [];
506
506
  };
507
- readonly notes: readonly ["Ratified and implemented Connection Contract V1 active key; also covers Mimir and VictoriaMetrics via helper mapping."];
507
+ readonly notes: readonly ["Legacy workload endpoint retained for migration compatibility; new writes use the service endpoint contract."];
508
508
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
509
509
  } | {
510
510
  readonly key: "service_sends_metrics_to_prometheus_compatible";
511
511
  readonly version: "v1";
512
- readonly status: "experimental";
512
+ readonly status: "active";
513
513
  readonly family: "integrations";
514
514
  readonly source_endpoint: {
515
515
  readonly entity_type: "service";
@@ -523,14 +523,15 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
523
523
  };
524
524
  readonly relation_class: "associative";
525
525
  readonly attribute_schema_key: "relationship.observability_binding.v1";
526
- readonly evidence_level: "pre_prod_validation";
526
+ readonly evidence_level: "implemented";
527
527
  readonly provider_family: "prometheus_compatible";
528
528
  readonly provider_category: "observability";
529
+ readonly notes: readonly ["Canonical Prometheus-compatible binding uses the Scoutflo service endpoint; Kubernetes workload identity remains supporting evidence."];
529
530
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
530
531
  } | {
531
532
  readonly key: "workload_reports_errors_to_sentry";
532
533
  readonly version: "v1";
533
- readonly status: "active";
534
+ readonly status: "experimental";
534
535
  readonly family: "integrations";
535
536
  readonly source_endpoint: {
536
537
  readonly entity_type: "resource";
@@ -545,7 +546,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
545
546
  };
546
547
  readonly relation_class: "associative";
547
548
  readonly attribute_schema_key: "relationship.observability_binding.v1";
548
- readonly evidence_level: "implemented";
549
+ readonly evidence_level: "pre_prod_validation";
549
550
  readonly provider_family: "sentry";
550
551
  readonly provider_category: "observability";
551
552
  readonly claim_layers: {
@@ -554,12 +555,12 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
554
555
  readonly scope: readonly ["cluster", "environment"];
555
556
  readonly diagnostic: readonly ["release", "version", "commit_sha"];
556
557
  };
557
- readonly notes: readonly ["Ratified and implemented Connection Contract V1 active key."];
558
+ readonly notes: readonly ["Legacy workload endpoint retained for compatibility; new writes use the service endpoint contract."];
558
559
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
559
560
  } | {
560
561
  readonly key: "service_reports_errors_to_sentry";
561
562
  readonly version: "v1";
562
- readonly status: "experimental";
563
+ readonly status: "active";
563
564
  readonly family: "integrations";
564
565
  readonly source_endpoint: {
565
566
  readonly entity_type: "service";
@@ -573,14 +574,21 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
573
574
  };
574
575
  readonly relation_class: "associative";
575
576
  readonly attribute_schema_key: "relationship.observability_binding.v1";
576
- readonly evidence_level: "pre_prod_validation";
577
+ readonly evidence_level: "implemented";
577
578
  readonly provider_family: "sentry";
578
579
  readonly provider_category: "observability";
580
+ readonly claim_layers: {
581
+ readonly contract_scoped_identity: readonly ["project"];
582
+ readonly identity: readonly ["service", "workload", "namespace", "app", "pod", "container"];
583
+ readonly scope: readonly ["cluster", "environment"];
584
+ readonly diagnostic: readonly ["release", "version", "commit_sha"];
585
+ };
586
+ readonly notes: readonly ["Canonical Sentry binding uses the Scoutflo service endpoint; Kubernetes workload identity remains supporting evidence."];
579
587
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
580
588
  } | {
581
589
  readonly key: "k8s_workload_sends_logs_to_loki";
582
590
  readonly version: "v1";
583
- readonly status: "active";
591
+ readonly status: "experimental";
584
592
  readonly family: "integrations";
585
593
  readonly source_endpoint: {
586
594
  readonly entity_type: "resource";
@@ -595,14 +603,14 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
595
603
  };
596
604
  readonly relation_class: "associative";
597
605
  readonly attribute_schema_key: "relationship.observability_binding.v1";
598
- readonly evidence_level: "implemented";
606
+ readonly evidence_level: "pre_prod_validation";
599
607
  readonly provider_family: "loki";
600
608
  readonly provider_category: "logging";
601
609
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
602
610
  } | {
603
611
  readonly key: "k8s_workload_sends_logs_to_elk";
604
612
  readonly version: "v1";
605
- readonly status: "active";
613
+ readonly status: "experimental";
606
614
  readonly family: "integrations";
607
615
  readonly source_endpoint: {
608
616
  readonly entity_type: "resource";
@@ -617,14 +625,14 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
617
625
  };
618
626
  readonly relation_class: "associative";
619
627
  readonly attribute_schema_key: "relationship.observability_binding.v1";
620
- readonly evidence_level: "implemented";
628
+ readonly evidence_level: "pre_prod_validation";
621
629
  readonly provider_family: "elk";
622
630
  readonly provider_category: "logging";
623
631
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
624
632
  } | {
625
633
  readonly key: "k8s_workload_sends_logs_to_victorialogs";
626
634
  readonly version: "v1";
627
- readonly status: "active";
635
+ readonly status: "experimental";
628
636
  readonly family: "integrations";
629
637
  readonly source_endpoint: {
630
638
  readonly entity_type: "resource";
@@ -639,14 +647,14 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
639
647
  };
640
648
  readonly relation_class: "associative";
641
649
  readonly attribute_schema_key: "relationship.observability_binding.v1";
642
- readonly evidence_level: "implemented";
650
+ readonly evidence_level: "pre_prod_validation";
643
651
  readonly provider_family: "victorialogs";
644
652
  readonly provider_category: "logging";
645
653
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
646
654
  } | {
647
655
  readonly key: "service_sends_logs_to_logging_provider";
648
656
  readonly version: "v1";
649
- readonly status: "experimental";
657
+ readonly status: "active";
650
658
  readonly family: "integrations";
651
659
  readonly source_endpoint: {
652
660
  readonly entity_type: "service";
@@ -660,14 +668,14 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
660
668
  };
661
669
  readonly relation_class: "associative";
662
670
  readonly attribute_schema_key: "relationship.observability_binding.v1";
663
- readonly evidence_level: "pre_prod_validation";
671
+ readonly evidence_level: "implemented";
664
672
  readonly provider_family: "logging_provider";
665
673
  readonly provider_category: "logging";
666
674
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
667
675
  } | {
668
676
  readonly key: "k8s_workload_sends_traces_to_tempo";
669
677
  readonly version: "v1";
670
- readonly status: "active";
678
+ readonly status: "experimental";
671
679
  readonly family: "integrations";
672
680
  readonly source_endpoint: {
673
681
  readonly entity_type: "resource";
@@ -682,14 +690,14 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
682
690
  };
683
691
  readonly relation_class: "associative";
684
692
  readonly attribute_schema_key: "relationship.observability_binding.v1";
685
- readonly evidence_level: "implemented";
693
+ readonly evidence_level: "pre_prod_validation";
686
694
  readonly provider_family: "tempo";
687
695
  readonly provider_category: "tracing";
688
696
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
689
697
  } | {
690
698
  readonly key: "k8s_workload_sends_traces_to_victoriatraces";
691
699
  readonly version: "v1";
692
- readonly status: "active";
700
+ readonly status: "experimental";
693
701
  readonly family: "integrations";
694
702
  readonly source_endpoint: {
695
703
  readonly entity_type: "resource";
@@ -704,14 +712,14 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
704
712
  };
705
713
  readonly relation_class: "associative";
706
714
  readonly attribute_schema_key: "relationship.observability_binding.v1";
707
- readonly evidence_level: "implemented";
715
+ readonly evidence_level: "pre_prod_validation";
708
716
  readonly provider_family: "victoriatraces";
709
717
  readonly provider_category: "tracing";
710
718
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
711
719
  } | {
712
720
  readonly key: "service_sends_traces_to_tracing_provider";
713
721
  readonly version: "v1";
714
- readonly status: "experimental";
722
+ readonly status: "active";
715
723
  readonly family: "integrations";
716
724
  readonly source_endpoint: {
717
725
  readonly entity_type: "service";
@@ -725,7 +733,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
725
733
  };
726
734
  readonly relation_class: "associative";
727
735
  readonly attribute_schema_key: "relationship.observability_binding.v1";
728
- readonly evidence_level: "pre_prod_validation";
736
+ readonly evidence_level: "implemented";
729
737
  readonly provider_family: "tracing_provider";
730
738
  readonly provider_category: "tracing";
731
739
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
@@ -755,7 +763,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
755
763
  } | {
756
764
  readonly key: "service_monitored_by_observability_provider";
757
765
  readonly version: "v1";
758
- readonly status: "experimental";
766
+ readonly status: "active";
759
767
  readonly family: "integrations";
760
768
  readonly source_endpoint: {
761
769
  readonly entity_type: "service";
@@ -769,15 +777,15 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
769
777
  };
770
778
  readonly relation_class: "associative";
771
779
  readonly attribute_schema_key: "relationship.observability_binding.v1";
772
- readonly evidence_level: "pre_prod_validation";
780
+ readonly evidence_level: "implemented";
773
781
  readonly provider_family: "multi_signal_observability";
774
782
  readonly provider_category: "observability";
775
- readonly notes: readonly ["Experimental umbrella for Datadog/Grafana/Groundcover-style providers; do not ratify from capability declarations alone."];
783
+ readonly notes: readonly ["Canonical multi-signal observability binding uses the Scoutflo service endpoint; Kubernetes workload identity remains supporting evidence."];
776
784
  readonly guardrails: readonly ["Capabilities do not create edges; contracts need source evidence and Gateway-owned validation before emission.", "Provider-specific query hints, IDs, URLs, and setup details remain in source_attributes.", "Candidate, experimental, and reserved entries are not production-ratified contracts."];
777
785
  } | {
778
786
  readonly key: "k8s_workload_monitored_by_datadog";
779
787
  readonly version: "v1";
780
- readonly status: "active";
788
+ readonly status: "experimental";
781
789
  readonly family: "integrations";
782
790
  readonly source_endpoint: {
783
791
  readonly entity_type: "resource";
@@ -792,7 +800,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
792
800
  };
793
801
  readonly relation_class: "associative";
794
802
  readonly attribute_schema_key: "relationship.observability_binding.v1";
795
- readonly evidence_level: "implemented";
803
+ readonly evidence_level: "pre_prod_validation";
796
804
  readonly provider_family: "datadog";
797
805
  readonly provider_category: "observability";
798
806
  readonly notes: readonly ["Active after Gateway runtime verification proved bounded provider API evidence can normalize to canonical workload/service signals."];
@@ -800,7 +808,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
800
808
  } | {
801
809
  readonly key: "k8s_workload_monitored_by_grafana";
802
810
  readonly version: "v1";
803
- readonly status: "active";
811
+ readonly status: "experimental";
804
812
  readonly family: "integrations";
805
813
  readonly source_endpoint: {
806
814
  readonly entity_type: "resource";
@@ -815,7 +823,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
815
823
  };
816
824
  readonly relation_class: "associative";
817
825
  readonly attribute_schema_key: "relationship.observability_binding.v1";
818
- readonly evidence_level: "implemented";
826
+ readonly evidence_level: "pre_prod_validation";
819
827
  readonly provider_family: "grafana";
820
828
  readonly provider_category: "observability";
821
829
  readonly notes: readonly ["Active for canonical observability evidence only; Gateway still requires strong source/provider claim overlap before emitting relationships."];
@@ -1,10 +1,12 @@
1
1
  export declare const TOPOLOGY_CONTRACTS_PACKAGE = "@scoutflo/topology-contracts";
2
2
  export * as correlationCore from '@scoutflo/correlation-core';
3
3
  export * from './providers';
4
+ export * from './product-identity';
4
5
  export * from './families';
5
6
  export * from './source-sync';
6
7
  export * from './correlation';
7
8
  export * from './topology';
8
9
  export * from './investigation';
9
10
  export * from './credential-source';
11
+ export * from './provenance';
10
12
  export * from './schemas';
package/dist/src/index.js CHANGED
@@ -40,11 +40,13 @@ exports.correlationCore = exports.TOPOLOGY_CONTRACTS_PACKAGE = void 0;
40
40
  exports.TOPOLOGY_CONTRACTS_PACKAGE = '@scoutflo/topology-contracts';
41
41
  exports.correlationCore = __importStar(require("@scoutflo/correlation-core"));
42
42
  __exportStar(require("./providers"), exports);
43
+ __exportStar(require("./product-identity"), exports);
43
44
  __exportStar(require("./families"), exports);
44
45
  __exportStar(require("./source-sync"), exports);
45
46
  __exportStar(require("./correlation"), exports);
46
47
  __exportStar(require("./topology"), exports);
47
48
  __exportStar(require("./investigation"), exports);
48
49
  __exportStar(require("./credential-source"), exports);
50
+ __exportStar(require("./provenance"), exports);
49
51
  __exportStar(require("./schemas"), exports);
50
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAa,QAAA,0BAA0B,GAAG,8BAA8B,CAAC;AAEzE,8EAA8D;AAE9D,8CAA4B;AAC5B,6CAA2B;AAC3B,gDAA8B;AAC9B,gDAA8B;AAC9B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAa,QAAA,0BAA0B,GAAG,8BAA8B,CAAC;AAEzE,8EAA8D;AAE9D,8CAA4B;AAC5B,qDAAmC;AACnC,6CAA2B;AAC3B,gDAA8B;AAC9B,gDAA8B;AAC9B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,+CAA6B;AAC7B,4CAA0B"}