horde-model-reference 2.1.3__tar.gz → 3.0.0__tar.gz

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 (376) hide show
  1. horde_model_reference-3.0.0/.env.example +514 -0
  2. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.env.primary.example +6 -6
  3. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.github/workflows/codeql.yml +1 -1
  4. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.github/workflows/docker-validation.yml +16 -8
  5. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.github/workflows/lint.yml +9 -11
  6. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.github/workflows/maintests.yml +32 -8
  7. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.github/workflows/prtests.yml +39 -20
  8. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.github/workflows/release.yml +1 -1
  9. horde_model_reference-3.0.0/.hadolint.yaml +10 -0
  10. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.pre-commit-config.yaml +2 -1
  11. horde_model_reference-2.1.3/.CONTRIBUTING.md → horde_model_reference-3.0.0/CONTRIBUTING.md +43 -11
  12. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/DEPLOYMENT.md +6 -6
  13. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/Dockerfile +2 -1
  14. {horde_model_reference-2.1.3/src/horde_model_reference.egg-info → horde_model_reference-3.0.0}/PKG-INFO +99 -21
  15. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/README.md +94 -17
  16. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docker-compose.redis.yml +6 -6
  17. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docker-compose.sync.example.yml +1 -1
  18. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docker-compose.yml +1 -1
  19. horde_model_reference-3.0.0/docs/.pages +6 -0
  20. horde_model_reference-3.0.0/docs/concepts/.pages +9 -0
  21. horde_model_reference-3.0.0/docs/concepts/analytics_pipeline.md +116 -0
  22. horde_model_reference-3.0.0/docs/concepts/architecture_overview.md +94 -0
  23. horde_model_reference-3.0.0/docs/concepts/canonical_format.md +181 -0
  24. horde_model_reference-3.0.0/docs/concepts/design_decisions.md +46 -0
  25. horde_model_reference-3.0.0/docs/concepts/integrations.md +90 -0
  26. horde_model_reference-3.0.0/docs/concepts/request_lifecycle.md +152 -0
  27. horde_model_reference-3.0.0/docs/concepts/sync_system.md +98 -0
  28. horde_model_reference-3.0.0/docs/guides/.pages +1 -0
  29. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/.pages +1 -0
  30. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/base_cache.md +2 -0
  31. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/cache_hydrator.md +2 -0
  32. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/constants.md +2 -0
  33. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/deletion_risk_analysis.md +2 -0
  34. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/deletion_risk_cache.md +2 -0
  35. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/filter_presets.md +2 -0
  36. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/statistics.md +2 -0
  37. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/statistics_cache.md +2 -0
  38. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/text_model_grouping.md +2 -0
  39. horde_model_reference-3.0.0/docs/horde_model_reference/analytics/text_model_parser.md +2 -0
  40. horde_model_reference-3.0.0/docs/horde_model_reference/audit/.pages +1 -0
  41. horde_model_reference-3.0.0/docs/horde_model_reference/audit/events.md +2 -0
  42. horde_model_reference-3.0.0/docs/horde_model_reference/audit/reader.md +2 -0
  43. horde_model_reference-3.0.0/docs/horde_model_reference/audit/replay.md +2 -0
  44. horde_model_reference-3.0.0/docs/horde_model_reference/audit/writer.md +2 -0
  45. horde_model_reference-3.0.0/docs/horde_model_reference/cli/.pages +1 -0
  46. horde_model_reference-3.0.0/docs/horde_model_reference/data/.pages +1 -0
  47. horde_model_reference-3.0.0/docs/horde_model_reference/diff_service.md +2 -0
  48. horde_model_reference-3.0.0/docs/horde_model_reference/http_retry.md +2 -0
  49. horde_model_reference-3.0.0/docs/horde_model_reference/integrations/.pages +1 -0
  50. horde_model_reference-3.0.0/docs/horde_model_reference/integrations/data_merger.md +2 -0
  51. horde_model_reference-3.0.0/docs/horde_model_reference/integrations/horde_api_integration.md +2 -0
  52. horde_model_reference-3.0.0/docs/horde_model_reference/integrations/horde_api_models.md +2 -0
  53. horde_model_reference-3.0.0/docs/horde_model_reference/legacy/text_csv_utils.md +2 -0
  54. horde_model_reference-3.0.0/docs/horde_model_reference/legacy/validation/.pages +1 -0
  55. horde_model_reference-3.0.0/docs/horde_model_reference/model_consts/.pages +1 -0
  56. horde_model_reference-3.0.0/docs/horde_model_reference/model_consts/image.md +2 -0
  57. horde_model_reference-3.0.0/docs/horde_model_reference/model_consts/shared.md +2 -0
  58. horde_model_reference-3.0.0/docs/horde_model_reference/model_consts/text.md +2 -0
  59. horde_model_reference-3.0.0/docs/horde_model_reference/model_kind_validation.md +2 -0
  60. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/.pages +1 -0
  61. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/apply.md +2 -0
  62. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/audit_events.md +2 -0
  63. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/audit_view.md +2 -0
  64. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/diff_utils.md +2 -0
  65. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/models.md +2 -0
  66. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/service.md +2 -0
  67. horde_model_reference-3.0.0/docs/horde_model_reference/pending_queue/store.md +2 -0
  68. horde_model_reference-3.0.0/docs/horde_model_reference/query.md +2 -0
  69. horde_model_reference-3.0.0/docs/horde_model_reference/query_fields.md +2 -0
  70. horde_model_reference-3.0.0/docs/horde_model_reference/registries.md +2 -0
  71. horde_model_reference-3.0.0/docs/horde_model_reference/service/pending_queue/.pages +1 -0
  72. horde_model_reference-3.0.0/docs/horde_model_reference/service/pending_queue/audit_router.md +2 -0
  73. horde_model_reference-3.0.0/docs/horde_model_reference/service/pending_queue/dependencies.md +2 -0
  74. horde_model_reference-3.0.0/docs/horde_model_reference/service/pending_queue/router.md +2 -0
  75. horde_model_reference-3.0.0/docs/horde_model_reference/service/statistics/.pages +1 -0
  76. horde_model_reference-3.0.0/docs/horde_model_reference/service/statistics/routers/deletion_risk.md +2 -0
  77. horde_model_reference-3.0.0/docs/horde_model_reference/service/statistics/routers/statistics.md +2 -0
  78. horde_model_reference-3.0.0/docs/horde_model_reference/service/v1/routers/pending_queue.md +2 -0
  79. horde_model_reference-3.0.0/docs/horde_model_reference/service/v1/routers/pending_queue_audit.md +2 -0
  80. horde_model_reference-3.0.0/docs/horde_model_reference/service/v1/routers/write_validations.md +2 -0
  81. horde_model_reference-3.0.0/docs/horde_model_reference/service/v2/routers/.pages +1 -0
  82. horde_model_reference-3.0.0/docs/horde_model_reference/service/v2/routers/pending_queue.md +2 -0
  83. horde_model_reference-3.0.0/docs/horde_model_reference/service/v2/routers/pending_queue_audit.md +2 -0
  84. horde_model_reference-3.0.0/docs/horde_model_reference/service/v2/routers/search.md +2 -0
  85. horde_model_reference-3.0.0/docs/horde_model_reference/service/v2/routers/text_utils.md +2 -0
  86. horde_model_reference-3.0.0/docs/horde_model_reference/service/v2/routers/user.md +2 -0
  87. horde_model_reference-3.0.0/docs/horde_model_reference/service/v2/routers/write_validations.md +2 -0
  88. horde_model_reference-3.0.0/docs/horde_model_reference/sync/legacy_text_validator.md +2 -0
  89. horde_model_reference-3.0.0/docs/horde_model_reference/sync/text_generation_serializer.md +2 -0
  90. horde_model_reference-3.0.0/docs/horde_model_reference/text_backend_names.md +2 -0
  91. horde_model_reference-3.0.0/docs/horde_model_reference/text_model_duplicates.md +2 -0
  92. horde_model_reference-3.0.0/docs/horde_model_reference/text_model_write_processor.md +2 -0
  93. horde_model_reference-3.0.0/docs/index.md +40 -0
  94. horde_model_reference-3.0.0/docs/reference/.pages +9 -0
  95. horde_model_reference-3.0.0/docs/reference/audit_trail.md +93 -0
  96. {horde_model_reference-2.1.3/docs → horde_model_reference-3.0.0/docs/reference}/model_reference_backend.md +69 -7
  97. horde_model_reference-3.0.0/docs/reference/model_reference_records.md +85 -0
  98. horde_model_reference-3.0.0/docs/reference/pending_queue.md +212 -0
  99. {horde_model_reference-2.1.3/docs → horde_model_reference-3.0.0/docs/reference}/primary_deployments.md +6 -4
  100. {horde_model_reference-2.1.3/docs → horde_model_reference-3.0.0/docs/reference}/replica_backend_base.md +71 -5
  101. horde_model_reference-3.0.0/docs/tutorials/.pages +5 -0
  102. horde_model_reference-3.0.0/docs/tutorials/configuration_and_troubleshooting.md +168 -0
  103. horde_model_reference-3.0.0/docs/tutorials/getting_started.md +118 -0
  104. horde_model_reference-3.0.0/docs/tutorials/querying_models.md +298 -0
  105. horde_model_reference-3.0.0/docs/tutorials/working_with_records.md +186 -0
  106. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/pyproject.toml +6 -4
  107. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/schemas/stable_diffusion.schema.json +14 -2
  108. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/legacy_text/convert.py +7 -7
  109. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/legacy_text/reverse_convert.py +19 -10
  110. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/sync/README.md +7 -7
  111. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/sync/github_app_auth_example.md +4 -4
  112. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/sync/sync_github_references.py +156 -35
  113. horde_model_reference-3.0.0/scripts/verify_query_fields.py +105 -0
  114. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/__init__.py +237 -22
  115. horde_model_reference-3.0.0/src/horde_model_reference/_version.py +24 -0
  116. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/analytics/__init__.py +16 -10
  117. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/analytics/base_cache.py +144 -45
  118. horde_model_reference-3.0.0/src/horde_model_reference/analytics/cache_hydrator.py +373 -0
  119. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/analytics/constants.py +2 -2
  120. horde_model_reference-2.1.3/src/horde_model_reference/analytics/audit_analysis.py → horde_model_reference-3.0.0/src/horde_model_reference/analytics/deletion_risk_analysis.py +223 -109
  121. horde_model_reference-2.1.3/src/horde_model_reference/analytics/audit_cache.py → horde_model_reference-3.0.0/src/horde_model_reference/analytics/deletion_risk_cache.py +25 -23
  122. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/analytics/filter_presets.py +42 -33
  123. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/analytics/statistics.py +1 -0
  124. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/analytics/statistics_cache.py +8 -6
  125. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/analytics/text_model_grouping.py +76 -44
  126. horde_model_reference-3.0.0/src/horde_model_reference/analytics/text_model_parser.py +555 -0
  127. horde_model_reference-3.0.0/src/horde_model_reference/audit/__init__.py +17 -0
  128. horde_model_reference-3.0.0/src/horde_model_reference/audit/events.py +137 -0
  129. horde_model_reference-3.0.0/src/horde_model_reference/audit/reader.py +118 -0
  130. horde_model_reference-3.0.0/src/horde_model_reference/audit/replay.py +109 -0
  131. horde_model_reference-3.0.0/src/horde_model_reference/audit/writer.py +111 -0
  132. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/backends/__init__.py +16 -2
  133. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/backends/base.py +94 -8
  134. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/backends/filesystem_backend.py +433 -132
  135. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/backends/github_backend.py +107 -220
  136. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/backends/http_backend.py +97 -98
  137. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/backends/redis_backend.py +56 -18
  138. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/backends/replica_backend_base.py +19 -2
  139. horde_model_reference-3.0.0/src/horde_model_reference/data/defaults.json +8 -0
  140. horde_model_reference-3.0.0/src/horde_model_reference/data/generation_params.json +30 -0
  141. horde_model_reference-3.0.0/src/horde_model_reference/diff_service.py +244 -0
  142. horde_model_reference-3.0.0/src/horde_model_reference/http_retry.py +247 -0
  143. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/integrations/data_merger.py +21 -1
  144. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/integrations/horde_api_integration.py +142 -23
  145. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/integrations/horde_api_models.py +19 -5
  146. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/legacy/classes/legacy_converters.py +13 -8
  147. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/legacy/classes/legacy_models.py +5 -3
  148. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/legacy/convert_all_legacy_dbs.py +13 -0
  149. horde_model_reference-3.0.0/src/horde_model_reference/legacy/text_csv_utils.py +353 -0
  150. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/legacy/validate_sd.py +7 -4
  151. horde_model_reference-3.0.0/src/horde_model_reference/meta_consts.py +413 -0
  152. horde_model_reference-3.0.0/src/horde_model_reference/model_consts/__init__.py +1 -0
  153. horde_model_reference-3.0.0/src/horde_model_reference/model_consts/image.py +296 -0
  154. horde_model_reference-3.0.0/src/horde_model_reference/model_consts/shared.py +71 -0
  155. horde_model_reference-3.0.0/src/horde_model_reference/model_consts/text.py +41 -0
  156. horde_model_reference-3.0.0/src/horde_model_reference/model_kind_validation.py +78 -0
  157. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/model_reference_manager.py +421 -44
  158. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/model_reference_metadata.py +33 -2
  159. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/model_reference_records.py +178 -66
  160. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/path_consts.py +52 -22
  161. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/__init__.py +79 -0
  162. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/apply.py +364 -0
  163. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/audit_events.py +134 -0
  164. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/audit_view.py +560 -0
  165. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/diff_utils.py +230 -0
  166. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/models.py +218 -0
  167. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/service.py +405 -0
  168. horde_model_reference-3.0.0/src/horde_model_reference/pending_queue/store.py +377 -0
  169. horde_model_reference-3.0.0/src/horde_model_reference/query.py +777 -0
  170. horde_model_reference-3.0.0/src/horde_model_reference/query_fields.py +283 -0
  171. horde_model_reference-3.0.0/src/horde_model_reference/registries.py +156 -0
  172. horde_model_reference-3.0.0/src/horde_model_reference/service/app.py +151 -0
  173. horde_model_reference-3.0.0/src/horde_model_reference/service/pending_queue/__init__.py +1 -0
  174. horde_model_reference-3.0.0/src/horde_model_reference/service/pending_queue/audit_router.py +221 -0
  175. horde_model_reference-3.0.0/src/horde_model_reference/service/pending_queue/dependencies.py +17 -0
  176. horde_model_reference-3.0.0/src/horde_model_reference/service/pending_queue/router.py +658 -0
  177. horde_model_reference-3.0.0/src/horde_model_reference/service/shared.py +468 -0
  178. horde_model_reference-3.0.0/src/horde_model_reference/service/statistics/__init__.py +1 -0
  179. horde_model_reference-3.0.0/src/horde_model_reference/service/statistics/routers/__init__.py +1 -0
  180. horde_model_reference-2.1.3/src/horde_model_reference/service/statistics/routers/audit.py → horde_model_reference-3.0.0/src/horde_model_reference/service/statistics/routers/deletion_risk.py +121 -81
  181. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/statistics/routers/statistics.py +12 -7
  182. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v1/routers/create_update.py +150 -89
  183. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v1/routers/metadata.py +11 -7
  184. horde_model_reference-3.0.0/src/horde_model_reference/service/v1/routers/pending_queue.py +8 -0
  185. horde_model_reference-3.0.0/src/horde_model_reference/service/v1/routers/pending_queue_audit.py +5 -0
  186. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v1/routers/references.py +29 -3
  187. horde_model_reference-3.0.0/src/horde_model_reference/service/v1/routers/shared.py +319 -0
  188. horde_model_reference-3.0.0/src/horde_model_reference/service/v1/routers/write_validations.py +9 -0
  189. horde_model_reference-3.0.0/src/horde_model_reference/service/v2/models.py +78 -0
  190. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v2/routers/metadata.py +7 -7
  191. horde_model_reference-3.0.0/src/horde_model_reference/service/v2/routers/pending_queue.py +8 -0
  192. horde_model_reference-3.0.0/src/horde_model_reference/service/v2/routers/pending_queue_audit.py +5 -0
  193. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v2/routers/references.py +493 -230
  194. horde_model_reference-3.0.0/src/horde_model_reference/service/v2/routers/search.py +270 -0
  195. horde_model_reference-3.0.0/src/horde_model_reference/service/v2/routers/text_utils.py +540 -0
  196. horde_model_reference-3.0.0/src/horde_model_reference/service/v2/routers/user.py +46 -0
  197. horde_model_reference-3.0.0/src/horde_model_reference/service/v2/routers/write_validations.py +11 -0
  198. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/showcase/README.md +1 -1
  199. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/sync/__init__.py +3 -0
  200. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/sync/comparator.py +1 -0
  201. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/sync/config.py +5 -2
  202. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/sync/github_client.py +181 -71
  203. horde_model_reference-3.0.0/src/horde_model_reference/sync/legacy_text_validator.py +118 -0
  204. horde_model_reference-3.0.0/src/horde_model_reference/sync/text_generation_serializer.py +464 -0
  205. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/sync/watch_mode.py +21 -25
  206. horde_model_reference-3.0.0/src/horde_model_reference/text_backend_names.py +115 -0
  207. horde_model_reference-3.0.0/src/horde_model_reference/text_model_duplicates.py +139 -0
  208. horde_model_reference-3.0.0/src/horde_model_reference/text_model_write_processor.py +372 -0
  209. horde_model_reference-3.0.0/src/horde_model_reference/util.py +38 -0
  210. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0/src/horde_model_reference.egg-info}/PKG-INFO +99 -21
  211. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference.egg-info/SOURCES.txt +164 -12
  212. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference.egg-info/requires.txt +4 -2
  213. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/README.md +3 -3
  214. horde_model_reference-3.0.0/tests/backends/test_backends_init.py +20 -0
  215. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/backends/test_http_backend.py +1 -2
  216. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/backends/test_primary_mode.py +8 -8
  217. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/backends/test_redis_backend.py +7 -2
  218. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/conftest.py +64 -23
  219. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/create_example_json.py +3 -2
  220. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/horde_api/conftest.py +3 -3
  221. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/horde_api/test_data_merger.py +37 -0
  222. horde_model_reference-2.1.3/tests/horde_api/test_audit_analysis_live.py → horde_model_reference-3.0.0/tests/horde_api/test_deletion_risk_analysis_live.py +46 -46
  223. horde_model_reference-2.1.3/tests/horde_api/test_audit_worker_count.py → horde_model_reference-3.0.0/tests/horde_api/test_deletion_risk_worker_count.py +2 -2
  224. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/horde_api/test_horde_api_integration.py +164 -73
  225. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/horde_api/test_horde_api_integration_live.py +1 -1
  226. horde_model_reference-3.0.0/tests/pending_queue/test_apply.py +562 -0
  227. horde_model_reference-3.0.0/tests/pending_queue/test_audit_view.py +95 -0
  228. horde_model_reference-3.0.0/tests/pending_queue/test_diff_service.py +113 -0
  229. horde_model_reference-3.0.0/tests/pending_queue/test_service.py +316 -0
  230. horde_model_reference-3.0.0/tests/pending_queue/test_store.py +191 -0
  231. horde_model_reference-3.0.0/tests/service/test_api_design_phase4.py +387 -0
  232. horde_model_reference-3.0.0/tests/service/test_pending_queue_audit_endpoints.py +181 -0
  233. horde_model_reference-3.0.0/tests/service/test_shared_allowlists.py +167 -0
  234. horde_model_reference-3.0.0/tests/service/test_shared_auth.py +100 -0
  235. horde_model_reference-3.0.0/tests/service/test_text_utils.py +259 -0
  236. horde_model_reference-3.0.0/tests/service/test_user_roles_endpoint.py +25 -0
  237. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/service/test_v1_api.py +227 -41
  238. horde_model_reference-3.0.0/tests/service/test_v2_api.py +1812 -0
  239. horde_model_reference-3.0.0/tests/service/test_v2_search.py +491 -0
  240. horde_model_reference-3.0.0/tests/statistics_and_audit/test_cache_hydrator.py +830 -0
  241. horde_model_reference-2.1.3/tests/statistics_and_audit/test_audit_analysis.py → horde_model_reference-3.0.0/tests/statistics_and_audit/test_deletion_risk_analysis.py +192 -187
  242. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/statistics_and_audit/test_statistics_cache.py +5 -13
  243. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/statistics_and_audit/test_text_model_grouping.py +95 -49
  244. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/statistics_and_audit/test_text_model_parser.py +124 -9
  245. horde_model_reference-3.0.0/tests/sync/test_github_client.py +242 -0
  246. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/sync/test_legacy_text_validator.py +13 -22
  247. horde_model_reference-3.0.0/tests/sync/test_text_generation_serializer.py +1291 -0
  248. horde_model_reference-3.0.0/tests/test_audit_replay.py +248 -0
  249. horde_model_reference-3.0.0/tests/test_audit_trail.py +202 -0
  250. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_broken_tutu_grouping.py +4 -4
  251. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_canonical_format.py +35 -36
  252. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_consts.py +8 -0
  253. horde_model_reference-3.0.0/tests/test_csv_rows_to_legacy_dict.py +734 -0
  254. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_metadata.py +7 -7
  255. horde_model_reference-3.0.0/tests/test_model_kind_validation.py +42 -0
  256. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_model_reference_manager.py +176 -89
  257. horde_model_reference-3.0.0/tests/test_query.py +1143 -0
  258. horde_model_reference-3.0.0/tests/test_records.py +175 -0
  259. horde_model_reference-3.0.0/tests/test_registries.py +689 -0
  260. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_text_generation_csv_conversion.py +1 -0
  261. horde_model_reference-3.0.0/tests/test_text_model_duplicates.py +116 -0
  262. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_text_model_group.py +5 -5
  263. horde_model_reference-3.0.0/tests/test_text_model_write_processor.py +333 -0
  264. horde_model_reference-3.0.0/uv.lock +2797 -0
  265. horde_model_reference-2.1.3/.env.example +0 -181
  266. horde_model_reference-2.1.3/docs/index.md +0 -1
  267. horde_model_reference-2.1.3/src/horde_model_reference/_version.py +0 -34
  268. horde_model_reference-2.1.3/src/horde_model_reference/analytics/text_model_parser.py +0 -308
  269. horde_model_reference-2.1.3/src/horde_model_reference/legacy/text_csv_utils.py +0 -129
  270. horde_model_reference-2.1.3/src/horde_model_reference/meta_consts.py +0 -423
  271. horde_model_reference-2.1.3/src/horde_model_reference/service/app.py +0 -58
  272. horde_model_reference-2.1.3/src/horde_model_reference/service/shared.py +0 -200
  273. horde_model_reference-2.1.3/src/horde_model_reference/service/statistics/__init__.py +0 -1
  274. horde_model_reference-2.1.3/src/horde_model_reference/service/statistics/routers/__init__.py +0 -1
  275. horde_model_reference-2.1.3/src/horde_model_reference/service/v1/routers/shared.py +0 -99
  276. horde_model_reference-2.1.3/src/horde_model_reference/service/v2/models.py +0 -25
  277. horde_model_reference-2.1.3/src/horde_model_reference/sync/legacy_text_validator.py +0 -428
  278. horde_model_reference-2.1.3/src/horde_model_reference/util.py +0 -15
  279. horde_model_reference-2.1.3/tests/service/test_v2_api.py +0 -597
  280. horde_model_reference-2.1.3/tests/test_records.py +0 -85
  281. horde_model_reference-2.1.3/uv.lock +0 -3609
  282. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.dockerignore +0 -0
  283. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.env.sync.example +0 -0
  284. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.gitignore +0 -0
  285. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.gitmodules +0 -0
  286. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/.readthedocs.yaml +0 -0
  287. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/LICENSE +0 -0
  288. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/MANIFEST.in +0 -0
  289. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/build_docs.py +0 -0
  290. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/.pages +0 -0
  291. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/_version.md +0 -0
  292. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/backends/.pages +0 -0
  293. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/backends/base.md +0 -0
  294. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/backends/filesystem_backend.md +0 -0
  295. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/backends/github_backend.md +0 -0
  296. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/backends/http_backend.md +0 -0
  297. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/backends/redis_backend.md +0 -0
  298. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/backends/replica_backend_base.md +0 -0
  299. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/legacy/.pages +0 -0
  300. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/legacy/classes/.pages +0 -0
  301. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/legacy/classes/legacy_converters.md +0 -0
  302. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/legacy/classes/legacy_models.md +0 -0
  303. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/legacy/convert_all_legacy_dbs.md +0 -0
  304. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/legacy/validate_sd.md +0 -0
  305. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/meta_consts.md +0 -0
  306. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/model_reference_manager.md +0 -0
  307. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/model_reference_metadata.md +0 -0
  308. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/model_reference_records.md +0 -0
  309. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/path_consts.md +0 -0
  310. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/.pages +0 -0
  311. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/app.md +0 -0
  312. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/shared.md +0 -0
  313. {horde_model_reference-2.1.3/docs/horde_model_reference/service/v1 → horde_model_reference-3.0.0/docs/horde_model_reference/service/statistics}/routers/.pages +0 -0
  314. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v1/.pages +0 -0
  315. {horde_model_reference-2.1.3/docs/horde_model_reference/service/v2 → horde_model_reference-3.0.0/docs/horde_model_reference/service/v1}/routers/.pages +0 -0
  316. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v1/routers/create_update.md +0 -0
  317. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v1/routers/metadata.md +0 -0
  318. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v1/routers/references.md +0 -0
  319. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v1/routers/shared.md +0 -0
  320. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v2/.pages +0 -0
  321. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v2/models.md +0 -0
  322. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v2/routers/metadata.md +0 -0
  323. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/service/v2/routers/references.md +0 -0
  324. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/showcase/.pages +0 -0
  325. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/sync/.pages +0 -0
  326. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/sync/comparator.md +0 -0
  327. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/sync/config.md +0 -0
  328. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/sync/github_client.md +0 -0
  329. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/sync/watch_mode.md +0 -0
  330. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/horde_model_reference/util.md +0 -0
  331. {horde_model_reference-2.1.3/docs → horde_model_reference-3.0.0/docs/reference}/legacy_csv_conversion.md +0 -0
  332. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/docs/stylesheets/extra.css +0 -0
  333. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/mkdocs.yml +0 -0
  334. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/schemas/stable_diffusion.example.json +0 -0
  335. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/README.md +0 -0
  336. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/get_all_names.py +0 -0
  337. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/legacy_text/defaults.json +0 -0
  338. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/scripts/legacy_text/generation_params.json +0 -0
  339. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/setup.cfg +0 -0
  340. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/integrations/__init__.py +0 -0
  341. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/legacy/README.md +0 -0
  342. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/legacy/__init__.py +0 -0
  343. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/legacy/classes/__init__.py +0 -0
  344. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/py.typed +0 -0
  345. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/__init__.py +0 -0
  346. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v1/__init__.py +0 -0
  347. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v1/routers/__init__.py +0 -0
  348. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v2/__init__.py +0 -0
  349. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference/service/v2/routers/__init__.py +0 -0
  350. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference.egg-info/dependency_links.txt +0 -0
  351. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference.egg-info/entry_points.txt +0 -0
  352. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/src/horde_model_reference.egg-info/top_level.txt +0 -0
  353. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/test_endpoint.py +0 -0
  354. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/__init__.py +0 -0
  355. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/backends/__init__.py +0 -0
  356. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/check_model_ref_type_blocks.py +0 -0
  357. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/create_env_file_example.py +0 -0
  358. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/helpers.py +0 -0
  359. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/horde_api/__init__.py +0 -0
  360. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/horde_api/test_indexed_horde_types.py +0 -0
  361. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/integrations/test_stats_aggregation.py +0 -0
  362. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/service/__init__.py +0 -0
  363. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/service/test_replica_backend_base.py +0 -0
  364. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/statistics_and_audit/__init__.py +0 -0
  365. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/statistics_and_audit/test_statistics.py +0 -0
  366. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/sync/__init__.py +0 -0
  367. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/sync/test_comparator.py +0 -0
  368. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/sync/test_comparator_integration.py +0 -0
  369. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/sync/test_config.py +0 -0
  370. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_combined_model_statistics.py +0 -0
  371. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_convert_legacy_database.py +0 -0
  372. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_converters.py +0 -0
  373. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_env_example.py +0 -0
  374. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_examples.py +0 -0
  375. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_scripts.py +0 -0
  376. {horde_model_reference-2.1.3 → horde_model_reference-3.0.0}/tests/test_text_generation_file_paths.py +0 -0
