@apexops/contracts 0.10.0-next.4 → 0.11.0-next.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 (77) hide show
  1. package/README.md +28 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/archetype-source.d.ts +70 -0
  4. package/dist/archetype-source.d.ts.map +1 -0
  5. package/dist/archetype-source.js +58 -0
  6. package/dist/archetype-source.js.map +1 -0
  7. package/dist/artifacts.d.ts +64 -0
  8. package/dist/artifacts.d.ts.map +1 -1
  9. package/dist/artifacts.js +69 -0
  10. package/dist/artifacts.js.map +1 -1
  11. package/dist/common.d.ts +2 -0
  12. package/dist/common.d.ts.map +1 -1
  13. package/dist/common.js +1 -0
  14. package/dist/common.js.map +1 -1
  15. package/dist/evidence.d.ts.map +1 -1
  16. package/dist/evidence.js +2 -0
  17. package/dist/evidence.js.map +1 -1
  18. package/dist/governance-observation.d.ts +15 -0
  19. package/dist/governance-observation.d.ts.map +1 -0
  20. package/dist/governance-observation.js +15 -0
  21. package/dist/governance-observation.js.map +1 -0
  22. package/dist/index.d.ts +627 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +47 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/native-validation.d.ts +136 -0
  27. package/dist/native-validation.d.ts.map +1 -0
  28. package/dist/native-validation.js +276 -0
  29. package/dist/native-validation.js.map +1 -0
  30. package/dist/onboarding.d.ts +184 -3
  31. package/dist/onboarding.d.ts.map +1 -1
  32. package/dist/onboarding.js +122 -6
  33. package/dist/onboarding.js.map +1 -1
  34. package/dist/policy-validation.d.ts +45 -0
  35. package/dist/policy-validation.d.ts.map +1 -0
  36. package/dist/policy-validation.js +194 -0
  37. package/dist/policy-validation.js.map +1 -0
  38. package/dist/runtime.d.ts +94 -2
  39. package/dist/runtime.d.ts.map +1 -1
  40. package/dist/runtime.js +53 -4
  41. package/dist/runtime.js.map +1 -1
  42. package/dist/targets.d.ts +158 -1
  43. package/dist/targets.d.ts.map +1 -1
  44. package/dist/targets.js +168 -2
  45. package/dist/targets.js.map +1 -1
  46. package/dist/test/contracts.test.js +769 -4
  47. package/dist/test/contracts.test.js.map +1 -1
  48. package/package.json +2 -2
  49. package/schemas/archetype-batch-config-v1.schema.json +51 -0
  50. package/schemas/archetype-batch-plan-v1.schema.json +227 -0
  51. package/schemas/archetype-source-proposal-v1.schema.json +113 -0
  52. package/schemas/architecture-v1.schema.json +278 -0
  53. package/schemas/bootstrap-plan-v1.schema.json +206 -0
  54. package/schemas/contract-metadata.json +85 -0
  55. package/schemas/cost-estimate-v1.schema.json +54 -1
  56. package/schemas/diagnosis-v1.schema.json +323 -0
  57. package/schemas/governance-constraints-v1.schema.json +13 -0
  58. package/schemas/governance-observation-receipt-v1.schema.json +60 -0
  59. package/schemas/governance-provision-plan-v1.schema.json +307 -0
  60. package/schemas/governance-setup-config-v1.schema.json +80 -0
  61. package/schemas/governance-setup-plan-v1.schema.json +217 -0
  62. package/schemas/iac-binding-v1.schema.json +60 -0
  63. package/schemas/input-request-v1.schema.json +296 -2
  64. package/schemas/logical-resource-manifest-v1.schema.json +4 -0
  65. package/schemas/native-validation-receipt-v1.schema.json +862 -0
  66. package/schemas/onboarding-config-v1.schema.json +15 -12
  67. package/schemas/policy-property-map-v1.schema.json +17 -0
  68. package/schemas/policy-validation-v1.schema.json +278 -0
  69. package/schemas/project-config-v1.schema.json +14 -1
  70. package/schemas/repeat-guard-records-v1.schema.json +76 -0
  71. package/schemas/repository-publish-config-v1.schema.json +52 -0
  72. package/schemas/repository-publish-plan-v1.schema.json +265 -0
  73. package/schemas/requirements-amendment-v1.schema.json +213 -0
  74. package/schemas/requirements-change-proposal-v1.schema.json +196 -0
  75. package/schemas/review-capture-v1.schema.json +67 -0
  76. package/schemas/review-findings-v1.schema.json +103 -0
  77. package/schemas/review-request-v1.schema.json +111 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAwD7B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+ClB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,CAAC;AACxF,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,qBAAqB,CAAC;CACtC;AAQD,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA+CvE,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAEjF,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,OAAO,CASrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,21 +1,38 @@
1
1
  export * from "./artifacts.js";
2
+ export * from "./archetype-source.js";
2
3
  export * from "./common.js";
3
4
  export * from "./deployment.js";
4
5
  export * from "./evidence.js";
6
+ export * from "./governance-observation.js";
5
7
  export * from "./improvement.js";
8
+ export * from "./native-validation.js";
6
9
  export * from "./onboarding.js";
7
10
  export * from "./pricing.js";
11
+ export * from "./policy-validation.js";
8
12
  export * from "./runtime.js";
9
13
  export * from "./targets.js";
