trek 2.3.2 → 2.4.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 (165) hide show
  1. checksums.yaml +4 -4
  2. data/.node-version +1 -1
  3. data/.yarn/releases/yarn-4.18.1.cjs +1000 -0
  4. data/.yarnrc.yml +3 -5
  5. data/AGENTS.md +7 -4
  6. data/CHANGELOG.md +48 -0
  7. data/Gemfile.lock +35 -1
  8. data/Makefile +12 -0
  9. data/app/assets/icons/trek/passkey.svg +5 -0
  10. data/app/assets/stylesheets/trek/base.css +6 -0
  11. data/app/components/trek/entries/item_component/item_component.css +6 -0
  12. data/app/components/trek/form/image_field_component/image_field_component.html.slim +9 -0
  13. data/app/components/trek/form/password_strength_component/password_strength_component.css +56 -0
  14. data/app/components/trek/form/password_strength_component/password_strength_component.html.slim +8 -0
  15. data/app/components/trek/form/password_strength_component/password_strength_component.js +74 -0
  16. data/app/components/trek/form/password_strength_component.rb +29 -0
  17. data/app/components/trek/gate_component/gate_component.css +7 -0
  18. data/app/components/trek/icon/sprite_component.rb +3 -2
  19. data/app/components/trek/section_component/section_component.css +22 -0
  20. data/app/components/trek/section_component/section_component.html.slim +5 -0
  21. data/app/components/trek/section_component/section_component.js +1 -0
  22. data/app/components/trek/section_component.rb +14 -0
  23. data/app/controllers/concerns/trek/auditable.rb +103 -0
  24. data/app/controllers/concerns/trek/filters.rb +2 -0
  25. data/app/controllers/concerns/trek/passkeys.rb +37 -0
  26. data/app/controllers/trek/csp_reports_controller.rb +62 -0
  27. data/app/controllers/trek/resource_controller.rb +7 -1
  28. data/app/helpers/trek/audit_logs_helper.rb +21 -0
  29. data/app/helpers/trek/user_agents_helper.rb +36 -0
  30. data/app/javascript/controllers/index.js +3 -0
  31. data/app/javascript/controllers/passkey_controller.js +118 -0
  32. data/app/javascript/trek.js +4 -0
  33. data/app/jobs/trek/audit_log/purge_job.rb +18 -0
  34. data/app/jobs/trek/purge_expired_sessions_job.rb +14 -0
  35. data/app/jobs/trek/resolve_session_hostname_job.rb +17 -0
  36. data/app/models/concerns/trek/audit_log.rb +30 -0
  37. data/app/models/concerns/trek/users/passkeys.rb +75 -0
  38. data/app/models/concerns/trek/users/password_history.rb +51 -0
  39. data/app/models/concerns/trek/users/password_policy.rb +85 -0
  40. data/app/models/concerns/trek/users/password_renewal.rb +51 -0
  41. data/app/models/concerns/trek/users/session_lifetime.rb +39 -0
  42. data/app/models/concerns/trek/users/sign_in_lockout.rb +67 -0
  43. data/app/models/concerns/trek/users/sign_ins.rb +31 -0
  44. data/app/models/concerns/trek/users/validations.rb +3 -2
  45. data/app/models/trek/feature.rb +6 -0
  46. data/app/models/trek/pwned_passwords.rb +40 -0
  47. data/app/models/trek/user_session.rb +10 -0
  48. data/app/policies/trek/audit_log_policy.rb +34 -0
  49. data/app/policies/trek/user_policy.rb +5 -0
  50. data/app/validators/not_disposable_validator.rb +18 -0
  51. data/config/brakeman.ignore +22 -0
  52. data/config/i18n-tasks.yml +7 -0
  53. data/config/locales/trek.en.yml +144 -39
  54. data/config/locales/trek.fr.yml +145 -40
  55. data/docs/.vitepress/config.mjs +8 -3
  56. data/docs/deploy.md +2 -0
  57. data/docs/proxies.md +53 -0
  58. data/docs/reference/components.md +1 -0
  59. data/docs/reference/environment-variables.md +2 -0
  60. data/docs/reference/generators/admin-user.md +1 -1
  61. data/docs/reference/generators/audit-log.md +113 -0
  62. data/docs/reference/generators/install.md +12 -3
  63. data/docs/reference/generators/security-headers.md +109 -0
  64. data/docs/reference/index.md +3 -0
  65. data/docs/reference/models/tag.md +4 -2
  66. data/docs/reference/models/user.md +123 -3
  67. data/docs/reference/validators.md +94 -0
  68. data/docs/security.md +90 -0
  69. data/lefthook.yml +8 -0
  70. data/lib/generators/trek/install/admin/user_password_resets_generator.rb +5 -0
  71. data/lib/generators/trek/install/admin/user_sessions_generator.rb +5 -0
  72. data/lib/generators/trek/install/admin/users_generator.rb +23 -0
  73. data/lib/generators/trek/install/audit_log_generator.rb +56 -0
  74. data/lib/generators/trek/install/authentication_generator.rb +77 -3
  75. data/lib/generators/trek/install/esbuild_generator.rb +1 -2
  76. data/lib/generators/trek/install/mailer_generator.rb +18 -0
  77. data/lib/generators/trek/install/model_specs_generator.rb +6 -4
  78. data/lib/generators/trek/install/postcss_generator.rb +1 -4
  79. data/lib/generators/trek/install/security_headers_generator.rb +49 -0
  80. data/lib/generators/trek/install/yarn_generator.rb +1 -1
  81. data/lib/generators/trek/install_generator.rb +62 -54
  82. data/lib/generators/trek/taxonomies_generator.rb +5 -0
  83. data/lib/generators/trek/templates/.gitlab-ci.yml +18 -2
  84. data/lib/generators/trek/templates/controllers/admin/active_sessions_controller.rb +21 -0
  85. data/lib/generators/trek/templates/controllers/admin/audit_logs_controller.rb +30 -0
  86. data/lib/generators/trek/templates/controllers/admin/passkey_sessions_controller.rb +41 -0
  87. data/lib/generators/trek/templates/controllers/admin/passkeys_controller.rb +37 -0
  88. data/lib/generators/trek/templates/controllers/admin/user_password_resets_controller.rb +4 -4
  89. data/lib/generators/trek/templates/controllers/admin/user_sessions_controller.rb +53 -4
  90. data/lib/generators/trek/templates/controllers/admin/users_controller.rb +20 -0
  91. data/lib/generators/trek/templates/controllers/concerns/trek/authentication.rb +58 -7
  92. data/lib/generators/trek/templates/helpers/application_helper.rb +0 -4
  93. data/lib/generators/trek/templates/initializers/audit_log.rb +11 -0
  94. data/lib/generators/trek/templates/initializers/content_security_policy.rb +49 -0
  95. data/lib/generators/trek/templates/initializers/permissions_policy.rb +19 -0
  96. data/lib/generators/trek/templates/jobs/admin/password_reset_job.rb +9 -0
  97. data/lib/generators/trek/templates/layouts/admin/auth.html.slim +0 -5
  98. data/lib/generators/trek/templates/layouts/admin.html.slim +0 -3
  99. data/lib/generators/trek/templates/mailers/admin/passwords_mailer.rb +1 -1
  100. data/lib/generators/trek/templates/mailers/admin_mailer.rb +28 -1
  101. data/lib/generators/trek/templates/migrations/audit_logs.rb.erb +27 -0
  102. data/lib/generators/trek/templates/migrations/tags.rb.erb +6 -1
  103. data/lib/generators/trek/templates/migrations/user_passkeys.rb.erb +24 -0
  104. data/lib/generators/trek/templates/migrations/user_password_renewal.rb.erb +8 -0
  105. data/lib/generators/trek/templates/migrations/user_previous_passwords.rb.erb +10 -0
  106. data/lib/generators/trek/templates/migrations/user_session_tracking.rb.erb +11 -0
  107. data/lib/generators/trek/templates/migrations/user_sign_in_lockout.rb.erb +7 -0
  108. data/lib/generators/trek/templates/migrations/user_sign_ins.rb.erb +13 -0
  109. data/lib/generators/trek/templates/models/audit_log.rb +3 -0
  110. data/lib/generators/trek/templates/models/tag_category.rb +2 -1
  111. data/lib/generators/trek/templates/models/user/passkey.rb +17 -0
  112. data/lib/generators/trek/templates/models/user/previous_password.rb +4 -0
  113. data/lib/generators/trek/templates/models/user/session.rb +8 -0
  114. data/lib/generators/trek/templates/policies/audit_log.rb +4 -0
  115. data/lib/generators/trek/templates/spec/mailers/admin/passwords_mailer_spec.rb +16 -0
  116. data/lib/generators/trek/templates/spec/mailers/admin_mailer_spec.rb +50 -0
  117. data/lib/generators/trek/templates/spec/models/audit_log_spec.rb +43 -0
  118. data/lib/generators/trek/templates/spec/models/tag_spec.rb +52 -0
  119. data/lib/generators/trek/templates/spec/models/user/session_spec.rb +68 -0
  120. data/lib/generators/trek/templates/spec/models/user_spec.rb +142 -4
  121. data/lib/generators/trek/templates/spec/requests/admin/active_sessions_spec.rb +119 -0
  122. data/lib/generators/trek/templates/spec/requests/admin/audit_logs_spec.rb +149 -0
  123. data/lib/generators/trek/templates/spec/requests/admin/passkey_sessions_spec.rb +103 -0
  124. data/lib/generators/trek/templates/spec/requests/admin/passkeys_spec.rb +104 -0
  125. data/lib/generators/trek/templates/spec/requests/admin/password_renewal_spec.rb +83 -0
  126. data/lib/generators/trek/templates/spec/requests/admin/sign_in_lockout_spec.rb +95 -0
  127. data/lib/generators/trek/templates/spec/requests/admin/sign_in_notices_spec.rb +93 -0
  128. data/lib/generators/trek/templates/spec/requests/admin/user_password_resets_spec.rb +43 -6
  129. data/lib/generators/trek/templates/spec/requests/admin/user_sessions_spec.rb +25 -2
  130. data/lib/generators/trek/templates/views/admin/audit_logs/index.html.slim +35 -0
  131. data/lib/generators/trek/templates/views/admin/audit_logs/show.html.slim +50 -0
  132. data/lib/generators/trek/templates/views/admin/user_password_resets/edit.html.slim +16 -6
  133. data/lib/generators/trek/templates/views/admin/user_password_resets/new.html.slim +2 -1
  134. data/lib/generators/trek/templates/views/admin/user_sessions/new.html.slim +27 -1
  135. data/lib/generators/trek/templates/views/admin/users/_passkeys.html.slim +67 -0
  136. data/lib/generators/trek/templates/views/admin/users/_properties.html.slim +21 -0
  137. data/lib/generators/trek/templates/views/admin/users/_sessions.html.slim +70 -0
  138. data/lib/generators/trek/templates/views/admin/users/index.html.slim +13 -0
  139. data/lib/generators/trek/templates/views/admin/users/show.html.slim +10 -21
  140. data/lib/generators/trek/templates/views/admin_mailer/new_sign_in.en.html.slim +22 -0
  141. data/lib/generators/trek/templates/views/admin_mailer/new_sign_in.en.text.erb +16 -0
  142. data/lib/generators/trek/templates/views/admin_mailer/new_sign_in.fr.html.slim +22 -0
  143. data/lib/generators/trek/templates/views/admin_mailer/new_sign_in.fr.text.erb +16 -0
  144. data/lib/generators/trek/templates/views/admin_mailer/sign_in_locked.en.html.slim +17 -0
  145. data/lib/generators/trek/templates/views/admin_mailer/sign_in_locked.en.text.erb +10 -0
  146. data/lib/generators/trek/templates/views/admin_mailer/sign_in_locked.fr.html.slim +18 -0
  147. data/lib/generators/trek/templates/views/admin_mailer/sign_in_locked.fr.text.erb +10 -0
  148. data/lib/trek/admin_ip_allowlist.rb +52 -0
  149. data/lib/trek/csp_reports.rb +99 -0
  150. data/lib/trek/data/common_passwords.txt +857 -0
  151. data/lib/trek/data/passkey_providers.json +404 -0
  152. data/lib/trek/disposable_email_domains.rb +53 -0
  153. data/lib/trek/engine.rb +12 -0
  154. data/lib/trek/passkey_providers.rb +19 -0
  155. data/lib/trek/reverse_dns.rb +27 -0
  156. data/lib/trek/version.rb +1 -1
  157. data/lib/trek.rb +13 -0
  158. data/package.json +3 -5
  159. data/renovate.json +11 -1
  160. data/trek.gemspec +3 -0
  161. data/yarn.lock +1757 -2019
  162. metadata +132 -4
  163. data/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
  164. data/.yarn/releases/yarn-3.8.0.cjs +0 -875
  165. data/lib/generators/trek/templates/models/user_session.rb +0 -3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trek
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mohamed Bengrich
@@ -410,6 +410,20 @@ dependencies:
410
410
  - - "~>"
