tableau_trusted_interface 1.2.0 → 2.0.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.
- checksums.yaml +5 -5
- data/README.md +20 -12
- data/lib/tableau_trusted_interface/config.rb +2 -0
- data/lib/tableau_trusted_interface/report.rb +8 -7
- data/lib/tableau_trusted_interface/version.rb +1 -1
- metadata +14 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8559b7bbfa12d782fd81c000b5378408bbfedc58e9010de636fe93f052b96af5
|
4
|
+
data.tar.gz: 6d572ca6bbd3ff24195529c80ada80bd94b9f481969f1d9c4cff04d90d864c54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a90934003d3a222f1607dc8d867f6b925c850fde07fff57bbf1e16bb9d010a4909b911a1b80323e2d2d6a48186cc1caf24f17eeb694a1ac493d0f39e9f782f65
|
7
|
+
data.tar.gz: aff75421447d5e70cb64de27af0bb92c4568c9682b386a208b2f22e357f44d47237654962c7db20ba25322103e5f5854e9067dfe7f25dcbea0f8213d9ff2a402
|
data/README.md
CHANGED
@@ -8,45 +8,53 @@ Wrapper for embedding Tableau workbooks using the [Tableau trusted interface](ht
|
|
8
8
|
|
9
9
|
Add to your `Gemfile`:
|
10
10
|
|
11
|
-
```
|
11
|
+
```ruby
|
12
12
|
gem 'tableau_trusted_interface'
|
13
13
|
```
|
14
14
|
|
15
|
-
You have the option of specifying a default server address and user:
|
15
|
+
You have the option of specifying a default Trusted Authentication server address, view retrieval server address and user:
|
16
16
|
|
17
|
-
```
|
17
|
+
```ruby
|
18
18
|
TableauTrustedInterface.configure do |config|
|
19
|
-
config.
|
19
|
+
config.default_tableau_auth_server = 'http://auth.example.com'
|
20
|
+
config.default_tableau_view_server = 'https://view.example.com'
|
20
21
|
config.default_tableau_user = 'foobar'
|
21
22
|
end
|
22
23
|
```
|
23
24
|
|
25
|
+
As a fallback for both the `default_tableau_auth_server` and `default_tableau_view_server` options, a `default_tableau_server` option can be specified.
|
26
|
+
|
24
27
|
## Usage
|
25
28
|
|
26
|
-
|
29
|
+
Instantiate the interface by specifying which workbook you want and the embed params you wish to use:
|
27
30
|
|
28
|
-
|
31
|
+
```ruby
|
29
32
|
@report = TableauTrustedInterface::Report.new(
|
30
|
-
|
31
|
-
|
33
|
+
path: 'project/workbook',
|
34
|
+
embed_params: { embed: 'yes', toolbar: 'no' }
|
32
35
|
)
|
33
36
|
```
|
34
37
|
|
35
|
-
You can optionally pass `user:` and `
|
38
|
+
You can optionally pass `user:`, `auth_server:` and `view_server:` options here too if you don’t want to use the configured defaults. Similar to the configuration, you can also specify a `server:` option as a fallback for the latter two.
|
36
39
|
|
37
40
|
This would typically be put in a Rails controller, providing you access to the following methods in your view:
|
38
41
|
|
39
|
-
|
40
|
-
|
42
|
+
- `@report.report_url`
|
43
|
+
- `@report.report_embed_url`
|
41
44
|
|
42
45
|
For convenience, this is how you embed the report in a responsive Bootstrap 3 iframe:
|
43
46
|
|
44
|
-
```
|
47
|
+
```erb
|
45
48
|
<div class="embed-responsive embed-responsive-16by9">
|
46
49
|
<iframe class="embed-responsive-item" src="<%= @report.report_embed_url %>"></iframe>
|
47
50
|
</div>
|
48
51
|
```
|
49
52
|
|
53
|
+
## Contributors
|
54
|
+
|
55
|
+
- [Hugh Evans](https://github.com/hughevans)
|
56
|
+
- [Rutger van Bergen](https://github.com/rbergen)
|
57
|
+
|
50
58
|
## License
|
51
59
|
|
52
60
|
See the [LICENSE](LICENSE) file for license rights and limitations (MIT).
|
@@ -3,14 +3,15 @@ require 'rest-client'
|
|
3
3
|
|
4
4
|
module TableauTrustedInterface
|
5
5
|
class Report
|
6
|
-
attr_reader :
|
6
|
+
attr_reader :auth_server, :view_server, :ticket, :user
|
7
7
|
attr_accessor :embed_params, :path
|
8
8
|
|
9
9
|
def initialize(options = {})
|
10
10
|
@path = options.fetch(:path, nil)
|
11
11
|
@embed_params = parse_embed_params(options.fetch(:embed_params, {}))
|
12
12
|
@user = options.fetch(:user, TableauTrustedInterface.config.default_tableau_user)
|
13
|
-
@
|
13
|
+
@auth_server = options.fetch(:auth_server, (TableauTrustedInterface.config.default_tableau_auth_server || options.fetch(:server, TableauTrustedInterface.config.default_tableau_server)))
|
14
|
+
@view_server = options.fetch(:view_server, (TableauTrustedInterface.config.default_tableau_view_server || options.fetch(:server, TableauTrustedInterface.config.default_tableau_server)))
|
14
15
|
|
15
16
|
@ticket = generate_ticket
|
16
17
|
raise TicketDenied, 'Check Tableau IP white-listing or user access' if @ticket == '-1'
|
@@ -31,16 +32,16 @@ module TableauTrustedInterface
|
|
31
32
|
end
|
32
33
|
|
33
34
|
def generate_ticket
|
34
|
-
raise MissingConfiguration unless user &&
|
35
|
-
RestClient.post(URI.join(
|
35
|
+
raise MissingConfiguration unless user && auth_server && view_server
|
36
|
+
RestClient.post(URI.join(auth_server, 'trusted').to_s, username: user)
|
36
37
|
rescue SocketError, RestClient::RequestTimeout
|
37
|
-
raise ServerUnavailable,
|
38
|
+
raise ServerUnavailable, auth_server
|
38
39
|
end
|
39
40
|
|
40
41
|
def report
|
41
42
|
address.partial_expand(
|
42
|
-
scheme: URI.parse(
|
43
|
-
host: URI.parse(
|
43
|
+
scheme: URI.parse(view_server).scheme,
|
44
|
+
host: URI.parse(view_server).host,
|
44
45
|
segments: ['trusted', ticket, 'views'],
|
45
46
|
report_path: path
|
46
47
|
)
|
metadata
CHANGED
@@ -1,27 +1,28 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tableau_trusted_interface
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hugh Evans
|
8
|
+
- Rutger van Bergen
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2020-03-24 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rspec
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - "
|
18
|
+
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '3.4'
|
20
21
|
type: :development
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
|
-
- - "
|
25
|
+
- - ">="
|
25
26
|
- !ruby/object:Gem::Version
|
26
27
|
version: '3.4'
|
27
28
|
- !ruby/object:Gem::Dependency
|
@@ -42,28 +43,28 @@ dependencies:
|
|
42
43
|
name: vcr
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
|
-
- - "
|
46
|
+
- - ">="
|
46
47
|
- !ruby/object:Gem::Version
|
47
48
|
version: '3.0'
|
48
49
|
type: :development
|
49
50
|
prerelease: false
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
52
|
-
- - "
|
53
|
+
- - ">="
|
53
54
|
- !ruby/object:Gem::Version
|
54
55
|
version: '3.0'
|
55
56
|
- !ruby/object:Gem::Dependency
|
56
57
|
name: webmock
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
|
-
- - "
|
60
|
+
- - ">="
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: '1.22'
|
62
63
|
type: :development
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
|
-
- - "
|
67
|
+
- - ">="
|
67
68
|
- !ruby/object:Gem::Version
|
68
69
|
version: '1.22'
|
69
70
|
- !ruby/object:Gem::Dependency
|
@@ -73,9 +74,6 @@ dependencies:
|
|
73
74
|
- - ">="
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '3.0'
|
76
|
-
- - "<"
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '5.1'
|
79
77
|
type: :runtime
|
80
78
|
prerelease: false
|
81
79
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -83,9 +81,6 @@ dependencies:
|
|
83
81
|
- - ">="
|
84
82
|
- !ruby/object:Gem::Version
|
85
83
|
version: '3.0'
|
86
|
-
- - "<"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '5.1'
|
89
84
|
- !ruby/object:Gem::Dependency
|
90
85
|
name: addressable
|
91
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,9 +102,6 @@ dependencies:
|
|
107
102
|
- - ">="
|
108
103
|
- !ruby/object:Gem::Version
|
109
104
|
version: '1.6'
|
110
|
-
- - "<="
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: '2.0'
|
113
105
|
type: :runtime
|
114
106
|
prerelease: false
|
115
107
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -117,12 +109,11 @@ dependencies:
|
|
117
109
|
- - ">="
|
118
110
|
- !ruby/object:Gem::Version
|
119
111
|
version: '1.6'
|
120
|
-
- - "<="
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '2.0'
|
123
112
|
description: 'The Tableau trusted interface allows you to embed Tableau workbooks
|
124
113
|
from a Tableau server in your web views, even when the user isn’t presently authenticated. '
|
125
|
-
email:
|
114
|
+
email:
|
115
|
+
- hugh@hughevans.net
|
116
|
+
- rbergen@xs4all.nl
|
126
117
|
executables: []
|
127
118
|
extensions: []
|
128
119
|
extra_rdoc_files: []
|
@@ -133,7 +124,7 @@ files:
|
|
133
124
|
- lib/tableau_trusted_interface/errors.rb
|
134
125
|
- lib/tableau_trusted_interface/report.rb
|
135
126
|
- lib/tableau_trusted_interface/version.rb
|
136
|
-
homepage: http://github.com/
|
127
|
+
homepage: http://github.com/rbergen/tableau_trusted_interface
|
137
128
|
licenses:
|
138
129
|
- MIT
|
139
130
|
metadata: {}
|
@@ -152,8 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
143
|
- !ruby/object:Gem::Version
|
153
144
|
version: '0'
|
154
145
|
requirements: []
|
155
|
-
|
156
|
-
rubygems_version: 2.5.1
|
146
|
+
rubygems_version: 3.0.3
|
157
147
|
signing_key:
|
158
148
|
specification_version: 4
|
159
149
|
summary: Wrapper for embedding Tableau workbooks using the Tableau trusted interface.
|