activerecord-cipherstash-pg-adapter 0.1.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 (54) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.tool-versions +2 -0
  4. data/CHANGELOG.md +5 -0
  5. data/Gemfile +15 -0
  6. data/LICENSE +124 -0
  7. data/README.md +29 -0
  8. data/Rakefile +8 -0
  9. data/activerecord-cipherstash-pg-adapter.gemspec +35 -0
  10. data/lib/active_record/connection_adapters/cipherstash_pg/column.rb +69 -0
  11. data/lib/active_record/connection_adapters/cipherstash_pg/database_extensions.rb +31 -0
  12. data/lib/active_record/connection_adapters/cipherstash_pg/database_statements.rb +152 -0
  13. data/lib/active_record/connection_adapters/cipherstash_pg/database_tasks.rb +15 -0
  14. data/lib/active_record/connection_adapters/cipherstash_pg/explain_pretty_printer.rb +44 -0
  15. data/lib/active_record/connection_adapters/cipherstash_pg/oid/array.rb +91 -0
  16. data/lib/active_record/connection_adapters/cipherstash_pg/oid/bit.rb +53 -0
  17. data/lib/active_record/connection_adapters/cipherstash_pg/oid/bit_varying.rb +15 -0
  18. data/lib/active_record/connection_adapters/cipherstash_pg/oid/bytea.rb +17 -0
  19. data/lib/active_record/connection_adapters/cipherstash_pg/oid/cidr.rb +48 -0
  20. data/lib/active_record/connection_adapters/cipherstash_pg/oid/date.rb +31 -0
  21. data/lib/active_record/connection_adapters/cipherstash_pg/oid/date_time.rb +36 -0
  22. data/lib/active_record/connection_adapters/cipherstash_pg/oid/decimal.rb +15 -0
  23. data/lib/active_record/connection_adapters/cipherstash_pg/oid/enum.rb +20 -0
  24. data/lib/active_record/connection_adapters/cipherstash_pg/oid/hstore.rb +109 -0
  25. data/lib/active_record/connection_adapters/cipherstash_pg/oid/inet.rb +15 -0
  26. data/lib/active_record/connection_adapters/cipherstash_pg/oid/interval.rb +49 -0
  27. data/lib/active_record/connection_adapters/cipherstash_pg/oid/jsonb.rb +15 -0
  28. data/lib/active_record/connection_adapters/cipherstash_pg/oid/legacy_point.rb +44 -0
  29. data/lib/active_record/connection_adapters/cipherstash_pg/oid/macaddr.rb +25 -0
  30. data/lib/active_record/connection_adapters/cipherstash_pg/oid/money.rb +41 -0
  31. data/lib/active_record/connection_adapters/cipherstash_pg/oid/oid.rb +15 -0
  32. data/lib/active_record/connection_adapters/cipherstash_pg/oid/point.rb +64 -0
  33. data/lib/active_record/connection_adapters/cipherstash_pg/oid/range.rb +115 -0
  34. data/lib/active_record/connection_adapters/cipherstash_pg/oid/specialized_string.rb +18 -0
  35. data/lib/active_record/connection_adapters/cipherstash_pg/oid/timestamp.rb +15 -0
  36. data/lib/active_record/connection_adapters/cipherstash_pg/oid/timestamp_with_time_zone.rb +30 -0
  37. data/lib/active_record/connection_adapters/cipherstash_pg/oid/type_map_initializer.rb +125 -0
  38. data/lib/active_record/connection_adapters/cipherstash_pg/oid/uuid.rb +35 -0
  39. data/lib/active_record/connection_adapters/cipherstash_pg/oid/vector.rb +28 -0
  40. data/lib/active_record/connection_adapters/cipherstash_pg/oid/xml.rb +30 -0
  41. data/lib/active_record/connection_adapters/cipherstash_pg/oid.rb +38 -0
  42. data/lib/active_record/connection_adapters/cipherstash_pg/quoting.rb +231 -0
  43. data/lib/active_record/connection_adapters/cipherstash_pg/referential_integrity.rb +77 -0
  44. data/lib/active_record/connection_adapters/cipherstash_pg/schema_creation.rb +100 -0
  45. data/lib/active_record/connection_adapters/cipherstash_pg/schema_definitions.rb +243 -0
  46. data/lib/active_record/connection_adapters/cipherstash_pg/schema_dumper.rb +74 -0
  47. data/lib/active_record/connection_adapters/cipherstash_pg/schema_statements.rb +812 -0
  48. data/lib/active_record/connection_adapters/cipherstash_pg/type_metadata.rb +44 -0
  49. data/lib/active_record/connection_adapters/cipherstash_pg/utils.rb +80 -0
  50. data/lib/active_record/connection_adapters/cipherstash_pg_adapter.rb +1100 -0
  51. data/lib/active_record/connection_adapters/postgres_cipherstash_adapter.rb +13 -0
  52. data/lib/activerecord-cipherstash-pg-adapter.rb +33 -0
  53. data/lib/version.rb +3 -0
  54. metadata +126 -0
