envkey 1.3.0 → 2.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9a5018a501d4e9a5bf02258fdc732dea2bbeb405
4
- data.tar.gz: 031547f50b2f416441d85501065d8d1dd548d363
2
+ SHA256:
3
+ metadata.gz: 31a9dddd146a8054a368007c2606d116451ce77acb6f970fc2f24c8bca91fb35
4
+ data.tar.gz: 6160ccf2852fbf5496d2ffef2458b14f509676aab18acc4e6e152038fb11e17f
5
5
  SHA512:
6
- metadata.gz: d1f2dfd2a4a1ffcd0bdf1309046a6317fd586c66427a4fabc4b9a4716f081629b7ba621487110e7490601e42a345dd4ffe15b22ea03c158cb0404e1fda895e80
7
- data.tar.gz: 541038a63c0270ad2aadfc4f8c1e4180b14da72a1d41233ab703f49dc784e1740505831ea01f86d4f25f795d13a46ec84d2093620562b38b40f5bd9417374b83
6
+ metadata.gz: b00a9b936aa9abb433c6b85e1aa0dd54980a23f1723acbb5e6f3ba41ef06a0702608432472fc8adb916b92ea4d2022a2ecfa41133f4376b0a5753b559540d9fd
7
+ data.tar.gz: 644976b8eadd5f08a84dd288b3078364db1aeb1924f819d0fb7919c9b616038dca781b5b2e07142b32eb8a7379bbf0e290c3b0bcc7708be494220045c708375e
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ /ext/
1
2
  /.bundle/
2
3
  /.yardoc
3
4
  /Gemfile.lock
@@ -8,4 +9,6 @@
8
9
  /spec/reports/
9
10
  /tmp/
10
11
  *.gem
11
- .byebug_history
12
+ .byebug_history
13
+
14
+ *.version.shasum
data/envkey.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Dane Schneider"]
10
10
  spec.email = ["dane@envkey.com"]
11
11
 
12
- spec.summary = "Envkey secures and simplifies app secrets and config."
12
+ spec.summary = "Envkey secures and simplifies configuration and secrets management."
13
13
  spec.homepage = "https://www.envkey.com"
14
14
  spec.license = "MIT"
15
15
 
@@ -32,6 +32,4 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "bundler", "~> 1.13"
33
33
  spec.add_development_dependency "rake", "~> 10.0"
34
34
  spec.add_development_dependency "rspec", "~> 3.0"
35
-
36
- spec.add_runtime_dependency "dotenv", "~> 2.0"
37
35
  end
data/lib/envkey/core.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'dotenv'
2
1
  require 'set'
3
2
  require 'json'
4
3
  require 'envkey/fetch'
@@ -7,50 +6,28 @@ module Envkey::Core
7
6
 
8
7
  def self.load_env
9
8
  original_env = ENV.to_h
10
- dotenv_vars = Dotenv.parse
11
-
12
- overwrite_dotenv_vars = JSON.parse(ENV["__ENVKEY_DOT_ENV_VARS"] || "[]")
13
9
  overwrite_envkey_vars = JSON.parse(ENV["__ENVKEY_VARS"] || "[]")
14
10
 
15
- updated_dotenv_vars = dotenv_vars.keys.select do |k|
16
- (overwrite_dotenv_vars.include?(k) || original_env[k] == nil)
17
- end
18
- updated_dotenv_vars.each do |k|
19
- ENV[k] = dotenv_vars[k]
20
- end
21
-
22
- key = ENV["ENVKEY"]
23
-
24
- # handle changed ENVKEY
25
- if key && updated_dotenv_vars.include?("ENVKEY") && key != original_env["ENVKEY"]
26
- overwrite_envkey_vars.each {|var| ENV.delete(var) }
27
- end
28
-
29
- if (key = ENV["ENVKEY"])
30
- res = Envkey::Fetch.fetch_env(key)
31
- if res && res.gsub("\n","").gsub("\r", "") != "" && !res.start_with?("error:")
32
- envs = JSON.parse(res)
33
- updated_envkey_vars = []
34
- envs.each do |k,v|
35
- var = k.upcase
36
- if !ENV[var] || overwrite_envkey_vars.include?(var)
37
- updated_envkey_vars << var
38
- ENV[var] = v
39
- end
11
+ res = Envkey::Fetch.fetch_env
12
+ if res && res.gsub("\n","").gsub("\r", "") != "" && !res.start_with?("error:")
13
+ envs = JSON.parse(res)
14
+ updated_envkey_vars = []
15
+ envs.each do |k,v|
16
+ var = k.upcase
17
+ if !ENV[var] || overwrite_envkey_vars.include?(var)
18
+ updated_envkey_vars << var
19
+ ENV[var] = v
40
20
  end
21
+ end
41
22
 
42
- ENV["__ENVKEY_DOT_ENV_VARS"] = updated_dotenv_vars.to_json
43
- ENV["__ENVKEY_VARS"] = updated_envkey_vars.to_json
23
+ ENV["__ENVKEY_VARS"] = updated_envkey_vars.to_json
44
24
 
