api_keys 0.2.0 → 0.3.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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.simplecov +36 -0
  3. data/AGENTS.md +5 -0
  4. data/Appraisals +17 -0
  5. data/CHANGELOG.md +14 -0
  6. data/CLAUDE.md +5 -0
  7. data/README.md +767 -3
  8. data/Rakefile +9 -4
  9. data/app/controllers/api_keys/keys_controller.rb +43 -11
  10. data/app/controllers/api_keys/security_controller.rb +9 -1
  11. data/app/views/api_keys/keys/_empty_state.html.erb +9 -0
  12. data/app/views/api_keys/keys/_form.html.erb +31 -2
  13. data/app/views/api_keys/keys/_key_actions.html.erb +20 -0
  14. data/app/views/api_keys/keys/_key_badges.html.erb +17 -0
  15. data/app/views/api_keys/keys/_key_row.html.erb +21 -35
  16. data/app/views/api_keys/keys/_key_status.html.erb +10 -0
  17. data/app/views/api_keys/keys/_keys_table.html.erb +2 -7
  18. data/app/views/api_keys/keys/_publishable_keys.html.erb +40 -0
  19. data/app/views/api_keys/keys/_secret_keys.html.erb +39 -0
  20. data/app/views/api_keys/keys/_show_token.html.erb +5 -1
  21. data/app/views/api_keys/keys/_token_display.html.erb +11 -0
  22. data/app/views/api_keys/keys/index.html.erb +40 -8
  23. data/app/views/api_keys/security/best_practices.html.erb +73 -47
  24. data/app/views/layouts/api_keys/application.html.erb +113 -7
  25. data/context7.json +4 -0
  26. data/gemfiles/rails_7.2.gemfile +21 -0
  27. data/gemfiles/rails_8.0.gemfile +21 -0
  28. data/gemfiles/rails_8.1.gemfile +21 -0
  29. data/lib/api_keys/configuration.rb +77 -0
  30. data/lib/api_keys/errors.rb +73 -0
  31. data/lib/api_keys/form_builder_extensions.rb +158 -0
  32. data/lib/api_keys/helpers/expiration_options.rb +131 -0
  33. data/lib/api_keys/helpers/token_session.rb +68 -0
  34. data/lib/api_keys/helpers/view_helpers.rb +216 -0
  35. data/lib/api_keys/models/api_key.rb +229 -17
  36. data/lib/api_keys/models/concerns/has_api_keys.rb +183 -3
  37. data/lib/api_keys/services/authenticator.rb +45 -2
  38. data/lib/api_keys/services/digestor.rb +6 -2
  39. data/lib/api_keys/tenant_resolution.rb +3 -1
  40. data/lib/api_keys/version.rb +1 -1
  41. data/lib/api_keys.rb +12 -0
  42. data/lib/generators/api_keys/add_key_types_generator.rb +68 -0
  43. data/lib/generators/api_keys/templates/add_key_types_to_api_keys.rb.erb +18 -0
  44. data/lib/generators/api_keys/templates/create_api_keys_table.rb.erb +9 -0
  45. data/lib/generators/api_keys/templates/initializer.rb +242 -120
  46. metadata +24 -58
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rameerez
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-06-03 00:00:00.000000000 Z
10
+ date: 2026-07-07 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -23,34 +23,6 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '6.1'
26
- - !ruby/object:Gem::Dependency
27
- name: activerecord
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '6.0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '6.0'
40
- - !ruby/object:Gem::Dependency
41
- name: activesupport
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '6.0'
47
- type: :runtime
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '6.0'
54
26
  - !ruby/object:Gem::Dependency
55
27
  name: base58
56
28
  requirement: !ruby/object:Gem::Requirement
@@ -79,34 +51,6 @@ dependencies:
79
51
  - - "~>"
80
52
  - !ruby/object:Gem::Version
81
53
  version: '3.1'