@@ -0,0 +1,514 @@
1
+ # Auto-generated example environment file for Horde Model Reference
2
+ # This file is generated by the settings_doc package.
3
+ # Do not edit this file manually.
4
+
5
+ # Generated on (UTC): 2026-03-26 22:29:13
6
+
7
+ # DEPLOYMENT QUICK START GUIDE
8
+
9
+ # Choose your deployment scenario and uncomment the relevant settings below:
10
+
11
+ # 1. REPLICA MODE (Default) - Client/Worker nodes
12
+ # - Uses GitHub or PRIMARY API to fetch model references
13
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
14
+ # - Optionally set: HORDE_MODEL_REFERENCE_PRIMARY_API_URL=<your-primary-url>
15
+
16
+ # 2. PRIMARY MODE - Single Worker (No Redis)
17
+ # - Authoritative source for model references
18
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
19
+ # - No Redis configuration needed
20
+ # - Ideal for: Development, testing, low-traffic deployments
21
+
22
+ # 3. PRIMARY MODE - Multi-Worker (With Redis)
23
+ # - Authoritative source with distributed caching
24
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
25
+ # - Configure all HORDE_MODEL_REFERENCE_REDIS_* settings
26
+ # - Ideal for: Production, high-traffic deployments
27
+
28
+ # For detailed deployment instructions, see:
29
+ # - Docker: docker-compose.yml (single-worker)
30
+ # - Docker + Redis: docker-compose.redis.yml (multi-worker)
31
+ # - Non-Docker: DEPLOYMENT.md
32
+
33
+
34
+ ################################################################################
35
+ # Horde Model Reference Settings
36
+ ################################################################################
37
+
38
+ # Indicates if copies of the model reference are canonical or replicated. Clients should always be replicas.
39
+ # Possible values:
40
+ # `PRIMARY`, `REPLICA`
41
+ # HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
42
+
43
+ # Whether to create the default model reference folders on initialization.
44
+ # HORDE_MODEL_REFERENCE_MAKE_FOLDERS=False
45
+
46
+ # The GitHub owner of the repository.
47
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__OWNER=Haidra-Org
48
+
49
+ # The name of the GitHub repository used for image model references.
50
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__NAME=AI-Horde-image-model-reference
51
+
52
+ # The GitHub branch of the repository.
53
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__BRANCH=main
54
+
55
+ # Settings for the GitHub proxy, if any.
56
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__PROXY_SETTINGS=
57
+
58
+ # The GitHub owner of the repository.
59
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__OWNER=Haidra-Org
60
+
61
+ # The name of the GitHub repository used for text model references.
62
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__NAME=AI-Horde-text-model-reference
63
+
64
+ # The GitHub branch of the repository.
65
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__BRANCH=main
66
+
67
+ # Settings for the GitHub proxy, if any.
68
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__PROXY_SETTINGS=
69
+
70
+ # The time-to-live for in memory caches of model reference files, in seconds.
71
+ # HORDE_MODEL_REFERENCE_CACHE_TTL_SECONDS=60
72
+
73
+ # The maximum number of attempts to retry downloading a legacy model reference file.
74
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_MAX_ATTEMPTS=3
75
+
76
+ # The backoff time in seconds between retry attempts when downloading a legacy model reference file.
77
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_BACKOFF_SECONDS=2
78
+
79
+ # Whether to use Redis for distributed caching. Only should be used in PRIMARY mode.
80
+ # HORDE_MODEL_REFERENCE_REDIS__USE_REDIS=False
81
+
82
+ # Redis connection URL. Format: redis://[:password]@host:port/db
83
+ # HORDE_MODEL_REFERENCE_REDIS__URL=redis://localhost:6379/0
84
+
85
+ # Connection pool size for Redis connections.
86
+ # HORDE_MODEL_REFERENCE_REDIS__POOL_SIZE=10
87
+
88
+ # Socket timeout in seconds for Redis operations.
89
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_TIMEOUT=5
90
+
91
+ # Connection timeout in seconds when establishing Redis connection.
92
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_CONNECT_TIMEOUT=5
93
+
94
+ # Maximum number of retry attempts for failed Redis operations.
95
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_MAX_ATTEMPTS=3
96
+
97
+ # Backoff time in seconds between retry attempts for Redis operations.
98
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_BACKOFF_SECONDS=0.5
99
+
100
+ # Prefix for all Redis keys to namespace model reference data.
101
+ # HORDE_MODEL_REFERENCE_REDIS__KEY_PREFIX=horde:model_ref
102
+
103
+ # TTL for cached entries in seconds. If None, uses cache_ttl_seconds from main settings.
104
+ # HORDE_MODEL_REFERENCE_REDIS__TTL_SECONDS=
105
+
106
+ # Enable pub/sub for cache invalidation across multiple PRIMARY workers.
107
+ # HORDE_MODEL_REFERENCE_REDIS__USE_PUBSUB=True
108
+
109
+ # URL of PRIMARY server API for REPLICA clients to fetch model references from. If None, REPLICA clients will only use GitHub. Example: https://stablehorde.net/api/model_references/
110
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_URL=https://stablehorde.net/api/model_references/
111
+
112
+ # Timeout in seconds for HTTP requests to PRIMARY API.
113
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_TIMEOUT=10
114
+
115
+ # Whether REPLICA clients should fallback to GitHub if PRIMARY API is unavailable.
116
+ # HORDE_MODEL_REFERENCE_ENABLE_GITHUB_FALLBACK=True
117
+
118
+ # Whether PRIMARY mode should seed from GitHub on first initialization if local files don't exist. Only used in PRIMARY mode. If True, will download and convert legacy references once on startup.
119
+ # HORDE_MODEL_REFERENCE_GITHUB_SEED_ENABLED=False
120
+
121
+ # Which format is the canonical source of truth. Controls which API has write access. 'v2' (default): v2 API has CRUD, v1 API is read-only (converts from v2 to legacy). 'LEGACY': v1 API has CRUD, v2 API is read-only (converts from legacy to v2).
122
+ # Possible values:
123
+ # `LEGACY`, `v2`
124
+ # HORDE_MODEL_REFERENCE_CANONICAL_FORMAT=v2
125
+
126
+ # Timeout in seconds for Horde API requests to fetch model status, statistics, and worker information.
127
+ # HORDE_MODEL_REFERENCE_HORDE_API_TIMEOUT=30
128
+
129
+ # Cache TTL in seconds for Horde API responses. Uses Redis if available, otherwise in-memory caching.
130
+ # HORDE_MODEL_REFERENCE_HORDE_API_CACHE_TTL=60
131
+
132
+ # Cache TTL in seconds for category statistics. Uses Redis if available, otherwise in-memory caching.
133
+ # HORDE_MODEL_REFERENCE_STATISTICS_CACHE_TTL=300
134
+
135
+ # Cache TTL in seconds for category audit results. Uses Redis if available, otherwise in-memory caching.
136
+ # HORDE_MODEL_REFERENCE_AUDIT_CACHE_TTL=300
137
+
138
+ # Enable background pre-computation of statistics. Currently not implemented (future feature).
139
+ # HORDE_MODEL_REFERENCE_ENABLE_STATISTICS_PRECOMPUTE=False
140
+
141
+ # Preferred file hosts for deletion risk analysis in audit endpoints.
142
+ # HORDE_MODEL_REFERENCE_PREFERRED_FILE_HOSTS=
143
+
144
+ # Percentage threshold for low usage flag in audit analysis. Default 0.0065% flags bottom ~10% of models. Set lower (e.g., 0.005%) to flag fewer models or higher (e.g., 0.01%) to flag more models.
145
+ # HORDE_MODEL_REFERENCE_LOW_USAGE_THRESHOLD_PERCENTAGE=0.0065
146
+
147
+ # Low usage threshold for text_generation models (2% - more lenient than image models at 0.65%).
148
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_LOW_USAGE_THRESHOLD_PERCENTAGE=0.02
149
+
150
+ # Skip download host validation for text_generation models completely.
151
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_IGNORE_DOWNLOAD_HOSTS=True
152
+
153
+ # Minimum monthly usage for text_generation to be flagged as critical (allows some usage).
154
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_USAGE_THRESHOLD=10
155
+
156
+ # Minimum worker count for text_generation to be flagged as critical (allows some workers).
157
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_WORKER_THRESHOLD=1
158
+
159
+ # Whether audit trail writes are enabled in PRIMARY deployments.
160
+ # HORDE_MODEL_REFERENCE_AUDIT__ENABLED=True
161
+
162
+ # Maximum size in bytes for each JSONL segment before rolling over to a new file.
163
+ # HORDE_MODEL_REFERENCE_AUDIT__MAX_SEGMENT_BYTES=5242880
164
+
165
+ # Subdirectory name (relative to cache home) for storing audit logs when no override is provided.
166
+ # HORDE_MODEL_REFERENCE_AUDIT__RELATIVE_SUBDIR=audit
167
+
168
+ # Absolute path override for audit log storage. When set, relative_subdir is ignored.
169
+ # HORDE_MODEL_REFERENCE_AUDIT__ROOT_PATH_OVERRIDE=
170
+
171
+ # Whether the pending queue workflow is enabled (PRIMARY deployments only).
172
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ENABLED=True
173
+
174
+ # Relative folder under cache home used for queue persistence when no override is set.
175
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__RELATIVE_SUBDIR=pending_queue
176
+
177
+ # Absolute path override for queue persistence. When set, relative_subdir is ignored.
178
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ROOT_PATH_OVERRIDE=
179
+
180
+ # Horde user IDs allowed to submit pending changes.
181
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__REQUESTOR_IDS=
182
+
183
+ # Horde user IDs allowed to approve/reject pending batches (superset of requestors).
184
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__APPROVER_IDS=
185
+
186
+ # Reserved for future rotation support (matches audit defaults).
187
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__MAX_SEGMENT_BYTES=5242880
188
+
189
+ # Enable background cache hydration to keep audit/statistics caches warm. When enabled, caches are proactively refreshed before TTL expiry so clients always get fast cached responses.
190
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_ENABLED=False
191
+
192
+ # Interval in seconds between cache hydration refreshes. Should be less than cache TTLs (statistics_cache_ttl, audit_cache_ttl) to ensure caches stay warm. Default 240s (4 min) with 300s TTLs.
193
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_INTERVAL_SECONDS=240
194
+
195
+ # Maximum age in seconds before stale cached data is discarded. While hydration is running, clients receive stale data instead of waiting for fresh data. Default 1 hour.
196
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STALE_TTL_SECONDS=3600
197
+
198
+ # Delay in seconds before first hydration run after service startup. Allows service to fully initialize before background tasks begin.
199
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STARTUP_DELAY_SECONDS=5
200
+
201
+ # List of allowed origins for CORS. Warns if unset or empty, as it falls back to the FastAPI default behavior. See https://fastapi.tiangolo.com/tutorial/cors/#use-corsmiddleware for details.
202
+ # HORDE_MODEL_REFERENCE_CORS_ALLOWED_ORIGINS=
203
+
204
+
205
+
206
+ ################################################################################
207
+ # AI Horde Client+Worker Settings
208
+ ################################################################################
209
+
210
+ # Alternative API endpoints for the AI Horde. These should all lead to the same logical AI Horde.
211
+ # ALT_HORDE_URLS=[HttpUrl('https://stablehorde.net/api/')]
212
+
213
+ # The API key used for authenticating requests to the AI Horde.
214
+ # API_KEY=**********
215
+
216
+ # The API endpoint for AI Horde ratings.
217
+ # RATINGS_URL=https://ratings.aihorde.net/api/
218
+
219
+ # The folder where application logs are stored.
220
+ # LOGS_FOLDER=./logs
221
+
222
+ # The folder where AI worker (or client) files are stored, most notably models and checkpoints.
223
+ # AIWORKER_CACHE_HOME=./models
224
+
225
+ # The hugging face home directory.
226
+ # HF_HOME=~/.cache/huggingface
227
+
228
+ # The standard XDG cache directory.
229
+ # XDG_CACHE_HOME=~/.cache/
230
+
231
+
232
+
233
+ ################################################################################
234
+ # Github Proxying Settings
235
+ ################################################################################
236
+
237
+ # The base URL for a http(s) GitHub proxy. If None, no proxy is used. This is intended for users where github may be blocked.
238
+ # GITHUB_PROXY_URL_BASE=
239
+
240
+
241
+
242
+ ################################################################################
243
+ # AI Horde CI Settings
244
+ ################################################################################
245
+
246
+ # Indicates if any CI/CD pipeline is ongoing.
247
+ # TESTS_ONGOING=False
248
+
249
+ # Indicates if the hordelib CI/CD pipeline is ongoing.
250
+ # HORDELIB_CI_ONGOING=False
251
+
252
+ # Indicates if the AI Horde SDK is currently being tested.
253
+ # HORDE_SDK_TESTING=False
254
+
255
+ # Indicates if the AI Horde is currently being tested.
256
+ # AI_HORDE_TESTING=False
257
+
258
+
259
+ # Auto-generated example environment file for Horde Model Reference
260
+ # This file is generated by the settings_doc package.
261
+ # Do not edit this file manually.
262
+
263
+ # Generated on (UTC): 2026-03-26 22:29:13
264
+
265
+ # DEPLOYMENT QUICK START GUIDE
266
+
267
+ # Choose your deployment scenario and uncomment the relevant settings below:
268
+
269
+ # 1. REPLICA MODE (Default) - Client/Worker nodes
270
+ # - Uses GitHub or PRIMARY API to fetch model references
271
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
272
+ # - Optionally set: HORDE_MODEL_REFERENCE_PRIMARY_API_URL=<your-primary-url>
273
+
274
+ # 2. PRIMARY MODE - Single Worker (No Redis)
275
+ # - Authoritative source for model references
276
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
277
+ # - No Redis configuration needed
278
+ # - Ideal for: Development, testing, low-traffic deployments
279
+
280
+ # 3. PRIMARY MODE - Multi-Worker (With Redis)
281
+ # - Authoritative source with distributed caching
282
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
283
+ # - Configure all HORDE_MODEL_REFERENCE_REDIS_* settings
284
+ # - Ideal for: Production, high-traffic deployments
285
+
286
+ # For detailed deployment instructions, see:
287
+ # - Docker: docker-compose.yml (single-worker)
288
+ # - Docker + Redis: docker-compose.redis.yml (multi-worker)
289
+ # - Non-Docker: DEPLOYMENT.md
290
+
291
+
292
+ ################################################################################
293
+ # Horde Model Reference Settings
294
+ ################################################################################
295
+
296
+ # Indicates if copies of the model reference are canonical or replicated. Clients should always be replicas.
297
+ # Possible values:
298
+ # `PRIMARY`, `REPLICA`
299
+ # HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
300
+
301
+ # Whether to create the default model reference folders on initialization.
302
+ # HORDE_MODEL_REFERENCE_MAKE_FOLDERS=False
303
+
304
+ # The GitHub owner of the repository.
305
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__OWNER=Haidra-Org
306
+
307
+ # The name of the GitHub repository used for image model references.
308
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__NAME=AI-Horde-image-model-reference
309
+
310
+ # The GitHub branch of the repository.
311
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__BRANCH=main
312
+
313
+ # Settings for the GitHub proxy, if any.
314
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__PROXY_SETTINGS=
315
+
316
+ # The GitHub owner of the repository.
317
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__OWNER=Haidra-Org
318
+
319
+ # The name of the GitHub repository used for text model references.
320
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__NAME=AI-Horde-text-model-reference
321
+
322
+ # The GitHub branch of the repository.
323
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__BRANCH=main
324
+
325
+ # Settings for the GitHub proxy, if any.
326
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__PROXY_SETTINGS=
327
+
328
+ # The time-to-live for in memory caches of model reference files, in seconds.
329
+ # HORDE_MODEL_REFERENCE_CACHE_TTL_SECONDS=60
330
+
331
+ # The maximum number of attempts to retry downloading a legacy model reference file.
332
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_MAX_ATTEMPTS=3
333
+
334
+ # The backoff time in seconds between retry attempts when downloading a legacy model reference file.
335
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_BACKOFF_SECONDS=2
336
+
337
+ # Whether to use Redis for distributed caching. Only should be used in PRIMARY mode.
338
+ # HORDE_MODEL_REFERENCE_REDIS__USE_REDIS=False
339
+
340
+ # Redis connection URL. Format: redis://[:password]@host:port/db
341
+ # HORDE_MODEL_REFERENCE_REDIS__URL=redis://localhost:6379/0
342
+
343
+ # Connection pool size for Redis connections.
344
+ # HORDE_MODEL_REFERENCE_REDIS__POOL_SIZE=10
345
+
346
+ # Socket timeout in seconds for Redis operations.
347
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_TIMEOUT=5
348
+
349
+ # Connection timeout in seconds when establishing Redis connection.
350
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_CONNECT_TIMEOUT=5
351
+
352
+ # Maximum number of retry attempts for failed Redis operations.
353
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_MAX_ATTEMPTS=3
354
+
355
+ # Backoff time in seconds between retry attempts for Redis operations.
356
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_BACKOFF_SECONDS=0.5
357
+
358
+ # Prefix for all Redis keys to namespace model reference data.
359
+ # HORDE_MODEL_REFERENCE_REDIS__KEY_PREFIX=horde:model_ref
360
+
361
+ # TTL for cached entries in seconds. If None, uses cache_ttl_seconds from main settings.
362
+ # HORDE_MODEL_REFERENCE_REDIS__TTL_SECONDS=
363
+
364
+ # Enable pub/sub for cache invalidation across multiple PRIMARY workers.
365
+ # HORDE_MODEL_REFERENCE_REDIS__USE_PUBSUB=True
366
+
367
+ # URL of PRIMARY server API for REPLICA clients to fetch model references from. If None, REPLICA clients will only use GitHub. Example: https://stablehorde.net/api/model_references/
368
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_URL=https://stablehorde.net/api/model_references/
369
+
370
+ # Timeout in seconds for HTTP requests to PRIMARY API.
371
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_TIMEOUT=10
372
+
373
+ # Whether REPLICA clients should fallback to GitHub if PRIMARY API is unavailable.
374
+ # HORDE_MODEL_REFERENCE_ENABLE_GITHUB_FALLBACK=True
375
+
376
+ # Whether PRIMARY mode should seed from GitHub on first initialization if local files don't exist. Only used in PRIMARY mode. If True, will download and convert legacy references once on startup.
377
+ # HORDE_MODEL_REFERENCE_GITHUB_SEED_ENABLED=False
378
+
379
+ # Which format is the canonical source of truth. Controls which API has write access. 'v2' (default): v2 API has CRUD, v1 API is read-only (converts from v2 to legacy). 'LEGACY': v1 API has CRUD, v2 API is read-only (converts from legacy to v2).
380
+ # Possible values:
381
+ # `LEGACY`, `v2`
382
+ # HORDE_MODEL_REFERENCE_CANONICAL_FORMAT=v2
383
+
384
+ # Timeout in seconds for Horde API requests to fetch model status, statistics, and worker information.
385
+ # HORDE_MODEL_REFERENCE_HORDE_API_TIMEOUT=30
386
+
387
+ # Cache TTL in seconds for Horde API responses. Uses Redis if available, otherwise in-memory caching.
388
+ # HORDE_MODEL_REFERENCE_HORDE_API_CACHE_TTL=60
389
+
390
+ # Cache TTL in seconds for category statistics. Uses Redis if available, otherwise in-memory caching.
391
+ # HORDE_MODEL_REFERENCE_STATISTICS_CACHE_TTL=300
392
+
393
+ # Cache TTL in seconds for category audit results. Uses Redis if available, otherwise in-memory caching.
394
+ # HORDE_MODEL_REFERENCE_AUDIT_CACHE_TTL=300
395
+
396
+ # Enable background pre-computation of statistics. Currently not implemented (future feature).
397
+ # HORDE_MODEL_REFERENCE_ENABLE_STATISTICS_PRECOMPUTE=False
398
+
399
+ # Preferred file hosts for deletion risk analysis in audit endpoints.
400
+ # HORDE_MODEL_REFERENCE_PREFERRED_FILE_HOSTS=
401
+
402
+ # Percentage threshold for low usage flag in audit analysis. Default 0.0065% flags bottom ~10% of models. Set lower (e.g., 0.005%) to flag fewer models or higher (e.g., 0.01%) to flag more models.
403
+ # HORDE_MODEL_REFERENCE_LOW_USAGE_THRESHOLD_PERCENTAGE=0.0065
404
+
405
+ # Low usage threshold for text_generation models (2% - more lenient than image models at 0.65%).
406
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_LOW_USAGE_THRESHOLD_PERCENTAGE=0.02
407
+
408
+ # Skip download host validation for text_generation models completely.
409
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_IGNORE_DOWNLOAD_HOSTS=True
410
+
411
+ # Minimum monthly usage for text_generation to be flagged as critical (allows some usage).
412
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_USAGE_THRESHOLD=10
413
+
414
+ # Minimum worker count for text_generation to be flagged as critical (allows some workers).
415
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_WORKER_THRESHOLD=1
416
+
417
+ # Whether audit trail writes are enabled in PRIMARY deployments.
418
+ # HORDE_MODEL_REFERENCE_AUDIT__ENABLED=True
419
+
420
+ # Maximum size in bytes for each JSONL segment before rolling over to a new file.
421
+ # HORDE_MODEL_REFERENCE_AUDIT__MAX_SEGMENT_BYTES=5242880
422
+
423
+ # Subdirectory name (relative to cache home) for storing audit logs when no override is provided.
424
+ # HORDE_MODEL_REFERENCE_AUDIT__RELATIVE_SUBDIR=audit
425
+
426
+ # Absolute path override for audit log storage. When set, relative_subdir is ignored.
427
+ # HORDE_MODEL_REFERENCE_AUDIT__ROOT_PATH_OVERRIDE=
428
+
429
+ # Whether the pending queue workflow is enabled (PRIMARY deployments only).
430
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ENABLED=True
431
+
432
+ # Relative folder under cache home used for queue persistence when no override is set.
433
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__RELATIVE_SUBDIR=pending_queue
434
+
435
+ # Absolute path override for queue persistence. When set, relative_subdir is ignored.
436
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ROOT_PATH_OVERRIDE=
437
+
438
+ # Horde user IDs allowed to submit pending changes.
439
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__REQUESTOR_IDS=
440
+
441
+ # Horde user IDs allowed to approve/reject pending batches (superset of requestors).
442
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__APPROVER_IDS=
443
+
444
+ # Reserved for future rotation support (matches audit defaults).
445
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__MAX_SEGMENT_BYTES=5242880
446
+
447
+ # Enable background cache hydration to keep audit/statistics caches warm. When enabled, caches are proactively refreshed before TTL expiry so clients always get fast cached responses.
448
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_ENABLED=False
449
+
450
+ # Interval in seconds between cache hydration refreshes. Should be less than cache TTLs (statistics_cache_ttl, audit_cache_ttl) to ensure caches stay warm. Default 240s (4 min) with 300s TTLs.
451
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_INTERVAL_SECONDS=240
452
+
453
+ # Maximum age in seconds before stale cached data is discarded. While hydration is running, clients receive stale data instead of waiting for fresh data. Default 1 hour.
454
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STALE_TTL_SECONDS=3600
455
+
456
+ # Delay in seconds before first hydration run after service startup. Allows service to fully initialize before background tasks begin.
457
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STARTUP_DELAY_SECONDS=5
458
+
459
+ # List of allowed origins for CORS. Warns if unset or empty, as it falls back to the FastAPI default behavior. See https://fastapi.tiangolo.com/tutorial/cors/#use-corsmiddleware for details.
460
+ # HORDE_MODEL_REFERENCE_CORS_ALLOWED_ORIGINS=
461
+
462
+
463
+
464
+ ################################################################################
465
+ # AI Horde Client+Worker Settings
466
+ ################################################################################
467
+
468
+ # Alternative API endpoints for the AI Horde. These should all lead to the same logical AI Horde.
469
+ # ALT_HORDE_URLS=[HttpUrl('https://stablehorde.net/api/')]
470
+
471
+ # The API key used for authenticating requests to the AI Horde.
472
+ # API_KEY=**********
473
+
474
+ # The API endpoint for AI Horde ratings.
475
+ # RATINGS_URL=https://ratings.aihorde.net/api/
476
+
477
+ # The folder where application logs are stored.
478
+ # LOGS_FOLDER=./logs
479
+
480
+ # The folder where AI worker (or client) files are stored, most notably models and checkpoints.
481
+ # AIWORKER_CACHE_HOME=./models
482
+
483
+ # The hugging face home directory.
484
+ # HF_HOME=~/.cache/huggingface
485
+
486
+ # The standard XDG cache directory.
487
+ # XDG_CACHE_HOME=~/.cache/
488
+
489
+
490
+
491
+ ################################################################################
492
+ # Github Proxying Settings
493
+ ################################################################################
494
+
495
+ # The base URL for a http(s) GitHub proxy. If None, no proxy is used. This is intended for users where github may be blocked.
496
+ # GITHUB_PROXY_URL_BASE=
497
+
498
+
499
+
500
+ ################################################################################
501
+ # AI Horde CI Settings
502
+ ################################################################################
503
+
504
+ # Indicates if any CI/CD pipeline is ongoing.
505
+ # TESTS_ONGOING=False
506
+
507
+ # Indicates if the hordelib CI/CD pipeline is ongoing.
508
+ # HORDELIB_CI_ONGOING=False
509
+
510
+ # Indicates if the AI Horde SDK is currently being tested.
511
+ # HORDE_SDK_TESTING=False
512
+
513
+ # Indicates if the AI Horde is currently being tested.
514
+ # AI_HORDE_TESTING=False
@@ -22,7 +22,7 @@ HORDE_MODEL_REFERENCE_CACHE_TTL_SECONDS=60
22
22
  # - 'legacy': v1 API has CRUD, v2 API is read-only (converts from legacy to v2)