411
411
  - !ruby/object:Gem::Version
412
412
  version: '2.0'
413
+ - !ruby/object:Gem::Dependency
414
+ name: time_for_a_boolean
415
+ requirement: !ruby/object:Gem::Requirement
416
+ requirements:
417
+ - - "~>"
418
+ - !ruby/object:Gem::Version
419
+ version: '0.3'
420
+ type: :runtime
421
+ prerelease: false
422
+ version_requirements: !ruby/object:Gem::Requirement
423
+ requirements:
424
+ - - "~>"
425
+ - !ruby/object:Gem::Version
426
+ version: '0.3'
413
427
  - !ruby/object:Gem::Dependency
414
428
  name: turbo-rails
415
429
  requirement: !ruby/object:Gem::Requirement
@@ -424,6 +438,20 @@ dependencies:
424
438
  - - ">="
425
439
  - !ruby/object:Gem::Version
426
440
  version: '1.0'
441
+ - !ruby/object:Gem::Dependency
442
+ name: valid_email2
443
+ requirement: !ruby/object:Gem::Requirement
444
+ requirements:
445
+ - - "~>"
446
+ - !ruby/object:Gem::Version
447
+ version: '7.1'
448
+ type: :runtime
449
+ prerelease: false
450
+ version_requirements: !ruby/object:Gem::Requirement
451
+ requirements:
452
+ - - "~>"
453
+ - !ruby/object:Gem::Version
454
+ version: '7.1'
427
455
  - !ruby/object:Gem::Dependency
