{
  "$schema":"https://json-schema.org/draft/2020-12/schema","$id":"environment-input.schema.json","title":"Auth split-origin environment input","type":"object","additionalProperties":false,
  "required":["schema_version","production_equivalent","run_id","started_at","git_sha","dirty","api_image_digest","web_image_digest","package_versions","migration_ids","origins","tls_fingerprints","cookie_policy_revision","auth_revision","db","network_hops","telemetry_hops","browser","runtime_digest","feature_flags","crash_seam_revision","redaction_manifest","deployment_id"],
  "properties":{"schema_version":{"const":"1.0.0"},"production_equivalent":{"const":true},"run_id":{"type":"string","pattern":"^[A-Za-z0-9._-]+$"},"started_at":{"type":"string","format":"date-time"},"git_sha":{"type":"string","pattern":"^[0-9a-f]{40}$"},"dirty":{"const":false},"api_image_digest":{"$ref":"#/$defs/digest"},"web_image_digest":{"$ref":"#/$defs/digest"},"package_versions":{"type":"object","minProperties":2,"additionalProperties":{"type":"string","minLength":1}},"migration_ids":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}},"origins":{"type":"object","additionalProperties":false,"required":["api","web"],"properties":{"api":{"const":"https://api.press.zone"},"web":{"const":"https://tools.press.zone"}}},"tls_fingerprints":{"type":"array","minItems":2,"items":{"$ref":"#/$defs/digest"}},"cookie_policy_revision":{"type":"string","minLength":1},"auth_revision":{"type":"string","minLength":1},"db":{"type":"object","additionalProperties":false,"required":["identity","region"],"properties":{"identity":{"type":"string","minLength":1},"region":{"type":"string","minLength":1}}},"network_hops":{"$ref":"#/$defs/hops"},"telemetry_hops":{"$ref":"#/$defs/hops"},"browser":{"type":"object","additionalProperties":false,"required":["name","version","os"],"properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"os":{"type":"string","minLength":1}}},"runtime_digest":{"$ref":"#/$defs/digest"},"feature_flags":{"type":"object","additionalProperties":{"type":"boolean"}},"crash_seam_revision":{"type":"string","minLength":1},"redaction_manifest":{"type":"object","additionalProperties":false,"required":["path","sha256"],"properties":{"path":{"const":"auth-sensitive-data-flow.json"},"sha256":{"$ref":"#/$defs/digest"}}},"deployment_id":{"type":"string","minLength":1},"fixture_environment":{"type":"object","additionalProperties":false,"required":["mode","registry_id"],"properties":{"mode":{"const":"fixture"},"registry_id":{"const":"auth-split-fixture-v1"}}}},
  "$defs":{"digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$"},"hops":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["instance","config_digest"],"properties":{"instance":{"type":"string","minLength":1},"config_digest":{"$ref":"#/$defs/digest"}}}}}
}
