standard_id 0.41.1 → 0.42.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -0
  3. data/README.md +251 -13
  4. data/app/controllers/concerns/standard_id/inertia_rendering.rb +23 -5
  5. data/app/controllers/concerns/standard_id/lifecycle_hooks.rb +1 -0
  6. data/app/controllers/concerns/standard_id/passwordless_flow.rb +11 -2
  7. data/app/controllers/concerns/standard_id/social_authentication.rb +1 -1
  8. data/app/controllers/standard_id/api/oauth/callback/providers_controller.rb +1 -8
  9. data/app/controllers/standard_id/web/login_verify_controller.rb +2 -0
  10. data/app/jobs/standard_id/password_reset_delivery_job.rb +1 -1
  11. data/app/models/concerns/standard_id/credentiable.rb +8 -1
  12. data/app/models/standard_id/application_record.rb +26 -0
  13. data/app/models/standard_id/authorization_code.rb +3 -1
  14. data/app/models/standard_id/identifier.rb +1 -0
  15. data/app/models/standard_id/session.rb +2 -1
  16. data/app/views/standard_id/web/login/_social_buttons.html.erb +2 -2
  17. data/app/views/standard_id/web/login/show.html.erb +5 -5
  18. data/app/views/standard_id/web/signup/show.html.erb +3 -3
  19. data/db/migrate/20250830000000_create_standard_id_client_applications.rb +2 -0
  20. data/db/migrate/20250830171553_create_standard_id_password_credentials.rb +2 -0
  21. data/db/migrate/20250830232800_create_standard_id_identifiers.rb +2 -0
  22. data/db/migrate/20250831075703_create_standard_id_credentials.rb +2 -0
  23. data/db/migrate/20250831154635_create_standard_id_sessions.rb +2 -0
  24. data/db/migrate/20250901134520_create_standard_id_client_secret_credentials.rb +2 -0
  25. data/db/migrate/20250903063000_create_standard_id_authorization_codes.rb +2 -0
  26. data/db/migrate/20250907090000_create_standard_id_code_challenges.rb +2 -0
  27. data/db/migrate/20260311100000_create_standard_id_refresh_tokens.rb +2 -0
  28. data/db/migrate/20260414200000_add_target_created_at_index_to_code_challenges.rb +1 -0
  29. data/db/migrate/20260416180511_add_partial_indexes_for_active_session_and_challenge_lookups.rb +25 -8
  30. data/db/migrate/20260611000000_create_standard_id_client_grants.rb +2 -0
  31. data/lib/generators/standard_id/install/install_generator.rb +64 -3
  32. data/lib/generators/standard_id/install/templates/standard_id.rb +42 -13
  33. data/lib/standard_id/checks/migrations.rb +61 -0
  34. data/lib/standard_id/config/schema.rb +36 -9
  35. data/lib/standard_id/config_schema.rb +28 -5
  36. data/lib/standard_id/deprecator.rb +17 -0
  37. data/lib/standard_id/engine.rb +21 -0
  38. data/lib/standard_id/instrumentation.rb +49 -0
  39. data/lib/standard_id/migration_check.rb +183 -0
  40. data/lib/standard_id/migration_helpers.rb +65 -0
  41. data/lib/standard_id/oauth/audience_profile_resolver.rb +8 -2
  42. data/lib/standard_id/oauth/refresh_token_flow.rb +1 -1
  43. data/lib/standard_id/oauth/token_grant_flow.rb +25 -3
  44. data/lib/standard_id/provider_registry.rb +113 -2
  45. data/lib/standard_id/providers/base.rb +222 -8
  46. data/lib/standard_id/providers/plugin_railtie.rb +59 -0
  47. data/lib/standard_id/scope_config.rb +24 -7
  48. data/lib/standard_id/testing/provider_examples.rb +117 -0
  49. data/lib/standard_id/testing.rb +1 -0
  50. data/lib/standard_id/version.rb +1 -1
  51. data/lib/standard_id.rb +26 -0
  52. metadata +23 -17
  53. data/config/initializers/migration_helpers.rb +0 -32
@@ -1,32 +0,0 @@
1
- # Monkey patch ActiveRecord::Migration to add primary_key_type and foreign_key_type methods
2
- module ActiveRecord
3
- class Migration
4
- class << self
5
- def primary_and_foreign_key_types
6
- config = Rails.configuration.generators
7
- config.options[config.orm][:primary_key_type] || :bigint
8
- end
9
-
10
- def primary_key_type
11
- primary_and_foreign_key_types
12
- end
13
-
14
- def foreign_key_type
15
- primary_and_foreign_key_types
16
- end
17
- end
18
-
19
- # Make these methods available as instance methods too
20
- def primary_and_foreign_key_types
21
- self.class.primary_and_foreign_key_types
22
- end
23
-
24
- def primary_key_type
25
- self.class.primary_key_type
26
- end
27
-
28
- def foreign_key_type
29
- self.class.foreign_key_type
30
- end
31
- end
32
- end