ccli 1.0.0 → 1.0.1

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: cd81289d8f1456f22834f09726e3e21275e41ba9eed0770ae6c428b888026e7f
4
- data.tar.gz: d568dd0e2761eab159da28682f8ea9cf0ea937c3500ad2d4cc36679ffaff051d
3
+ metadata.gz: b808de24e75aa7de88a4fa899401f33b0c07a8bfc056371b6b4dba3037ac4c1c
4
+ data.tar.gz: 8d6aed4c6a3ddd82c0a9d5d2eaa26d5668b5da7d8ae6b3a1d7bfac473c724158
5
5
  SHA512:
6
- metadata.gz: 1367531fedc2c9d0536dca82db34472cc55114c1dfb563936fb0f893159c20c6c4e9634fc06e623d9c1be11b58a4edc8a16548d65f91364bdb31a818c6c02e8f
7
- data.tar.gz: a65442a27de2040b4e0c9c5d53ca709954dd1fab2555197e01684a76744a7cc6c314fb74a79e69ae78929dd284ce68c0e2262071bd00dcd5e57626b370d1f5fb
6
+ metadata.gz: 23cdaf53c3e84c90ea7bd8caac55c1c0dc5479e70dbd7d893d31e4c9ef7830cda495f90d5d075c0cce93d242abad23b639c69f337df557b060219d633d8c373a
7
+ data.tar.gz: eb84e14c287080cecf3b91e08ef7837c1a7e64e923f9e505974f9fc28f5c95fbf0fcc14777663967f8f553cf9c5f39db52fb8094ca5b20207a4d2db105199e2a
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.6.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.1
4
+
5
+ - Reset api user token after login
6
+
3
7
  ## 1.0.0
4
8
 
5
9
  - De- and encode data from secrets
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ccli
2
2
 