23
23
  # - 'v2': v2 API has CRUD, v1 API is read-only (converts from v2 to legacy)
24
24
  # Default is 'v2' but set to 'legacy' during transition period
25
- HORDE_MODEL_REFERENCE_CANONICAL_FORMAT=legacy
25
+ HORDE_MODEL_REFERENCE_CANONICAL_FORMAT=LEGACY
26
26
 
27
27
  # ============================================================================
28
28
  # GitHub Seeding (First-Time Setup)
@@ -37,19 +37,19 @@ HORDE_MODEL_REFERENCE_GITHUB_SEED_ENABLED=false
37
37
  # ============================================================================
38
38
 
39
39
  # Enable Redis for distributed caching (required for multi-worker setups)
40
- # HORDE_MODEL_REFERENCE_REDIS_USE_REDIS=true
40
+ # HORDE_MODEL_REFERENCE_REDIS__USE_REDIS=true
41
41
 
42
42
  # Redis connection URL
43
- # HORDE_MODEL_REFERENCE_REDIS_URL=redis://redis:6379/0
43
+ # HORDE_MODEL_REFERENCE_REDIS__URL=redis://redis:6379/0
44
44
 
45
45
  # Redis connection pool size
46
- # HORDE_MODEL_REFERENCE_REDIS_POOL_SIZE=10
46
+ # HORDE_MODEL_REFERENCE_REDIS__POOL_SIZE=10
47
47
 
