dotenv-vault 0.4.1 → 0.5.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/Gemfile.lock +3 -3
- data/lib/dotenv-vault/version.rb +1 -1
- data/lib/dotenv-vault.rb +14 -10
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f07ef0e741df42c7269f9d949e3b279bc2e244f030b8d2abd3b1cfd49d707d4f
         | 
| 4 | 
            +
              data.tar.gz: c5ebb287fbd0de6d76ba888aea9fab96763329bcb9db19c86444d2b1e9b6d4ed
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 62a9f140d67de2990e183616d6075dbcabddbef118a3a7b91e85e237d6673b02b0136af95661b0f239d62a3cf217956184c8b4532f04b1aeef60e02878860552
         | 
| 7 | 
            +
              data.tar.gz: d904872c3b6c27e5dd71a8ed31703fbbe8765e8cf212ebdadba04932b5addf10672284d0d15a816cacdce1607c45d9048b7bdac1ee8e83a1402d7e03b8f3d26d
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,12 +1,12 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                dotenv-vault (0. | 
| 4 | 
            +
                dotenv-vault (0.5.0)
         | 
| 5 5 | 
             
                  dotenv
         | 
| 6 6 | 
             
                  lockbox
         | 
| 7 | 
            -
                dotenv-vault-rails (0. | 
| 7 | 
            +
                dotenv-vault-rails (0.5.0)
         | 
| 8 8 | 
             
                  dotenv-rails
         | 
| 9 | 
            -
                  dotenv-vault (= 0. | 
| 9 | 
            +
                  dotenv-vault (= 0.5.0)
         | 
| 10 10 |  | 
| 11 11 | 
             
            GEM
         | 
| 12 12 | 
             
              remote: https://rubygems.org/
         | 
    
        data/lib/dotenv-vault/version.rb
    CHANGED
    
    
    
        data/lib/dotenv-vault.rb
    CHANGED
    
    | @@ -105,9 +105,15 @@ module DotenvVault | |
| 105 105 | 
             
              end
         | 
| 106 106 |  | 
| 107 107 | 
             
              def parse_vault(*filenames)
         | 
| 108 | 
            -
                #  | 
| 108 | 
            +
                # DOTENV_KEY=development/key_1234
         | 
| 109 | 
            +
                #
         | 
| 110 | 
            +
                # Warn the developer unless formatted correctly
         | 
| 109 111 | 
             
                raise NotFoundDotenvKey, "NOT_FOUND_DOTENV_KEY: Cannot find ENV['DOTENV_KEY']" unless present?(ENV["DOTENV_KEY"])
         | 
| 110 | 
            -
                 | 
| 112 | 
            +
                split_dotenv_key = ENV["DOTENV_KEY"].split("/")
         | 
| 113 | 
            +
                environment = split_dotenv_key[0]
         | 
| 114 | 
            +
                raise InvalidDotenvKey, "INVALID_DOTENV_KEY: Missing environment part" unless present?(environment)
         | 
| 115 | 
            +
                key = split_dotenv_key[1]
         | 
| 116 | 
            +
                raise InvalidDotenvKey, "INVALID_DOTENV_KEY: Missing key part" unless present?(key)
         | 
| 111 117 |  | 
| 112 118 | 
             
                # Locate .env.vault
         | 
| 113 119 | 
             
                vault_path = ".env.vault"
         | 
| @@ -117,31 +123,29 @@ module DotenvVault | |
| 117 123 | 
             
                parsed = Dotenv.parse(vault_path)
         | 
| 118 124 |  | 
| 119 125 | 
             
                # Get ciphertext
         | 
| 120 | 
            -
                environment_key = "DOTENV_VAULT_#{ | 
| 126 | 
            +
                environment_key = "DOTENV_VAULT_#{environment.upcase}"
         | 
| 121 127 | 
             
                ciphertext = parsed[environment_key] # DOTENV_VAULT_PRODUCTION
         | 
| 122 128 | 
             
                raise NotFoundDotenvEnvironment, "NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate #{environment_key} in .env.vault" unless ciphertext
         | 
| 123 129 |  | 
| 124 130 | 
             
                # Decrypt ciphertext
         | 
| 125 | 
            -
                decrypted = decrypt(ciphertext)
         | 
| 131 | 
            +
                decrypted = decrypt(ciphertext, key)
         | 
| 126 132 |  | 
| 127 133 | 
             
                # Parse decrypted .env string
         | 
| 128 134 | 
             
                Dotenv::Parser.call(decrypted, true)
         | 
| 129 135 | 
             
              end
         | 
| 130 136 |  | 
| 131 137 | 
             
              def using_vault?
         | 
| 132 | 
            -
                present?(ENV[" | 
| 138 | 
            +
                present?(ENV["DOTENV_KEY"])
         | 
| 133 139 | 
             
              end
         | 
| 134 140 |  | 
| 135 141 | 
             
              def present?(str)
         | 
| 136 142 | 
             
                !(str.nil? || str.empty?)
         | 
| 137 143 | 
             
              end
         | 
| 138 144 |  | 
| 139 | 
            -
              def decrypt(ciphertext)
         | 
| 140 | 
            -
                 | 
| 141 | 
            -
             | 
| 142 | 
            -
                key = ENV["DOTENV_KEY"][-64..-1] # last 64 characters. allows for passing keys with preface like key_*****
         | 
| 145 | 
            +
              def decrypt(ciphertext, key)
         | 
| 146 | 
            +
                key = key[-64..-1] # last 64 characters. allows for passing keys with preface like key_*****
         | 
| 143 147 |  | 
| 144 | 
            -
                raise InvalidDotenvKey, "INVALID_DOTENV_KEY:  | 
| 148 | 
            +
                raise InvalidDotenvKey, "INVALID_DOTENV_KEY: Key part must be 64 characters long (or more)" unless key.bytesize == 64
         | 
| 145 149 |  | 
| 146 150 | 
             
                lockbox = Lockbox.new(key: key, encode: true)
         | 
| 147 151 | 
             
                begin
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: dotenv-vault
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - motdotla
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022-09- | 
| 11 | 
            +
            date: 2022-09-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: dotenv
         |