@scoutflo/topology-contracts 0.10.1 → 0.10.3

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 (31) hide show
  1. package/dist/src/correlation/contractVocabulary.d.ts +3 -3
  2. package/dist/src/correlation/contracts/families/argocd/index.d.ts +48 -0
  3. package/dist/src/correlation/contracts/families/argocd/index.js +45 -0
  4. package/dist/src/correlation/contracts/families/argocd/index.js.map +1 -1
  5. package/dist/src/correlation/contracts/families/github/index.d.ts +27 -4
  6. package/dist/src/correlation/contracts/families/github/index.js +29 -7
  7. package/dist/src/correlation/contracts/families/github/index.js.map +1 -1
  8. package/dist/src/correlation/contracts/families/index.d.ts +75 -4
  9. package/dist/src/correlation/contracts/registry.d.ts +75 -4
  10. package/dist/src/correlation/contracts/types.d.ts +24 -24
  11. package/dist/src/families/github.d.ts +6 -4
  12. package/dist/src/families/github.js +4 -0
  13. package/dist/src/families/github.js.map +1 -1
  14. package/dist/src/families/index.d.ts +1 -1
  15. package/dist/src/investigation/context.d.ts +294 -294
  16. package/dist/src/provenance/runtimeContainer.d.ts +16 -16
  17. package/dist/src/providers/aliases.d.ts +1 -1
  18. package/dist/src/providers/providers.d.ts +3 -2
  19. package/dist/src/providers/providers.js +2 -0
  20. package/dist/src/providers/providers.js.map +1 -1
  21. package/dist/src/source-sync/candidate.d.ts +47 -47
  22. package/dist/src/source-sync/capability.d.ts +3 -3
  23. package/dist/src/source-sync/intent.d.ts +12 -12
  24. package/dist/src/source-sync/lifecycle.d.ts +9 -9
  25. package/dist/src/source-sync/scope.d.ts +3 -3
  26. package/dist/src/topology/relationTypes.d.ts +4 -2
  27. package/dist/src/topology/relationTypes.js +4 -0
  28. package/dist/src/topology/relationTypes.js.map +1 -1
  29. package/dist/test/contracts.test.js +23 -6
  30. package/dist/test/contracts.test.js.map +1 -1
  31. package/package.json +1 -1
@@ -21,17 +21,17 @@ export declare const topologyCorrelationContractFamilySchema: z.ZodEnum<["observ
21
21
  export declare const topologyCorrelationEndpointSpecSchema: z.ZodObject<{
22
22
  entity_type: z.ZodEnum<["service", "resource"]>;
23
23
  resource_type: z.ZodOptional<z.ZodEnum<["aws_account", "vpc", "subnet", "compute_instance", "serverless_function", "load_balancer", "dns_zone", "dns_record", "log_group", "alarm", "container_registry", "kubernetes_cluster", "kubernetes_namespace", "kubernetes_deployment", "kubernetes_stateful_set", "kubernetes_daemon_set", "kubernetes_job", "kubernetes_cron_job", "kubernetes_service", "database", "cache", "message_queue", "object_storage", "vcs", "ci_cd", "alerting", "monitoring", "infrastructure_management", "secrets_manager", "network", "web_application_firewall", "cdn", "saas_vendor", "custom"]>>;
24
- family: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["account", "vpc", "subnet", "ec2_instance", "rds_instance", "s3_bucket", "eks_cluster"]>, z.ZodEnum<["cluster", "namespace", "deployment", "statefulset", "daemonset", "job", "cronjob", "service"]>, z.ZodEnum<["integration_resource"]>, z.ZodEnum<["account"]>]>>;
24
+ family: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["account", "vpc", "subnet", "ec2_instance", "rds_instance", "s3_bucket", "eks_cluster"]>, z.ZodEnum<["cluster", "namespace", "deployment", "statefulset", "daemonset", "job", "cronjob", "service"]>, z.ZodEnum<["integration_resource"]>, z.ZodEnum<["account", "repository"]>]>>;
25
25
  role: z.ZodOptional<z.ZodString>;
26
26
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
27
27
  entity_type: z.ZodEnum<["service", "resource"]>;
28
28
  resource_type: z.ZodOptional<z.ZodEnum<["aws_account", "vpc", "subnet", "compute_instance", "serverless_function", "load_balancer", "dns_zone", "dns_record", "log_group", "alarm", "container_registry", "kubernetes_cluster", "kubernetes_namespace", "kubernetes_deployment", "kubernetes_stateful_set", "kubernetes_daemon_set", "kubernetes_job", "kubernetes_cron_job", "kubernetes_service", "database", "cache", "message_queue", "object_storage", "vcs", "ci_cd", "alerting", "monitoring", "infrastructure_management", "secrets_manager", "network", "web_application_firewall", "cdn", "saas_vendor", "custom"]>>;
29
- family: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["account", "vpc", "subnet", "ec2_instance", "rds_instance", "s3_bucket", "eks_cluster"]>, z.ZodEnum<["cluster", "namespace", "deployment", "statefulset", "daemonset", "job", "cronjob", "service"]>, z.ZodEnum<["integration_resource"]>, z.ZodEnum<["account"]>]>>;
29
+ family: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["account", "vpc", "subnet", "ec2_instance", "rds_instance", "s3_bucket", "eks_cluster"]>, z.ZodEnum<["cluster", "namespace", "deployment", "statefulset", "daemonset", "job", "cronjob", "service"]>, z.ZodEnum<["integration_resource"]>, z.ZodEnum<["account", "repository"]>]>>;
30
30
  role: z.ZodOptional<z.ZodString>;
