tcell_hooks 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +4 -0
- data/README.md +54 -0
- data/lib/tcell_hooks.rb +79 -0
- data/lib/tcell_hooks/version.rb +3 -0
- data/tcell_hooks.gemspec +25 -0
- metadata +51 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3dc93257910a02bee3060b4ce189b7cbbe6aaf02
|
4
|
+
data.tar.gz: d6183a5a1236b361112ac52c19d5520e6a771990
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 250395b5fddcd845725a5185e1c49c64c3745557d4549450c36d6fedcc14d715a7a6696b370036c01d671bfedba569c1f98cbda0b326deec9f6e7ac782d70b73
|
7
|
+
data.tar.gz: 8c7da756d0d9255415ad4a2c8b7bb9db2513ac6d2dac14a5dcab42e2db9bc6b0223aa2f72b44bd61fd1e2fff6813d139b53e96a6b9c264cf2d142c1d91fd3128
|
data/LICENSE
ADDED
data/README.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
By [TCell](https://www.tcell.io/).
|
2
|
+
|
3
|
+
TCell Hooks is to be used in conjuction with the [tcell_agent](https://rubygems.org/gems/tcell_agent) to allow for custom event notifications of login failures and login successes.
|
4
|
+
|
5
|
+
## Getting started
|
6
|
+
|
7
|
+
You can add it to your Gemfile with:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'tcell_hooks'
|
11
|
+
```
|
12
|
+
|
13
|
+
Then run `bundle install`
|
14
|
+
|
15
|
+
There are two options for calling the hooks from your application code:
|
16
|
+
|
17
|
+
By providing a Rails request object and having the TCell Agent extract the relevant details from it:
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
TCellAgent::Hooks::V1::Frameworks::Rails::Login.register_login_event(
|
21
|
+
TCellAgent::Hooks::V1::Login::LOGIN_SUCCESS,
|
22
|
+
rails_request,
|
23
|
+
"user's id",
|
24
|
+
user_valid=false
|
25
|
+
)
|
26
|
+
```
|
27
|
+
|
28
|
+
Or by providing each individual piece of information required for the TCell event:
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
TCellAgent::Hooks::V1::Login.register_login_event(
|
32
|
+
TCellAgent::Hooks::V1::Login::LOGIN_SUCCESS,
|
33
|
+
"users session id",
|
34
|
+
"user agent from request",
|
35
|
+
"users referrer header",
|
36
|
+
"remote address",
|
37
|
+
["array","of","header","names"],
|
38
|
+
"users id",
|
39
|
+
"document uri",
|
40
|
+
user_valid=false
|
41
|
+
)
|
42
|
+
```
|
43
|
+
|
44
|
+
The available statuses are:
|
45
|
+
|
46
|
+
`TCellAgent::Hooks::V1::Login::LOGIN_SUCCESS`
|
47
|
+
|
48
|
+
`TCellAgent::Hooks::V1::Login::LOGIN_FAILURE`
|
49
|
+
|
50
|
+
|
51
|
+
## Important Note
|
52
|
+
|
53
|
+
If the [tcell_agent](https://rubygems.org/gems/tcell_agent) is not installed or if it's disabled, this code will do nothing and should have no performance effect on your app.
|
54
|
+
|
data/lib/tcell_hooks.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
module TCellAgent
|
2
|
+
module Hooks
|
3
|
+
module V1
|
4
|
+
|
5
|
+
module Frameworks
|
6
|
+
module Rails
|
7
|
+
|
8
|
+
# Report a Login event by providing a Rails request object
|
9
|
+
#
|
10
|
+
# ==== Examples
|
11
|
+
#
|
12
|
+
# TCellAgent::Hooks::V1::Frameworks::Rails::Login.register_login_event(
|
13
|
+
# TCellAgent::Hooks::V1::Login::LOGIN_SUCCESS,
|
14
|
+
# rails_request,
|
15
|
+
# "tcell@tcell.io",
|
16
|
+
# false
|
17
|
+
# )
|
18
|
+
#
|
19
|
+
# TCellAgent::Hooks::V1::Frameworks::Rails::Login.register_login_event(
|
20
|
+
# TCellAgent::Hooks::V1::Login::LOGIN_FAILURE,
|
21
|
+
# rails_request,
|
22
|
+
# "tcell@tcell.io",
|
23
|
+
# false
|
24
|
+
# )
|
25
|
+
module Login
|
26
|
+
def self.register_login_event(status, rails_request, user_id, user_valid=nil); end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module Login
|
33
|
+
|
34
|
+
LOGIN_SUCCESS = "success"
|
35
|
+
LOGIN_FAILURE = "failure"
|
36
|
+
|
37
|
+
# Report a Login event by providing all the necessary parameters for a TCell event
|
38
|
+
#
|
39
|
+
# ==== Examples
|
40
|
+
#
|
41
|
+
# TCellAgent::Hooks::V1::Login.register_login_event(
|
42
|
+
# TCellAgent::Hooks::V1::Login::LOGIN_SUCCESS,
|
43
|
+
# "124KDJFL3234",
|
44
|
+
# "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36",
|
45
|
+
# "http://192.168.99.100:3000/",
|
46
|
+
# "192.168.99.1",
|
47
|
+
# ["HOST", "USER_AGENT", "ACCEPT", "REFERER", "ACCEPT_ENCODING", "ACCEPT_LANGUAGE", "COOKIE"],
|
48
|
+
# "tcell@tcell.io",
|
49
|
+
# "/users/auth/doorkeeper/callbackuri",
|
50
|
+
# false
|
51
|
+
# )
|
52
|
+
#
|
53
|
+
# TCellAgent::Hooks::V1::Login.register_login_event(
|
54
|
+
# TCellAgent::Hooks::V1::Login::LOGIN_FAILURE,
|
55
|
+
# "124KDJFL3234",
|
56
|
+
# "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36",
|
57
|
+
# "http://192.168.99.100:3000/",
|
58
|
+
# "192.168.99.1",
|
59
|
+
# ["HOST", "USER_AGENT", "ACCEPT", "REFERER", "ACCEPT_ENCODING", "ACCEPT_LANGUAGE", "COOKIE"],
|
60
|
+
# "tcell@tcell.io",
|
61
|
+
# "/users/auth/doorkeeper/callbackuri",
|
62
|
+
# false
|
63
|
+
# )
|
64
|
+
def self.register_login_event(
|
65
|
+
status,
|
66
|
+
session_id,
|
67
|
+
user_agent,
|
68
|
+
referrer,
|
69
|
+
remote_addr,
|
70
|
+
header_keys,
|
71
|
+
user_id,
|
72
|
+
document_uri,
|
73
|
+
user_valid=nil)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
data/tcell_hooks.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
|
4
|
+
require "tcell_hooks/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "tcell_hooks"
|
8
|
+
s.version = TCellHooks::VERSION
|
9
|
+
s.date = "2016-12-14"
|
10
|
+
s.summary = "Programmatic Hooks for TCell's Ruby agent"
|
11
|
+
s.description = "Allows custom event sending of events to tCell when tcell-agent is also running"
|
12
|
+
s.authors = ["Garrett Held", "Rafael Alba"]
|
13
|
+
s.email = ["garrett@tcell.io", "rafael@tcell.io"]
|
14
|
+
s.files = ["lib/tcell_hooks.rb"]
|
15
|
+
|
16
|
+
s.files = Dir[
|
17
|
+
"lib/tcell_hooks.rb",
|
18
|
+
"lib/tcell_hooks/version.rb",
|
19
|
+
"README*",
|
20
|
+
"LICENSE*",
|
21
|
+
"tcell_hooks.gemspec"
|
22
|
+
]
|
23
|
+
|
24
|
+
s.require_paths = ["lib"]
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tcell_hooks
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Garrett Held
|
8
|
+
- Rafael Alba
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2016-12-14 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: Allows custom event sending of events to tCell when tcell-agent is also
|
15
|
+
running
|
16
|
+
email:
|
17
|
+
- garrett@tcell.io
|
18
|
+
- rafael@tcell.io
|
19
|
+
executables: []
|
20
|
+
extensions: []
|
21
|
+
extra_rdoc_files: []
|
22
|
+
files:
|
23
|
+
- lib/tcell_hooks.rb
|
24
|
+
- lib/tcell_hooks/version.rb
|
25
|
+
- README.md
|
26
|
+
- LICENSE
|
27
|
+
- tcell_hooks.gemspec
|
28
|
+
homepage:
|
29
|
+
licenses: []
|
30
|
+
metadata: {}
|
31
|
+
post_install_message:
|
32
|
+
rdoc_options: []
|
33
|
+
require_paths:
|
34
|
+
- lib
|
35
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
requirements: []
|
46
|
+
rubyforge_project:
|
47
|
+
rubygems_version: 2.0.14.1
|
48
|
+
signing_key:
|
49
|
+
specification_version: 4
|
50
|
+
summary: Programmatic Hooks for TCell's Ruby agent
|
51
|
+
test_files: []
|