10
- import { IacBindingV1Schema, ImplementationIntentV1Schema, RequirementsV1Schema } from "./artifacts.js";
14
+ import { IacBindingV1Schema, ImplementationIntentV1Schema, RequirementsV1Schema, RequirementsAmendmentV1Schema, RequirementsChangeProposalV1Schema, } from "./artifacts.js";
15
+ import { ArchetypeSourceProposalV1Schema, ArchetypeBatchConfigV1Schema, ArchetypeBatchPlanV1Schema, } from "./archetype-source.js";
11
16
  import { ApprovalEvidenceV1Schema, DeploymentPreviewV1Schema, OperationRecordV1Schema, ResourceInventoryV1Schema, } from "./deployment.js";
12
17
  import { ArchitectureAvailabilityV1Schema, ClientOutcomeComparisonV1Schema, ClientOutcomeQualificationV1Schema, ClientOutcomeV1Schema, EvidenceManifestV1Schema, LiveQualificationV1Schema, QualityMeasurementsV1Schema, QualityScorecardV1Schema, } from "./evidence.js";
13
18
  import { ImprovementDecisionV1Schema, ImprovementObservationV1Schema, ImprovementPolicyV1Schema, ImprovementProposalV1Schema, ImprovementRecurrenceV1Schema, } from "./improvement.js";
14
- import { OnboardingConfigV1Schema } from "./onboarding.js";
19
+ import { BootstrapPlanV1Schema, OnboardingConfigV1Schema, GovernanceSetupConfigV1Schema, GovernanceSetupPlanV1Schema, GovernanceProvisionPlanV1Schema, RepositoryPublishConfigV1Schema, RepositoryPublishPlanV1Schema, } from "./onboarding.js";
20
+ import { NativeValidationReceiptV1Schema } from "./native-validation.js";
21
+ import { GovernanceObservationReceiptV1Schema } from "./governance-observation.js";
15
22
  import { PricingEvidenceV1Schema, PricingRequestV1Schema } from "./pricing.js";