428
456
  name: view_component
429
457
  requirement: !ruby/object:Gem::Requirement
@@ -452,6 +480,20 @@ dependencies:
452
480
  - - "~>"
453
481
  - !ruby/object:Gem::Version
454
482
  version: '0.3'
483
+ - !ruby/object:Gem::Dependency
484
+ name: webauthn
485
+ requirement: !ruby/object:Gem::Requirement
486
+ requirements:
487
+ - - "~>"
488
+ - !ruby/object:Gem::Version
489
+ version: '3.4'
490
+ type: :runtime
491
+ prerelease: false
492
+ version_requirements: !ruby/object:Gem::Requirement
493
+ requirements:
494
+ - - "~>"
495
+ - !ruby/object:Gem::Version
496
+ version: '3.4'
455
497
  - !ruby/object:Gem::Dependency
456
498
  name: zeitwerk
457
499
  requirement: !ruby/object:Gem::Requirement
@@ -481,8 +523,7 @@ files:
481
523
  - ".rubocop.yml"
482
524
  - ".slim-lint.yml"
483
525
  - ".stylelintrc.json"
484
- - ".yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs"
485
- - ".yarn/releases/yarn-3.8.0.cjs"
526
+ - ".yarn/releases/yarn-4.18.1.cjs"
486
527
  - ".yarnrc.yml"
