Skip to content

Commit

Permalink
Fix: Fixed merge related changes
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielHougaard committed Aug 29, 2024
1 parent 2a4596d commit 35a63b8
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 13 deletions.
6 changes: 6 additions & 0 deletions cli/packages/models/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ type GetAllSecretsParameters struct {
Recursive bool
}

type InjectableEnvironmentResult struct {
Variables []string
ETag string
SecretsCount int
}

type GetAllFoldersParameters struct {
WorkspaceId string
Environment string
Expand Down
14 changes: 14 additions & 0 deletions cli/packages/util/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"bytes"
"crypto/sha256"
"encoding/base64"
"encoding/hex"
"fmt"
"math/rand"
"os"
Expand Down Expand Up @@ -298,3 +299,16 @@ func GenerateRandomString(length int) string {
}
return string(b)
}

func GenerateETagFromSecrets(secrets []models.SingleEnvironmentVariable) string {
sortedSecrets := SortSecretsByKeys(secrets)
content := []byte{}

for _, secret := range sortedSecrets {
content = append(content, []byte(secret.Key)...)
content = append(content, []byte(secret.Value)...)
}

hash := sha256.Sum256(content)
return fmt.Sprintf(`"%s"`, hex.EncodeToString(hash[:]))
}
50 changes: 37 additions & 13 deletions docs/cli/commands/run.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,20 @@ $ infisical run -- npm run dev
Used to fetch secrets via a [machine identity](/documentation/platform/identities/machine-identities) apposed to logged in credentials. Simply, export this variable in the terminal before running this command.

```bash
# Example
export INFISICAL_TOKEN=$(infisical login --method=universal-auth --client-id=<identity-client-id> --client-secret=<identity-client-secret> --silent --plain) # --plain flag will output only the token, so it can be fed to an environment variable. --silent will disable any update messages.
# Example
export INFISICAL_TOKEN=$(infisical login --method=universal-auth --client-id=<identity-client-id> --client-secret=<identity-client-secret> --silent --plain) # --plain flag will output only the token, so it can be fed to an environment variable. --silent will disable any update messages.
```

<Info>
Alternatively, you may use service tokens.

Please note, however, that service tokens are being deprecated in favor of [machine identities](/documentation/platform/identities/machine-identities). They will be removed in the future in accordance with the deprecation notice and timeline stated [here](https://infisical.com/blog/deprecating-api-keys).

```bash
# Example
export INFISICAL_TOKEN=<service-token>
# Example
export INFISICAL_TOKEN=<service-token>
```

</Info>
</Info>
</Accordion>

<Accordion title="INFISICAL_DISABLE_UPDATE_CHECK">
Expand All @@ -69,22 +69,30 @@ $ infisical run -- npm run dev
To use, simply export this variable in the terminal before running this command.

```bash
# Example
export INFISICAL_DISABLE_UPDATE_CHECK=true
# Example
export INFISICAL_DISABLE_UPDATE_CHECK=true
```

</Accordion>

### Flags

<Accordion title="--project-config-dir">
Explicitly set the directory where the .infisical.json resides. This is useful for some monorepo setups.
<Accordion title="--watch">
By passing the `watch` flag, you are telling the CLI to watch for changes that happen in your Infisical project.
If secret changes happen, the command you provided will automatically be restarted with the new environment variables attached.

```bash
# Example
infisical run --project-config-dir=/some-dir -- printenv
# Example
infisical run --watch -- printenv
```
</Accordion>

<Accordion title="--project-config-dir">
Explicitly set the directory where the .infisical.json resides. This is useful for some monorepo setups.

```bash
# Example
infisical run --project-config-dir=/some-dir -- printenv
```
</Accordion>

<Accordion title="--command">
Expand Down Expand Up @@ -172,3 +180,19 @@ $ infisical run -- npm run dev
</Accordion>

</Accordion>


## Automatically reload command when secrets change

To automatically reload your command when secrets change, use the `--watch` flag.

```bash
infisical run --watch -- npm run dev
```

This will watch for changes in your secrets and automatically restart your command with the new secrets.
When your command restarts, it will have the new environment variables injeceted into it.

<Note>
Please note that this feature is intended for development purposes. It is not recommended to use this in production environments. Generally it's not recommended to automatically reload your application in production when remote changes are made.
</Note>

0 comments on commit 35a63b8

Please sign in to comment.