31
31
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
32
32
  entity_type: z.ZodEnum<["service", "resource"]>;
33
33
  resource_type: z.ZodOptional<z.ZodEnum<["aws_account", "vpc", "subnet", "compute_instance", "serverless_function", "load_balancer", "dns_zone", "dns_record", "log_group", "alarm", "container_registry", "kubernetes_cluster", "kubernetes_namespace", "kubernetes_deployment", "kubernetes_stateful_set", "kubernetes_daemon_set", "kubernetes_job", "kubernetes_cron_job", "kubernetes_service", "database", "cache", "message_queue", "object_storage", "vcs", "ci_cd", "alerting", "monitoring", "infrastructure_management", "secrets_manager", "network", "web_application_firewall", "cdn", "saas_vendor", "custom"]>>;
34
- family: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["account", "vpc", "subnet", "ec2_instance", "rds_instance", "s3_bucket", "eks_cluster"]>, z.ZodEnum<["cluster", "namespace", "deployment", "statefulset", "daemonset", "job", "cronjob", "service"]>, z.ZodEnum<["integration_resource"]>, z.ZodEnum<["account"]>]>>;
34
+ family: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["account", "vpc", "subnet", "ec2_instance", "rds_instance", "s3_bucket", "eks_cluster"]>, z.ZodEnum<["cluster", "namespace", "deployment", "statefulset", "daemonset", "job", "cronjob", "service"]>, z.ZodEnum<["integration_resource"]>, z.ZodEnum<["account", "repository"]>]>>;
35
35
  role: z.ZodOptional<z.ZodString>;
36
36
  }, z.ZodTypeAny, "passthrough">>;