45
- return updated_dotenv_vars, updated_envkey_vars
46
- elsif res.start_with?("error:")
47
- STDERR.puts "envkey-fetch " + res
48
- raise "ENVKEY invalid. Couldn't load vars."
49
- else
50
- raise "ENVKEY invalid. Couldn't load vars."
51
- end
25
+ return updated_envkey_vars
26
+ elsif res.start_with?("error:")
27
+ STDERR.puts "envkey-source " + res
28
+ raise "ENVKEY invalid. Couldn't load vars."
52
29
  else
53
- raise "ENVKEY missing - must be set as an environment variable or in a gitignored .env file in the root of your project. Go to https://www.envkey.com if you don't know what an ENVKEY is."
30
+ raise "ENVKEY invalid. Couldn't load vars."
54
31
  end
55
32
  end
56
33
 
data/lib/envkey/fetch.rb CHANGED
@@ -2,16 +2,20 @@ require 'envkey/platform'
2
2
 
3
3
  module Envkey::Fetch
4
4
 
5
- def self.fetch_env key
5
+ def self.fetch_env
6
6
  fetch_env_path = Envkey::Platform.fetch_env_path
7
- `#{fetch_env_path} #{key}#{is_dev ? ' --cache' : ''} --client-name envkey-ruby --client-version #{Envkey::VERSION} 2>&1`
7
+ `#{fetch_env_path} --json#{should_cache ? ' --cache' : ''} --client-name envkey-ruby --client-version #{Envkey::VERSION} 2>&1`
8
+ end
9
+
10
+ def self.should_cache
11
+ is_dev || ENV["ENVKEY_SHOULD_CACHE"]
8
12
  end
9
13
 
10
14
  def self.is_dev
11
15
  dev_vals = %w(development test)
12
16
  dev_vals.include?(ENV["RAILS_ENV"]) ||
13
17
  dev_vals.include?(ENV["RACK_ENV"]) ||
14
- (ENV["RAILS_ENV"].nil? && ENV["RACK_ENV"].nil? && File.exist?(".env"))
18
+ (ENV["RAILS_ENV"].nil? && ENV["RACK_ENV"].nil?)
15
19
  end
16
20
 
17
21
  end
@@ -21,7 +21,7 @@ module Envkey::Platform
21
21
  "x86"
22
22
  when /ppc|powerpc/
23
23
  "powerpc"
24
- when /^arm/
24
+ when /^arm|^aarch/
25
25
  "arm"
26
26
  else
27
27
  cpu
@@ -37,7 +37,7 @@ module Envkey::Platform
37
37
  end
38
38
 
39
39
  def self.arch_part
40
- if platform_part == "darwin" && ARCH == "arm"
40
+ if (platform_part == "darwin" || platform_part == "linux") && ARCH == "arm"
41
41
  "arm64"
42
42
  elsif ARCH == "x86_64"
43
43
  "amd64"
@@ -51,11 +51,11 @@ module Envkey::Platform
51
51
  end
52
52
 
53
53
  def self.fetch_env_path
54
- File.expand_path("../../ext/#{lib_file_dir}/envkey-fetch#{ext}", File.dirname(__FILE__))
54
+ File.expand_path("../../ext/#{lib_file_dir}/envkey-source#{ext}", File.dirname(__FILE__))
55
55
  end
56
56
 
57
57
  def self.lib_file_dir
58
- ["envkey-fetch", Envkey::ENVKEY_FETCH_VERSION.to_s, platform_part, arch_part].join("_")
58
+ ["envkey-source", Envkey::ENVKEY_SOURCE_VERSION.to_s, platform_part, arch_part].join("_")
59
59
  end
60
60
 
61
- end
61
+ end
@@ -1,4 +1,4 @@
1
1
  module Envkey
2
- VERSION = "1.3.0"
3
- ENVKEY_FETCH_VERSION="1.2.9"
2
+ VERSION = "2.0.5"
3
+ ENVKEY_SOURCE_VERSION = "2.0.20"
4
4
  end
@@ -0,0 +1 @@
1
+ 2.0.5
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envkey
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dane Schneider
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-05 00:00:00.000000000 Z
11
+ date: 2022-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,21 +52,7 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: dotenv
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.0'
69
- description:
55
+ description:
70
56
  email:
71
57
  - dane@envkey.com
72
58
  executables: []
@@ -78,38 +64,23 @@ files:
78
64
  - ".travis.yml"
79
65
  - Gemfile
80
66
  - LICENSE.txt
81
- - README.md
82
67
  - Rakefile
83
68
  - bin/console
84
69
  - bin/setup
85
70
  - envkey.gemspec
