kbsecret 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kbsecret/cli/kbsecret-new-session +36 -25
- data/lib/kbsecret/cli/kbsecret-sessions +11 -4
- data/lib/kbsecret/cli.rb +2 -0
- data/lib/kbsecret/config.rb +2 -1
- data/lib/kbsecret/session.rb +11 -5
- data/lib/kbsecret.rb +2 -2
- data/lib/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ea5a40cccc819bf7cb2bb06da3c6bb9dd229dd9
|
4
|
+
data.tar.gz: 73eff88e740a90839345b06590ff6a1d3f48ce96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73aad2d0a5668860063dfabb86496b56860a2ec5010d7f2df1d29761a5dd4e915fbb97d201f015dcdd6e33b93c6e9460329d9cfb7087af5e5af5881aa7b5dd18
|
7
|
+
data.tar.gz: 8c874c9a2a838e5f130bb4c3629d6212ba88ba0fafbcee32e1cdbcfa32138c0d737c07258261ec9dcb36b1d1cb00de5e7bf5dff3a5c3b52ddae90766739dc429
|
@@ -10,50 +10,61 @@ cmd = CLI.create do |c|
|
|
10
10
|
c.slop do |o|
|
11
11
|
o.banner = <<~EOS
|
12
12
|
Usage:
|
13
|
-
kbsecret new-session [options]
|
13
|
+
kbsecret new-session [options]
|
14
14
|
EOS
|
15
15
|
|
16
|
+
o.string "-t", "--team", "the team to create the session under"
|
16
17
|
o.string "-l", "--label", "the session label"
|
17
|
-
o.array "-u", "--users", "the keybase users", default: [Keybase.current_user]
|
18
|
+
o.array "-u", "--users", "the keybase users", default: [Keybase::Local.current_user]
|
18
19
|
o.string "-r", "--root", "the secret root directory"
|
19
20
|
o.bool "-f", "--force", "force creation (ignore overwrites, etc.)"
|
20
21
|
o.bool "-n", "--no-notify", "do not send a notification to session members"
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
24
|
-
cmd.opts[:users].each do |user|
|
25
|
-
cmd.die "Nonexistent Keybase user: '#{user}'" unless Keybase::API.user? user
|
26
|
-
end
|
27
|
-
|
28
|
-
unless cmd.opts[:users].include? Keybase.current_user
|
29
|
-
cmd.warn "You didn't include yourself in the user list, but I'll add you."
|
30
|
-
cmd.opts[:users] << Keybase.current_user
|
31
|
-
end
|
32
|
-
|
33
25
|
session_label = cmd.opts[:label]
|
34
26
|
|
35
27
|
if Config.session?(session_label) && !cmd.opts.force?
|
36
28
|
cmd.die "Refusing to overwrite an existing session without --force."
|
37
29
|
end
|
38
30
|
|
39
|
-
|
31
|
+
if cmd.opts[:team]
|
32
|
+
teams = Keybase::Local::Team.list_memberships["teams"]
|
33
|
+
|
34
|
+
unless teams.any? { |t| t["fq_name"] == cmd.opts[:team] }
|
35
|
+
cmd.die "No such team (either nonexistent or non-member)."
|
36
|
+
end
|
37
|
+
|
38
|
+
Config.configure_session(session_label, team: cmd.opts[:team], root: session_label)
|
39
|
+
else
|
40
|
+
cmd.opts[:users].each do |user|
|
41
|
+
cmd.die "Nonexistent Keybase user: '#{user}'." unless Keybase::API.user? user
|
42
|
+
end
|
43
|
+
|
44
|
+
unless cmd.opts[:users].include? Keybase::Local.current_user
|
45
|
+
cmd.warn "You didn't include yourself in the user list, but I'll add you."
|
46
|
+
cmd.opts[:users] << Keybase::Local.current_user
|
47
|
+
end
|
48
|
+
|
49
|
+
Config.configure_session(session_label, users: cmd.opts[:users], root: cmd.opts[:root])
|
40
50
|
|
41
|
-
unless cmd.opts.no_notify? && cmd.opts[:users] != [Keybase.current_user]
|
42
|
-
|
51
|
+
unless cmd.opts.no_notify? && cmd.opts[:users] != [Keybase::Local.current_user]
|
52
|
+
users = cmd.opts[:users].join(",")
|
43
53
|
|
44
|
-
|
45
|
-
|
54
|
+
Keybase::Local::Chat.send_message cmd.opts[:users], <<~EOM
|
55
|
+
You've been added to a KBSecret session!
|
46
56
|
|
47
|
-
|
57
|
+
To access this session, please run the following:
|
48
58
|
|
49
|
-
|
50
|
-
|
51
|
-
|
59
|
+
```
|
60
|
+
$ kbsecret new-session -l '<your label>' -r '#{cmd.opts[:root]}' -u #{users}
|
61
|
+
```
|
52
62
|
|
53
|
-
|
63
|
+
If you don't have KBSecret installed, you can install it from `gem`:
|
54
64
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
65
|
+
```
|
66
|
+
$ gem install kbsecret
|
67
|
+
```
|
68
|
+
EOM
|
69
|
+
end
|
59
70
|
end
|
@@ -24,8 +24,15 @@ Config.session_labels.each do |sess_name|
|
|
24
24
|
|
25
25
|
next unless cmd.opts.show_all?
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
if session_hash[:team]
|
28
|
+
puts <<~EOS
|
29
|
+
\tTeam: #{session_hash[:team]}
|
30
|
+
\tSecrets root: #{session_hash[:root]} (#{session.path})
|
31
|
+
EOS
|
32
|
+
else
|
33
|
+
puts <<~EOS
|
34
|
+
\tUsers: #{session_hash[:users].join(", ")}
|
35
|
+
\tSecrets root: #{session_hash[:root]} (#{session.path})
|
36
|
+
EOS
|
37
|
+
end
|
31
38
|
end
|
data/lib/kbsecret/cli.rb
CHANGED
@@ -64,6 +64,7 @@ module KBSecret
|
|
64
64
|
|
65
65
|
o.bool "-V", "--verbose", "produce more verbose output"
|
66
66
|
o.bool "-w", "--no-warn", "suppress warning messages"
|
67
|
+
o.bool "--debug", "produce full backtraces on errors"
|
67
68
|
|
68
69
|
o.on "-h", "--help", "show this help message" do
|
69
70
|
puts o
|
@@ -140,6 +141,7 @@ module KBSecret
|
|
140
141
|
def guard
|
141
142
|
yield
|
142
143
|
rescue => e
|
144
|
+
STDERR.puts e.backtrace if @opts.debug?
|
143
145
|
die "#{e.to_s.capitalize}."
|
144
146
|
end
|
145
147
|
|
data/lib/kbsecret/config.rb
CHANGED
@@ -41,7 +41,7 @@ module KBSecret
|
|
41
41
|
# The default session configuration.
|
42
42
|
DEFAULT_SESSION = {
|
43
43
|
default: {
|
44
|
-
users: [Keybase.current_user],
|
44
|
+
users: [Keybase::Local.current_user],
|
45
45
|
root: "default",
|
46
46
|
},
|
47
47
|
}.freeze
|
@@ -57,6 +57,7 @@ module KBSecret
|
|
57
57
|
# configuration defaults
|
58
58
|
# @api private
|
59
59
|
DEFAULT_CONFIG = {
|
60
|
+
mount: "/keybase",
|
60
61
|
sessions: DEFAULT_SESSION.dup,
|
61
62
|
generators: DEFAULT_GENERATOR.dup,
|
62
63
|
}.freeze
|
data/lib/kbsecret/session.rb
CHANGED
@@ -25,7 +25,10 @@ module KBSecret
|
|
25
25
|
@label = label.to_sym
|
26
26
|
@config = Config.session(@label)
|
27
27
|
|
28
|
-
|
28
|
+
# team sessions don't have explicit users
|
29
|
+
unless @config[:team]
|
30
|
+
raise Exceptions::SessionLoadError, "no users in session" if @config[:users].empty?
|
31
|
+
end
|
29
32
|
|
30
33
|
@path = rel_path mkdir: true
|
31
34
|
@records = load_records!
|
@@ -123,10 +126,13 @@ module KBSecret
|
|
123
126
|
# @return [String] the fully qualified path to the session
|
124
127
|
# @api private
|
125
128
|
def rel_path(mkdir: false)
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
129
|
+
path = if @config[:team]
|
130
|
+
File.join(Config[:mount], "team", @config[:team], "kbsecret", @config[:root])
|
131
|
+
else
|
132
|
+
# /keybase/private/[u1,u2,...,uN]/kbsecret/[session]
|
133
|
+
File.join(Config[:mount], "private", Keybase::Core::U[@config[:users]], "kbsecret",
|
134
|
+
@config[:root])
|
135
|
+
end
|
130
136
|
|
131
137
|
FileUtils.mkdir_p path if mkdir
|
132
138
|
|
data/lib/kbsecret.rb
CHANGED
@@ -13,6 +13,6 @@ require_relative "kbsecret/cli"
|
|
13
13
|
# The primary namespace for {KBSecret}.
|
14
14
|
module KBSecret
|
15
15
|
# fail very early if the user doesn't have keybase and KBFS running
|
16
|
-
raise Keybase::Exceptions::KeybaseNotRunningError unless Keybase.running?
|
17
|
-
raise Keybase::Exceptions::KBFSNotRunningError unless Dir.exist?(
|
16
|
+
raise Keybase::Local::Exceptions::KeybaseNotRunningError unless Keybase::Local.running?
|
17
|
+
raise Keybase::Local::Exceptions::KBFSNotRunningError unless Dir.exist?(Config[:mount])
|
18
18
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kbsecret
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Woodruff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fpm
|
@@ -156,14 +156,14 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.
|
159
|
+
version: 0.6.0
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.
|
166
|
+
version: 0.6.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: slop
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -252,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
252
|
version: '0'
|
253
253
|
requirements: []
|
254
254
|
rubyforge_project:
|
255
|
-
rubygems_version: 2.6.
|
255
|
+
rubygems_version: 2.6.13
|
256
256
|
signing_key:
|
257
257
|
specification_version: 4
|
258
258
|
summary: kbsecret - A KBFS (Keybase) backed secret manager.
|