edge.config.schema.json 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. {
  2. "$schema": "https://json-schema.org/draft/2020-12/schema",
  3. "title": "DataOps Edge Runtime File Configuration",
  4. "type": "object",
  5. "additionalProperties": false,
  6. "required": [
  7. "allowed_control_hosts",
  8. "allowed_control_origins",
  9. "allowed_proxy_hosts",
  10. "allowed_proxy_origins",
  11. "artifact_root",
  12. "ca_bundle_path",
  13. "certificate_sha256",
  14. "client_certificate_path",
  15. "client_private_key_path",
  16. "control_url",
  17. "environment",
  18. "gateway_id",
  19. "generation",
  20. "network_zone",
  21. "policy_digest",
  22. "proxy_url",
  23. "queue_path",
  24. "task_authority_clock_skew_seconds",
  25. "version"
  26. ],
  27. "properties": {
  28. "allowed_control_hosts": {
  29. "type": "array",
  30. "minItems": 1,
  31. "maxItems": 32,
  32. "uniqueItems": true,
  33. "items": {"type": "string", "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$"}
  34. },
  35. "allowed_control_origins": {
  36. "type": "array",
  37. "minItems": 1,
  38. "maxItems": 32,
  39. "uniqueItems": true,
  40. "items": {"type": "string", "pattern": "^https://[^/]+$", "maxLength": 2048}
  41. },
  42. "allowed_proxy_hosts": {
  43. "type": "array",
  44. "maxItems": 32,
  45. "uniqueItems": true,
  46. "items": {"type": "string", "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$"}
  47. },
  48. "allowed_proxy_origins": {
  49. "type": "array",
  50. "maxItems": 32,
  51. "uniqueItems": true,
  52. "items": {"type": "string", "pattern": "^https://[^/]+$", "maxLength": 2048}
  53. },
  54. "artifact_root": {"type": "string", "pattern": "^/", "maxLength": 2048},
  55. "ca_bundle_path": {"type": "string", "pattern": "^/", "maxLength": 2048},
  56. "certificate_sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
  57. "client_certificate_path": {"type": "string", "pattern": "^/", "maxLength": 2048},
  58. "client_private_key_path": {"type": "string", "pattern": "^/", "maxLength": 2048},
  59. "control_url": {"type": "string", "pattern": "^https://[^/]+$", "maxLength": 2048},
  60. "environment": {"type": "string", "enum": ["development", "staging", "production"]},
  61. "gateway_id": {"type": "string", "format": "uuid"},
  62. "generation": {"type": "integer", "minimum": 1, "maximum": 2147483647},
  63. "network_zone": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,254}$"},
  64. "policy_digest": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
  65. "proxy_url": {
  66. "oneOf": [
  67. {"type": "null"},
  68. {"type": "string", "pattern": "^https://[^/]+$", "maxLength": 2048}
  69. ]
  70. },
  71. "queue_path": {"type": "string", "pattern": "^/", "maxLength": 2048},
  72. "task_authority_clock_skew_seconds": {"type": "integer", "minimum": 0, "maximum": 300},
  73. "version": {
  74. "type": "string",
  75. "pattern": "^(0|[1-9][0-9]{0,9})\\.(0|[1-9][0-9]{0,9})\\.(0|[1-9][0-9]{0,9})$"
  76. }
  77. }
  78. }