487
528
  - AGENTS.md
488
529
  - CHANGELOG.md
@@ -522,6 +563,7 @@ files:
522
563
  - app/assets/icons/trek/list.svg
523
564
  - app/assets/icons/trek/logout.svg
524
565
  - app/assets/icons/trek/paragraph.svg
566
+ - app/assets/icons/trek/passkey.svg
525
567
  - app/assets/icons/trek/pic.svg
526
568
  - app/assets/icons/trek/print.svg
527
569
  - app/assets/icons/trek/profile.svg
@@ -622,6 +664,10 @@ files:
622
664
  - app/components/trek/form/link_select_component.rb
623
665
  - app/components/trek/form/link_select_component/link_select_component.css
624
666
  - app/components/trek/form/link_select_component/link_select_component.js
667
+ - app/components/trek/form/password_strength_component.rb
668
+ - app/components/trek/form/password_strength_component/password_strength_component.css
669
+ - app/components/trek/form/password_strength_component/password_strength_component.html.slim
670
+ - app/components/trek/form/password_strength_component/password_strength_component.js
625
671
  - app/components/trek/form/sound_field_component.rb
626
672
  - app/components/trek/form/sound_field_component/sound_field_component.css
627
673
  - app/components/trek/form/sound_field_component/sound_field_component.html.slim
@@ -682,6 +728,10 @@ files:
682
728
  - app/components/trek/search_component/search_component.css
683
729
  - app/components/trek/search_component/search_component.html.slim
684
730
  - app/components/trek/search_component/search_component.js
731
+ - app/components/trek/section_component.rb
732
+ - app/components/trek/section_component/section_component.css
733
+ - app/components/trek/section_component/section_component.html.slim
734
+ - app/components/trek/section_component/section_component.js
685
735
  - app/components/trek/tabs_component.rb
686
736
  - app/components/trek/tabs_component/tabs_component.css
687
737
  - app/components/trek/tabs_component/tabs_component.html.slim
@@ -693,6 +743,7 @@ files:
693
743
  - app/components/trek/toaster_component/toaster_component.css
694
744
  - app/components/trek/toaster_component/toaster_component.html.slim
695
745
  - app/components/trek/toaster_component/toaster_component.js
746
+ - app/controllers/concerns/trek/auditable.rb
696
747
  - app/controllers/concerns/trek/authentication.rb
697
748
  - app/controllers/concerns/trek/authorization.rb
698
749
  - app/controllers/concerns/trek/filters.rb
@@ -701,10 +752,12 @@ files:
701
752
  - app/controllers/concerns/trek/model.rb
702
753
  - app/controllers/concerns/trek/notices.rb
