orfeas_lyra 0.8.0 → 0.9.1

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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +869 -1
  3. data/README.md +216 -29
  4. data/Rakefile +11 -3
  5. data/app/controllers/lyra/application_controller.rb +48 -0
  6. data/app/controllers/lyra/dashboard_controller.rb +2 -1
  7. data/app/views/lyra/dashboard/discrepancies.html.erb +64 -35
  8. data/app/views/lyra/dashboard/projections.html.erb +0 -4
  9. data/app/views/lyra/dashboard/verification.html.erb +8 -2
  10. data/app/workflows/es_async_mode_workflow.rb +24 -60
  11. data/app/workflows/es_sync_mode_workflow.rb +25 -50
  12. data/app/workflows/hijack_mode_workflow.rb +18 -33
  13. data/app/workflows/lifecycle_workflow.rb +1 -1
  14. data/app/workflows/monitor_mode_workflow.rb +12 -22
  15. data/config/routes.rb +4 -2
  16. data/lib/lyra/access_log.rb +121 -0
  17. data/lib/lyra/advisory_lock.rb +45 -0
  18. data/lib/lyra/aggregate.rb +25 -13
  19. data/lib/lyra/associations/event_aware.rb +3 -4
  20. data/lib/lyra/associations/habtm_links.rb +255 -0
  21. data/lib/lyra/bypass_events.rb +221 -0
  22. data/lib/lyra/command.rb +3 -0
  23. data/lib/lyra/command_handler.rb +168 -42
  24. data/lib/lyra/configuration.rb +224 -8
  25. data/lib/lyra/consistency/read_your_writes.rb +74 -23
  26. data/lib/lyra/correlation.rb +89 -0
  27. data/lib/lyra/domain_events.rb +161 -0
  28. data/lib/lyra/dual_view.rb +27 -6
  29. data/lib/lyra/dual_view_sampler.rb +33 -0
  30. data/lib/lyra/encrypted_attributes.rb +101 -0
  31. data/lib/lyra/engine.rb +75 -5
  32. data/lib/lyra/erasure.rb +316 -0
  33. data/lib/lyra/event.rb +120 -2
  34. data/lib/lyra/event_flow.rb +16 -6
  35. data/lib/lyra/event_serializer.rb +45 -0
  36. data/lib/lyra/event_store_adapter.rb +58 -62
  37. data/lib/lyra/genesis.rb +189 -0
  38. data/lib/lyra/id_generator.rb +42 -10
  39. data/lib/lyra/interceptors/association_interceptor.rb +123 -6
  40. data/lib/lyra/interceptors/crud_interceptor.rb +429 -72
  41. data/lib/lyra/interceptors/lazy_reads.rb +46 -0
  42. data/lib/lyra/mode_sync.rb +125 -0
  43. data/lib/lyra/mode_transition.rb +386 -0
  44. data/lib/lyra/model_selection.rb +160 -0
  45. data/lib/lyra/optimistic_locking.rb +88 -0
  46. data/lib/lyra/optional_dependency.rb +24 -0
  47. data/lib/lyra/own_connection.rb +54 -0
  48. data/lib/lyra/privacy/adapters/pam.rb +151 -0
  49. data/lib/lyra/privacy/gdpr_compliance.rb +50 -0
  50. data/lib/lyra/privacy/interface.rb +262 -0
  51. data/lib/lyra/privacy/pii_detector.rb +8 -10
  52. data/lib/lyra/privacy/pii_masker.rb +30 -13
  53. data/lib/lyra/privacy/policy_integration.rb +36 -141
  54. data/lib/lyra/projection.rb +30 -7
  55. data/lib/lyra/projections/association_conditions.rb +81 -0
  56. data/lib/lyra/projections/async_checkpoint.rb +57 -0
  57. data/lib/lyra/projections/async_projection_job.rb +71 -17
  58. data/lib/lyra/projections/cached_joins.rb +192 -0
  59. data/lib/lyra/projections/cached_projection.rb +278 -162
  60. data/lib/lyra/projections/cached_relation.rb +666 -85
  61. data/lib/lyra/projections/deferred_relation.rb +120 -0
  62. data/lib/lyra/projections/event_store_reader.rb +27 -4
  63. data/lib/lyra/projections/lazy_projection.rb +259 -0
  64. data/lib/lyra/projections/model_projection.rb +32 -34
  65. data/lib/lyra/projections/rebuild.rb +58 -29
  66. data/lib/lyra/projections/reference_links.rb +309 -0
  67. data/lib/lyra/purpose_bound_reads.rb +197 -0
  68. data/lib/lyra/repair.rb +114 -0
  69. data/lib/lyra/retention.rb +180 -0
  70. data/lib/lyra/schema/event_class_registrar.rb +2 -1
  71. data/lib/lyra/schema/validator.rb +14 -5
  72. data/lib/lyra/sti_stream_migration.rb +70 -0
  73. data/lib/lyra/strict_data_access.rb +225 -175
  74. data/lib/lyra/temporal.rb +128 -0
  75. data/lib/lyra/verification/bypass_workflow.rb +170 -0
  76. data/lib/lyra/verification/crud_lifecycle_workflow.rb +32 -6
  77. data/lib/lyra/verification/workflow_generator.rb +73 -179
  78. data/lib/lyra/version.rb +1 -1
  79. data/lib/lyra.rb +113 -17
  80. data/lib/tasks/lyra_mode.rake +89 -0
  81. data/lib/tasks/lyra_projections.rake +43 -0
  82. data/lib/tasks/lyra_schema.rake +4 -0
  83. data/lib/tasks/lyra_workflows.rake +28 -27
  84. metadata +36 -5
  85. data/lib/lyra/event_mapper.rb +0 -106
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78b09c46f0962b726d30c8cd53850948b8ae2ef72b3cf2d696e9d380e04e7863
4
- data.tar.gz: 27e7df735b3cfde195fa2b5af0995c381d6ad564177446e85f42ac131eaf38eb
3
+ metadata.gz: 1ad6e90ac8c41a250e5657e98d515ae6dc1c67ac143ac0e09b5aa03da8d519e5
4
+ data.tar.gz: 3f901f07baca22e6e7a20d670d2511e6ed29ee0897d9ace09046a744178c4398
5
5
  SHA512:
6
- metadata.gz: 87974ed14d52033ec9535e7226196850eafa0d328e1a1c66c3158c6e610d9bda007492f6343b7c0030cbba3ccc8f94081295b4877d34966aa5f7625175ee18ea
7
- data.tar.gz: 956d753a51e3ce4d6297adebf063da64c4afaee369de7974f4a2bb4040f80c89702fc0b4d777d0119e8333cfdf40bba3720a4f484de84318a60278a74e90cda4
6
+ metadata.gz: 83812774c35b098d728b340806597d9e7949ae813f3005ab76f6d032628acef6bc38aad567f4c15a50f90f315e0c34a681dedf11b327ed2a60e53f25e7f1fb71
7
+ data.tar.gz: f73b3d73337a165cb8160854468ba0d8fc9bfb86678eafa9f463a517cffbdd85a2effce8460bcc2168d85cbea9fabb748ea16a6b5c9f17d7380ba832fe4c5f5c