82
- - !ruby/object:Gem::Dependency
83
- name: bundler
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '2.0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '2.0'
96
- - !ruby/object:Gem::Dependency
97
- name: rake
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '13.0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '13.0'
110
54
  description: Add secure, production-ready API key authentication to your Rails app
111
55
  in minutes. Handles key generation, hashing, expiration, revocation, per-key scopes;
112
56
  plus a drop-in dashboard for your users to self-issue and manage their own API keys.
@@ -116,7 +60,11 @@ executables: []
116
60
  extensions: []
117
61
  extra_rdoc_files: []
118
62
  files:
63
+ - ".simplecov"
64
+ - AGENTS.md
65
+ - Appraisals
119
66
  - CHANGELOG.md
67
+ - CLAUDE.md
120
68
  - LICENSE.txt
121
69
  - README.md
122
70
  - Rakefile
@@ -126,10 +74,17 @@ files:
126
74
  - app/controllers/api_keys/application_controller.rb
127
75
  - app/controllers/api_keys/keys_controller.rb
128
76
  - app/controllers/api_keys/security_controller.rb
77
+ - app/views/api_keys/keys/_empty_state.html.erb
129
78
  - app/views/api_keys/keys/_form.html.erb
79
+ - app/views/api_keys/keys/_key_actions.html.erb
80
+ - app/views/api_keys/keys/_key_badges.html.erb
130
81
  - app/views/api_keys/keys/_key_row.html.erb
82
+ - app/views/api_keys/keys/_key_status.html.erb
131
83
  - app/views/api_keys/keys/_keys_table.html.erb
84
+ - app/views/api_keys/keys/_publishable_keys.html.erb
85
+ - app/views/api_keys/keys/_secret_keys.html.erb
132
86
  - app/views/api_keys/keys/_show_token.html.erb
87
+ - app/views/api_keys/keys/_token_display.html.erb
133
88
  - app/views/api_keys/keys/edit.html.erb
134
89
  - app/views/api_keys/keys/index.html.erb
135
90
  - app/views/api_keys/keys/new.html.erb
@@ -137,11 +92,20 @@ files:
137
92
  - app/views/api_keys/security/best_practices.html.erb
138
93
  - app/views/layouts/api_keys/application.html.erb
139
94
  - config/routes.rb
95
+ - context7.json
96
+ - gemfiles/rails_7.2.gemfile
97
+ - gemfiles/rails_8.0.gemfile
98
+ - gemfiles/rails_8.1.gemfile
140
99
  - lib/api_keys.rb
141
100
  - lib/api_keys/authentication.rb
142
101
  - lib/api_keys/configuration.rb
143
102
  - lib/api_keys/controller.rb
144
103
  - lib/api_keys/engine.rb
104
+ - lib/api_keys/errors.rb
105
+ - lib/api_keys/form_builder_extensions.rb
106
+ - lib/api_keys/helpers/expiration_options.rb
107
+ - lib/api_keys/helpers/token_session.rb
108
+ - lib/api_keys/helpers/view_helpers.rb
145
109
  - lib/api_keys/jobs/callbacks_job.rb
146
110
  - lib/api_keys/jobs/update_stats_job.rb
147
111
  - lib/api_keys/logging.rb
@@ -152,7 +116,9 @@ files:
152
116
  - lib/api_keys/services/token_generator.rb
153
117
  - lib/api_keys/tenant_resolution.rb
154
118
  - lib/api_keys/version.rb
119
+ - lib/generators/api_keys/add_key_types_generator.rb
155
120
  - lib/generators/api_keys/install_generator.rb
121
+ - lib/generators/api_keys/templates/add_key_types_to_api_keys.rb.erb
156
122
  - lib/generators/api_keys/templates/create_api_keys_table.rb.erb
157
123
  - lib/generators/api_keys/templates/initializer.rb
158
124
  homepage: https://github.com/rameerez/api_keys