migflow 0.2.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 (58) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +44 -0
  3. data/.ruby-version +1 -0
  4. data/CHANGELOG.md +45 -0
  5. data/CLAUDE.md +124 -0
  6. data/CODE_OF_CONDUCT.md +132 -0
  7. data/CONTRIBUTING.md +157 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +218 -0
  10. data/Rakefile +11 -0
  11. data/SECURITY.md +27 -0
  12. data/app/assets/migflow/app.css +1 -0
  13. data/app/assets/migflow/app.js +28 -0
  14. data/app/assets/migflow/index.html +14 -0
  15. data/app/assets/migflow/vite.svg +1 -0
  16. data/app/controllers/migflow/api/diff_controller.rb +73 -0
  17. data/app/controllers/migflow/api/migrations_controller.rb +97 -0
  18. data/app/controllers/migflow/application_controller.rb +62 -0
  19. data/app/views/migflow/application/index.html.erb +16 -0
  20. data/config/routes.rb +10 -0
  21. data/docs/architecture.md +130 -0
  22. data/lib/migflow/analyzers/audit_analyzer.rb +58 -0
  23. data/lib/migflow/analyzers/rules/base_rule.rb +32 -0
  24. data/lib/migflow/analyzers/rules/dangerous_migration_rule.rb +44 -0
  25. data/lib/migflow/analyzers/rules/missing_foreign_key_rule.rb +30 -0
  26. data/lib/migflow/analyzers/rules/missing_index_rule.rb +32 -0
  27. data/lib/migflow/analyzers/rules/missing_timestamps_rule.rb +38 -0
  28. data/lib/migflow/analyzers/rules/null_column_without_default_rule.rb +46 -0
  29. data/lib/migflow/analyzers/rules/string_without_limit_rule.rb +28 -0
  30. data/lib/migflow/app/assets/migflow/app.css +1 -0
  31. data/lib/migflow/app/assets/migflow/app.js +17 -0
  32. data/lib/migflow/app/assets/migflow/index.html +14 -0
  33. data/lib/migflow/app/assets/migflow/vite.svg +1 -0
  34. data/lib/migflow/configuration.rb +36 -0
  35. data/lib/migflow/engine.rb +14 -0
  36. data/lib/migflow/models/migration_snapshot.rb +15 -0
  37. data/lib/migflow/models/schema_diff.rb +9 -0
  38. data/lib/migflow/models/warning.rb +7 -0
  39. data/lib/migflow/parsers/migration_parser.rb +52 -0
  40. data/lib/migflow/parsers/schema_parser.rb +105 -0
  41. data/lib/migflow/reporters/json_reporter.rb +13 -0
  42. data/lib/migflow/reporters/markdown_reporter.rb +58 -0
  43. data/lib/migflow/reporters.rb +38 -0
  44. data/lib/migflow/services/diff_builder.rb +77 -0
  45. data/lib/migflow/services/migration_dsl_scanner.rb +161 -0
  46. data/lib/migflow/services/migration_summary_builder.rb +43 -0
  47. data/lib/migflow/services/report_generator.rb +76 -0
  48. data/lib/migflow/services/risk_scorer.rb +38 -0
  49. data/lib/migflow/services/schema_builder.rb +25 -0
  50. data/lib/migflow/services/schema_patch_builder.rb +237 -0
  51. data/lib/migflow/services/scoped_migration_warnings.rb +93 -0
  52. data/lib/migflow/services/snapshot_builder.rb +542 -0
  53. data/lib/migflow/services/touched_tables_from_migration.rb +60 -0
  54. data/lib/migflow/version.rb +5 -0
  55. data/lib/migflow.rb +20 -0
  56. data/lib/tasks/migflow.rake +31 -0
  57. data/sig/migflow.rbs +3 -0
  58. metadata +124 -0
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: migflow
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Joao Victor Valentim
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-04-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '7.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '9'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '7.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '9'
33
+ description: Mount /migflow in any Rails app to visualize, diff and audit your migration
34
+ history
35
+ email:
36
+ - joaovictorvalentim@gmail.com
37
+ executables: []
38
+ extensions: []
39
+ extra_rdoc_files: []
40
+ files:
41
+ - ".rubocop.yml"
42
+ - ".ruby-version"
43
+ - CHANGELOG.md
44
+ - CLAUDE.md
45
+ - CODE_OF_CONDUCT.md
46
+ - CONTRIBUTING.md
47
+ - LICENSE.txt
48
+ - README.md
49
+ - Rakefile
50
+ - SECURITY.md
51
+ - app/assets/migflow/app.css
52
+ - app/assets/migflow/app.js
53
+ - app/assets/migflow/index.html
54
+ - app/assets/migflow/vite.svg
55
+ - app/controllers/migflow/api/diff_controller.rb
56
+ - app/controllers/migflow/api/migrations_controller.rb
57
+ - app/controllers/migflow/application_controller.rb
58
+ - app/views/migflow/application/index.html.erb
59
+ - config/routes.rb
60
+ - docs/architecture.md
61
+ - lib/migflow.rb
62
+ - lib/migflow/analyzers/audit_analyzer.rb
63
+ - lib/migflow/analyzers/rules/base_rule.rb
64
+ - lib/migflow/analyzers/rules/dangerous_migration_rule.rb
65
+ - lib/migflow/analyzers/rules/missing_foreign_key_rule.rb
66
+ - lib/migflow/analyzers/rules/missing_index_rule.rb
67
+ - lib/migflow/analyzers/rules/missing_timestamps_rule.rb
68
+ - lib/migflow/analyzers/rules/null_column_without_default_rule.rb
69
+ - lib/migflow/analyzers/rules/string_without_limit_rule.rb
70
+ - lib/migflow/app/assets/migflow/app.css
71
+ - lib/migflow/app/assets/migflow/app.js
72
+ - lib/migflow/app/assets/migflow/index.html
73
+ - lib/migflow/app/assets/migflow/vite.svg
74
+ - lib/migflow/configuration.rb
75
+ - lib/migflow/engine.rb
76
+ - lib/migflow/models/migration_snapshot.rb
77
+ - lib/migflow/models/schema_diff.rb
78
+ - lib/migflow/models/warning.rb
79
+ - lib/migflow/parsers/migration_parser.rb
80
+ - lib/migflow/parsers/schema_parser.rb
81
+ - lib/migflow/reporters.rb
82
+ - lib/migflow/reporters/json_reporter.rb
83
+ - lib/migflow/reporters/markdown_reporter.rb
84
+ - lib/migflow/services/diff_builder.rb
85
+ - lib/migflow/services/migration_dsl_scanner.rb
86
+ - lib/migflow/services/migration_summary_builder.rb
87
+ - lib/migflow/services/report_generator.rb
88
+ - lib/migflow/services/risk_scorer.rb
89
+ - lib/migflow/services/schema_builder.rb
90
+ - lib/migflow/services/schema_patch_builder.rb
91
+ - lib/migflow/services/scoped_migration_warnings.rb
92
+ - lib/migflow/services/snapshot_builder.rb
93
+ - lib/migflow/services/touched_tables_from_migration.rb
94
+ - lib/migflow/version.rb
95
+ - lib/tasks/migflow.rake
96
+ - sig/migflow.rbs
97
+ homepage: https://github.com/jv4lentim/migflow
98
+ licenses:
99
+ - MIT
100
+ metadata:
101
+ homepage_uri: https://github.com/jv4lentim/migflow
102
+ source_code_uri: https://github.com/jv4lentim/migflow/tree/main
103
+ changelog_uri: https://github.com/jv4lentim/migflow/blob/main/CHANGELOG.md
104
+ rubygems_mfa_required: 'true'
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '3.2'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubygems_version: 3.5.3
121
+ signing_key:
122
+ specification_version: 4
123
+ summary: Visual migration history and audit panel for Rails apps
124
+ test_files: []