86
- - ext/envkey-fetch_1.2.9_darwin_amd64/LICENSE
87
- - ext/envkey-fetch_1.2.9_darwin_amd64/README.md
88
- - ext/envkey-fetch_1.2.9_darwin_amd64/envkey-fetch
89
- - ext/envkey-fetch_1.2.9_darwin_arm64/LICENSE
90
- - ext/envkey-fetch_1.2.9_darwin_arm64/README.md
91
- - ext/envkey-fetch_1.2.9_darwin_arm64/envkey-fetch
92
- - ext/envkey-fetch_1.2.9_freebsd_amd64/LICENSE
93
- - ext/envkey-fetch_1.2.9_freebsd_amd64/README.md
94
- - ext/envkey-fetch_1.2.9_freebsd_amd64/envkey-fetch
95
- - ext/envkey-fetch_1.2.9_linux_amd64/LICENSE
96
- - ext/envkey-fetch_1.2.9_linux_amd64/README.md
97
- - ext/envkey-fetch_1.2.9_linux_amd64/envkey-fetch
98
- - ext/envkey-fetch_1.2.9_windows_amd64/LICENSE
99
- - ext/envkey-fetch_1.2.9_windows_amd64/README.md
100
- - ext/envkey-fetch_1.2.9_windows_amd64/envkey-fetch.exe
101
71
  - lib/envkey.rb
102
72
  - lib/envkey/core.rb
103
73
  - lib/envkey/fetch.rb
104
74
  - lib/envkey/platform.rb
105
75
  - lib/envkey/rails.rb
106
76
  - lib/envkey/version.rb
77
+ - sdkruby-version.txt
107
78
  homepage: https://www.envkey.com
108
79
  licenses:
109
80
  - MIT
110
81
  metadata:
111
82
  allowed_push_host: https://rubygems.org
112
- post_install_message:
83
+ post_install_message:
113
84
  rdoc_options: []
114
85
  require_paths:
115
86
  - lib
@@ -124,9 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
95
  - !ruby/object:Gem::Version
125
96
  version: '0'
126
97
  requirements: []
127
- rubyforge_project:
128
- rubygems_version: 2.6.14
129
- signing_key:
98
+ rubygems_version: 3.1.2
99
+ signing_key:
130
100
  specification_version: 4
131
- summary: Envkey secures and simplifies app secrets and config.
101
+ summary: Envkey secures and simplifies configuration and secrets management.
132
102
  test_files: []