703
754
  - app/controllers/concerns/trek/pagination.rb
755
+ - app/controllers/concerns/trek/passkeys.rb
704
756
  - app/controllers/concerns/trek/redirections.rb
705
757
  - app/controllers/concerns/trek/reorderable.rb
706
758
  - app/controllers/concerns/trek/scopes.rb
707
759
  - app/controllers/trek/base_controller.rb
760
+ - app/controllers/trek/csp_reports_controller.rb
708
761
  - app/controllers/trek/panels/base_controller.rb
709
762
  - app/controllers/trek/panels/images_controller.rb
710
763
  - app/controllers/trek/panels/links_controller.rb
@@ -715,19 +768,26 @@ files:
715
768
  - app/formatters/prosemirror_to_html/nodes/prompts_block.rb
716
769
  - app/formatters/prosemirror_to_html/remove_empty_paragraphs_formatter.rb
717
770
  - app/forms/trek/form_builder.rb
771
+ - app/helpers/trek/audit_logs_helper.rb
718
772
  - app/helpers/trek/css_classes_helpers.rb
719
773
  - app/helpers/trek/i18n_helper.rb
720
774
  - app/helpers/trek/identifier_helper.rb
721
775
  - app/helpers/trek/page_path_helper.rb
722
776
  - app/helpers/trek/stimulus_helpers.rb
723
777
  - app/helpers/trek/theme_helper.rb
778
+ - app/helpers/trek/user_agents_helper.rb
724
779
  - app/javascript/controllers/application.js
725
780
  - app/javascript/controllers/element_controller.js
726
781
  - app/javascript/controllers/hello_controller.js
727
782
  - app/javascript/controllers/index.js
783
+ - app/javascript/controllers/passkey_controller.js
728
784
  - app/javascript/controllers/removable_element_controller.js
729
785
  - app/javascript/controllers/search_params_controller.js
730
786
  - app/javascript/trek.js
787
+ - app/jobs/trek/audit_log/purge_job.rb
788
+ - app/jobs/trek/purge_expired_sessions_job.rb
789
+ - app/jobs/trek/resolve_session_hostname_job.rb
790
+ - app/models/concerns/trek/audit_log.rb
731
791
  - app/models/concerns/trek/contentable.rb
732
792
  - app/models/concerns/trek/formattable.rb
733
793
  - app/models/concerns/trek/fragmentable.rb
@@ -747,8 +807,15 @@ files:
747
807
  - app/models/concerns/trek/translatable.rb
748
808
  - app/models/concerns/trek/users/invitable.rb
749
809
  - app/models/concerns/trek/users/locales.rb
810
+ - app/models/concerns/trek/users/passkeys.rb
811
+ - app/models/concerns/trek/users/password_history.rb
812
+ - app/models/concerns/trek/users/password_policy.rb
813
+ - app/models/concerns/trek/users/password_renewal.rb
750
814
  - app/models/concerns/trek/users/roles.rb
751
815
  - app/models/concerns/trek/users/scopes.rb
816
+ - app/models/concerns/trek/users/session_lifetime.rb
817
+ - app/models/concerns/trek/users/sign_in_lockout.rb
818
+ - app/models/concerns/trek/users/sign_ins.rb
752
819
  - app/models/concerns/trek/users/themes.rb
753
820
  - app/models/concerns/trek/users/validations.rb
754
821
  - app/models/prosemirror.rb
@@ -757,10 +824,12 @@ files:
757
824
  - app/models/trek/content_editor/prompt.rb
758
825
  - app/models/trek/dashboard/config.rb
759
826
  - app/models/trek/feature.rb
827
+ - app/models/trek/pwned_passwords.rb
760
828
  - app/models/trek/user_session.rb
761
829
  - app/policies/concerns/trek/policies/helpers.rb
762
830
  - app/policies/concerns/trek/policies/permitted_attributes.rb
763
831
  - app/policies/trek/application_policy.rb
832
+ - app/policies/trek/audit_log_policy.rb
764
833
  - app/policies/trek/fragment_policy.rb
765
834
  - app/policies/trek/page_policy.rb
766
835
  - app/policies/trek/preview_policy.rb
@@ -770,6 +839,7 @@ files:
770
839
  - app/uploaders/image_uploader.rb
771
840
  - app/uploaders/model_image_uploader.rb
772
841
  - app/uploaders/record_image_uploader.rb
842
+ - app/validators/not_disposable_validator.rb
773
843
  - app/views/kaminari/_first_page.html.slim
774
844
  - app/views/kaminari/_gap.html.slim
775
845
  - app/views/kaminari/_last_page.html.slim
@@ -800,6 +870,7 @@ files:
800
870
  - docs/deploy.md