48
48
  # Redis TTL (uses cache_ttl_seconds if not specified)
49
- # HORDE_MODEL_REFERENCE_REDIS_TTL_SECONDS=60
49
+ # HORDE_MODEL_REFERENCE_REDIS__TTL_SECONDS=60
50
50
 
51
51
  # Enable pub/sub for cache invalidation across workers
52
- # HORDE_MODEL_REFERENCE_REDIS_USE_PUBSUB=true
52
+ # HORDE_MODEL_REFERENCE_REDIS__USE_PUBSUB=true
53
53
 
54
54
  # ============================================================================
55
55
  # Data Directory
@@ -53,7 +53,7 @@ jobs:
53
53
 
54
54
  steps:
55
55
  - name: Checkout repository
56
- uses: actions/checkout@v4
56
+ uses: actions/checkout@v6
57
57
 
58
58
  # Initializes the CodeQL tools for scanning.
59
59
  - name: Initialize CodeQL
@@ -24,7 +24,7 @@ jobs:
24
24
  runs-on: ubuntu-latest
25
25
  steps:
26
26
  - name: Checkout repository
27
- uses: actions/checkout@v4
27
+ uses: actions/checkout@v6
28
28
 
29
29
  - name: Run hadolint
30
30
  uses: hadolint/hadolint-action@v3.1.0
