pg_audit_log 0.4.4 → 0.4.5
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.
data/README.rdoc
CHANGED
@@ -33,6 +33,8 @@ On a 2.93GHz i7 with postgresql 9.1 the audit log has an overhead of about 0.003
|
|
33
33
|
|
34
34
|
The PgAuditLog::Entry ActiveRecord model represents a single entry in the audit log table. Each entry represents a single change to a single field of a record in a table. So if you change 3 columns of a record, that will generate 3 corresponding PgAuditLog::Entry records.
|
35
35
|
|
36
|
+
You can see the SQL it injects on every query by running with LOG_AUDIT_SQL
|
37
|
+
|
36
38
|
=== Migrations
|
37
39
|
|
38
40
|
TODO
|
data/lib/pg_audit_log/entry.rb
CHANGED
@@ -28,7 +28,7 @@ class PgAuditLog::Entry < ActiveRecord::Base
|
|
28
28
|
INCREMENT BY 1;
|
29
29
|
|
30
30
|
CREATE TABLE #{self.table_name} (
|
31
|
-
id
|
31
|
+
id bigint PRIMARY KEY DEFAULT nextval('#{self.table_name}_id_seq'),
|
32
32
|
user_id integer,
|
33
33
|
user_unique_name character varying(255),
|
34
34
|
operation character varying(255),
|
@@ -7,7 +7,8 @@ class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
|
|
7
7
|
log_user_id = PgAuditLog::Function.user_identifier_temporary_function(user_id)
|
8
8
|
log_user_unique_name = PgAuditLog::Function.user_unique_name_temporary_function(unique_name)
|
9
9
|
|
10
|
-
|
10
|
+
logged_sql = ENV["LOG_AUDIT_SQL"] ? [log_user_id, log_user_unique_name, sql].values.join('; ') : sql
|
11
|
+
log(logged_sql, name) do
|
11
12
|
if @async
|
12
13
|
@connection.async_exec(log_user_id)
|
13
14
|
@connection.async_exec(log_user_unique_name)
|
@@ -11,7 +11,8 @@ class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
|
|
11
11
|
|
12
12
|
def exec_query_with_auditing(sql, name = 'SQL', binds = [])
|
13
13
|
audited_sql = generate_auditing_sql(sql)
|
14
|
-
|
14
|
+
logged_sql = ENV["LOG_AUDIT_SQL"] ? audited_sql.values.join('; ') : sql
|
15
|
+
log(logged_sql, name, binds) do
|
15
16
|
exec_no_cache(audited_sql[:user_id], binds)
|
16
17
|
exec_no_cache(audited_sql[:unique_name], binds)
|
17
18
|
result = binds.empty? ? exec_no_cache(sql, binds) :
|
@@ -31,6 +31,7 @@ module PgAuditLog
|
|
31
31
|
END
|
32
32
|
$_$;
|
33
33
|
SQL
|
34
|
+
sql.split("\n").join(" ")
|
34
35
|
end
|
35
36
|
|
36
37
|
def user_unique_name_temporary_function(username)
|
@@ -43,6 +44,7 @@ module PgAuditLog
|
|
43
44
|
END
|
44
45
|
$_$;
|
45
46
|
SQL
|
47
|
+
sql.split("\n").join(" ")
|
46
48
|
end
|
47
49
|
|
48
50
|
def install
|
data/lib/pg_audit_log/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_audit_log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-09 00:00:00.
|
12
|
+
date: 2012-02-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70252020501060 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70252020501060
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: pg
|
27
|
-
requirement: &
|
27
|
+
requirement: &70252020500560 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70252020500560
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec-rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70252020500100 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - =
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '2.7'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70252020500100
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: with_model
|
49
|
-
requirement: &
|
49
|
+
requirement: &70252020499640 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.1.3
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70252020499640
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: autotest
|
60
|
-
requirement: &
|
60
|
+
requirement: &70252020499260 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70252020499260
|
69
69
|
description: A completely transparent audit logging component for your application
|
70
70
|
using a stored procedure and triggers. Comes with specs for your project and a rake
|
71
71
|
task to generate the reverse SQL to undo changes logged
|
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
120
|
version: '0'
|
121
121
|
segments:
|
122
122
|
- 0
|
123
|
-
hash:
|
123
|
+
hash: 3581204670683200493
|
124
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
125
|
none: false
|
126
126
|
requirements:
|
@@ -129,10 +129,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
129
|
version: '0'
|
130
130
|
segments:
|
131
131
|
- 0
|
132
|
-
hash:
|
132
|
+
hash: 3581204670683200493
|
133
133
|
requirements: []
|
134
134
|
rubyforge_project:
|
135
|
-
rubygems_version: 1.8.
|
135
|
+
rubygems_version: 1.8.15
|
136
136
|
signing_key:
|
137
137
|
specification_version: 3
|
138
138
|
summary: postgresql only database-level audit logging of all databases changes
|