801
871
  - docs/getting-started.md
802
872
  - docs/index.md
873
+ - docs/proxies.md
803
874
  - docs/public/apple-touch-icon.png
804
875
  - docs/public/favicon.ico
805
876
  - docs/public/favicon.png
@@ -826,8 +897,10 @@ files:
826
897
  - docs/reference/formatters.md
827
898
  - docs/reference/forms.md
828
899
  - docs/reference/generators/admin-user.md
900
+ - docs/reference/generators/audit-log.md
829
901
  - docs/reference/generators/install.md
830
902
  - docs/reference/generators/scaffold.md
903
+ - docs/reference/generators/security-headers.md
831
904
  - docs/reference/generators/taxonomies.md
832
905
  - docs/reference/icons.md
833
906
  - docs/reference/index.md
@@ -842,6 +915,8 @@ files:
842
915
  - docs/reference/models/user.md
843
916
  - docs/reference/policies.md
844
917
  - docs/reference/uploaders.md
918
+ - docs/reference/validators.md
919
+ - docs/security.md
845
920
  - docs/what-is-trek.md
846
921
  - esbuild.config.js
847
922
  - lefthook.yml
@@ -860,6 +935,7 @@ files:
860
935
  - lib/generators/trek/install/appsignal_generator.rb
861
936
  - lib/generators/trek/install/assets_generator.rb
862
937
  - lib/generators/trek/install/attachments_generator.rb
938
+ - lib/generators/trek/install/audit_log_generator.rb
863
939
  - lib/generators/trek/install/authentication_generator.rb
864
940
  - lib/generators/trek/install/authorization_generator.rb
865
941
  - lib/generators/trek/install/brakeman_generator.rb
@@ -893,6 +969,7 @@ files:
893
969
  - lib/generators/trek/install/rubocop_generator.rb
894
970
  - lib/generators/trek/install/ruby_generator.rb
895
971
  - lib/generators/trek/install/scalingo_generator.rb
972
+ - lib/generators/trek/install/security_headers_generator.rb
896
973
  - lib/generators/trek/install/slim_lint_generator.rb
897
974
  - lib/generators/trek/install/specs_generator.rb
898
975
  - lib/generators/trek/install/strip_attributes_generator.rb
@@ -911,11 +988,15 @@ files:
911
988
  - lib/generators/trek/templates/components/index.js
912
989
  - lib/generators/trek/templates/config/appsignal.rb.tt
913
990
  - lib/generators/trek/templates/config/i18n-tasks.yml.erb
991
+ - lib/generators/trek/templates/controllers/admin/active_sessions_controller.rb
992
+ - lib/generators/trek/templates/controllers/admin/audit_logs_controller.rb
914
993
  - lib/generators/trek/templates/controllers/admin/base_controller.rb
915
994
  - lib/generators/trek/templates/controllers/admin/dashboards_controller.rb
916
995
  - lib/generators/trek/templates/controllers/admin/fragments_controller.rb
917
996
  - lib/generators/trek/templates/controllers/admin/menu_nodes_controller.rb
918
997
  - lib/generators/trek/templates/controllers/admin/pages_controller.rb
998
+ - lib/generators/trek/templates/controllers/admin/passkey_sessions_controller.rb
999
+ - lib/generators/trek/templates/controllers/admin/passkeys_controller.rb
919
1000
  - lib/generators/trek/templates/controllers/admin/scaffold_controller.rb.tt
920
1001
  - lib/generators/trek/templates/controllers/admin/uploads_controller.rb
921
1002
  - lib/generators/trek/templates/controllers/admin/user_password_resets_controller.rb
@@ -929,9 +1010,13 @@ files:
929
1010
  - lib/generators/trek/templates/helpers/application_helper.rb
930
1011
  - lib/generators/trek/templates/helpers/external_link_path_helper.rb
931
1012
  - lib/generators/trek/templates/initializers/appsignal_context.rb
1013
+ - lib/generators/trek/templates/initializers/audit_log.rb
1014
+ - lib/generators/trek/templates/initializers/content_security_policy.rb
932
1015
  - lib/generators/trek/templates/initializers/healthcheck.rb
1016
+ - lib/generators/trek/templates/initializers/permissions_policy.rb
933
1017
  - lib/generators/trek/templates/initializers/shrine.rb
934
1018
  - lib/generators/trek/templates/javascript/application.js
1019
+ - lib/generators/trek/templates/jobs/admin/password_reset_job.rb
935
1020
  - lib/generators/trek/templates/layouts/admin.html.slim
936
1021
  - lib/generators/trek/templates/layouts/admin/auth.html.slim
937
1022
  - lib/generators/trek/templates/layouts/application.html.slim