@@ -35,6 +35,14 @@ jobs:
35
35
  output-file: hadolint-results.sarif
36
36
  no-fail: false
37
37
 
38
+ - name: Ensure valid SARIF file
39
+ if: always()
40
+ run: |
41
+ if [ ! -s hadolint-results.sarif ] || ! python3 -c "import json,sys; json.load(open(sys.argv[1]))" hadolint-results.sarif 2>/dev/null; then
42
+ rm -f hadolint-results.sarif
43
+ echo '{"version":"2.1.0","$schema":"https://raw.githubusercontent.com/oasis-tcs/sarif-spec/main/sarif-2.1/schema/sarif-schema-2.1.0.json","runs":[{"tool":{"driver":{"name":"hadolint","rules":[]}},"results":[]}]}' > hadolint-results.sarif
44
+ fi
45
+
38
46
  - name: Upload hadolint SARIF results
39
47
  if: always()
40
48
  uses: github/codeql-action/upload-sarif@v3
@@ -47,7 +55,7 @@ jobs:
47
55
  runs-on: ubuntu-latest
48
56
  steps:
49
57
  - name: Checkout repository
50
- uses: actions/checkout@v4
58
+ uses: actions/checkout@v6
51
59
 
52
60
  - name: Set up Docker Buildx
53
61
  uses: docker/setup-buildx-action@v3