data/README.md DELETED
@@ -1,86 +0,0 @@
1
- # envkey gem
2
-
3
- Integrate [EnvKey](https://www.envkey.com) with your Ruby or Ruby On Rails projects to keep api keys, credentials, and other configuration securely and automatically in sync for developers and servers.
4
-
5
- ## Installation
6
-
7
- In your Gemfile:
8
-
9
- ```ruby
10
- gem 'envkey'
11
- ```
12
-
13
- If you're using Rails, that's all you need. In plain Ruby, you need to require envkey at the entry point of your application.
14
-
15
- ```ruby
16
- require 'envkey'
17
- ```
18
-
19
- ## Usage
20
-
21
- Generate an `ENVKEY` in the [EnvKey App](https://github.com/envkey/envkey-app). Then set `ENVKEY=...`, either in a gitignored `.env` file in the root of your project (in development) or in an environment variable (on servers).
22
-
23
- Now all your EnvKey variables will be available on `ENV`.
24
-
25
- ### Errors
26
-
27
- The gem will throw an error if an `ENVKEY` is missing or invalid.
28
-
29
- ### Example
30
-
31
- Assume you have `STRIPE_SECRET_KEY` set to `sk_test_2a33b045e998d2ef60c7861d2ac22ea8` for the `development` environment in the EnvKey App. You generate a local development `ENVKEY`.
32
-
33
- In your project's **gitignored** `.env` file:
34
-
35
- ```bash
36
- # .env
37
- ENVKEY=GsL8zC74DWchdpvssa9z-nk7humd7hJmAqNoA
38
- ```
39
-
40
- In `config/initializers/stripe.rb`:
41
-
42
- ```ruby
43
- Stripe.api_key = ENV.fetch("STRIPE_SECRET_KEY")
44
- ```
45
-
46
- Now `STRIPE_SECRET_KEY` will stay automatically in sync for all the developers on your team.
47
-
48
- For a server, generate a server `ENVKEY` in the EnvKey App, then set the `ENVKEY` as an environment variable instead of putting it in a `.env` file.
49
-
50
- Now your servers will stay in sync as well. If you need to rotate your `STRIPE_SECRET_KEY` you can do it in a few seconds in the EnvKey App, restart your servers, and you're good to go. All your team's developers and all your servers will have the new value.
51
-
52
- ### Overriding Vars
53
-
54
- The envkey gem will not overwrite existing environment variables or additional variables set in a `.env` file. This can be convenient for customizing environments that otherwise share the same configuration. You can also use [sub-environments](https://blog.envkey.com/development-staging-production-and-beyond-85f26f65edd6) in the EnvKey app for this purpose.
55
-
56
- ### Working Offline
57
-
58
- The envkey gem caches your encrypted config in development so that you can still use it while offline. Your config will still be available (though possibly not up-to-date) the next time you lose your internet connection. If you do have a connection available, envkey will always load the latest config. Your cached encrypted config is stored in `$HOME/.envkey/cache`
59
-
60
- For caching purposes, the gem assumes you're in development mode if either `ENV["RAILS_ENV"]` or `ENV["RACK_ENV"]` is `"development"` or `"test"`. If you aren't using Rails or Rack, then it's assumed you're in development mode when a `.env` file exists in the root of your project.
61
-
62
- ## envkey-fetch binaries
63
-
64
- If you look in the `ext` directory of this gem, you'll find a number of `envkey-fetch` binaries for various platforms and architectures. These are output by the [envkey-fetch Go library](https://github.com/envkey/envkey-fetch). It contains EnvKey's core cross-platform fetching, decryption, verification, web of trust, redundancy, and caching logic. It is completely open source.
65
-
66
- ## x509 error / ca-certificates
67
-
68
- On a stripped down OS like Alpine Linux, you may get an `x509: certificate signed by unknown authority` error when the envkey gem attempts to load your config. [envkey-fetch](https://github.com/envkey/envkey-fetch) tries to handle this by including its own set of trusted CAs via [gocertifi](https://github.com/certifi/gocertifi), but if you're getting this error anyway, you can fix it by ensuring that the `ca-certificates` dependency is installed. On Alpine you'll want to run:
69
- ```
70
- apk add --no-cache ca-certificates
71
- ```
72
-
73
- ## Further Reading
74
-
75
- For more on EnvKey in general:
76
-
77
- Read the [docs](https://docs.envkey.com).
78
-
79
- Read the [integration quickstart](https://docs.envkey.com/integration-quickstart.html).
80
-
81
- Read the [security and cryptography overview](https://security.envkey.com).
82
-
83
- ## Need help? Have questions, feedback, or ideas?
84
-
85
- Post an [issue](https://github.com/envkey/envkey-ruby/issues) or email us: [support@envkey.com](mailto:support@envkey.com).
86
-
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright © 2021 Envkey Inc. <support@envkey.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,97 +0,0 @@
1
- # envkey-fetch
2
-
3
- This library contains [EnvKey](https://www.envkey.com)'s core cross-platform fetching, decryption, verification, web of trust, redundancy, and caching logic. It accepts an `ENVKEY` generated by the [EnvKey App](https://www.github.com/envkey/envkey-app) and returns decrypted configuration for a specific app environment as json.
4
-
5
- It is used by EnvKey's various Client Libraries, including [envkey-source](https://github.com/envkey/envkey-source) for bash, [envkey-ruby](https://github.com/envkey/envkey-ruby) for Ruby and Rails, [envkey-python](https://github.com/envkey/envkey-python) for Python, [envkey-node](https://github.com/envkey/envkey-node) for Node.js, and [envkeygo](https://github.com/envkey/envkeygo) for Go.
6
-
7
- If you want to build an EnvKey library in a language that isn't yet officially supported, build some other type of integration, or simply play around with EnvKey on the command line, envkey-fetch is the library for you. If you just want to integrate EnvKey with your project, check out one of the aforementioned higher level libraries.
8
-
9
- ## Installation
10
-
11
- envkey-fetch compiles into a simple static binary with no dependencies, which makes installation a simple matter of fetching the right binary for your platform and putting it in your `PATH`. An `install.sh` script is available to simplify this, as well as a [homebrew tap](https://github.com/envkey/homebrew-envkey)..
12
-
13
- **Install via bash:**
14
-
15
- ```bash
16
- curl -s https://raw.githubusercontent.com/envkey/envkey-fetch/master/install.sh | bash
17
- ```
18
-
19
- **Install manually:**
20
-
21
- Find the [release](https://github.com/envkey/envkey-fetch/releases) for your platform and architecture, and stick the appropriate binary somewhere in your `PATH` (or wherever you like really).
22
-
23
- **Install from source:**
24
-
25
- With Go installed, clone the project into your `GOPATH`. `cd` into the directory and run `go get` and `go build`.
26
-
27
- **Cross-compile from source:**
28
-
29
- To compile cross-platform binaries, make sure Go is installed, then install [goreleaser](https://goreleaser.com/) - follow instructions in the docs to do so.
30
-
31
- Then to cross-compile, run:
32
-
33
- `goreleaser`
34
-
35
- Binaries for each platform will be output to the `dist` folder.
36
-
37
- ## Usage
38
-
39
- ```bash
40
- envkey-fetch YOUR-ENVKEY [flags]
41
- ```
42
-
43
- This will either write your the app environment's configuration associated with your `ENVKEY` as json to stdout or write an error message beginning with `error:` to stdout.
44
-
45
- ### Example json output
46
-
47
- ```json
48
- {"TEST":"it","TEST_2":"works!"}
49
- ```
50
-
51
- ### Example error output
52
-
53
- ```text
54
- error: ENVKEY invalid
55
- ```
56
-
57
- ### Flags
58
-
59
- ```text
60
- --cache cache encrypted config as a local backup (default is false)
61
- --cache-dir string cache directory (default is $HOME/.envkey/cache)
62
- --client-name string calling client library name (default is none)
63
- --client-version string calling client library version (default is none)
64
- -h, --help help for envkey-fetch
65
- --retries uint8 number of times to retry requests on failure (default 3)
66
- --retryBackoff float retry backoff factor: {retryBackoff} * (2 ^ {retries - 1}) (default 1)
67
- --timeout float timeout in seconds for http requests (default 10)
68
- --verbose print verbose output (default is false)
69
- -v, --version prints the version
70
- ```
71
-
72
- ## x509 error / ca-certificates
73
-
74
- On a stripped down OS like Alpine Linux, you may get an `x509: certificate signed by unknown authority` error when `envkey-fetch` attempts to load your config. `envkey-fetch` tries to handle this by including its own set of trusted CAs via [gocertifi](https://github.com/certifi/gocertifi), but if you're getting this error anyway, you can fix it by ensuring that the `ca-certificates` dependency is installed. On Alpine you'll want to run:
75
- ```
76
- apk add --no-cache ca-certificates
77
- ```
78
-
79
- ## Further Reading
80
-
81
- For more on EnvKey in general:
82
-
83
- Read the [docs](https://docs.envkey.com).
84
-
85
- Read the [integration quickstart](https://docs.envkey.com/integration-quickstart.html).
86
-
87
- Read the [security and cryptography overview](https://security.envkey.com).
88
-
89
- ## Need help? Have questions, feedback, or ideas?
90
-
91
- Post an [issue](https://github.com/envkey/envkey-fetch/issues) or email us: [support@envkey.com](mailto:support@envkey.com).
92
-
93
-
94
-
95
-
96
-
97
-
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright © 2021 Envkey Inc. <support@envkey.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,97 +0,0 @@
1
- # envkey-fetch
2
-
3
- This library contains [EnvKey](https://www.envkey.com)'s core cross-platform fetching, decryption, verification, web of trust, redundancy, and caching logic. It accepts an `ENVKEY` generated by the [EnvKey App](https://www.github.com/envkey/envkey-app) and returns decrypted configuration for a specific app environment as json.
4
-
5
- It is used by EnvKey's various Client Libraries, including [envkey-source](https://github.com/envkey/envkey-source) for bash, [envkey-ruby](https://github.com/envkey/envkey-ruby) for Ruby and Rails, [envkey-python](https://github.com/envkey/envkey-python) for Python, [envkey-node](https://github.com/envkey/envkey-node) for Node.js, and [envkeygo](https://github.com/envkey/envkeygo) for Go.
6
-
7
- If you want to build an EnvKey library in a language that isn't yet officially supported, build some other type of integration, or simply play around with EnvKey on the command line, envkey-fetch is the library for you. If you just want to integrate EnvKey with your project, check out one of the aforementioned higher level libraries.
8
-
9
- ## Installation
10
-
11
- envkey-fetch compiles into a simple static binary with no dependencies, which makes installation a simple matter of fetching the right binary for your platform and putting it in your `PATH`. An `install.sh` script is available to simplify this, as well as a [homebrew tap](https://github.com/envkey/homebrew-envkey)..
12
-
13
- **Install via bash:**
14
-
15
- ```bash
16
- curl -s https://raw.githubusercontent.com/envkey/envkey-fetch/master/install.sh | bash
17
- ```
18
-
19
- **Install manually:**
20
-
21
- Find the [release](https://github.com/envkey/envkey-fetch/releases) for your platform and architecture, and stick the appropriate binary somewhere in your `PATH` (or wherever you like really).
22
-
23
- **Install from source:**
24
-
25
- With Go installed, clone the project into your `GOPATH`. `cd` into the directory and run `go get` and `go build`.
26
-
27
- **Cross-compile from source:**
28
-
29
- To compile cross-platform binaries, make sure Go is installed, then install [goreleaser](https://goreleaser.com/) - follow instructions in the docs to do so.
30
-
31
- Then to cross-compile, run:
32
-
33
- `goreleaser`
34
-
35
- Binaries for each platform will be output to the `dist` folder.
36
-
37
- ## Usage
38
-
39
- ```bash
40
- envkey-fetch YOUR-ENVKEY [flags]
41
- ```
42
-
43
- This will either write your the app environment's configuration associated with your `ENVKEY` as json to stdout or write an error message beginning with `error:` to stdout.
44
-
45
- ### Example json output
46
-
47
- ```json
48
- {"TEST":"it","TEST_2":"works!"}
49
- ```
50
-
51
- ### Example error output
52
-
53
- ```text
54
- error: ENVKEY invalid
55
- ```
56
-
57
- ### Flags
58
-
59
- ```text
60
- --cache cache encrypted config as a local backup (default is false)
61
- --cache-dir string cache directory (default is $HOME/.envkey/cache)
62
- --client-name string calling client library name (default is none)
63
- --client-version string calling client library version (default is none)
64
- -h, --help help for envkey-fetch
65
- --retries uint8 number of times to retry requests on failure (default 3)
66
- --retryBackoff float retry backoff factor: {retryBackoff} * (2 ^ {retries - 1}) (default 1)
67
- --timeout float timeout in seconds for http requests (default 10)
68
- --verbose print verbose output (default is false)
69
- -v, --version prints the version
70
- ```
71
-
72
- ## x509 error / ca-certificates
73
-
74
- On a stripped down OS like Alpine Linux, you may get an `x509: certificate signed by unknown authority` error when `envkey-fetch` attempts to load your config. `envkey-fetch` tries to handle this by including its own set of trusted CAs via [gocertifi](https://github.com/certifi/gocertifi), but if you're getting this error anyway, you can fix it by ensuring that the `ca-certificates` dependency is installed. On Alpine you'll want to run:
75
- ```
76
- apk add --no-cache ca-certificates
77
- ```
78
-
79
- ## Further Reading
80
-
81
- For more on EnvKey in general:
82
-
83
- Read the [docs](https://docs.envkey.com).
84
-
85
- Read the [integration quickstart](https://docs.envkey.com/integration-quickstart.html).
86
-
87
- Read the [security and cryptography overview](https://security.envkey.com).
88
-
89
- ## Need help? Have questions, feedback, or ideas?
90
-
91
- Post an [issue](https://github.com/envkey/envkey-fetch/issues) or email us: [support@envkey.com](mailto:support@envkey.com).
92
-
93
-
94
-
95
-
96
-
97
-
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright © 2021 Envkey Inc. <support@envkey.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,97 +0,0 @@
1
- # envkey-fetch
2
-
3
- This library contains [EnvKey](https://www.envkey.com)'s core cross-platform fetching, decryption, verification, web of trust, redundancy, and caching logic. It accepts an `ENVKEY` generated by the [EnvKey App](https://www.github.com/envkey/envkey-app) and returns decrypted configuration for a specific app environment as json.
4
-
5
- It is used by EnvKey's various Client Libraries, including [envkey-source](https://github.com/envkey/envkey-source) for bash, [envkey-ruby](https://github.com/envkey/envkey-ruby) for Ruby and Rails, [envkey-python](https://github.com/envkey/envkey-python) for Python, [envkey-node](https://github.com/envkey/envkey-node) for Node.js, and [envkeygo](https://github.com/envkey/envkeygo) for Go.
6
-
7
- If you want to build an EnvKey library in a language that isn't yet officially supported, build some other type of integration, or simply play around with EnvKey on the command line, envkey-fetch is the library for you. If you just want to integrate EnvKey with your project, check out one of the aforementioned higher level libraries.
8
-
9
- ## Installation
10
-
11
- envkey-fetch compiles into a simple static binary with no dependencies, which makes installation a simple matter of fetching the right binary for your platform and putting it in your `PATH`. An `install.sh` script is available to simplify this, as well as a [homebrew tap](https://github.com/envkey/homebrew-envkey)..
12
-
13
- **Install via bash:**
14
-
15
- ```bash
16
- curl -s https://raw.githubusercontent.com/envkey/envkey-fetch/master/install.sh | bash
17
- ```
18
-
19
- **Install manually:**
20
-
21
- Find the [release](https://github.com/envkey/envkey-fetch/releases) for your platform and architecture, and stick the appropriate binary somewhere in your `PATH` (or wherever you like really).
22
-
23
- **Install from source:**
24
-
25
- With Go installed, clone the project into your `GOPATH`. `cd` into the directory and run `go get` and `go build`.
26
-
27
- **Cross-compile from source:**
28
-
29
- To compile cross-platform binaries, make sure Go is installed, then install [goreleaser](https://goreleaser.com/) - follow instructions in the docs to do so.
30
-
31
- Then to cross-compile, run:
32
-
33
- `goreleaser`
34
-
35
- Binaries for each platform will be output to the `dist` folder.
36
-
37
- ## Usage
38
-
39
- ```bash
40
- envkey-fetch YOUR-ENVKEY [flags]
41
- ```
42
-
43
- This will either write your the app environment's configuration associated with your `ENVKEY` as json to stdout or write an error message beginning with `error:` to stdout.
44
-
45
- ### Example json output
46
-
47
- ```json
48
- {"TEST":"it","TEST_2":"works!"}
49
- ```
50
-
51
- ### Example error output
52
-
53
- ```text
54
- error: ENVKEY invalid
55
- ```
56
-
57
- ### Flags
58
-
59
- ```text
60
- --cache cache encrypted config as a local backup (default is false)
61
- --cache-dir string cache directory (default is $HOME/.envkey/cache)
62
- --client-name string calling client library name (default is none)
63
- --client-version string calling client library version (default is none)
64
- -h, --help help for envkey-fetch
65
- --retries uint8 number of times to retry requests on failure (default 3)
66
- --retryBackoff float retry backoff factor: {retryBackoff} * (2 ^ {retries - 1}) (default 1)
67
- --timeout float timeout in seconds for http requests (default 10)
68
- --verbose print verbose output (default is false)
69
- -v, --version prints the version
70
- ```
71
-
72
- ## x509 error / ca-certificates
73
-
74
- On a stripped down OS like Alpine Linux, you may get an `x509: certificate signed by unknown authority` error when `envkey-fetch` attempts to load your config. `envkey-fetch` tries to handle this by including its own set of trusted CAs via [gocertifi](https://github.com/certifi/gocertifi), but if you're getting this error anyway, you can fix it by ensuring that the `ca-certificates` dependency is installed. On Alpine you'll want to run:
75
- ```
76
- apk add --no-cache ca-certificates
77
- ```
78
-
79
- ## Further Reading
80
-
81
- For more on EnvKey in general:
82
-
83
- Read the [docs](https://docs.envkey.com).
84
-
85
- Read the [integration quickstart](https://docs.envkey.com/integration-quickstart.html).
86
-
87
- Read the [security and cryptography overview](https://security.envkey.com).
88
-
89
- ## Need help? Have questions, feedback, or ideas?
90
-
91
- Post an [issue](https://github.com/envkey/envkey-fetch/issues) or email us: [support@envkey.com](mailto:support@envkey.com).
92
-
93
-
94
-
95
-
96
-
97
-
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright © 2021 Envkey Inc. <support@envkey.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,97 +0,0 @@
1
- # envkey-fetch
2
-
3
- This library contains [EnvKey](https://www.envkey.com)'s core cross-platform fetching, decryption, verification, web of trust, redundancy, and caching logic. It accepts an `ENVKEY` generated by the [EnvKey App](https://www.github.com/envkey/envkey-app) and returns decrypted configuration for a specific app environment as json.
4
-
5
- It is used by EnvKey's various Client Libraries, including [envkey-source](https://github.com/envkey/envkey-source) for bash, [envkey-ruby](https://github.com/envkey/envkey-ruby) for Ruby and Rails, [envkey-python](https://github.com/envkey/envkey-python) for Python, [envkey-node](https://github.com/envkey/envkey-node) for Node.js, and [envkeygo](https://github.com/envkey/envkeygo) for Go.
6
-
7
- If you want to build an EnvKey library in a language that isn't yet officially supported, build some other type of integration, or simply play around with EnvKey on the command line, envkey-fetch is the library for you. If you just want to integrate EnvKey with your project, check out one of the aforementioned higher level libraries.
8
-
9
- ## Installation
10
-
11
- envkey-fetch compiles into a simple static binary with no dependencies, which makes installation a simple matter of fetching the right binary for your platform and putting it in your `PATH`. An `install.sh` script is available to simplify this, as well as a [homebrew tap](https://github.com/envkey/homebrew-envkey)..
12
-
13
- **Install via bash:**
14
-
15
- ```bash
16
- curl -s https://raw.githubusercontent.com/envkey/envkey-fetch/master/install.sh | bash
17
- ```
18
-
19
- **Install manually:**
20
-
21
- Find the [release](https://github.com/envkey/envkey-fetch/releases) for your platform and architecture, and stick the appropriate binary somewhere in your `PATH` (or wherever you like really).
22
-
23
- **Install from source:**
24
-
25
- With Go installed, clone the project into your `GOPATH`. `cd` into the directory and run `go get` and `go build`.
26
-
27
- **Cross-compile from source:**
28
-
29
- To compile cross-platform binaries, make sure Go is installed, then install [goreleaser](https://goreleaser.com/) - follow instructions in the docs to do so.
30
-
31
- Then to cross-compile, run:
32
-
33
- `goreleaser`
34
-
35
- Binaries for each platform will be output to the `dist` folder.
36
-
37
- ## Usage
38
-
39
- ```bash
40
- envkey-fetch YOUR-ENVKEY [flags]
41
- ```
42
-
43
- This will either write your the app environment's configuration associated with your `ENVKEY` as json to stdout or write an error message beginning with `error:` to stdout.
44
-
45
- ### Example json output
46
-
47
- ```json
48
- {"TEST":"it","TEST_2":"works!"}
49
- ```
50
-
51
- ### Example error output
52
-
53
- ```text
54
- error: ENVKEY invalid
55
- ```
56
-
57
- ### Flags
58
-
59
- ```text
60
- --cache cache encrypted config as a local backup (default is false)
61
- --cache-dir string cache directory (default is $HOME/.envkey/cache)
62
- --client-name string calling client library name (default is none)
63
- --client-version string calling client library version (default is none)
64
- -h, --help help for envkey-fetch
65
- --retries uint8 number of times to retry requests on failure (default 3)
66
- --retryBackoff float retry backoff factor: {retryBackoff} * (2 ^ {retries - 1}) (default 1)
67
- --timeout float timeout in seconds for http requests (default 10)
68
- --verbose print verbose output (default is false)
69
- -v, --version prints the version
70
- ```
71
-
72
- ## x509 error / ca-certificates
73
-
74
- On a stripped down OS like Alpine Linux, you may get an `x509: certificate signed by unknown authority` error when `envkey-fetch` attempts to load your config. `envkey-fetch` tries to handle this by including its own set of trusted CAs via [gocertifi](https://github.com/certifi/gocertifi), but if you're getting this error anyway, you can fix it by ensuring that the `ca-certificates` dependency is installed. On Alpine you'll want to run:
75
- ```
76
- apk add --no-cache ca-certificates
77
- ```
78
-
79
- ## Further Reading
80
-
81
- For more on EnvKey in general:
82
-
83
- Read the [docs](https://docs.envkey.com).
84
-
85
- Read the [integration quickstart](https://docs.envkey.com/integration-quickstart.html).
86
-
87
- Read the [security and cryptography overview](https://security.envkey.com).
88
-
89
- ## Need help? Have questions, feedback, or ideas?
90
-
91
- Post an [issue](https://github.com/envkey/envkey-fetch/issues) or email us: [support@envkey.com](mailto:support@envkey.com).
92
-
93
-
94
-
95
-
96
-
97
-
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright © 2021 Envkey Inc. <support@envkey.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,97 +0,0 @@
1
- # envkey-fetch
2
-
3
- This library contains [EnvKey](https://www.envkey.com)'s core cross-platform fetching, decryption, verification, web of trust, redundancy, and caching logic. It accepts an `ENVKEY` generated by the [EnvKey App](https://www.github.com/envkey/envkey-app) and returns decrypted configuration for a specific app environment as json.
4
-
5
- It is used by EnvKey's various Client Libraries, including [envkey-source](https://github.com/envkey/envkey-source) for bash, [envkey-ruby](https://github.com/envkey/envkey-ruby) for Ruby and Rails, [envkey-python](https://github.com/envkey/envkey-python) for Python, [envkey-node](https://github.com/envkey/envkey-node) for Node.js, and [envkeygo](https://github.com/envkey/envkeygo) for Go.
6
-
7
- If you want to build an EnvKey library in a language that isn't yet officially supported, build some other type of integration, or simply play around with EnvKey on the command line, envkey-fetch is the library for you. If you just want to integrate EnvKey with your project, check out one of the aforementioned higher level libraries.
8
-
9
- ## Installation
10
-
11
- envkey-fetch compiles into a simple static binary with no dependencies, which makes installation a simple matter of fetching the right binary for your platform and putting it in your `PATH`. An `install.sh` script is available to simplify this, as well as a [homebrew tap](https://github.com/envkey/homebrew-envkey)..
12
-
13
- **Install via bash:**
14
-
15
- ```bash
16
- curl -s https://raw.githubusercontent.com/envkey/envkey-fetch/master/install.sh | bash
17
- ```
18
-
19
- **Install manually:**
20
-
21
- Find the [release](https://github.com/envkey/envkey-fetch/releases) for your platform and architecture, and stick the appropriate binary somewhere in your `PATH` (or wherever you like really).
22
-
23
- **Install from source:**
24
-
25
- With Go installed, clone the project into your `GOPATH`. `cd` into the directory and run `go get` and `go build`.
26
-
27
- **Cross-compile from source:**
28
-
29
- To compile cross-platform binaries, make sure Go is installed, then install [goreleaser](https://goreleaser.com/) - follow instructions in the docs to do so.
30
-
31
- Then to cross-compile, run:
32
-
33
- `goreleaser`
34
-
35
- Binaries for each platform will be output to the `dist` folder.
36
-
37
- ## Usage
38
-
39
- ```bash
40
- envkey-fetch YOUR-ENVKEY [flags]
41
- ```
42
-
43
- This will either write your the app environment's configuration associated with your `ENVKEY` as json to stdout or write an error message beginning with `error:` to stdout.
44
-
45
- ### Example json output
46
-
47
- ```json
48
- {"TEST":"it","TEST_2":"works!"}
49
- ```
50
-
51
- ### Example error output
52
-
53
- ```text
54
- error: ENVKEY invalid
55
- ```
56
-
57
- ### Flags
58
-
59
- ```text
60
- --cache cache encrypted config as a local backup (default is false)
61
- --cache-dir string cache directory (default is $HOME/.envkey/cache)
62
- --client-name string calling client library name (default is none)
63
- --client-version string calling client library version (default is none)
64
- -h, --help help for envkey-fetch
65
- --retries uint8 number of times to retry requests on failure (default 3)
66
- --retryBackoff float retry backoff factor: {retryBackoff} * (2 ^ {retries - 1}) (default 1)
67
- --timeout float timeout in seconds for http requests (default 10)
68
- --verbose print verbose output (default is false)
69
- -v, --version prints the version
70
- ```
71
-
72
- ## x509 error / ca-certificates
73
-
74
- On a stripped down OS like Alpine Linux, you may get an `x509: certificate signed by unknown authority` error when `envkey-fetch` attempts to load your config. `envkey-fetch` tries to handle this by including its own set of trusted CAs via [gocertifi](https://github.com/certifi/gocertifi), but if you're getting this error anyway, you can fix it by ensuring that the `ca-certificates` dependency is installed. On Alpine you'll want to run:
75
- ```
76
- apk add --no-cache ca-certificates
77
- ```
78
-
79
- ## Further Reading
80
-
81
- For more on EnvKey in general:
82
-
83
- Read the [docs](https://docs.envkey.com).
84
-
85
- Read the [integration quickstart](https://docs.envkey.com/integration-quickstart.html).
86
-
87
- Read the [security and cryptography overview](https://security.envkey.com).
88
-
89
- ## Need help? Have questions, feedback, or ideas?
90
-
91
- Post an [issue](https://github.com/envkey/envkey-fetch/issues) or email us: [support@envkey.com](mailto:support@envkey.com).
92
-
93
-
94
-
95
-
96
-
97
-