@@ -942,6 +1027,7 @@ files:
942
1027
  - lib/generators/trek/templates/locales/scaffold/model.other.yml.tt
943
1028
  - lib/generators/trek/templates/mailers/admin/passwords_mailer.rb
944
1029
  - lib/generators/trek/templates/mailers/admin_mailer.rb
1030
+ - lib/generators/trek/templates/migrations/audit_logs.rb.erb
945
1031
  - lib/generators/trek/templates/migrations/create_users.rb.erb
946
1032
  - lib/generators/trek/templates/migrations/external_links.rb.erb
947
1033
  - lib/generators/trek/templates/migrations/fragments.rb.erb
@@ -952,8 +1038,15 @@ files:
952
1038
  - lib/generators/trek/templates/migrations/tag_categories.rb.erb
953
1039
  - lib/generators/trek/templates/migrations/taggings.rb.erb
954
1040
  - lib/generators/trek/templates/migrations/tags.rb.erb
1041
+ - lib/generators/trek/templates/migrations/user_passkeys.rb.erb
1042
+ - lib/generators/trek/templates/migrations/user_password_renewal.rb.erb
1043
+ - lib/generators/trek/templates/migrations/user_previous_passwords.rb.erb
1044
+ - lib/generators/trek/templates/migrations/user_session_tracking.rb.erb
955
1045
  - lib/generators/trek/templates/migrations/user_sessions.rb.erb
1046
+ - lib/generators/trek/templates/migrations/user_sign_in_lockout.rb.erb
1047
+ - lib/generators/trek/templates/migrations/user_sign_ins.rb.erb
956
1048
  - lib/generators/trek/templates/migrations/users.rb.erb
1049
+ - lib/generators/trek/templates/models/audit_log.rb
957
1050
  - lib/generators/trek/templates/models/current.rb
958
1051
  - lib/generators/trek/templates/models/dashboard.rb
959
1052
  - lib/generators/trek/templates/models/external_link.rb
@@ -966,11 +1059,14 @@ files:
966
1059
  - lib/generators/trek/templates/models/tag_category.rb
967
1060
  - lib/generators/trek/templates/models/tagging.rb
968
1061
  - lib/generators/trek/templates/models/user.rb
969
- - lib/generators/trek/templates/models/user_session.rb
1062
+ - lib/generators/trek/templates/models/user/passkey.rb
1063
+ - lib/generators/trek/templates/models/user/previous_password.rb
1064
+ - lib/generators/trek/templates/models/user/session.rb
970
1065
  - lib/generators/trek/templates/package.json.tt
971
1066
  - lib/generators/trek/templates/policies/admin/scaffold_policy.rb.tt
972
1067
  - lib/generators/trek/templates/policies/admin/tag_category_policy.rb
973
1068
  - lib/generators/trek/templates/policies/admin/tag_policy.rb
1069
+ - lib/generators/trek/templates/policies/audit_log.rb
974
1070
  - lib/generators/trek/templates/policies/external_link_policy.rb
975
1071
  - lib/generators/trek/templates/policies/fragment.rb
976
1072
  - lib/generators/trek/templates/policies/page.rb
@@ -978,7 +1074,12 @@ files:
978
1074
  - lib/generators/trek/templates/policies/user.rb
979
1075
  - lib/generators/trek/templates/spec/fixtures/files/image.png
980
1076
  - lib/generators/trek/templates/spec/fixtures/files/sound.mp3
1077
+ - lib/generators/trek/templates/spec/mailers/admin/passwords_mailer_spec.rb
1078
+ - lib/generators/trek/templates/spec/mailers/admin_mailer_spec.rb
1079
+ - lib/generators/trek/templates/spec/models/audit_log_spec.rb
981
1080
  - lib/generators/trek/templates/spec/models/page_spec.rb
1081
+ - lib/generators/trek/templates/spec/models/tag_spec.rb
1082
+ - lib/generators/trek/templates/spec/models/user/session_spec.rb
982
1083
  - lib/generators/trek/templates/spec/models/user_spec.rb
983
1084
  - lib/generators/trek/templates/spec/policies/admin/external_link_policy_spec.rb
984
1085
  - lib/generators/trek/templates/spec/policies/admin/fragment_policy_spec.rb
@@ -987,13 +1088,22 @@ files:
987
1088
  - lib/generators/trek/templates/spec/policies/admin/tag_category_policy_spec.rb
988
1089
  - lib/generators/trek/templates/spec/policies/admin/tag_policy_spec.rb
989
1090
  - lib/generators/trek/templates/spec/policies/admin/user_policy_spec.rb