@@ -99,7 +107,7 @@ jobs:
99
107
  - docker-compose.redis.yml
100
108
  steps:
101
109
  - name: Checkout repository
102
- uses: actions/checkout@v4
110
+ uses: actions/checkout@v6
103
111
 
104
112
  - name: Validate ${{ matrix.compose-file }}
105
113
  run: |
@@ -125,7 +133,7 @@ jobs:
125
133
  - 6379:6379
126
134
  steps:
127
135
  - name: Checkout repository
128
- uses: actions/checkout@v4
136
+ uses: actions/checkout@v6
129
137
 
130
138
  - name: Set up Docker Buildx
131
139
  uses: docker/setup-buildx-action@v3
@@ -240,10 +248,10 @@ jobs:
240
248
  runs-on: ubuntu-latest
241
249
  steps:
242
250
  - name: Checkout repository
243
- uses: actions/checkout@v4
251
+ uses: actions/checkout@v6
244
252
 
245
253
  - name: Run Trivy vulnerability scanner on Dockerfile
246
- uses: aquasecurity/trivy-action@0.28.0
254
+ uses: aquasecurity/trivy-action@0.35.0
247
255
  with:
248
256
  scan-type: 'config'
249
257
  scan-ref: 'Dockerfile'
@@ -263,7 +271,7 @@ jobs:
263
271
  needs: docker-build-check
264
272
  steps:
265
273
  - name: Checkout repository
266
- uses: actions/checkout@v4
274
+ uses: actions/checkout@v6
267
275
 
268
276
  - name: Set up Docker Buildx
269
277
  uses: docker/setup-buildx-action@v3
@@ -279,7 +287,7 @@ jobs:
279
287
  cache-from: type=gha
280
288
 
281
289
  - name: Run Trivy vulnerability scanner on image
282
- uses: aquasecurity/trivy-action@0.28.0
290
+ uses: aquasecurity/trivy-action@0.35.0
283
291
  with:
284
292
  scan-type: 'image'
285
293
  image-ref: 'horde-model-reference:scan'