rake_vault 0.1.0.pre.6 → 0.1.0.pre.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 260c539594d7fa4dc45c02a950c7173879bbbb2c2ae90ac54d5caf82340a78bf
4
- data.tar.gz: 5dd668fb52d38a48e16911218a57e36c327671ace3784cc5909f0b3b6a98b8c4
3
+ metadata.gz: 7182f65f35d3861b08f904912380bcfab086ecd2962529b40a2e3cfd085439cd
4
+ data.tar.gz: a1156a675db27ec1ede429e9cc41f869ee8d8d9b66742abbd7e101082d4a4084
5
5
  SHA512:
6
- metadata.gz: 17d1acd0a89fd8039e078cb46552578a2ed37594089a69d466b0fd46c6be4046018add997e1cb4ddd1424aca3af922ddd5af8bc55c96b4eaef84bae487c325ad
7
- data.tar.gz: 64fc396dd4d2c4edc2a3e853d0cd4c91f25607ebbe8dba708fba5ec89f2251f21c0c19a117b1b4ed4a31ed81ad61bac3c46d46e1eeed8eaefb8b7b522d9d4479
6
+ metadata.gz: 89c733d3a3183e2740abb5d6763adfc1465cd899cecbe573382ce33f90bbc9772ee7da29e611452f28b0dc897e92a26450b0e9c8722dd76db572acb737f4070e
7
+ data.tar.gz: b15d61e4867896061a4c426ee486d724c6df3dd502db50826ac6248c492e194ab9b0f6ae623296d29e08924860291f88fa76f7fbee8ac030dd9a16b942b14a41
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_vault (0.1.0.pre.6)
4
+ rake_vault (0.1.0.pre.9)
5
5
  colored2 (~> 3.1)
6
6
  rake_dependencies (~> 3.1)
7
7
  rake_factory (~> 0.23)
@@ -152,4 +152,4 @@ DEPENDENCIES
152
152
  simplecov
153
153
 
154
154
  BUNDLED WITH
155
- 2.3.19
155
+ 2.3.20
@@ -1,13 +1,42 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rake_factory'
4
+ require_relative '../token_file'
4
5
 
5
6
  module RakeVault
6
7
  module Tasks
7
8
  class AppRoleAuth < RakeFactory::Task
8
9
  default_name :login
9
- action do |_t|
10
- puts 'done'
10
+ default_prerequisites(RakeFactory::DynamicValue.new do |t|
11
+ [t.ensure_task_name]
12
+ end)
13
+ default_description(RakeFactory::DynamicValue.new do |_t|
14
+ 'Login with app role using vault'
15
+ end)
16
+ parameter :address
17
+ parameter :ensure_task_name, default: :'vault:ensure'
18
+ parameter :path, default: 'auth/approle/login'
19
+ parameter :role_id
20
+ parameter :secret_id
21
+
22
+ action do |task|
23
+ role_id = task.role_id ? "role_id=#{task.role_id}" : nil
24
+ secret_id = task.secret_id ? "secret_id=#{task.secret_id}" : nil
25
+
26
+ stdout_io = StringIO.new
27
+
28
+ RubyVault.configure do |config|
29
+ config.stdout = stdout_io
30
+ end
31
+
32
+ RubyVault.write(
33
+ address: task.address,
34
+ path: task.path,
35
+ data: [role_id, secret_id].compact,
36
+ format: 'json'
37
+ )
38
+ RubyVault.reset!
39
+ RakeVault::TokenFile.write(stdout_io.string)
11
40
  end
12
41
  end
13
42
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RakeVault
4
+ module TokenFile
5
+ def self.write(json_string)
6
+ json = JSON.parse(json_string)
7
+ token = json['auth']['client_token']
8
+ RakeVault::TokenFile.write_token_to_file(token)
9
+ end
10
+
11
+ def self.write_token_to_file(token)
12
+ file = File.open('~/.vault-token', 'w')
13
+ file.write(token)
14
+ file.close
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RakeVault
4
- VERSION = '0.1.0.pre.6'
4
+ VERSION = '0.1.0.pre.9'
5
5
  end
data/lib/rake_vault.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'rake_vault/tasks'
4
4
  require 'rake_vault/task_sets'
5
5
  require 'rake_vault/version'
6
+ require 'rake_vault/token_file'
6
7
 
7
8
  module RakeVault
8
9
  def self.define_installation_tasks(opts = {})
@@ -12,4 +13,8 @@ module RakeVault
12
13
  def self.define_oidc_auth_task(opts = {}, &block)
13
14
  RakeVault::Tasks::OidcAuth.define(opts, &block)
14
15
  end
16
+
17
+ def self.define_app_role_auth_task(opts = {}, &block)
18
+ RakeVault::Tasks::AppRoleAuth.define(opts, &block)
19
+ end
15
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_vault
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.6
4
+ version: 0.1.0.pre.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - InfraBlocks Maintainers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-10 00:00:00.000000000 Z
11
+ date: 2022-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2
@@ -283,6 +283,7 @@ files:
283
283
  - lib/rake_vault/tasks.rb
284
284
  - lib/rake_vault/tasks/app_role_auth.rb
285
285
  - lib/rake_vault/tasks/oidc_auth.rb
286
+ - lib/rake_vault/token_file.rb
286
287
  - lib/rake_vault/version.rb
287
288
  - rake_vault.gemspec
288
289
  homepage: https://github.com/infrablocks/rake_vault