16
- import { EventV1Schema, InputRequestV1Schema, InputSubmissionV1Schema, ProjectConfigV1Schema, RunConfigV1Schema, RuntimeBundleLockV1Schema, TaskEnvelopeV1Schema, } from "./runtime.js";
17
- import { ArchitectureV1Schema, CapabilityPackManifestV1Schema, CostEstimateV1Schema, CustomizationLockV1Schema, DiagnosisV1Schema, EnvironmentInputsV1Schema, ExecutionPlanAttestationV1Schema, GovernanceConstraintsV1Schema, IacHandoffV1Schema, LogicalResourceManifestV1Schema, PolicyPropertyMapV1Schema, QualityReportV1Schema, ReviewFindingsV1Schema, ScenarioV1Schema, TelemetryV1Schema, WorkloadDecisionManifestV1Schema, } from "./targets.js";
23
+ import { PolicyValidationV1Schema } from "./policy-validation.js";
24
+ import { EventV1Schema, InputRequestV1Schema, InputSubmissionV1Schema, ProjectConfigV1Schema, RepeatGuardRecordsV1Schema, RunConfigV1Schema, RuntimeBundleLockV1Schema, TaskEnvelopeV1Schema, } from "./runtime.js";
25
+ import { ArchitectureV1Schema, CapabilityPackManifestV1Schema, CostEstimateV1Schema, CustomizationLockV1Schema, DiagnosisV1Schema, EnvironmentInputsV1Schema, ExecutionPlanAttestationV1Schema, GovernanceConstraintsV1Schema, IacHandoffV1Schema, LogicalResourceManifestV1Schema, PolicyPropertyMapV1Schema, QualityReportV1Schema, ReviewCaptureV1Schema, ReviewRequestV1Schema, ReviewFindingsV1Schema, ScenarioV1Schema, TelemetryV1Schema, WorkloadDecisionManifestV1Schema, } from "./targets.js";
18
26
  export const contractSchemas = [
27
+ GovernanceProvisionPlanV1Schema,
28
+ RepositoryPublishConfigV1Schema,
29
+ RepositoryPublishPlanV1Schema,
30
+ ArchetypeBatchConfigV1Schema,
31
+ ArchetypeBatchPlanV1Schema,
32
+ GovernanceSetupConfigV1Schema,
33
+ GovernanceSetupPlanV1Schema,
34
+ BootstrapPlanV1Schema,
35
+ ArchetypeSourceProposalV1Schema,
19
36
  RuntimeBundleLockV1Schema,
20
37
  ProjectConfigV1Schema,
21
38
  RunConfigV1Schema,
@@ -23,7 +40,10 @@ export const contractSchemas = [
23
40
  InputRequestV1Schema,
24
41
  InputSubmissionV1Schema,
25
42
  EventV1Schema,
43
+ RepeatGuardRecordsV1Schema,
26
44
  RequirementsV1Schema,
45
+ RequirementsAmendmentV1Schema,
46
+ RequirementsChangeProposalV1Schema,
27
47
  ImplementationIntentV1Schema,
28
48
  IacBindingV1Schema,
29
49
  ApprovalEvidenceV1Schema,
@@ -49,10 +69,15 @@ export const contractSchemas = [
49
69
  WorkloadDecisionManifestV1Schema,
50
70
  ArchitectureV1Schema,
51
71
  CostEstimateV1Schema,
72
+ ReviewCaptureV1Schema,
73
+ ReviewRequestV1Schema,
52
74
  ReviewFindingsV1Schema,
53
75
  GovernanceConstraintsV1Schema,
54
76
  PolicyPropertyMapV1Schema,
55
77
  EnvironmentInputsV1Schema,
78
+ GovernanceObservationReceiptV1Schema,
79
+ PolicyValidationV1Schema,
80
+ NativeValidationReceiptV1Schema,
56
81
  LogicalResourceManifestV1Schema,
57
82
  IacHandoffV1Schema,
58
83
  ExecutionPlanAttestationV1Schema,
@@ -69,14 +94,27 @@ const metadata = (maxBytes, sensitivity = "internal") => ({
69
94
  compatibility: "strict-v1",
70
95
  });
71
96
  export const contractMetadata = {
97
+ "https://schemas.apexops.dev/governance-provision-plan-v1.json": metadata(65_536, "confidential"),
98
+ "https://schemas.apexops.dev/repository-publish-config-v1.json": metadata(16_384, "confidential"),
99
+ "https://schemas.apexops.dev/repository-publish-plan-v1.json": metadata(262_144, "confidential"),
100
+ "https://schemas.apexops.dev/archetype-batch-config-v1.json": metadata(16_384, "confidential"),
101
+ "https://schemas.apexops.dev/archetype-batch-plan-v1.json": metadata(2_097_152, "confidential"),
102
+ "https://schemas.apexops.dev/governance-setup-config-v1.json": metadata(16_384, "confidential"),
103
+ "https://schemas.apexops.dev/governance-setup-plan-v1.json": metadata(32_768, "confidential"),
104
+ "https://schemas.apexops.dev/bootstrap-plan-v1.json": metadata(65_536, "confidential"),
105
+ "https://schemas.apexops.dev/archetype-source-proposal-v1.json": metadata(524_288, "confidential"),
72
106
  "https://schemas.apexops.dev/runtime-bundle-lock-v1.json": metadata(32_768),
73
107
  "https://schemas.apexops.dev/project-config-v1.json": metadata(16_384),
74
108
  "https://schemas.apexops.dev/run-config-v1.json": metadata(65_536, "confidential"),
109
+ // 16 records whose results may JSON-escape to six bytes per character, plus per-record overhead.
110
+ "https://schemas.apexops.dev/repeat-guard-records-v1.json": metadata(6_356_992, "confidential"),
75
111
  "https://schemas.apexops.dev/task-envelope-v1.json": metadata(131_072, "confidential"),
76
112
  "https://schemas.apexops.dev/input-request-v1.json": metadata(65_536, "confidential"),
77
113
  "https://schemas.apexops.dev/input-submission-v1.json": metadata(65_536, "confidential"),
78
114
  "https://schemas.apexops.dev/event-v1.json": metadata(262_144, "confidential"),
79
115
  "https://schemas.apexops.dev/requirements-v1.json": metadata(524_288, "confidential"),
116
+ "https://schemas.apexops.dev/requirements-amendment-v1.json": metadata(262_144, "confidential"),
117
+ "https://schemas.apexops.dev/requirements-change-proposal-v1.json": metadata(524_288, "confidential"),
80
118
  "https://schemas.apexops.dev/implementation-intent-v1.json": metadata(524_288),
81
119
  "https://schemas.apexops.dev/iac-binding-v1.json": metadata(524_288, "confidential"),
82
120
  "https://schemas.apexops.dev/approval-evidence-v1.json": metadata(32_768, "confidential"),
@@ -102,9 +140,14 @@ export const contractMetadata = {
102
140
  "https://schemas.apexops.dev/workload-decision-manifest-v1.json": metadata(524_288, "confidential"),
103
141
  "https://schemas.apexops.dev/architecture-v1.json": metadata(1_048_576),
104
142
  "https://schemas.apexops.dev/cost-estimate-v1.json": metadata(1_048_576, "confidential"),
143
+ "https://schemas.apexops.dev/review-capture-v1.json": metadata(1_048_576, "confidential"),
144
+ "https://schemas.apexops.dev/review-request-v1.json": metadata(65_536, "confidential"),
105
145
  "https://schemas.apexops.dev/review-findings-v1.json": metadata(1_048_576, "confidential"),
106
146
  "https://schemas.apexops.dev/governance-constraints-v1.json": metadata(131_072, "confidential"),
147
+ "https://schemas.apexops.dev/governance-observation-receipt-v1.json": metadata(16_384, "confidential"),
107
148
  "https://schemas.apexops.dev/policy-property-map-v1.json": metadata(2_097_152, "confidential"),
149
+ "https://schemas.apexops.dev/policy-validation-v1.json": metadata(4_194_304, "confidential"),
150
+ "https://schemas.apexops.dev/native-validation-receipt-v1.json": metadata(8_404_992, "confidential"),
108
151
  "https://schemas.apexops.dev/environment-inputs-v1.json": metadata(524_288, "restricted"),
109
152
  "https://schemas.apexops.dev/logical-resource-manifest-v1.json": metadata(2_097_152),
110
153
  "https://schemas.apexops.dev/iac-handoff-v1.json": metadata(131_072, "confidential"),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const NATIVE_VALIDATION_COMMANDS: {
3
+ readonly bicep: readonly [{
4
+ readonly validatorId: "bicep:format";
5
+ readonly executable: "bicep";
6
+ readonly args: readonly ["format", "--pattern", "**/*.bicep"];
7
+ }, {
8
+ readonly validatorId: "bicep:build";
9
+ readonly executable: "bicep";
10
+ readonly args: readonly ["build", "main.bicep", "--stdout"];
11
+ }, {
12
+ readonly validatorId: "bicep:lint";
13
+ readonly executable: "bicep";
14
+ readonly args: readonly ["lint", "--pattern", "**/*.bicep", "--no-restore"];
15
+ }];
16
+ readonly terraform: readonly [{
17
+ readonly validatorId: "terraform:init-backend-false";
18
+ readonly executable: "terraform";
19
+ readonly args: readonly ["init", "-backend=false", "-input=false"];
20
+ }, {
21
+ readonly validatorId: "terraform:format";
22
+ readonly executable: "terraform";
23
+ readonly args: readonly ["fmt", "-check"];
24
+ }, {
25
+ readonly validatorId: "terraform:validate";
26
+ readonly executable: "terraform";
27
+ readonly args: readonly ["validate"];
28
+ }];
29
+ };
30
+ export declare const STORAGE_PROPERTY_HARDENING_CONTROLS: Readonly<{
31
+ bicep: readonly (readonly ["properties.allowBlobPublicAccess", false] | readonly ["properties.allowSharedKeyAccess", false] | readonly ["properties.minimumTlsVersion", "TLS1_2"] | readonly ["properties.supportsHttpsTrafficOnly", true])[];
32
+ terraform: readonly (readonly ["allow_nested_items_to_be_public", false] | readonly ["https_traffic_only_enabled", true] | readonly ["min_tls_version", "TLS1_2"] | readonly ["shared_access_key_enabled", false])[];
33
+ }>;
34
+ export declare const NativeValidationReceiptV1Schema: import("@sinclair/typebox").TObject<{
35
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
36
+ projectId: import("@sinclair/typebox").TString;
37
+ runId: import("@sinclair/typebox").TString;
38
+ track: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"bicep">, import("@sinclair/typebox").TLiteral<"terraform">]>;
39
+ sourceHash: import("@sinclair/typebox").TString;
40
+ treeHash: import("@sinclair/typebox").TString;
41
+ policyHash: import("@sinclair/typebox").TString;
42
+ inputHash: import("@sinclair/typebox").TString;
43
+ policyValidation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
44
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
45
+ projectId: import("@sinclair/typebox").TString;
46
+ runId: import("@sinclair/typebox").TString;
47
+ track: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"bicep">, import("@sinclair/typebox").TLiteral<"terraform">]>;
48
+ sourceHash: import("@sinclair/typebox").TString;
49
+ policyMapHash: import("@sinclair/typebox").TString;
50
+ policyMapContentHash: import("@sinclair/typebox").TString;
51
+ logicalResourceManifestHash: import("@sinclair/typebox").TString;
52
+ inputHash: import("@sinclair/typebox").TString;
53
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pass">, import("@sinclair/typebox").TLiteral<"fail">, import("@sinclair/typebox").TLiteral<"unsupported">]>;
54
+ results: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
55
+ mappingIndex: import("@sinclair/typebox").TInteger;
56
+ mappingHash: import("@sinclair/typebox").TString;
57
+ policyAssignmentId: import("@sinclair/typebox").TString;
58
+ policyDefinitionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
59
+ policyDefinitionReferenceId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
60
+ effect: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"deny">, import("@sinclair/typebox").TLiteral<"modify">, import("@sinclair/typebox").TLiteral<"append">, import("@sinclair/typebox").TLiteral<"audit">, import("@sinclair/typebox").TLiteral<"deployIfNotExists">, import("@sinclair/typebox").TLiteral<"disabled">]>;
61
+ disposition: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"satisfied">, import("@sinclair/typebox").TLiteral<"planned">, import("@sinclair/typebox").TLiteral<"exempt">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"not-applicable">]>;
62
+ logicalResourceId: import("@sinclair/typebox").TString;
63
+ propertyPath: import("@sinclair/typebox").TString;
64
+ expectedValueDigest: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
65
+ observedValueDigest: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
66
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pass">, import("@sinclair/typebox").TLiteral<"fail">, import("@sinclair/typebox").TLiteral<"unsupported">]>;
67
+ reason: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"matched">, import("@sinclair/typebox").TLiteral<"value-mismatch">, import("@sinclair/typebox").TLiteral<"missing-property">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"missing-expected-value">, import("@sinclair/typebox").TLiteral<"unverified-exemption">, import("@sinclair/typebox").TLiteral<"unsupported-effect">, import("@sinclair/typebox").TLiteral<"unsupported-path">, import("@sinclair/typebox").TLiteral<"unsupported-expression">, import("@sinclair/typebox").TLiteral<"resource-not-bound">, import("@sinclair/typebox").TLiteral<"resource-not-found">, import("@sinclair/typebox").TLiteral<"ambiguous-resource">, import("@sinclair/typebox").TLiteral<"unsupported-resource">, import("@sinclair/typebox").TLiteral<"invalid-source">, import("@sinclair/typebox").TLiteral<"not-applicable">, import("@sinclair/typebox").TLiteral<"platform-remediated">]>;
68
+ }>>;
69
+ receiptHash: import("@sinclair/typebox").TString;
70
+ }>>;
71
+ securityBaseline: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
72
+ coverage: import("@sinclair/typebox").TLiteral<"bicep-storage-only-baseline-v1">;
73
+ sourceHash: import("@sinclair/typebox").TString;
74
+ inputHash: import("@sinclair/typebox").TString;
75
+ manifestHash: import("@sinclair/typebox").TString;
76
+ bindingHash: import("@sinclair/typebox").TString;
77
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pass">, import("@sinclair/typebox").TLiteral<"fail">, import("@sinclair/typebox").TLiteral<"unsupported">]>;
78
+ reason: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<string>[]>;
79
+ }>>;
80
+ resourceParity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
81
+ coverage: import("@sinclair/typebox").TLiteral<"bicep-symbolic-resource-parity-v1">;
82
+ sourceHash: import("@sinclair/typebox").TString;
83
+ manifestHash: import("@sinclair/typebox").TString;
84
+ bindingHash: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
85
+ inputHash: import("@sinclair/typebox").TString;
86
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pass">, import("@sinclair/typebox").TLiteral<"fail">, import("@sinclair/typebox").TLiteral<"unsupported">]>;
87
+ reason: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"matched">, import("@sinclair/typebox").TLiteral<"coverage-mismatch">, import("@sinclair/typebox").TLiteral<"type-mismatch">, import("@sinclair/typebox").TLiteral<"dependency-mismatch">, import("@sinclair/typebox").TLiteral<"unsupported-resource">, import("@sinclair/typebox").TLiteral<"invalid-source">]>;
88
+ }>>;
89
+ policyApplicability: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
90
+ status: import("@sinclair/typebox").TLiteral<"no-actionable-mappings">;
91
+ policyMapContentHash: import("@sinclair/typebox").TString;
92
+ }>>;
93
+ storageSecurity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
94
+ coverage: import("@sinclair/typebox").TLiteral<"storage-account-property-hardening-v1">;
95
+ fullBaselineEvaluated: import("@sinclair/typebox").TLiteral<false>;
96
+ sourceHash: import("@sinclair/typebox").TString;
97
+ inputHash: import("@sinclair/typebox").TString;
98
+ bindingHash: import("@sinclair/typebox").TString;
99
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pass">, import("@sinclair/typebox").TLiteral<"fail">, import("@sinclair/typebox").TLiteral<"unsupported">]>;
100
+ results: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
101
+ propertyPath: import("@sinclair/typebox").TString;
102
+ expectedValueDigest: import("@sinclair/typebox").TString;
103
+ observedValueDigest: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
104
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pass">, import("@sinclair/typebox").TLiteral<"fail">, import("@sinclair/typebox").TLiteral<"unsupported">]>;
105
+ reason: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"matched">, import("@sinclair/typebox").TLiteral<"value-mismatch">, import("@sinclair/typebox").TLiteral<"missing-property">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"missing-expected-value">, import("@sinclair/typebox").TLiteral<"unverified-exemption">, import("@sinclair/typebox").TLiteral<"unsupported-effect">, import("@sinclair/typebox").TLiteral<"unsupported-path">, import("@sinclair/typebox").TLiteral<"unsupported-expression">, import("@sinclair/typebox").TLiteral<"resource-not-bound">, import("@sinclair/typebox").TLiteral<"resource-not-found">, import("@sinclair/typebox").TLiteral<"ambiguous-resource">, import("@sinclair/typebox").TLiteral<"unsupported-resource">, import("@sinclair/typebox").TLiteral<"invalid-source">, import("@sinclair/typebox").TLiteral<"not-applicable">, import("@sinclair/typebox").TLiteral<"platform-remediated">]>;
106
+ }>>;
107
+ }>>>;
108
+ storageDiagnostics: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
109
+ coverage: import("@sinclair/typebox").TLiteral<"bicep-storage-service-diagnostics-v1">;
110
+ fullBaselineEvaluated: import("@sinclair/typebox").TLiteral<false>;
111
+ sourceHash: import("@sinclair/typebox").TString;
112
+ inputHash: import("@sinclair/typebox").TString;
113
+ bindingHash: import("@sinclair/typebox").TString;
114
+ outcome: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pass">, import("@sinclair/typebox").TLiteral<"fail">, import("@sinclair/typebox").TLiteral<"unsupported">]>;
115
+ reason: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<string>[]>;
116
+ }>>>;
117
+ outcome: import("@sinclair/typebox").TLiteral<"pass">;
118
+ commands: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
119
+ validatorId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"bicep:format">, import("@sinclair/typebox").TLiteral<"bicep:build">, import("@sinclair/typebox").TLiteral<"bicep:lint">, import("@sinclair/typebox").TLiteral<"terraform:init-backend-false">, import("@sinclair/typebox").TLiteral<"terraform:format">, import("@sinclair/typebox").TLiteral<"terraform:validate">]>;
120
+ commandHash: import("@sinclair/typebox").TString;
121
+ exitCode: import("@sinclair/typebox").TLiteral<0>;
122
+ signal: import("@sinclair/typebox").TNull;
123
+ timedOut: import("@sinclair/typebox").TLiteral<false>;
124
+ outputTruncated: import("@sinclair/typebox").TLiteral<false>;
125
+ }>>;
126
+ receiptHash: import("@sinclair/typebox").TString;
127
+ }>;
128
+ export type NativeValidationReceiptV1 = Static<typeof NativeValidationReceiptV1Schema>;
129
+ export type NativeValidationBinding = Pick<NativeValidationReceiptV1, "projectId" | "runId" | "track" | "sourceHash" | "treeHash" | "policyHash" | "inputHash">;
130
+ export declare function calculateNativeValidationCommandHash(command: {
131
+ readonly executable: string;
132
+ readonly args: readonly string[];
133
+ }): string;
134
+ export declare function calculateNativeValidationReceiptHash(receipt: Omit<NativeValidationReceiptV1, "receiptHash">): string;
135
+ export declare function hasValidNativeValidationReceipt(value: unknown, binding: NativeValidationBinding): value is NativeValidationReceiptV1;
136
+ //# sourceMappingURL=native-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-validation.d.ts","sourceRoot":"","sources":["../src/native-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgBtD,eAAO,MAAM,0BAA0B;aACrC,KAAK;iBACD,WAAW,EAAE,cAAc;iBAAE,UAAU,EAAE,OAAO;iBAAE,IAAI,YAAG,QAAQ,EAAE,WAAW,EAAE,YAAY;;iBAC5F,WAAW,EAAE,aAAa;iBAAE,UAAU,EAAE,OAAO;iBAAE,IAAI,YAAG,OAAO,EAAE,YAAY,EAAE,UAAU;;iBACzF,WAAW,EAAE,YAAY;iBAAE,UAAU,EAAE,OAAO;iBAAE,IAAI,YAAG,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc;;aAE5G,SAAS;iBAEL,WAAW,EAAE,8BAA8B;iBAC3C,UAAU,EAAE,WAAW;iBACvB,IAAI,YAAG,MAAM,EAAE,gBAAgB,EAAE,cAAc;;iBAE/C,WAAW,EAAE,kBAAkB;iBAAE,UAAU,EAAE,WAAW;iBAAE,IAAI,YAAG,KAAK,EAAE,QAAQ;;iBAChF,WAAW,EAAE,oBAAoB;iBAAE,UAAU,EAAE,WAAW;iBAAE,IAAI,YAAG,UAAU;;CAEzE,CAAC;AAWX,eAAO,MAAM,mCAAmC;;;EAa9C,CAAC;AA4BH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4H3C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACvF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,yBAAyB,EACzB,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CACzF,CAAC;AAEF,wBAAgB,oCAAoC,CAAC,OAAO,EAAE;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,GAAG,MAAM,CAET;AAED,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,IAAI,CAAC,yBAAyB,EAAE,aAAa,CAAC,GAAG,MAAM,CAEpH;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,uBAAuB,GAC/B,KAAK,IAAI,yBAAyB,CAuJpC"}
@@ -0,0 +1,276 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { Value } from "@sinclair/typebox/value";
3
+ import { ContractVersionSchema, IacToolSchema, NonEmptyStringSchema, ProjectIdSchema, RunIdSchema, Sha256Schema, } from "./common.js";
4
+ import { calculatePolicyValidationDigest, hasValidPolicyValidation, PolicyValidationV1Schema, } from "./policy-validation.js";
5
+ export const NATIVE_VALIDATION_COMMANDS = {
6
+ bicep: [
7
+ { validatorId: "bicep:format", executable: "bicep", args: ["format", "--pattern", "**/*.bicep"] },
8
+ { validatorId: "bicep:build", executable: "bicep", args: ["build", "main.bicep", "--stdout"] },
9
+ { validatorId: "bicep:lint", executable: "bicep", args: ["lint", "--pattern", "**/*.bicep", "--no-restore"] },
10
+ ],
11
+ terraform: [
12
+ {
13
+ validatorId: "terraform:init-backend-false",
14
+ executable: "terraform",
15
+ args: ["init", "-backend=false", "-input=false"],
16
+ },
17
+ { validatorId: "terraform:format", executable: "terraform", args: ["fmt", "-check"] },
18
+ { validatorId: "terraform:validate", executable: "terraform", args: ["validate"] },
19
+ ],
20
+ };
21
+ for (const commands of Object.values(NATIVE_VALIDATION_COMMANDS)) {
22
+ for (const command of commands) {
23
+ Object.freeze(command.args);
24
+ Object.freeze(command);
25
+ }
26
+ Object.freeze(commands);
27
+ }
28
+ Object.freeze(NATIVE_VALIDATION_COMMANDS);
29
+ export const STORAGE_PROPERTY_HARDENING_CONTROLS = Object.freeze({
30
+ bicep: Object.freeze([
31
+ Object.freeze(["properties.minimumTlsVersion", "TLS1_2"]),
32
+ Object.freeze(["properties.supportsHttpsTrafficOnly", true]),
33
+ Object.freeze(["properties.allowBlobPublicAccess", false]),
34
+ Object.freeze(["properties.allowSharedKeyAccess", false]),
35
+ ]),
36
+ terraform: Object.freeze([
37
+ Object.freeze(["min_tls_version", "TLS1_2"]),
38
+ Object.freeze(["https_traffic_only_enabled", true]),
39
+ Object.freeze(["allow_nested_items_to_be_public", false]),
40
+ Object.freeze(["shared_access_key_enabled", false]),
41
+ ]),
42
+ });
43
+ const policyResultProperties = PolicyValidationV1Schema.properties.results.items.properties;
44
+ const storageSecurityObservation = Type.Object({
45
+ coverage: Type.Literal("storage-account-property-hardening-v1"),
46
+ fullBaselineEvaluated: Type.Literal(false),
47
+ sourceHash: Sha256Schema,
48
+ inputHash: Sha256Schema,
49
+ bindingHash: Sha256Schema,
50
+ outcome: policyResultProperties.outcome,
51
+ results: Type.Array(Type.Object({
52
+ propertyPath: NonEmptyStringSchema,
53
+ expectedValueDigest: Sha256Schema,
54
+ observedValueDigest: Type.Optional(Sha256Schema),
55
+ outcome: policyResultProperties.outcome,
56
+ reason: policyResultProperties.reason,
57
+ }, { additionalProperties: false }), { minItems: 4, maxItems: 4 }),
58
+ }, { additionalProperties: false });
59
+ export const NativeValidationReceiptV1Schema = Type.Object({
60
+ schemaVersion: ContractVersionSchema,
61
+ projectId: ProjectIdSchema,
62
+ runId: RunIdSchema,
63
+ track: IacToolSchema,
64
+ sourceHash: Sha256Schema,
65
+ treeHash: Sha256Schema,
66
+ policyHash: Sha256Schema,
67
+ inputHash: Sha256Schema,
68
+ policyValidation: Type.Optional(PolicyValidationV1Schema),
69
+ securityBaseline: Type.Optional(Type.Object({
70
+ coverage: Type.Literal("bicep-storage-only-baseline-v1"),
71
+ sourceHash: Sha256Schema,
72
+ inputHash: Sha256Schema,
73
+ manifestHash: Sha256Schema,
74
+ bindingHash: Sha256Schema,
75
+ outcome: Type.Union([Type.Literal("pass"), Type.Literal("fail"), Type.Literal("unsupported")]),
76
+ reason: Type.Union([
77
+ "matched",
78
+ "resource-parity",
79
+ "unsupported-resource",
80
+ "credential-content",
81
+ "storage-controls",
82
+ "diagnostic-routing",
83
+ ].map((reason) => Type.Literal(reason))),
84
+ }, { additionalProperties: false })),
85
+ resourceParity: Type.Optional(Type.Object({
86
+ coverage: Type.Literal("bicep-symbolic-resource-parity-v1"),
87
+ sourceHash: Sha256Schema,
88
+ manifestHash: Sha256Schema,
89
+ bindingHash: Type.Optional(Sha256Schema),
90
+ inputHash: Sha256Schema,
91
+ outcome: Type.Union([Type.Literal("pass"), Type.Literal("fail"), Type.Literal("unsupported")]),
92
+ reason: Type.Union([
93
+ Type.Literal("matched"),
94
+ Type.Literal("coverage-mismatch"),
95
+ Type.Literal("type-mismatch"),
96
+ Type.Literal("dependency-mismatch"),
97
+ Type.Literal("unsupported-resource"),
98
+ Type.Literal("invalid-source"),
99
+ ]),
100
+ }, { additionalProperties: false })),
101
+ policyApplicability: Type.Optional(Type.Object({
102
+ status: Type.Literal("no-actionable-mappings"),
103
+ policyMapContentHash: Sha256Schema,
104
+ }, { additionalProperties: false })),
105
+ storageSecurity: Type.Optional(Type.Record(NonEmptyStringSchema, storageSecurityObservation, { maxProperties: 1000 })),
106
+ storageDiagnostics: Type.Optional(Type.Record(NonEmptyStringSchema, Type.Object({
107
+ coverage: Type.Literal("bicep-storage-service-diagnostics-v1"),
108
+ fullBaselineEvaluated: Type.Literal(false),
109
+ sourceHash: Sha256Schema,
110
+ inputHash: Sha256Schema,
111
+ bindingHash: Sha256Schema,
112
+ outcome: Type.Union([Type.Literal("pass"), Type.Literal("fail"), Type.Literal("unsupported")]),
113
+ reason: Type.Union([
114
+ "matched",
115
+ "invalid-source",
116
+ "ambiguous-or-unbound-account",
117
+ "unsupported-account",
118
+ "missing-or-ambiguous-service",
119
+ "unsupported-service",
120
+ "missing-or-ambiguous-diagnostics",
121
+ "unsupported-diagnostics",
122
+ "workspace-mismatch",
123
+ "missing-categories",
124
+ "disabled-or-missing-categories",
125
+ ].map((reason) => Type.Literal(reason))),
126
+ }, { additionalProperties: false }), { maxProperties: 1000 })),
127
+ outcome: Type.Literal("pass"),
128
+ commands: Type.Array(Type.Object({
129
+ validatorId: Type.Union([
130
+ Type.Literal("bicep:format"),
131
+ Type.Literal("bicep:build"),
132
+ Type.Literal("bicep:lint"),
133
+ Type.Literal("terraform:init-backend-false"),
134
+ Type.Literal("terraform:format"),
135
+ Type.Literal("terraform:validate"),
136
+ ]),
137
+ commandHash: Sha256Schema,
138
+ exitCode: Type.Literal(0),
139
+ signal: Type.Null(),
140
+ timedOut: Type.Literal(false),
141
+ outputTruncated: Type.Literal(false),
142
+ }, { additionalProperties: false }), { minItems: 1, maxItems: 3 }),
143
+ receiptHash: Sha256Schema,
144
+ }, { $id: "https://schemas.apexops.dev/native-validation-receipt-v1.json", additionalProperties: false });
145
+ export function calculateNativeValidationCommandHash(command) {
146
+ return calculatePolicyValidationDigest({ executable: command.executable, args: command.args });
147
+ }
148
+ export function calculateNativeValidationReceiptHash(receipt) {
149
+ return calculatePolicyValidationDigest(receipt);
150
+ }
151
+ export function hasValidNativeValidationReceipt(value, binding) {
152
+ try {
153
+ if (!Value.Check(NativeValidationReceiptV1Schema, value))
154
+ return false;
155
+ const { receiptHash, ...receipt } = value;
156
+ const keys = ["projectId", "runId", "track", "sourceHash", "treeHash", "policyHash", "inputHash"];
157
+ if (keys.some((key) => receipt[key] !== binding[key]))
158
+ return false;
159
+ if (receipt.policyApplicability !== undefined &&
160
+ (receipt.policyValidation !== undefined ||
161
+ receipt.policyApplicability.policyMapContentHash !== receipt.policyHash))
162
+ return false;
163
+ const storageInputHash = receipt.storageSecurity === undefined ? undefined : Object.values(receipt.storageSecurity)[0]?.inputHash;
164
+ const parity = receipt.resourceParity;
165
+ const baseline = receipt.securityBaseline;
166
+ if (baseline !== undefined &&
167
+ (receipt.track !== "bicep" ||
168
+ parity === undefined ||
169
+ baseline.sourceHash !== receipt.sourceHash ||
170
+ baseline.inputHash !== parity.inputHash ||
171
+ baseline.manifestHash !== parity.manifestHash ||
172
+ baseline.bindingHash !== parity.bindingHash ||
173
+ (baseline.outcome === "pass" && (baseline.reason !== "matched" || parity.outcome !== "pass")) ||
174
+ (baseline.reason === "matched" && baseline.outcome !== "pass") ||
175
+ (baseline.reason === "resource-parity" && (parity.outcome === "pass" || baseline.outcome !== parity.outcome)) ||
176
+ (baseline.reason === "unsupported-resource" && baseline.outcome !== "unsupported") ||
177
+ (["credential-content", "storage-controls"].includes(baseline.reason) && baseline.outcome !== "fail") ||
178
+ (baseline.reason === "diagnostic-routing" && baseline.outcome === "pass")))
179
+ return false;
180
+ if (receipt.storageDiagnostics !== undefined) {
181
+ const observations = Object.values(receipt.storageDiagnostics);
182
+ const inputHash = observations[0]?.inputHash;
183
+ if (receipt.track !== "bicep" ||
184
+ observations.some((observation) => observation.sourceHash !== receipt.sourceHash ||
185
+ observation.inputHash !== inputHash ||
186
+ (storageInputHash !== undefined && observation.inputHash !== storageInputHash) ||
187
+ (parity !== undefined && observation.inputHash !== parity.inputHash) ||
188
+ (receipt.policyValidation !== undefined && observation.inputHash !== receipt.policyValidation.inputHash) ||
189
+ observation.outcome !==
190
+ (observation.reason === "matched"
191
+ ? "pass"
192
+ : [
193
+ "invalid-source",
194
+ "ambiguous-or-unbound-account",
195
+ "unsupported-account",
196
+ "unsupported-service",
197
+ "unsupported-diagnostics",
198
+ ].includes(observation.reason)
199
+ ? "unsupported"
200
+ : "fail")))
201
+ return false;
202
+ }
203
+ if (parity !== undefined &&
204
+ (receipt.track !== "bicep" ||
205
+ parity.sourceHash !== receipt.sourceHash ||
206
+ (storageInputHash !== undefined && parity.inputHash !== storageInputHash) ||
207
+ (receipt.policyValidation !== undefined && parity.inputHash !== receipt.policyValidation.inputHash) ||
208
+ parity.outcome !==
209
+ (parity.reason === "matched"
210
+ ? "pass"
211
+ : ["unsupported-resource", "invalid-source"].includes(parity.reason)
212
+ ? "unsupported"
213
+ : "fail")))
214
+ return false;
215
+ if (receipt.storageSecurity !== undefined &&
216
+ (receipt.track !== "bicep" ||
217
+ Object.values(receipt.storageSecurity).some((observation) => observation.sourceHash !== receipt.sourceHash ||
218
+ observation.inputHash !== storageInputHash ||
219
+ (receipt.policyValidation !== undefined && observation.inputHash !== receipt.policyValidation.inputHash) ||
220
+ observation.outcome !==
221
+ (observation.results.some(({ outcome }) => outcome === "fail")
222
+ ? "fail"
223
+ : observation.results.some(({ outcome }) => outcome === "unsupported")
224
+ ? "unsupported"
225
+ : "pass") ||
226
+ observation.results.some((result, index) => {
227
+ const control = STORAGE_PROPERTY_HARDENING_CONTROLS.bicep[index];
228
+ if (control === undefined ||
229
+ result.propertyPath !== control[0] ||
230
+ result.expectedValueDigest !== calculatePolicyValidationDigest(control[1]))
231
+ return true;
232
+ if (result.reason === "matched")
233
+ return result.outcome !== "pass" || result.expectedValueDigest !== result.observedValueDigest;
234
+ if (result.reason === "value-mismatch")
235
+ return (result.outcome !== "fail" ||
236
+ result.observedValueDigest === undefined ||
237
+ result.expectedValueDigest === result.observedValueDigest);
238
+ if (result.reason === "missing-property")
239
+ return result.outcome !== "fail" || result.observedValueDigest !== undefined;
240
+ return (![
241
+ "unsupported-expression",
242
+ "resource-not-bound",
243
+ "resource-not-found",
244
+ "ambiguous-resource",
245
+ "unsupported-resource",
246
+ "invalid-source",
247
+ ].includes(result.reason) ||
248
+ result.outcome !== "unsupported" ||
249
+ result.observedValueDigest !== undefined);
250
+ }))))
251
+ return false;
252
+ const policy = receipt.policyValidation;
253
+ if (policy !== undefined &&
254
+ (policy.projectId !== receipt.projectId ||
255
+ policy.runId !== receipt.runId ||
256
+ policy.outcome !== "pass" ||
257
+ !hasValidPolicyValidation(policy, {
258
+ track: receipt.track,
259
+ sourceHash: receipt.sourceHash,
260
+ policyMapHash: receipt.policyHash,
261
+ policyMapContentHash: policy.policyMapContentHash,
262
+ logicalResourceManifestHash: policy.logicalResourceManifestHash,
263
+ inputHash: policy.inputHash,
264
+ })))
265
+ return false;
266
+ const expected = NATIVE_VALIDATION_COMMANDS[receipt.track];
267
+ return (receipt.commands.length === expected.length &&
268
+ expected.every((command, index) => receipt.commands[index]?.validatorId === command.validatorId &&
269
+ receipt.commands[index]?.commandHash === calculateNativeValidationCommandHash(command)) &&
270
+ receiptHash === calculateNativeValidationReceiptHash(receipt));
271
+ }
272
+ catch {
273
+ return false;
274
+ }
275
+ }
276
+ //# sourceMappingURL=native-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-validation.js","sourceRoot":"","sources":["../src/native-validation.ts"],"names":[],"mappings":"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"}