3
- Cryptopus Command Line Client
3
+ Command Line Client for [Cryptopus](https://github.com/puzzle/cryptopus)
4
4
 
5
5
  ## Installation
6
6
 
@@ -19,41 +19,72 @@ This will install the `cry` command including its dependencies
19
19
 
20
20
  [Receiving the login token from Cryptopus](docs/get_login_token.md)
21
21
 
22
- ### Kubernetes/Openshift
22
+ ### Commands
23
23
 
24
- #### Required tools
24
+ ```
25
+ Command: Summary:
25
26
 
26
- First you'll have to install either [oc](https://docs.openshift.com/container-platform/4.3/cli_reference/openshift_cli/getting-started-cli.html#installing-the-cli) or [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) depending on your usage
27
+ account Fetches an account by the given id
28
+ folder Selects the Cryptopus folder by id
29
+ help Display global or [command] help documentation
30
+ k8s-secret-pull Pulls secret from Kubectl to Cryptopus
31
+ k8s-secret-push Pushes secret from Cryptopus to Kubectl
32
+ login Logs in to the ccli
33
+ logout Logs out of the ccli
34
+ ose-secret-pull Pulls secret from Openshift to Cryptopus
35
+ ose-secret-push Pushes secret from Cryptopus to Openshift
36
+ teams Lists all available teams
37
+ use Select the current folder
38
+ ```
27
39
 
28
- #### Labeling secret to be synced
40
+ Show more specific documentation by calling `cry help <command>`
29
41
 
30
- So that a secret even gets considered by the `ccli`, you have to add the `cryptopus-sync=true` label to your secret:
42
+ ### Account
31
43
 
32
- **oc:** `oc label secret <secret-name> cryptopus-sync=true`
44
+ #### Logging in
33
45
 
46
+ Use the ccli login copy button from the UI or do it manually:
34
47
 
35
- **kubectl:** `kubectl label secret <secret-name> cryptopus-sync=true`
48
+ user=<my-user>
49
+ token=<my-token>
50
+ url=https://cryptopus.example.com
36
51
 
37
- ### Commands
52
+ cry login $(echo -n "$user:$token" | base64)@$url
53
+
54
+ #### Retrieving
55
+
56
+ To retreive account data as yaml:
38
57
 
39
58
  ```
40
- Command: Summary:
59
+ cry account 42 > account.yaml
60
+ ```
61
+ Retreiving account's password and assign it to a variable:
41
62
 
42
- account Fetches an account by the given id
43
- folder Selects the Cryptopus folder by id
44
- help Display global or [command] help documentation
45
- k8s-secret-pull Pulls secret from Kubectl to Cryptopus
46
- k8s-secret-push Pushes secret from Cryptopus to Kubectl
47
- login Logs in to the ccli
48
- logout Logs out of the ccli
49
- ose-secret-pull Pulls secret from Openshift to Cryptopus
50
- ose-secret-push Pushes secret from Cryptopus to Openshift
51
- teams Lists all available teams
52
- use Select the current folder
63
+ ```
64
+ PASSWORD=$(cry account 42 --password)
53
65
  ```
54
66
 
55
- Show more specific documentation by calling `cry help <command>`
67
+ #### Updating
56
68
 
69
+ not supported yet by ccli
70
+
71
+ ### Kubernetes/Openshift
72
+
73
+ #### Required tools
74
+
75
+ First you'll have to install either [oc](https://docs.openshift.com/container-platform/4.3/cli_reference/openshift_cli/getting-started-cli.html#installing-the-cli) or [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) depending on your usage
76
+
77
+ #### Pulling Kubernetes / Openshift Secrets
78
+
79
+ when using the command `{ose|k8s}-secret-pull` after beeing logged in to a k8s/ose project, all secrets labeled with `cryptopus-sync=true` are backed up to cryptopus.
80
+
81
+ to label a specific secret do:
82
+
83
+ **oc:** `oc label secret <secret-name> cryptopus-sync=true`
84
+
85
+ **kubectl:** `kubectl label secret <secret-name> cryptopus-sync=true`
86
+
87
+ Restored secrets by `{ose|k8s}-secret-push` are labeled automatically.
57
88
 
58
89
  ## Development
59
90
 
@@ -69,3 +100,7 @@ You will need the following things properly installed on your computer:
69
100
  - `rvm install 2.6.0`
70
101
  - `gem install bundler`
71
102
  - `bundle install`
103
+
104
+ ### Running tests
105
+
106
+ `bundle exec rspec`
data/ccli.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  One of the main functionality is backing up secrets from cluster services (currently: openshift, kubernetes)
11
11
  to Cryptopus and restoring them as well.
12
12
  EOF
13
- s.version = '1.0.0'
13
+ s.version = '1.0.1'
14
14
  s.summary = 'Command line client for the opensource password manager Cryptopus'
15
15
  s.license = 'MIT'
16
16
  s.homepage = 'https://github.com/puzzle/ccli'
@@ -5,8 +5,9 @@ To use the CCLI, you'll first have to receive the login token from Cryptopus.
5
5
  1. Log in to your instance of Cryptopus
6
6
  2. Navigate to your user settings
7
7
  3. Choose or create the api user you want to use via the ccli (keep the valid time in mind)
8
- 4. Use the ccli login copy button
9
- 5. Copy the command from your clipboard to the terminal
8
+ 4. Grant the API user permissions to access the groups you need to use with the ccli
9
+ 5. Use the ccli login copy button
10
+ 6. Copy the command from your clipboard to the terminal
10
11
 
11
12
  ## Accessing user settings
12
13
 
data/lib/cli.rb CHANGED
@@ -14,7 +14,7 @@ class CLI
14
14
  # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metric/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/BlockLength
15
15
  def run
16
16
  program :name, 'cry - cryptopus cli'
17
- program :version, '1.0.0'
17
+ program :version, '1.0.1'
18
18
  program :description, 'CLI tool to manage Openshift Secrets via Cryptopus'
19
19
  program :help, 'Source Code', 'https://www.github.com/puzzle/ccli'
20
20
  program :help, 'Usage', 'cry [flags]'
@@ -27,6 +27,7 @@ class CLI
27
27
  token, url = extract_login_args(args)
28
28
  execute_action do
29
29
  session_adapter.update_session({ encoded_token: token, url: url })
30
+ renew_auth_token
30
31
 
31
32
  # Test authentification by calling teams endpoint
32
33
  Team.all
@@ -331,6 +332,10 @@ class CLI
331
332
  def k8s_adapter
332
333
  @k8s_adapter ||= K8SAdapter.new
333
334
  end
335
+
336
+ def renew_auth_token
337
+ session_adapter.update_session({ token: cryptopus_adapter.renewed_auth_token })
338
+ end
334
339
  end
335
340
  # rubocop:enable Metrics/ClassLength
336
341
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ccli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nils Rauch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-18 00:00:00.000000000 Z
11
+ date: 2022-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -83,6 +83,7 @@ extensions: []
83
83
  extra_rdoc_files: []
84
84
  files:
85
85
  - ".rubocop.yml"
86
+ - ".tool-versions"
86
87
  - ".travis.yml"
87
88
  - CHANGELOG.md
88
89
  - Gemfile
@@ -132,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
133
  - !ruby/object:Gem::Version
133
134
  version: '0'
134
135
  requirements: []
135
- rubygems_version: 3.1.4
136
+ rubygems_version: 3.0.8
136
137
  signing_key:
137
138
  specification_version: 4
138
139
  summary: Command line client for the opensource password manager Cryptopus