37
37
  export declare const topologyCorrelationContractRefSchema: z.ZodObject<{
@@ -1,4 +1,52 @@
1
1
  export declare const ARGOCD_CONNECTION_CONTRACTS: readonly [{
2
+ readonly key: "argocd_application_configured_by_vcs_repository";
3
+ readonly version: "v1";
4
+ readonly status: "active";
5
+ readonly family: "argocd";
6
+ readonly source_endpoint: {
7
+ readonly entity_type: "resource";
8
+ readonly resource_type: "ci_cd";
9
+ readonly source_type: "argocd_application";
10
+ readonly provider: "argocd";
11
+ };
12
+ readonly relation: "CONFIGURED_BY";
13
+ readonly target_endpoint: {
14
+ readonly entity_type: "resource";
15
+ readonly resource_type: "vcs";
16
+ readonly label: "vcs_repository";
17
+ };
18
+ readonly relation_class: "associative";
19
+ readonly attribute_schema_key: "deployment.argocd";
20
+ readonly evidence_level: "code_evidence";
21
+ readonly provider_family: "argocd";
22
+ readonly provider_category: "deployment";
23
+ readonly notes: readonly ["Provider-neutral replacement for argocd_app_sources_github_repository/v1 — targets any provider-neutral VCS repository endpoint, resolved against a GitHub-owned node rather than minting a new one.", "ArgoCD source sync must resolve this against an existing VCS repository alias; it must never create a competing repository identity."];
24
+ readonly guardrails: readonly ["ArgoCD contracts require bounded application endpoints and endpoint-specific relation evidence.", "Application manifests and provider-specific sync facts remain in source_attributes.", "Do not stamp ArgoCD app contracts on the generic ArgoCD integration descriptor."];
25
+ }, {
26
+ readonly key: "argocd_application_deploys_k8s_workload";
27
+ readonly version: "v1";
28
+ readonly status: "active";
29
+ readonly family: "argocd";
30
+ readonly source_endpoint: {
31
+ readonly entity_type: "resource";
32
+ readonly resource_type: "ci_cd";
33
+ readonly source_type: "argocd_application";
34
+ readonly provider: "argocd";
35
+ };
36
+ readonly relation: "DEPLOYS";
37
+ readonly target_endpoint: {
38
+ readonly entity_type: "resource";
39
+ readonly resource_types: readonly ["kubernetes_deployment", "kubernetes_stateful_set", "kubernetes_daemon_set", "kubernetes_job", "kubernetes_cron_job"];
40
+ readonly provider: "k8s";
41
+ };
42
+ readonly relation_class: "associative";
43
+ readonly attribute_schema_key: "deployment.argocd";
44
+ readonly evidence_level: "code_evidence";
45
+ readonly provider_family: "argocd";
46
+ readonly provider_category: "deployment";
47
+ readonly notes: readonly ["Provider-neutral replacement for argocd_app_deploys_to_k8s_workload/v1, using DEPLOYS per the approved relationship vocabulary."];
48
+ readonly guardrails: readonly ["ArgoCD contracts require bounded application endpoints and endpoint-specific relation evidence.", "Application manifests and provider-specific sync facts remain in source_attributes.", "Do not stamp ArgoCD app contracts on the generic ArgoCD integration descriptor."];
49
+ }, {
2
50
  readonly key: "argocd_app_sources_github_repository";
3
51
  readonly version: "v1";
4
52
  readonly status: "candidate";
@@ -11,6 +11,51 @@ const argocdGuardrails = [
11
11
  'Do not stamp ArgoCD app contracts on the generic ArgoCD integration descriptor.',
12
12
  ];
13
13
  exports.ARGOCD_CONNECTION_CONTRACTS = [
14
+ {
15
+ key: 'argocd_application_configured_by_vcs_repository',
16
+ version: 'v1',
17
+ status: status_1.CONNECTION_CONTRACT_STATUS.ACTIVE,
18
+ family: types_1.CONNECTION_CONTRACT_FAMILY.ARGOCD,
19
+ source_endpoint: { entity_type: 'resource', resource_type: topology_1.TOPOLOGY_RESOURCE_TYPE.CI_CD, source_type: 'argocd_application', provider: providers_1.TOPOLOGY_PROVIDER.ARGOCD },
20
+ relation: topology_1.TOPOLOGY_RELATION_TYPE.CONFIGURED_BY,
21
+ target_endpoint: { entity_type: 'resource', resource_type: topology_1.TOPOLOGY_RESOURCE_TYPE.VCS, label: 'vcs_repository' },
22
+ relation_class: 'associative',
23
+ attribute_schema_key: types_1.DEPLOYMENT_ARGOCD_ATTRIBUTE_SCHEMA_KEY,
24
+ evidence_level: types_1.CONNECTION_CONTRACT_EVIDENCE_LEVEL.CODE_EVIDENCE,
25
+ provider_family: 'argocd',
26
+ provider_category: types_1.CONNECTION_CONTRACT_PROVIDER_CATEGORY.DEPLOYMENT,
27
+ notes: [
28
+ 'Provider-neutral replacement for argocd_app_sources_github_repository/v1 — targets any provider-neutral VCS repository endpoint, resolved against a GitHub-owned node rather than minting a new one.',
29
+ 'ArgoCD source sync must resolve this against an existing VCS repository alias; it must never create a competing repository identity.',
30
+ ],
31
+ guardrails: argocdGuardrails,
32
+ },
33
+ {
34
+ key: 'argocd_application_deploys_k8s_workload',
35
+ version: 'v1',
36
+ status: status_1.CONNECTION_CONTRACT_STATUS.ACTIVE,
37
+ family: types_1.CONNECTION_CONTRACT_FAMILY.ARGOCD,
38
+ source_endpoint: { entity_type: 'resource', resource_type: topology_1.TOPOLOGY_RESOURCE_TYPE.CI_CD, source_type: 'argocd_application', provider: providers_1.TOPOLOGY_PROVIDER.ARGOCD },
39
+ relation: topology_1.TOPOLOGY_RELATION_TYPE.DEPLOYS,
40
+ target_endpoint: {
41
+ entity_type: 'resource',
42
+ resource_types: [
43
+ topology_1.TOPOLOGY_RESOURCE_TYPE.KUBERNETES_DEPLOYMENT,
44
+ topology_1.TOPOLOGY_RESOURCE_TYPE.KUBERNETES_STATEFUL_SET,
45
+ topology_1.TOPOLOGY_RESOURCE_TYPE.KUBERNETES_DAEMON_SET,
46
+ topology_1.TOPOLOGY_RESOURCE_TYPE.KUBERNETES_JOB,
47
+ topology_1.TOPOLOGY_RESOURCE_TYPE.KUBERNETES_CRON_JOB,
48
+ ],
49
+ provider: providers_1.TOPOLOGY_PROVIDER.K8S,
50
+ },
51
+ relation_class: 'associative',
52
+ attribute_schema_key: types_1.DEPLOYMENT_ARGOCD_ATTRIBUTE_SCHEMA_KEY,
53
+ evidence_level: types_1.CONNECTION_CONTRACT_EVIDENCE_LEVEL.CODE_EVIDENCE,
54
+ provider_family: 'argocd',
55
+ provider_category: types_1.CONNECTION_CONTRACT_PROVIDER_CATEGORY.DEPLOYMENT,
56
+ notes: ['Provider-neutral replacement for argocd_app_deploys_to_k8s_workload/v1, using DEPLOYS per the approved relationship vocabulary.'],
57
+ guardrails: argocdGuardrails,
58
+ },
14
59
  {
15
60
  key: 'argocd_app_sources_github_repository',
16
61
  version: 'v1',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/correlation/contracts/families/argocd/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,mDAAsF;AACtF,uCAMqB;AACrB,yCAA0D;AAE1D,MAAM,gBAAgB,GAAG;IACvB,iGAAiG;IACjG,qFAAqF;IACrF,iFAAiF;CACzE,CAAC;AAEE,QAAA,2BAA2B,GAAG;IACzC;QACE,GAAG,EAAE,sCAAsC;QAC3C,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,mCAA0B,CAAC,SAAS;QAC5C,MAAM,EAAE,kCAA0B,CAAC,MAAM;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAChK,QAAQ,EAAE,iCAAsB,CAAC,aAAa;QAC9C,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAC7J,cAAc,EAAE,aAAa;QAC7B,oBAAoB,EAAE,8CAAsC;QAC5D,cAAc,EAAE,0CAAkC,CAAC,mBAAmB;QACtE,eAAe,EAAE,QAAQ;QACzB,iBAAiB,EAAE,6CAAqC,CAAC,UAAU;QACnE,UAAU,EAAE,gBAAgB;KAC7B;IACD;QACE,GAAG,EAAE,mCAAmC;QACxC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,mCAA0B,CAAC,YAAY;QAC/C,MAAM,EAAE,kCAA0B,CAAC,MAAM;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAChK,QAAQ,EAAE,iCAAsB,CAAC,WAAW;QAC5C,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,GAAG,EAAE;QACvI,cAAc,EAAE,aAAa;QAC7B,oBAAoB,EAAE,8CAAsC;QAC5D,cAAc,EAAE,0CAAkC,CAAC,mBAAmB;QACtE,eAAe,EAAE,QAAQ;QACzB,iBAAiB,EAAE,6CAAqC,CAAC,UAAU;QACnE,KAAK,EAAE,CAAC,iGAAiG,CAAC;QAC1G,UAAU,EAAE,gBAAgB;KAC7B;IACD;QACE,GAAG,EAAE,oCAAoC;QACzC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,mCAA0B,CAAC,SAAS;QAC5C,MAAM,EAAE,kCAA0B,CAAC,MAAM;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAChK,QAAQ,EAAE,iCAAsB,CAAC,WAAW;QAC5C,eAAe,EAAE;YACf,WAAW,EAAE,UAAU;YACvB,cAAc,EAAE;gBACd,iCAAsB,CAAC,qBAAqB;gBAC5C,iCAAsB,CAAC,uBAAuB;gBAC9C,iCAAsB,CAAC,qBAAqB;gBAC5C,iCAAsB,CAAC,cAAc;gBACrC,iCAAsB,CAAC,mBAAmB;aAC3C;YACD,QAAQ,EAAE,6BAAiB,CAAC,GAAG;SAChC;QACD,cAAc,EAAE,aAAa;QAC7B,oBAAoB,EAAE,8CAAsC;QAC5D,cAAc,EAAE,0CAAkC,CAAC,mBAAmB;QACtE,eAAe,EAAE,QAAQ;QACzB,iBAAiB,EAAE,6CAAqC,CAAC,UAAU;QACnE,KAAK,EAAE,CAAC,iGAAiG,CAAC;QAC1G,UAAU,EAAE,gBAAgB;KAC7B;CACuD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/correlation/contracts/families/argocd/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export declare const GITHUB_CONNECTION_CONTRACTS: readonly [{
2
2
  readonly key: "github_account_owns_repository";
3
3
  readonly version: "v1";
4
- readonly status: "reserved";
4
+ readonly status: "active";
5
5
  readonly family: "github";
6
6
  readonly source_endpoint: {
7
7
  readonly entity_type: "resource";
@@ -18,10 +18,33 @@ export declare const GITHUB_CONNECTION_CONTRACTS: readonly [{
18
18
  };
19
19
  readonly relation_class: "associative";
20
20
  readonly attribute_schema_key: "vcs.github";
21
- readonly evidence_level: "planned";
21
+ readonly evidence_level: "implemented";
22
22
  readonly provider_family: "github";
23
23
  readonly provider_category: "vcs";
24
- readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
24
+ readonly guardrails: readonly ["Do not treat repository metadata alone as proof of a service or resource edge."];
25
+ }, {
26
+ readonly key: "service_implemented_by_vcs_repository";
27
+ readonly version: "v1";
28
+ readonly status: "active";
29
+ readonly family: "github";
30
+ readonly source_endpoint: {
31
+ readonly entity_type: "service";
32
+ readonly label: "scoutflo_service";
33
+ };
34
+ readonly relation: "IMPLEMENTED_BY";
35
+ readonly target_endpoint: {
36
+ readonly entity_type: "resource";
37
+ readonly resource_type: "vcs";
38
+ readonly source_type: "github_repository";
39
+ readonly provider: "github";
40
+ };
41
+ readonly relation_class: "associative";
42
+ readonly attribute_schema_key: "vcs.github";
43
+ readonly evidence_level: "code_evidence";
44
+ readonly provider_family: "github";
45
+ readonly provider_category: "vcs";
46
+ readonly notes: readonly ["Not a GitHub inventory fact — authored by correlation (service-implemented-by-vcs-repository rule) or explicit user confirmation, never by GitHub source sync directly.", "Repository/service name equality alone is heuristic and must never auto-apply this contract."];
47
+ readonly guardrails: readonly ["Do not treat repository metadata alone as proof of a service or resource edge."];
25
48
  }, {
26
49
  readonly key: "github_repository_defines_service";
27
50
  readonly version: "v1";
@@ -43,7 +66,7 @@ export declare const GITHUB_CONNECTION_CONTRACTS: readonly [{
43
66
  readonly evidence_level: "planned";
44
67
  readonly provider_family: "github";
45
68
  readonly provider_category: "vcs";
46
- readonly notes: readonly ["Reserved until repository nodes and service-definition projection tests exist."];
69
+ readonly notes: readonly ["Superseded by service_implemented_by_vcs_repository/v1. Do not activate new writes."];
47
70
  readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
48
71
  }, {
49
72
  readonly key: "github_repository_defines_resource";
@@ -5,7 +5,10 @@ const providers_1 = require("../../../../providers");
5
5
  const topology_1 = require("../../../../topology");
6
6
  const types_1 = require("../../types");
7
7
  const status_1 = require("../../status");
8
- const githubGuardrails = [
8
+ const githubRepositoryGuardrails = [
9
+ 'Do not treat repository metadata alone as proof of a service or resource edge.',
10
+ ];
11
+ const githubReservedGuardrails = [
9
12
  'GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.',
10
13
  'Do not treat repository metadata alone as proof of a service or resource edge.',
11
14
  ];
@@ -13,17 +16,36 @@ exports.GITHUB_CONNECTION_CONTRACTS = [
13
16
  {
14
17
  key: 'github_account_owns_repository',
15
18
  version: 'v1',
16
- status: status_1.CONNECTION_CONTRACT_STATUS.RESERVED,
19
+ status: status_1.CONNECTION_CONTRACT_STATUS.ACTIVE,
17
20
  family: types_1.CONNECTION_CONTRACT_FAMILY.GITHUB,
18
21
  source_endpoint: { entity_type: 'resource', resource_type: topology_1.TOPOLOGY_RESOURCE_TYPE.VCS, source_type: 'github_account', provider: providers_1.TOPOLOGY_PROVIDER.GITHUB },
19
22
  relation: topology_1.TOPOLOGY_RELATION_TYPE.OWNS,
20
23
  target_endpoint: { entity_type: 'resource', resource_type: topology_1.TOPOLOGY_RESOURCE_TYPE.VCS, source_type: 'github_repository', provider: providers_1.TOPOLOGY_PROVIDER.GITHUB },
21
24
  relation_class: 'associative',
22
25
  attribute_schema_key: types_1.VCS_GITHUB_ATTRIBUTE_SCHEMA_KEY,
23
- evidence_level: types_1.CONNECTION_CONTRACT_EVIDENCE_LEVEL.PLANNED,
26
+ evidence_level: types_1.CONNECTION_CONTRACT_EVIDENCE_LEVEL.IMPLEMENTED,
27
+ provider_family: 'github',
28
+ provider_category: types_1.CONNECTION_CONTRACT_PROVIDER_CATEGORY.VCS,
29
+ guardrails: githubRepositoryGuardrails,
30
+ },
31
+ {
32
+ key: 'service_implemented_by_vcs_repository',
33
+ version: 'v1',
34
+ status: status_1.CONNECTION_CONTRACT_STATUS.ACTIVE,
35
+ family: types_1.CONNECTION_CONTRACT_FAMILY.GITHUB,
36
+ source_endpoint: { entity_type: 'service', label: 'scoutflo_service' },
37
+ relation: topology_1.TOPOLOGY_RELATION_TYPE.IMPLEMENTED_BY,
38
+ target_endpoint: { entity_type: 'resource', resource_type: topology_1.TOPOLOGY_RESOURCE_TYPE.VCS, source_type: 'github_repository', provider: providers_1.TOPOLOGY_PROVIDER.GITHUB },
39
+ relation_class: 'associative',
40
+ attribute_schema_key: types_1.VCS_GITHUB_ATTRIBUTE_SCHEMA_KEY,
41
+ evidence_level: types_1.CONNECTION_CONTRACT_EVIDENCE_LEVEL.CODE_EVIDENCE,
24
42
  provider_family: 'github',
25
43
  provider_category: types_1.CONNECTION_CONTRACT_PROVIDER_CATEGORY.VCS,
26
- guardrails: githubGuardrails,
44
+ notes: [
45
+ 'Not a GitHub inventory fact — authored by correlation (service-implemented-by-vcs-repository rule) or explicit user confirmation, never by GitHub source sync directly.',
46
+ 'Repository/service name equality alone is heuristic and must never auto-apply this contract.',
47
+ ],
48
+ guardrails: githubRepositoryGuardrails,
27
49
  },
28
50
  {
29
51
  key: 'github_repository_defines_service',
@@ -38,8 +60,8 @@ exports.GITHUB_CONNECTION_CONTRACTS = [
38
60
  evidence_level: types_1.CONNECTION_CONTRACT_EVIDENCE_LEVEL.PLANNED,
39
61
  provider_family: 'github',
40
62
  provider_category: types_1.CONNECTION_CONTRACT_PROVIDER_CATEGORY.VCS,
41
- notes: ['Reserved until repository nodes and service-definition projection tests exist.'],
42
- guardrails: githubGuardrails,
63
+ notes: ['Superseded by service_implemented_by_vcs_repository/v1. Do not activate new writes.'],
64
+ guardrails: githubReservedGuardrails,
43
65
  },
44
66
  {
45
67
  key: 'github_repository_defines_resource',
@@ -55,7 +77,7 @@ exports.GITHUB_CONNECTION_CONTRACTS = [
55
77
  provider_family: 'github',
56
78
  provider_category: types_1.CONNECTION_CONTRACT_PROVIDER_CATEGORY.VCS,
57
79
  notes: ['Reserved for IaC/manifest-backed resource definitions; provider files stay in source_attributes.'],
58
- guardrails: githubGuardrails,
80
+ guardrails: githubReservedGuardrails,
59
81
  },
60
82
  ];
61
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/correlation/contracts/families/github/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,mDAAsF;AACtF,uCAMqB;AACrB,yCAA0D;AAE1D,MAAM,gBAAgB,GAAG;IACvB,qGAAqG;IACrG,gFAAgF;CACxE,CAAC;AAEE,QAAA,2BAA2B,GAAG;IACzC;QACE,GAAG,EAAE,gCAAgC;QACrC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,mCAA0B,CAAC,QAAQ;QAC3C,MAAM,EAAE,kCAA0B,CAAC,MAAM;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAC1J,QAAQ,EAAE,iCAAsB,CAAC,IAAI;QACrC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAC7J,cAAc,EAAE,aAAa;QAC7B,oBAAoB,EAAE,uCAA+B;QACrD,cAAc,EAAE,0CAAkC,CAAC,OAAO;QAC1D,eAAe,EAAE,QAAQ;QACzB,iBAAiB,EAAE,6CAAqC,CAAC,GAAG;QAC5D,UAAU,EAAE,gBAAgB;KAC7B;IACD;QACE,GAAG,EAAE,mCAAmC;QACxC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,mCAA0B,CAAC,QAAQ;QAC3C,MAAM,EAAE,kCAA0B,CAAC,MAAM;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAC7J,QAAQ,EAAE,iCAAsB,CAAC,QAAQ;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE;QACtE,cAAc,EAAE,aAAa;QAC7B,oBAAoB,EAAE,uCAA+B;QACrD,cAAc,EAAE,0CAAkC,CAAC,OAAO;QAC1D,eAAe,EAAE,QAAQ;QACzB,iBAAiB,EAAE,6CAAqC,CAAC,GAAG;QAC5D,KAAK,EAAE,CAAC,gFAAgF,CAAC;QACzF,UAAU,EAAE,gBAAgB;KAC7B;IACD;QACE,GAAG,EAAE,oCAAoC;QACzC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,mCAA0B,CAAC,QAAQ;QAC3C,MAAM,EAAE,kCAA0B,CAAC,MAAM;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iCAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,6BAAiB,CAAC,MAAM,EAAE;QAC7J,QAAQ,EAAE,iCAAsB,CAAC,QAAQ;QACzC,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,wBAAwB,EAAE;QAC7E,cAAc,EAAE,aAAa;QAC7B,oBAAoB,EAAE,uCAA+B;QACrD,cAAc,EAAE,0CAAkC,CAAC,OAAO;QAC1D,eAAe,EAAE,QAAQ;QACzB,iBAAiB,EAAE,6CAAqC,CAAC,GAAG;QAC5D,KAAK,EAAE,CAAC,kGAAkG,CAAC;QAC3G,UAAU,EAAE,gBAAgB;KAC7B;CACuD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/correlation/contracts/families/github/index.ts"],"names":[],"mappings":"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"}
@@ -340,7 +340,7 @@ export declare const CONNECTION_CONTRACT_FAMILY_REGISTRIES: readonly [readonly [
340
340
  }], readonly [{
341
341
  readonly key: "github_account_owns_repository";
342
342
  readonly version: "v1";
343
- readonly status: "reserved";
343
+ readonly status: "active";
344
344
  readonly family: "github";
345
345
  readonly source_endpoint: {
346
346
  readonly entity_type: "resource";
@@ -357,10 +357,33 @@ export declare const CONNECTION_CONTRACT_FAMILY_REGISTRIES: readonly [readonly [
357
357
  };
358
358
  readonly relation_class: "associative";
359
359
  readonly attribute_schema_key: "vcs.github";
360
- readonly evidence_level: "planned";
360
+ readonly evidence_level: "implemented";
361
361
  readonly provider_family: "github";
362
362
  readonly provider_category: "vcs";
363
- readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
363
+ readonly guardrails: readonly ["Do not treat repository metadata alone as proof of a service or resource edge."];
364
+ }, {
365
+ readonly key: "service_implemented_by_vcs_repository";
366
+ readonly version: "v1";
367
+ readonly status: "active";
368
+ readonly family: "github";
369
+ readonly source_endpoint: {
370
+ readonly entity_type: "service";
371
+ readonly label: "scoutflo_service";
372
+ };
373
+ readonly relation: "IMPLEMENTED_BY";
374
+ readonly target_endpoint: {
375
+ readonly entity_type: "resource";
376
+ readonly resource_type: "vcs";
377
+ readonly source_type: "github_repository";
378
+ readonly provider: "github";
379
+ };
380
+ readonly relation_class: "associative";
381
+ readonly attribute_schema_key: "vcs.github";
382
+ readonly evidence_level: "code_evidence";
383
+ readonly provider_family: "github";
384
+ readonly provider_category: "vcs";
385
+ readonly notes: readonly ["Not a GitHub inventory fact — authored by correlation (service-implemented-by-vcs-repository rule) or explicit user confirmation, never by GitHub source sync directly.", "Repository/service name equality alone is heuristic and must never auto-apply this contract."];
386
+ readonly guardrails: readonly ["Do not treat repository metadata alone as proof of a service or resource edge."];
364
387
  }, {
365
388
  readonly key: "github_repository_defines_service";
366
389
  readonly version: "v1";
@@ -382,7 +405,7 @@ export declare const CONNECTION_CONTRACT_FAMILY_REGISTRIES: readonly [readonly [
382
405
  readonly evidence_level: "planned";
383
406
  readonly provider_family: "github";
384
407
  readonly provider_category: "vcs";
385
- readonly notes: readonly ["Reserved until repository nodes and service-definition projection tests exist."];
408
+ readonly notes: readonly ["Superseded by service_implemented_by_vcs_repository/v1. Do not activate new writes."];
386
409
  readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
387
410
  }, {
388
411
  readonly key: "github_repository_defines_resource";
@@ -408,6 +431,54 @@ export declare const CONNECTION_CONTRACT_FAMILY_REGISTRIES: readonly [readonly [
408
431
  readonly notes: readonly ["Reserved for IaC/manifest-backed resource definitions; provider files stay in source_attributes."];
409
432
  readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
410
433
  }], readonly [{
434
+ readonly key: "argocd_application_configured_by_vcs_repository";
435
+ readonly version: "v1";
436
+ readonly status: "active";
437
+ readonly family: "argocd";
438
+ readonly source_endpoint: {
439
+ readonly entity_type: "resource";
440
+ readonly resource_type: "ci_cd";
441
+ readonly source_type: "argocd_application";
442
+ readonly provider: "argocd";
443
+ };
444
+ readonly relation: "CONFIGURED_BY";
445
+ readonly target_endpoint: {
446
+ readonly entity_type: "resource";
447
+ readonly resource_type: "vcs";
448
+ readonly label: "vcs_repository";
449
+ };
450
+ readonly relation_class: "associative";
451
+ readonly attribute_schema_key: "deployment.argocd";
452
+ readonly evidence_level: "code_evidence";
453
+ readonly provider_family: "argocd";
454
+ readonly provider_category: "deployment";
455
+ readonly notes: readonly ["Provider-neutral replacement for argocd_app_sources_github_repository/v1 — targets any provider-neutral VCS repository endpoint, resolved against a GitHub-owned node rather than minting a new one.", "ArgoCD source sync must resolve this against an existing VCS repository alias; it must never create a competing repository identity."];
456
+ readonly guardrails: readonly ["ArgoCD contracts require bounded application endpoints and endpoint-specific relation evidence.", "Application manifests and provider-specific sync facts remain in source_attributes.", "Do not stamp ArgoCD app contracts on the generic ArgoCD integration descriptor."];
457
+ }, {
458
+ readonly key: "argocd_application_deploys_k8s_workload";
459
+ readonly version: "v1";
460
+ readonly status: "active";
461
+ readonly family: "argocd";
462
+ readonly source_endpoint: {
463
+ readonly entity_type: "resource";
464
+ readonly resource_type: "ci_cd";
465
+ readonly source_type: "argocd_application";
466
+ readonly provider: "argocd";
467
+ };
468
+ readonly relation: "DEPLOYS";
469
+ readonly target_endpoint: {
470
+ readonly entity_type: "resource";
471
+ readonly resource_types: readonly ["kubernetes_deployment", "kubernetes_stateful_set", "kubernetes_daemon_set", "kubernetes_job", "kubernetes_cron_job"];
472
+ readonly provider: "k8s";
473
+ };
474
+ readonly relation_class: "associative";
475
+ readonly attribute_schema_key: "deployment.argocd";
476
+ readonly evidence_level: "code_evidence";
477
+ readonly provider_family: "argocd";
478
+ readonly provider_category: "deployment";
479
+ readonly notes: readonly ["Provider-neutral replacement for argocd_app_deploys_to_k8s_workload/v1, using DEPLOYS per the approved relationship vocabulary."];
480
+ readonly guardrails: readonly ["ArgoCD contracts require bounded application endpoints and endpoint-specific relation evidence.", "Application manifests and provider-specific sync facts remain in source_attributes.", "Do not stamp ArgoCD app contracts on the generic ArgoCD integration descriptor."];
481
+ }, {
411
482
  readonly key: "argocd_app_sources_github_repository";
412
483
  readonly version: "v1";
413
484
  readonly status: "candidate";
@@ -338,7 +338,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
338
338
  } | {
339
339
  readonly key: "github_account_owns_repository";
340
340
  readonly version: "v1";
341
- readonly status: "reserved";
341
+ readonly status: "active";
342
342
  readonly family: "github";
343
343
  readonly source_endpoint: {
344
344
  readonly entity_type: "resource";
@@ -355,10 +355,33 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
355
355
  };
356
356
  readonly relation_class: "associative";
357
357
  readonly attribute_schema_key: "vcs.github";
358
- readonly evidence_level: "planned";
358
+ readonly evidence_level: "implemented";
359
359
  readonly provider_family: "github";
360
360
  readonly provider_category: "vcs";
361
- readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
361
+ readonly guardrails: readonly ["Do not treat repository metadata alone as proof of a service or resource edge."];
362
+ } | {
363
+ readonly key: "service_implemented_by_vcs_repository";
364
+ readonly version: "v1";
365
+ readonly status: "active";
366
+ readonly family: "github";
367
+ readonly source_endpoint: {
368
+ readonly entity_type: "service";
369
+ readonly label: "scoutflo_service";
370
+ };
371
+ readonly relation: "IMPLEMENTED_BY";
372
+ readonly target_endpoint: {
373
+ readonly entity_type: "resource";
374
+ readonly resource_type: "vcs";
375
+ readonly source_type: "github_repository";
376
+ readonly provider: "github";
377
+ };
378
+ readonly relation_class: "associative";
379
+ readonly attribute_schema_key: "vcs.github";
380
+ readonly evidence_level: "code_evidence";
381
+ readonly provider_family: "github";
382
+ readonly provider_category: "vcs";
383
+ readonly notes: readonly ["Not a GitHub inventory fact — authored by correlation (service-implemented-by-vcs-repository rule) or explicit user confirmation, never by GitHub source sync directly.", "Repository/service name equality alone is heuristic and must never auto-apply this contract."];
384
+ readonly guardrails: readonly ["Do not treat repository metadata alone as proof of a service or resource edge."];
362
385
  } | {
363
386
  readonly key: "github_repository_defines_service";
364
387
  readonly version: "v1";
@@ -380,7 +403,7 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
380
403
  readonly evidence_level: "planned";
381
404
  readonly provider_family: "github";
382
405
  readonly provider_category: "vcs";
383
- readonly notes: readonly ["Reserved until repository nodes and service-definition projection tests exist."];
406
+ readonly notes: readonly ["Superseded by service_implemented_by_vcs_repository/v1. Do not activate new writes."];
384
407
  readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
385
408
  } | {
386
409
  readonly key: "github_repository_defines_resource";
@@ -405,6 +428,54 @@ export declare const CONNECTION_CONTRACT_REGISTRY: ({
405
428
  readonly provider_category: "vcs";
406
429
  readonly notes: readonly ["Reserved for IaC/manifest-backed resource definitions; provider files stay in source_attributes."];
407
430
  readonly guardrails: readonly ["GitHub repository contracts are reserved vocabulary until repository nodes and edges exist locally.", "Do not treat repository metadata alone as proof of a service or resource edge."];
431
+ } | {
432
+ readonly key: "argocd_application_configured_by_vcs_repository";
433
+ readonly version: "v1";
434
+ readonly status: "active";
435
+ readonly family: "argocd";
436
+ readonly source_endpoint: {
437
+ readonly entity_type: "resource";
438
+ readonly resource_type: "ci_cd";
439
+ readonly source_type: "argocd_application";
440
+ readonly provider: "argocd";
441
+ };
442
+ readonly relation: "CONFIGURED_BY";
443
+ readonly target_endpoint: {
444
+ readonly entity_type: "resource";
445
+ readonly resource_type: "vcs";
446
+ readonly label: "vcs_repository";
447
+ };
448
+ readonly relation_class: "associative";
449
+ readonly attribute_schema_key: "deployment.argocd";
450
+ readonly evidence_level: "code_evidence";
451
+ readonly provider_family: "argocd";
452
+ readonly provider_category: "deployment";
453
+ readonly notes: readonly ["Provider-neutral replacement for argocd_app_sources_github_repository/v1 — targets any provider-neutral VCS repository endpoint, resolved against a GitHub-owned node rather than minting a new one.", "ArgoCD source sync must resolve this against an existing VCS repository alias; it must never create a competing repository identity."];
454
+ readonly guardrails: readonly ["ArgoCD contracts require bounded application endpoints and endpoint-specific relation evidence.", "Application manifests and provider-specific sync facts remain in source_attributes.", "Do not stamp ArgoCD app contracts on the generic ArgoCD integration descriptor."];
455
+ } | {
456
+ readonly key: "argocd_application_deploys_k8s_workload";
457
+ readonly version: "v1";
458
+ readonly status: "active";
459
+ readonly family: "argocd";
460
+ readonly source_endpoint: {
461
+ readonly entity_type: "resource";
462
+ readonly resource_type: "ci_cd";
463
+ readonly source_type: "argocd_application";
464
+ readonly provider: "argocd";
465
+ };
466
+ readonly relation: "DEPLOYS";
467
+ readonly target_endpoint: {
468
+ readonly entity_type: "resource";
469
+ readonly resource_types: readonly ["kubernetes_deployment", "kubernetes_stateful_set", "kubernetes_daemon_set", "kubernetes_job", "kubernetes_cron_job"];
470
+ readonly provider: "k8s";
471
+ };
472
+ readonly relation_class: "associative";
473
+ readonly attribute_schema_key: "deployment.argocd";
474
+ readonly evidence_level: "code_evidence";
475
+ readonly provider_family: "argocd";
476
+ readonly provider_category: "deployment";
477
+ readonly notes: readonly ["Provider-neutral replacement for argocd_app_deploys_to_k8s_workload/v1, using DEPLOYS per the approved relationship vocabulary."];
478
+ readonly guardrails: readonly ["ArgoCD contracts require bounded application endpoints and endpoint-specific relation evidence.", "Application manifests and provider-specific sync facts remain in source_attributes.", "Do not stamp ArgoCD app contracts on the generic ArgoCD integration descriptor."];
408
479
  } | {
409
480
  readonly key: "argocd_app_sources_github_repository";
410
481
  readonly version: "v1";