@@ -0,0 +1,13 @@
1
+ require "active_record/connection_adapters/cipherstash_pg_adapter"
2
+
3
+ module ActiveRecord
4
+ module ConnectionHandling
5
+ # This is the entrypoint that is called when Rails looks for the adapter,
6
+ # when you have this in your database.yml config:
7
+ #
8
+ # adapter: postgres_cipherstash
9
+ #
10
+ # See: https://github.com/rails/rails/blob/d7d93faacfe0ca3297a47f676772828d7210b9bc/activerecord/lib/active_record/database_configurations/database_config.rb#L16-L18
11
+ alias_method :postgres_cipherstash_connection, :cipherstash_pg_connection
12
+ end
13
+ end
@@ -0,0 +1,33 @@
1
+ require "active_support"
2
+ require "active_record"
3
+
4
+ if defined?(ActiveSupport.on_load)
5
+ ActiveSupport.on_load(:active_record) do
6
+ require "active_record/connection_adapters/cipherstash_pg/database_extensions"
7
+
8
+ # rubocop:disable Lint/ConstantDefinitionInBlock
9
+ module ActiveRecord
10
+ module ConnectionAdapters
11
+ module CipherStashPG
12
+ class Railtie < ::Rails::Railtie
13
+ rake_tasks do
14
+ load "active_record/connection_adapters/cipherstash_pg/database_tasks.rb"
15
+ end
16
+ end
17
+
18
+ # Method to install CipherStash custom ORE types
19
+ def self.install
20
+ CipherStashPG::DatabaseExtensions.install
21
+ end
22
+
23
+ # Method to uninstall CipherStash custom ORE types
24
+ def self.uninstall
25
+ CipherStashPG::DatabaseExtensions.uninstall
26
+ end
27
+ end
28
+ end
29
+ end
30
+ # rubocop:enable Lint/ConstantDefinitionInBlock
31
+
32
+ end
33
+ end
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module ActiveRecord
2
+ CIPHERSTASH_PG_ADAPTER_VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activerecord-cipherstash-pg-adapter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Robin Howard
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-03-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 7.0.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 7.0.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: cipherstash-pg
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.4.5
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.4.5
41
+ description: CipherStash PostgreSQL adapter for ActiveRecord.
42
+ email:
43
+ - robin@cipherstash.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".rspec"
49
+ - ".tool-versions"
50
+ - CHANGELOG.md
51
+ - Gemfile
52
+ - LICENSE
53
+ - README.md
54
+ - Rakefile
55
+ - activerecord-cipherstash-pg-adapter.gemspec
56
+ - lib/active_record/connection_adapters/cipherstash_pg/column.rb
57
+ - lib/active_record/connection_adapters/cipherstash_pg/database_extensions.rb
58
+ - lib/active_record/connection_adapters/cipherstash_pg/database_statements.rb
59
+ - lib/active_record/connection_adapters/cipherstash_pg/database_tasks.rb
60
+ - lib/active_record/connection_adapters/cipherstash_pg/explain_pretty_printer.rb
61
+ - lib/active_record/connection_adapters/cipherstash_pg/oid.rb
62
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/array.rb
63
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/bit.rb
64
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/bit_varying.rb
65
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/bytea.rb
66
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/cidr.rb
67
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/date.rb
68
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/date_time.rb
69
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/decimal.rb
70
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/enum.rb
71
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/hstore.rb
72
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/inet.rb
73
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/interval.rb
74
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/jsonb.rb
75
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/legacy_point.rb
76
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/macaddr.rb
77
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/money.rb
78
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/oid.rb
79
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/point.rb
80
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/range.rb
81
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/specialized_string.rb
82
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/timestamp.rb
83
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/timestamp_with_time_zone.rb
84
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/type_map_initializer.rb
85
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/uuid.rb
86
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/vector.rb
87
+ - lib/active_record/connection_adapters/cipherstash_pg/oid/xml.rb
88
+ - lib/active_record/connection_adapters/cipherstash_pg/quoting.rb
89
+ - lib/active_record/connection_adapters/cipherstash_pg/referential_integrity.rb
90
+ - lib/active_record/connection_adapters/cipherstash_pg/schema_creation.rb
91
+ - lib/active_record/connection_adapters/cipherstash_pg/schema_definitions.rb
92
+ - lib/active_record/connection_adapters/cipherstash_pg/schema_dumper.rb
93
+ - lib/active_record/connection_adapters/cipherstash_pg/schema_statements.rb
94
+ - lib/active_record/connection_adapters/cipherstash_pg/type_metadata.rb
95
+ - lib/active_record/connection_adapters/cipherstash_pg/utils.rb
96
+ - lib/active_record/connection_adapters/cipherstash_pg_adapter.rb
97
+ - lib/active_record/connection_adapters/postgres_cipherstash_adapter.rb
98
+ - lib/activerecord-cipherstash-pg-adapter.rb
99
+ - lib/version.rb
100
+ homepage: https://github.com/cipherstash/activerecord-cipherstash-pg-adapter
101
+ licenses:
102
+ - LicenseRef-LICENCE
103
+ metadata:
104
+ homepage_uri: https://github.com/cipherstash/activerecord-cipherstash-pg-adapter
105
+ source_code_uri: https://github.com/cipherstash/activerecord-cipherstash-pg-adapter.git
106
+ changelog_uri: https://github.com/cipherstash/activerecord-cipherstash-pg-adapter/blob/main/CHANGELOG.md
107
+ post_install_message:
108
+ rdoc_options: []
109
+ require_paths:
110
+ - lib
111
+ required_ruby_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 2.6.0
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ requirements: []
122
+ rubygems_version: 3.3.7
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: CipherStash PostgreSQL adapter for ActiveRecord.
126
+ test_files: []