textus 0.20.0 → 0.22.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +157 -0
  3. data/README.md +7 -4
  4. data/SPEC.md +77 -5
  5. data/lib/textus/application/policy/predicates/accept_authority_signed.rb +33 -0
  6. data/lib/textus/application/policy/promotion.rb +6 -11
  7. data/lib/textus/application/reads/audit.rb +40 -15
  8. data/lib/textus/application/reads/pulse.rb +63 -0
  9. data/lib/textus/application/reads/validator.rb +3 -1
  10. data/lib/textus/application/writes/accept.rb +5 -1
  11. data/lib/textus/application/writes/authority_gate.rb +26 -0
  12. data/lib/textus/application/writes/materializer.rb +1 -1
  13. data/lib/textus/application/writes/publish.rb +25 -106
  14. data/lib/textus/application/writes/reject.rb +5 -1
  15. data/lib/textus/{intro.rb → boot.rb} +71 -25
  16. data/lib/textus/builder/pipeline.rb +2 -2
  17. data/lib/textus/cli/verb/audit.rb +2 -0
  18. data/lib/textus/cli/verb/{intro.rb → boot.rb} +3 -3
  19. data/lib/textus/cli/verb/build.rb +2 -1
  20. data/lib/textus/cli/verb/pulse.rb +17 -0
  21. data/lib/textus/cli.rb +1 -1
  22. data/lib/textus/doctor/check/illegal_keys.rb +2 -3
  23. data/lib/textus/domain/policy/promote.rb +4 -2
  24. data/lib/textus/domain/policy/refresh.rb +2 -0
  25. data/lib/textus/errors.rb +16 -0
  26. data/lib/textus/infra/audit_log.rb +126 -16
  27. data/lib/textus/manifest/entry/base.rb +43 -6
  28. data/lib/textus/manifest/entry/derived.rb +40 -4
  29. data/lib/textus/manifest/entry/intake.rb +15 -3
  30. data/lib/textus/manifest/entry/leaf.rb +6 -5
  31. data/lib/textus/manifest/entry/nested.rb +42 -3
  32. data/lib/textus/manifest/entry/parser.rb +9 -51
  33. data/lib/textus/manifest/entry/validators/events.rb +1 -1
  34. data/lib/textus/manifest/entry/validators/format_matrix.rb +5 -4
  35. data/lib/textus/manifest/entry/validators/index_filename.rb +2 -1
  36. data/lib/textus/manifest/entry/validators/inject_boot.rb +19 -0
  37. data/lib/textus/manifest/entry/validators/publish_each.rb +4 -3
  38. data/lib/textus/manifest/entry/validators.rb +1 -1
  39. data/lib/textus/manifest/entry.rb +3 -0
  40. data/lib/textus/manifest/resolver.rb +8 -5
  41. data/lib/textus/manifest/role_kinds.rb +21 -0
  42. data/lib/textus/manifest/schema.rb +63 -5
  43. data/lib/textus/manifest.rb +31 -1
  44. data/lib/textus/operations.rb +8 -1
  45. data/lib/textus/schema/tools.rb +8 -1
  46. data/lib/textus/store.rb +5 -1
  47. data/lib/textus/version.rb +1 -1
  48. metadata +9 -10
  49. data/lib/textus/application/policy/predicates/human_accept.rb +0 -30
  50. data/lib/textus/application/tools/migrate_keys.rb +0 -191
  51. data/lib/textus/application/tools/migrate_manifest_to_kinds.rb +0 -31
  52. data/lib/textus/cli/verb/key_normalize.rb +0 -48
  53. data/lib/textus/domain/policy.rb +0 -7
  54. data/lib/textus/manifest/entry/validators/inject_intro.rb +0 -21
  55. data/lib/textus/manifest/resolution.rb +0 -5
@@ -1,7 +0,0 @@
1
- module Textus
2
- module Domain
3
- module Policy
4
- ALLOWED_ON_STALE = %i[warn sync timed_sync].freeze
5
- end
6
- end
7
- end
@@ -1,21 +0,0 @@
1
- module Textus
2
- class Manifest
3
- class Entry
4
- module Validators
5
- module InjectIntro
6
- def self.call(entry)
7
- inject_intro = entry.respond_to?(:inject_intro) ? entry.inject_intro : false
8
- return unless inject_intro
9
-
10
- raise UsageError.new("entry '#{entry.key}': inject_intro: is only valid on derived entries") unless entry.in_generator_zone?
11
-
12
- has_template = entry.respond_to?(:template) && !entry.template.nil?
13
- return if has_template
14
-
15
- raise UsageError.new("entry '#{entry.key}': inject_intro: requires a template:")
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,5 +0,0 @@
1
- module Textus
2
- class Manifest
3
- Resolution = Data.define(:entry, :path, :remaining)
4
- end
5
- end