logstash-input-google_pubsub 1.3.0 → 1.4.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 +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +4 -2
- data/docs/index.asciidoc +3 -2
- data/lib/logstash/inputs/google_pubsub.rb +20 -3
- data/lib/logstash-input-google_pubsub_jars.rb +1 -1
- data/spec/inputs/google_pubsub_spec.rb +8 -0
- data/spec/inputs/test.json +14 -0
- data/vendor/jar-dependencies/org/logstash/inputs/plugin/1.4.0/plugin-1.4.0.jar +0 -0
- metadata +12 -10
- data/vendor/jar-dependencies/org/logstash/inputs/plugin/1.3.0/plugin-1.3.0.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b4696d6b9d4edf149cfe2e20e95f1e60fe325abfef7b270d75ffc5abfb35b6c
|
4
|
+
data.tar.gz: 2aea3006b94752de7e74d2e514ec47d4ce26849f950f80d359c59bbdaef6ad4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26183a428dc24b48bec30ab50181422b38805ebe9723527a9a9543a587f75b99318ac25f97d885d52f1528e148d492e868e7a79798941817ce6bb26ce4ca6368
|
7
|
+
data.tar.gz: a05ce16d125d82202bdd1fb10e4ff452ce519aebace71390dd5d534db343b62f6e06b2bb313e83d81b300f622efb6a9650e171fa2e48de9d658532913db4a0e5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 1.4.0
|
2
|
+
- Added optional field json_key_file_content to get Service Account JSON key as an String input. [#68](https://github.com/logstash-plugins/logstash-input-google_pubsub/pull/68)
|
3
|
+
|
1
4
|
## 1.3.0
|
2
5
|
- Updated plugins dependencies [#62](https://github.com/logstash-plugins/logstash-input-google_pubsub/pull/62)
|
3
6
|
|
data/README.md
CHANGED
@@ -49,7 +49,9 @@ You have two options for authentication depending on where you run Logstash.
|
|
49
49
|
|
50
50
|
1. If you are running Logstash outside of Google Cloud Platform, then you will
|
51
51
|
need to create a Google Cloud Platform Service Account and specify the full
|
52
|
-
path to the JSON private key file in your config
|
52
|
+
path to the JSON private key file in your config in `json_key_file` setting.
|
53
|
+
If you don't want to upload the file and use its content as a string, then add the content
|
54
|
+
of JSON private key in `json_key_file_content` setting. You must assign sufficient
|
53
55
|
roles to the Service Account to create a subscription and to pull messages
|
54
56
|
from the subscription. Learn more about GCP Service Accounts and IAM roles
|
55
57
|
here:
|
@@ -58,7 +60,7 @@ here:
|
|
58
60
|
- Creating Service Accounts [overview](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
|
59
61
|
- Granting Roles [overview](https://cloud.google.com/iam/docs/granting-roles-to-service-accounts)
|
60
62
|
|
61
|
-
|
63
|
+
2. If you are running Logstash on a Google Compute Engine instance, you may opt
|
62
64
|
to use Application Default Credentials. In this case, you will not need to
|
63
65
|
specify a JSON private key file in your config.
|
64
66
|
|
data/docs/index.asciidoc
CHANGED
@@ -79,8 +79,9 @@ plugin will return the raw text in as `raw_message` in the logstash `event`.
|
|
79
79
|
You have two options for authentication depending on where you run Logstash.
|
80
80
|
|
81
81
|
1. If you are running Logstash outside of Google Cloud Platform, then you will
|
82
|
-
|
83
|
-
|
82
|
+
path to the JSON private key file in your config in `json_key_file` setting.
|
83
|
+
If you don't want to upload the file and use its content as a string, then add the content
|
84
|
+
of JSON private key in `json_key_file_content` setting. You must assign sufficient
|
84
85
|
roles to the Service Account to create a subscription and to pull messages
|
85
86
|
from the subscription. Learn more about GCP Service Accounts and IAM roles
|
86
87
|
here:
|
@@ -200,10 +200,18 @@ class LogStash::Inputs::GooglePubSub < LogStash::Inputs::Base
|
|
200
200
|
config :subscription, :validate => :string, :required => true
|
201
201
|
config :max_messages, :validate => :number, :required => true, :default => 5
|
202
202
|
|
203
|
-
# If
|
204
|
-
# GCE's Application Default Credentials.
|
205
|
-
#
|
203
|
+
# If Logstash is running within Google Compute Engine (GCE), the plugin will use
|
204
|
+
# GCE's Application Default Credentials. When running outside of GCE, you must
|
205
|
+
# provide a Service Account JSON key. This can be done in one of two ways:
|
206
|
+
#
|
207
|
+
# 1. Specify the file path to the JSON key file using the `json_key_file` option.
|
208
|
+
# 2. Provide the JSON key as a base64-encoded string using the `json_key_file_content` option.
|
209
|
+
#
|
210
|
+
# Both `json_key_file` and `json_key_file_content` are optional, but you must
|
211
|
+
# specify one of them if Logstash is running outside of GCE. It is invalid to
|
212
|
+
# provide both options simultaneously.
|
206
213
|
config :json_key_file, :validate => :path, :required => false
|
214
|
+
config :json_key_file_content, :validate => :string, :required => false
|
207
215
|
|
208
216
|
# If set true, will include the full message data in the `[@metadata][pubsub_message]` field.
|
209
217
|
config :include_metadata, :validate => :boolean, :required => false, :default => false
|
@@ -221,11 +229,20 @@ class LogStash::Inputs::GooglePubSub < LogStash::Inputs::Base
|
|
221
229
|
@logger.debug("Registering Google PubSub Input: project_id=#{@project_id}, topic=#{@topic}, subscription=#{@subscription}")
|
222
230
|
@subscription_id = "projects/#{@project_id}/subscriptions/#{@subscription}"
|
223
231
|
|
232
|
+
if json_key_file && json_key_file_content
|
233
|
+
raise LogStash::ConfigurationError, "Specify either 'json_key_file' or 'json_key_file_content', defining both simultanously is not permitted."
|
234
|
+
end
|
235
|
+
|
224
236
|
if @json_key_file
|
225
237
|
@credentialsProvider = FixedCredentialsProvider.create(
|
226
238
|
ServiceAccountCredentials.fromStream(java.io.FileInputStream.new(@json_key_file))
|
227
239
|
)
|
240
|
+
elsif @json_key_file_content
|
241
|
+
@credentialsProvider = FixedCredentialsProvider.create(
|
242
|
+
ServiceAccountCredentials.fromStream(java.io.ByteArrayInputStream.new((@json_key_file_content).to_java_bytes))
|
243
|
+
)
|
228
244
|
end
|
245
|
+
|
229
246
|
@topic_name = ProjectTopicName.of(@project_id, @topic)
|
230
247
|
@subscription_name = ProjectSubscriptionName.of(@project_id, @subscription)
|
231
248
|
end
|
@@ -51,4 +51,4 @@ require_jar('org.checkerframework', 'checker-qual', '3.33.0')
|
|
51
51
|
require_jar('org.codehaus.mojo', 'animal-sniffer-annotations', '1.23')
|
52
52
|
require_jar('org.conscrypt', 'conscrypt-openjdk-uber', '2.5.2')
|
53
53
|
require_jar('org.threeten', 'threetenbp', '1.6.8')
|
54
|
-
require_jar('org.logstash.inputs', 'plugin', '1.
|
54
|
+
require_jar('org.logstash.inputs', 'plugin', '1.4.0')
|
@@ -34,4 +34,12 @@ describe LogStash::Inputs::GooglePubSub do
|
|
34
34
|
plugin = LogStash::Inputs::GooglePubSub.new(bad3)
|
35
35
|
}.to raise_error(LogStash::ConfigurationError)
|
36
36
|
end
|
37
|
+
|
38
|
+
let(:file_and_content_config_settings) { { 'project_id' => 'myproj', 'subscription' => 'foo', 'topic' => 'bar', 'json_key_file' => 'spec/inputs/test.json', 'json_key_file_content' => '{}' } }
|
39
|
+
it "raise a configuration error if both 'json_key_file' and 'json_key_file_content' are present" do
|
40
|
+
expect {
|
41
|
+
plugin = LogStash::Inputs::GooglePubSub.new(file_and_content_config_settings)
|
42
|
+
plugin.register()
|
43
|
+
}.to raise_error(LogStash::ConfigurationError)
|
44
|
+
end
|
37
45
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"type": "service_account",
|
3
|
+
"project_id": "test-project-id",
|
4
|
+
"private_key_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
5
|
+
"private_key": "-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxx\n-----END PRIVATE KEY-----\n",
|
6
|
+
"client_email": "test-username@test-project-id.iam.gserviceaccount.com",
|
7
|
+
"client_id": "111111111111111111111",
|
8
|
+
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
9
|
+
"token_uri": "https://oauth2.googleapis.com/token",
|
10
|
+
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
11
|
+
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/apachesolrgcp-pubsub%40charged-mind-281913.iam.gserviceaccount.com",
|
12
|
+
"universe_domain": "googleapis.com"
|
13
|
+
}
|
14
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-google_pubsub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Johnson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -17,8 +17,8 @@ dependencies:
|
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: 8.2.0
|
19
19
|
name: logstash-core
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
@@ -34,8 +34,8 @@ dependencies:
|
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '2.99'
|
36
36
|
name: logstash-core-plugin-api
|
37
|
-
prerelease: false
|
38
37
|
type: :runtime
|
38
|
+
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
@@ -51,8 +51,8 @@ dependencies:
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0'
|
53
53
|
name: logstash-codec-plain
|
54
|
-
prerelease: false
|
55
54
|
type: :runtime
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - ">="
|
@@ -65,8 +65,8 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: 0.0.22
|
67
67
|
name: stud
|
68
|
-
prerelease: false
|
69
68
|
type: :runtime
|
69
|
+
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - ">="
|
@@ -79,8 +79,8 @@ dependencies:
|
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0'
|
81
81
|
name: logstash-devutils
|
82
|
-
prerelease: false
|
83
82
|
type: :development
|
83
|
+
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - ">="
|
@@ -93,8 +93,8 @@ dependencies:
|
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: '0.4'
|
95
95
|
name: jar-dependencies
|
96
|
-
prerelease: false
|
97
96
|
type: :development
|
97
|
+
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - "~>"
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- lib/logstash/inputs/google_pubsub.rb
|
121
121
|
- logstash-input-google_pubsub.gemspec
|
122
122
|
- spec/inputs/google_pubsub_spec.rb
|
123
|
+
- spec/inputs/test.json
|
123
124
|
- vendor/jar-dependencies/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar
|
124
125
|
- vendor/jar-dependencies/com/google/api/api-common/2.15.0/api-common-2.15.0.jar
|
125
126
|
- vendor/jar-dependencies/com/google/api/gax-grpc/2.32.0/gax-grpc-2.32.0.jar
|
@@ -169,7 +170,7 @@ files:
|
|
169
170
|
- vendor/jar-dependencies/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0.jar
|
170
171
|
- vendor/jar-dependencies/org/codehaus/mojo/animal-sniffer-annotations/1.23/animal-sniffer-annotations-1.23.jar
|
171
172
|
- vendor/jar-dependencies/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2.jar
|
172
|
-
- vendor/jar-dependencies/org/logstash/inputs/plugin/1.
|
173
|
+
- vendor/jar-dependencies/org/logstash/inputs/plugin/1.4.0/plugin-1.4.0.jar
|
173
174
|
- vendor/jar-dependencies/org/threeten/threetenbp/1.6.8/threetenbp-1.6.8.jar
|
174
175
|
homepage: https://cloud.google.com/pubsub/overview
|
175
176
|
licenses:
|
@@ -199,9 +200,10 @@ requirements:
|
|
199
200
|
- jar 'com.google.guava:guava', '20.0'
|
200
201
|
- jar 'com.google.api:api-common', '1.2.0'
|
201
202
|
- jar 'com.google.auth:google-auth-library-oauth2-http', '0.9.0'
|
202
|
-
rubygems_version: 3.
|
203
|
+
rubygems_version: 3.3.26
|
203
204
|
signing_key:
|
204
205
|
specification_version: 4
|
205
206
|
summary: Consume events from a Google Cloud PubSub service
|
206
207
|
test_files:
|
207
208
|
- spec/inputs/google_pubsub_spec.rb
|
209
|
+
- spec/inputs/test.json
|
Binary file
|