1091
+ - lib/generators/trek/templates/spec/requests/admin/active_sessions_spec.rb
1092
+ - lib/generators/trek/templates/spec/requests/admin/audit_logs_spec.rb
990
1093
  - lib/generators/trek/templates/spec/requests/admin/fragments_spec.rb
991
1094
  - lib/generators/trek/templates/spec/requests/admin/n_plus_one_spec.rb
992
1095
  - lib/generators/trek/templates/spec/requests/admin/pages_spec.rb
1096
+ - lib/generators/trek/templates/spec/requests/admin/passkey_sessions_spec.rb
1097
+ - lib/generators/trek/templates/spec/requests/admin/passkeys_spec.rb
1098
+ - lib/generators/trek/templates/spec/requests/admin/password_renewal_spec.rb
1099
+ - lib/generators/trek/templates/spec/requests/admin/sign_in_lockout_spec.rb
1100
+ - lib/generators/trek/templates/spec/requests/admin/sign_in_notices_spec.rb
993
1101
  - lib/generators/trek/templates/spec/requests/admin/uploads_spec.rb
994
1102
  - lib/generators/trek/templates/spec/requests/admin/user_password_resets_spec.rb
995
1103
  - lib/generators/trek/templates/spec/requests/admin/user_sessions_spec.rb
996
1104
  - lib/generators/trek/templates/spec/requests/admin/users_spec.rb
1105
+ - lib/generators/trek/templates/views/admin/audit_logs/index.html.slim
1106
+ - lib/generators/trek/templates/views/admin/audit_logs/show.html.slim
997
1107
  - lib/generators/trek/templates/views/admin/dashboards/index.html.slim
998
1108
  - lib/generators/trek/templates/views/admin/fragments/_form.html.slim
999
1109
  - lib/generators/trek/templates/views/admin/fragments/_fragment.json.jb
@@ -1022,6 +1132,9 @@ files:
1022
1132
  - lib/generators/trek/templates/views/admin/user_password_resets/new.html.slim
1023
1133
  - lib/generators/trek/templates/views/admin/user_sessions/new.html.slim
1024
1134
  - lib/generators/trek/templates/views/admin/users/_form.html.slim
1135
+ - lib/generators/trek/templates/views/admin/users/_passkeys.html.slim
1136
+ - lib/generators/trek/templates/views/admin/users/_properties.html.slim
1137
+ - lib/generators/trek/templates/views/admin/users/_sessions.html.slim
1025
1138
  - lib/generators/trek/templates/views/admin/users/edit.html.slim
1026
1139
  - lib/generators/trek/templates/views/admin/users/index.html.slim
1027
1140
  - lib/generators/trek/templates/views/admin/users/new.html.slim
@@ -1031,12 +1144,27 @@ files:
1031
1144
  - lib/generators/trek/templates/views/admin_mailer/invite.en.text.erb
1032
1145
  - lib/generators/trek/templates/views/admin_mailer/invite.fr.html.slim
1033
1146
  - lib/generators/trek/templates/views/admin_mailer/invite.fr.text.erb
1147
+ - lib/generators/trek/templates/views/admin_mailer/new_sign_in.en.html.slim
1148
+ - lib/generators/trek/templates/views/admin_mailer/new_sign_in.en.text.erb
1149
+ - lib/generators/trek/templates/views/admin_mailer/new_sign_in.fr.html.slim
1150
+ - lib/generators/trek/templates/views/admin_mailer/new_sign_in.fr.text.erb
1151
+ - lib/generators/trek/templates/views/admin_mailer/sign_in_locked.en.html.slim
1152
+ - lib/generators/trek/templates/views/admin_mailer/sign_in_locked.en.text.erb
1153
+ - lib/generators/trek/templates/views/admin_mailer/sign_in_locked.fr.html.slim
1154
+ - lib/generators/trek/templates/views/admin_mailer/sign_in_locked.fr.text.erb
1034
1155
  - lib/generators/trek/upgrade/v2_generator.rb
1035
1156
  - lib/tasks/trek/attachments.rake
1036
1157
  - lib/trek.rb
1158
+ - lib/trek/admin_ip_allowlist.rb
1037
1159
  - lib/trek/cached_attachments.rb
1160
+ - lib/trek/csp_reports.rb
1161
+ - lib/trek/data/common_passwords.txt
1162
+ - lib/trek/data/passkey_providers.json
1163
+ - lib/trek/disposable_email_domains.rb
1038
1164
  - lib/trek/engine.rb
1039
1165
  - lib/trek/i18n_keys_resolver.rb
1166
+ - lib/trek/passkey_providers.rb
1167
+ - lib/trek/reverse_dns.rb
1040
1168
  - lib/trek/saved_attachments_reload.rb
1041
1169
  - lib/trek/typography_formatter.rb
1042
1170
  - lib/trek/version.rb