diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 37d3cb1b..57ff876d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,7 +83,7 @@ jobs: if [ "$GOOS" = "windows" ]; then output="${output}.exe" fi - go build -trimpath -ldflags "-s -w -X github.com/ghostable-dev/ghostable/internal/app.version=ci" -o "$output" ./cmd/ghostable + go build -trimpath -ldflags "-s -w -X github.com/ghostable-dev/ghostable/v3/internal/app.version=ci" -o "$output" ./cmd/ghostable native-platform-smoke: runs-on: ${{ matrix.os }} @@ -122,7 +122,7 @@ jobs: binary="${binary}.exe" fi - go build -trimpath -ldflags "-s -w -X github.com/ghostable-dev/ghostable/internal/app.version=ci" -o "$binary" ./cmd/ghostable + go build -trimpath -ldflags "-s -w -X github.com/ghostable-dev/ghostable/v3/internal/app.version=ci" -o "$binary" ./cmd/ghostable "$binary" --help "$binary" version diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 417ba8f5..8d00ff46 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -25,7 +25,7 @@ builds: flags: - -trimpath ldflags: - - -s -w -X github.com/ghostable-dev/ghostable/internal/app.version={{ .Version }} + - -s -w -X github.com/ghostable-dev/ghostable/v3/internal/app.version={{ .Version }} archives: - id: ghostable @@ -86,9 +86,12 @@ release: github: owner: ghostable-dev name: ghostable + name_template: "{{ .Tag }} Release" + prerelease: auto + make_latest: '{{ if .Prerelease }}false{{ else }}true{{ end }}' npms: - - name: "@ghostable/beta" + - name: "@ghostable/cli" ids: - ghostable-npm description: "Local-first encrypted environment management CLI" @@ -105,7 +108,7 @@ npms: repository: "https://github.com/ghostable-dev/ghostable" bugs: "https://github.com/ghostable-dev/ghostable/issues" access: public - tag: latest + tag: '{{ if .Prerelease }}next{{ else }}latest{{ end }}' format: tar.gz disable: '{{ not (isEnvSet "NPM_TOKEN") }}' @@ -127,3 +130,4 @@ homebrew_casks: name: ghostable-release-bot email: release-bot@ghostable.dev commit_msg_template: "Update ghostable Homebrew cask to {{ .Tag }}" + skip_upload: auto diff --git a/README.md b/README.md index 634bacf7..9a6fc5bf 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ [![Release](https://img.shields.io/github/v/release/ghostable-dev/ghostable?sort=semver)](https://github.com/ghostable-dev/ghostable/releases/latest) [![Downloads](https://img.shields.io/github/downloads/ghostable-dev/ghostable/total?label=downloads)](https://github.com/ghostable-dev/ghostable/releases) -[![npm](https://img.shields.io/npm/v/@ghostable/beta?label=npm)](https://www.npmjs.com/package/@ghostable/beta) -[![npm downloads](https://img.shields.io/npm/dm/@ghostable/beta?label=npm%20downloads)](https://www.npmjs.com/package/@ghostable/beta) +[![npm](https://img.shields.io/npm/v/@ghostable/cli?label=npm)](https://www.npmjs.com/package/@ghostable/cli) +[![npm downloads](https://img.shields.io/npm/dm/@ghostable/cli?label=npm%20downloads)](https://www.npmjs.com/package/@ghostable/cli) [![CI](https://img.shields.io/github/actions/workflow/status/ghostable-dev/ghostable/ci.yml?branch=main&label=ci)](https://github.com/ghostable-dev/ghostable/actions/workflows/ci.yml) [![License](https://img.shields.io/github/license/ghostable-dev/ghostable)](LICENSE) [![macOS](https://img.shields.io/badge/macOS-signed%20%26%20notarized-2ea44f)](https://github.com/ghostable-dev/ghostable/releases/latest) @@ -21,8 +21,8 @@ file-backed identity store otherwise. ## Security Status -Ghostable is beta security software and has not completed an external security -audit. The repository includes a public [security policy](SECURITY.md), a +Ghostable has not completed an external security audit. The repository includes +a public [security policy](SECURITY.md), a [threat model](docs/security/threat-model.md), and stable [test vectors](docs/security/test-vectors.md) so developers can inspect the claims and reproduce the critical cryptographic checks. @@ -49,12 +49,18 @@ brew install --cask ghostable Node/npm projects: ```sh -npm install @ghostable/beta +npm install @ghostable/cli ``` This installs a project-local `ghostable` binary at `node_modules/.bin/ghostable`. +When available, release candidates use npm's `next` tag: + +```sh +npm install @ghostable/cli@next +``` + Other platforms can download the matching archive from the [latest release](https://github.com/ghostable-dev/ghostable/releases/latest) and put the `ghostable` binary on `PATH`. diff --git a/SECURITY.md b/SECURITY.md index 54402e1f..abaaafc9 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -15,7 +15,7 @@ restrictive file-backed identity store otherwise. ## Security Status -Ghostable is beta software and has not completed an external security audit. +Ghostable has not completed an external security audit. The current assurance evidence is repository-visible: focused security tests, documented test vectors, and the public threat model in `docs/security/threat-model.md`. Do not treat the current release as formally diff --git a/cmd/ghostable/main.go b/cmd/ghostable/main.go index 09cb3cf9..ba4c82f4 100644 --- a/cmd/ghostable/main.go +++ b/cmd/ghostable/main.go @@ -3,7 +3,7 @@ package main import ( "os" - "github.com/ghostable-dev/ghostable/internal/app" + "github.com/ghostable-dev/ghostable/v3/internal/app" ) func main() { diff --git a/docs/security/test-vectors.md b/docs/security/test-vectors.md index a1c5555e..de863ccc 100644 --- a/docs/security/test-vectors.md +++ b/docs/security/test-vectors.md @@ -2,7 +2,7 @@ The fixture file `docs/security/test-vectors.json` contains deterministic vectors for security-sensitive compatibility checks. These vectors are public -evidence for developers reviewing the beta security design; they are not an +evidence for developers reviewing the security design; they are not an external audit. The vectors cover: diff --git a/docs/security/threat-model.md b/docs/security/threat-model.md index 65b6da42..bb0a63e4 100644 --- a/docs/security/threat-model.md +++ b/docs/security/threat-model.md @@ -1,6 +1,6 @@ # Ghostable Threat Model -This threat model documents the current beta security design. It is not a +This threat model documents the current security design. It is not a substitute for an external audit. ## Assets diff --git a/go.mod b/go.mod index e6425424..08fff3c7 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/ghostable-dev/ghostable +module github.com/ghostable-dev/ghostable/v3 go 1.25.10 diff --git a/internal/app/adopt.go b/internal/app/adopt.go index 1814b875..bcffe0d6 100644 --- a/internal/app/adopt.go +++ b/internal/app/adopt.go @@ -5,7 +5,7 @@ import ( "io" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/cli" ) type adoptSection struct { diff --git a/internal/app/agent.go b/internal/app/agent.go index ad3923fd..7df82201 100644 --- a/internal/app/agent.go +++ b/internal/app/agent.go @@ -7,8 +7,8 @@ import ( "path/filepath" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) const agentsBlockStart = "" diff --git a/internal/app/agent_test.go b/internal/app/agent_test.go index 48eb5805..b73190a9 100644 --- a/internal/app/agent_test.go +++ b/internal/app/agent_test.go @@ -9,8 +9,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunAccessCreateCreatesToken(t *testing.T) { diff --git a/internal/app/app.go b/internal/app/app.go index dccab09c..0dbdc610 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -12,9 +12,9 @@ import ( "strconv" "strings" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) var version = "dev" diff --git a/internal/app/app_test.go b/internal/app/app_test.go index dc659122..360e540f 100644 --- a/internal/app/app_test.go +++ b/internal/app/app_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" "github.com/manifoldco/promptui" ) diff --git a/internal/app/deploy.go b/internal/app/deploy.go index 2289fb8a..ff87eaf0 100644 --- a/internal/app/deploy.go +++ b/internal/app/deploy.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/cli" ) func (r *Runner) runDeploy(args []string) error { diff --git a/internal/app/deploy_laravel_cloud.go b/internal/app/deploy_laravel_cloud.go index d4dc6bee..110a7926 100644 --- a/internal/app/deploy_laravel_cloud.go +++ b/internal/app/deploy_laravel_cloud.go @@ -9,8 +9,8 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) const cloudCommandTimeout = 2 * time.Minute diff --git a/internal/app/deploy_laravel_forge.go b/internal/app/deploy_laravel_forge.go index b26b8e9b..5930b039 100644 --- a/internal/app/deploy_laravel_forge.go +++ b/internal/app/deploy_laravel_forge.go @@ -9,9 +9,9 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/dotenv" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) const forgeCommandTimeout = 2 * time.Minute diff --git a/internal/app/deploy_laravel_providers_test.go b/internal/app/deploy_laravel_providers_test.go index b9c68224..f24d2e6f 100644 --- a/internal/app/deploy_laravel_providers_test.go +++ b/internal/app/deploy_laravel_providers_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunDeployCloudInvokesLaravelCloudCLI(t *testing.T) { diff --git a/internal/app/deploy_laravel_vapor.go b/internal/app/deploy_laravel_vapor.go index 2b672a55..694afdf0 100644 --- a/internal/app/deploy_laravel_vapor.go +++ b/internal/app/deploy_laravel_vapor.go @@ -11,10 +11,10 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/dotenv" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) const vaporCommandTimeout = 2 * time.Minute diff --git a/internal/app/deploy_laravel_vapor_test.go b/internal/app/deploy_laravel_vapor_test.go index 59f72ff0..19d6c14e 100644 --- a/internal/app/deploy_laravel_vapor_test.go +++ b/internal/app/deploy_laravel_vapor_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunDeployVaporDryRunUsesEnvironmentVariables(t *testing.T) { diff --git a/internal/app/deploy_test.go b/internal/app/deploy_test.go index 95699496..eea16b99 100644 --- a/internal/app/deploy_test.go +++ b/internal/app/deploy_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunDeployWritesEnvironmentToDotenv(t *testing.T) { diff --git a/internal/app/device.go b/internal/app/device.go index f3dae004..fb5c1768 100644 --- a/internal/app/device.go +++ b/internal/app/device.go @@ -7,10 +7,10 @@ import ( "sort" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) var deviceCommandOptions = []commandOption{ diff --git a/internal/app/device_test.go b/internal/app/device_test.go index 9b20082e..dd52b233 100644 --- a/internal/app/device_test.go +++ b/internal/app/device_test.go @@ -8,9 +8,9 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestPrintAccessDeviceRowsStripsTerminalControlSequences(t *testing.T) { diff --git a/internal/app/env.go b/internal/app/env.go index 3e6221d2..4cf65964 100644 --- a/internal/app/env.go +++ b/internal/app/env.go @@ -10,10 +10,10 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/dotenv" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) var envCommandOptions = []commandOption{ diff --git a/internal/app/env_clean.go b/internal/app/env_clean.go index 33d5d279..2f5a4e21 100644 --- a/internal/app/env_clean.go +++ b/internal/app/env_clean.go @@ -7,8 +7,8 @@ import ( "path/filepath" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) type envCleanResult struct { diff --git a/internal/app/env_run.go b/internal/app/env_run.go index 89964e86..7fe90a86 100644 --- a/internal/app/env_run.go +++ b/internal/app/env_run.go @@ -12,10 +12,10 @@ import ( "sort" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/store" - "github.com/ghostable-dev/ghostable/internal/validation" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/validation" ) type envRunRequest struct { diff --git a/internal/app/env_shell.go b/internal/app/env_shell.go index d98a0e34..1c86ac03 100644 --- a/internal/app/env_shell.go +++ b/internal/app/env_shell.go @@ -6,7 +6,7 @@ import ( "runtime" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/cli" ) var resolveEnvShellCommand = defaultEnvShellCommand diff --git a/internal/app/env_test.go b/internal/app/env_test.go index 30043cf7..57164dff 100644 --- a/internal/app/env_test.go +++ b/internal/app/env_test.go @@ -12,9 +12,9 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunEnvCreatePromptsForEnvironmentType(t *testing.T) { diff --git a/internal/app/example.go b/internal/app/example.go index ab0fb92b..84751a2e 100644 --- a/internal/app/example.go +++ b/internal/app/example.go @@ -6,12 +6,12 @@ import ( "sort" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/dotenv" - "github.com/ghostable-dev/ghostable/internal/review" - "github.com/ghostable-dev/ghostable/internal/store" - "github.com/ghostable-dev/ghostable/internal/validation" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/review" + "github.com/ghostable-dev/ghostable/v3/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/validation" ) var exampleCommandOptions = []commandOption{ diff --git a/internal/app/example_hygiene_test.go b/internal/app/example_hygiene_test.go index 26e9765e..a698b1ef 100644 --- a/internal/app/example_hygiene_test.go +++ b/internal/app/example_hygiene_test.go @@ -9,9 +9,9 @@ import ( "testing" "time" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunExampleGenerateDiscoversStoredSchemaAndCodeKeys(t *testing.T) { diff --git a/internal/app/hygiene.go b/internal/app/hygiene.go index 3fee05b4..3cc1337d 100644 --- a/internal/app/hygiene.go +++ b/internal/app/hygiene.go @@ -8,12 +8,12 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - hygienepolicy "github.com/ghostable-dev/ghostable/internal/hygiene" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/review" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + hygienepolicy "github.com/ghostable-dev/ghostable/v3/internal/hygiene" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/review" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) const hygieneReportSchema = "ghostable.hygiene-report.v1" diff --git a/internal/app/hygiene_rotation.go b/internal/app/hygiene_rotation.go index 18d7762a..2d400906 100644 --- a/internal/app/hygiene_rotation.go +++ b/internal/app/hygiene_rotation.go @@ -6,9 +6,9 @@ import ( "strconv" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - hygienepolicy "github.com/ghostable-dev/ghostable/internal/hygiene" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + hygienepolicy "github.com/ghostable-dev/ghostable/v3/internal/hygiene" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) var hygieneRotationCommandOptions = []commandOption{ diff --git a/internal/app/protected_environment.go b/internal/app/protected_environment.go index 3533a004..5d76a3fa 100644 --- a/internal/app/protected_environment.go +++ b/internal/app/protected_environment.go @@ -1,8 +1,8 @@ package app import ( - "github.com/ghostable-dev/ghostable/internal/store" - "github.com/ghostable-dev/ghostable/internal/userpresence" + "github.com/ghostable-dev/ghostable/v3/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/userpresence" ) const ( diff --git a/internal/app/protected_environment_test.go b/internal/app/protected_environment_test.go index 9660863f..9e62b7df 100644 --- a/internal/app/protected_environment_test.go +++ b/internal/app/protected_environment_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/store" - "github.com/ghostable-dev/ghostable/internal/userpresence" + "github.com/ghostable-dev/ghostable/v3/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/userpresence" ) func TestProtectedProductionEnvPullRequiresLocalUserPresence(t *testing.T) { diff --git a/internal/app/pull.go b/internal/app/pull.go index 11656447..0187ae34 100644 --- a/internal/app/pull.go +++ b/internal/app/pull.go @@ -5,7 +5,7 @@ import ( "io" "strings" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) type environmentPullRequest struct { diff --git a/internal/app/review.go b/internal/app/review.go index f8acee9d..dd8156a6 100644 --- a/internal/app/review.go +++ b/internal/app/review.go @@ -6,12 +6,12 @@ import ( "io" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/review" - "github.com/ghostable-dev/ghostable/internal/scanner" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/review" + "github.com/ghostable-dev/ghostable/v3/internal/scanner" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) var reviewCommandOptions = []commandOption{ diff --git a/internal/app/review_test.go b/internal/app/review_test.go index b3baf9ee..341eb732 100644 --- a/internal/app/review_test.go +++ b/internal/app/review_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunReviewHelp(t *testing.T) { diff --git a/internal/app/scan.go b/internal/app/scan.go index 71056c96..22b85639 100644 --- a/internal/app/scan.go +++ b/internal/app/scan.go @@ -4,11 +4,11 @@ import ( "fmt" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/scanner" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/scanner" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) const scanSuppressionCode = "hardcoded_secret" diff --git a/internal/app/scan_test.go b/internal/app/scan_test.go index 39e08bf2..e0b71095 100644 --- a/internal/app/scan_test.go +++ b/internal/app/scan_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/manifest" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/manifest" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunScanAppliesSignedSuppression(t *testing.T) { diff --git a/internal/app/schema.go b/internal/app/schema.go index 7ec0f8a5..9aec7d97 100644 --- a/internal/app/schema.go +++ b/internal/app/schema.go @@ -7,9 +7,9 @@ import ( "path/filepath" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/store" - "github.com/ghostable-dev/ghostable/internal/validation" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/validation" ) var schemaCommandOptions = []commandOption{ diff --git a/internal/app/setup.go b/internal/app/setup.go index 4a1c278d..f20ce11e 100644 --- a/internal/app/setup.go +++ b/internal/app/setup.go @@ -10,9 +10,9 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func (r *Runner) runSetup(args []string) error { diff --git a/internal/app/setup_test.go b/internal/app/setup_test.go index c0110984..591502b8 100644 --- a/internal/app/setup_test.go +++ b/internal/app/setup_test.go @@ -9,10 +9,10 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/manifest" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/manifest" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunSetupDefaultsEnvironmentWithoutPrompt(t *testing.T) { diff --git a/internal/app/suppressions.go b/internal/app/suppressions.go index ccbbd571..7620c61e 100644 --- a/internal/app/suppressions.go +++ b/internal/app/suppressions.go @@ -7,8 +7,8 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) const ( diff --git a/internal/app/validate.go b/internal/app/validate.go index 84b7a8b9..5430b400 100644 --- a/internal/app/validate.go +++ b/internal/app/validate.go @@ -3,8 +3,8 @@ package app import ( "fmt" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/validation" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/validation" ) func (r *Runner) runValidate(args []string) error { diff --git a/internal/app/validate_test.go b/internal/app/validate_test.go index 238de391..2ceb5739 100644 --- a/internal/app/validate_test.go +++ b/internal/app/validate_test.go @@ -9,8 +9,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/store" - "github.com/ghostable-dev/ghostable/internal/userpresence" + "github.com/ghostable-dev/ghostable/v3/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/userpresence" ) func TestRunValidateChecksStoredEnvironmentValues(t *testing.T) { diff --git a/internal/app/var.go b/internal/app/var.go index 0062edd5..28ece070 100644 --- a/internal/app/var.go +++ b/internal/app/var.go @@ -6,10 +6,10 @@ import ( "sort" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/dotenv" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) var variableCommandOptions = []commandOption{ diff --git a/internal/app/var_annotation.go b/internal/app/var_annotation.go index 2d64b3d3..19ce57be 100644 --- a/internal/app/var_annotation.go +++ b/internal/app/var_annotation.go @@ -5,9 +5,9 @@ import ( "strconv" "strings" - "github.com/ghostable-dev/ghostable/internal/cli" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/cli" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) var variableAnnotationCommandOptions = []commandOption{ diff --git a/internal/app/var_test.go b/internal/app/var_test.go index 6fd54d7a..bcfedc82 100644 --- a/internal/app/var_test.go +++ b/internal/app/var_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/prompt" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/prompt" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestRunVarPullSelectsExistingVariable(t *testing.T) { diff --git a/internal/crypto/cipher.go b/internal/crypto/cipher.go index eac95715..cc2bba78 100644 --- a/internal/crypto/cipher.go +++ b/internal/crypto/cipher.go @@ -8,7 +8,7 @@ import ( "fmt" "io" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) const ( diff --git a/internal/crypto/cipher_keystore_test.go b/internal/crypto/cipher_keystore_test.go index 4d78d488..84586e68 100644 --- a/internal/crypto/cipher_keystore_test.go +++ b/internal/crypto/cipher_keystore_test.go @@ -11,7 +11,7 @@ import ( "testing" "time" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) func TestAESGCMRoundTripAndTamperCases(t *testing.T) { diff --git a/internal/crypto/keystore.go b/internal/crypto/keystore.go index ea619c90..30f890a3 100644 --- a/internal/crypto/keystore.go +++ b/internal/crypto/keystore.go @@ -10,7 +10,7 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) type KeyStore struct { diff --git a/internal/manifest/manifest.go b/internal/manifest/manifest.go index 359b0eea..39aea2ab 100644 --- a/internal/manifest/manifest.go +++ b/internal/manifest/manifest.go @@ -7,7 +7,7 @@ import ( "sort" "strings" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) func New(projectID string, name string, envs []domain.Environment) domain.ProjectManifest { diff --git a/internal/manifest/manifest_test.go b/internal/manifest/manifest_test.go index 2f164bdd..d667d442 100644 --- a/internal/manifest/manifest_test.go +++ b/internal/manifest/manifest_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) func TestManifestScanSettingsRoundTrip(t *testing.T) { diff --git a/internal/review/checks.go b/internal/review/checks.go index cfc610ae..dd8be051 100644 --- a/internal/review/checks.go +++ b/internal/review/checks.go @@ -7,7 +7,7 @@ import ( "regexp" "strings" - "github.com/ghostable-dev/ghostable/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" ) const ( diff --git a/internal/review/inventory.go b/internal/review/inventory.go index 557b5fc3..34fcdcd1 100644 --- a/internal/review/inventory.go +++ b/internal/review/inventory.go @@ -8,10 +8,10 @@ import ( "sort" "strings" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/dotenv" - "github.com/ghostable-dev/ghostable/internal/store" - "github.com/ghostable-dev/ghostable/internal/validation" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/validation" ) type ChangedVariable struct { diff --git a/internal/review/review.go b/internal/review/review.go index 89879590..db565023 100644 --- a/internal/review/review.go +++ b/internal/review/review.go @@ -6,7 +6,7 @@ import ( "strconv" "strings" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) type ReviewInput struct { diff --git a/internal/review/review_test.go b/internal/review/review_test.go index aeaa012d..b67640e1 100644 --- a/internal/review/review_test.go +++ b/internal/review/review_test.go @@ -9,8 +9,8 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/store" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/store" ) func TestReviewErrorsWhenReferencedKeyIsMissingFromEnvironment(t *testing.T) { diff --git a/internal/security/identity_registry.go b/internal/security/identity_registry.go index 3e716d0f..7192e726 100644 --- a/internal/security/identity_registry.go +++ b/internal/security/identity_registry.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) const identityRegistrySchema = "ghostable.identity-registry.v1" diff --git a/internal/security/identity_store.go b/internal/security/identity_store.go index 19c5aa9d..8da1876b 100644 --- a/internal/security/identity_store.go +++ b/internal/security/identity_store.go @@ -10,7 +10,7 @@ import ( "runtime" "strings" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) type IdentityStore struct { diff --git a/internal/security/identity_store_notwindows.go b/internal/security/identity_store_notwindows.go index 6449f4ca..e94b190e 100644 --- a/internal/security/identity_store_notwindows.go +++ b/internal/security/identity_store_notwindows.go @@ -5,7 +5,7 @@ package security import ( "fmt" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) func (s IdentityStore) loadWindowsCredential(projectID string) (domain.LocalIdentityRecord, error) { diff --git a/internal/security/identity_store_test.go b/internal/security/identity_store_test.go index 1e50a8d5..9893ca88 100644 --- a/internal/security/identity_store_test.go +++ b/internal/security/identity_store_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) func TestIdentityStorePathUsesKeystoreOverride(t *testing.T) { diff --git a/internal/security/identity_store_windows.go b/internal/security/identity_store_windows.go index 62268732..faacaf26 100644 --- a/internal/security/identity_store_windows.go +++ b/internal/security/identity_store_windows.go @@ -9,7 +9,7 @@ import ( "syscall" "unsafe" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" "golang.org/x/sys/windows" ) diff --git a/internal/security/security.go b/internal/security/security.go index 6f23d9b2..8752cf57 100644 --- a/internal/security/security.go +++ b/internal/security/security.go @@ -18,7 +18,7 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" "golang.org/x/crypto/chacha20poly1305" ) diff --git a/internal/security/security_test.go b/internal/security/security_test.go index d114ad7d..e51d9bef 100644 --- a/internal/security/security_test.go +++ b/internal/security/security_test.go @@ -10,7 +10,7 @@ import ( "strings" "testing" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) type securityVectors struct { diff --git a/internal/store/environment.go b/internal/store/environment.go index a8d72a92..e18f82c7 100644 --- a/internal/store/environment.go +++ b/internal/store/environment.go @@ -5,8 +5,8 @@ import ( "os" "sort" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/security" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/security" ) func (r Repository) Environments() []domain.Environment { diff --git a/internal/store/hygiene.go b/internal/store/hygiene.go index bfda7a09..31db4d5a 100644 --- a/internal/store/hygiene.go +++ b/internal/store/hygiene.go @@ -7,8 +7,8 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/security" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/security" ) type CreateSuppressionInput struct { diff --git a/internal/store/key_metadata.go b/internal/store/key_metadata.go index 19668ca7..dfa747ae 100644 --- a/internal/store/key_metadata.go +++ b/internal/store/key_metadata.go @@ -10,8 +10,8 @@ import ( "sort" "strings" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/security" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/security" ) type keyMetadataUpdate func(*domain.EnvironmentKeyMetadataRecord) error diff --git a/internal/store/local_identities.go b/internal/store/local_identities.go index 4d665627..8b290618 100644 --- a/internal/store/local_identities.go +++ b/internal/store/local_identities.go @@ -6,8 +6,8 @@ import ( "path/filepath" "strings" - "github.com/ghostable-dev/ghostable/internal/manifest" - "github.com/ghostable-dev/ghostable/internal/security" + "github.com/ghostable-dev/ghostable/v3/internal/manifest" + "github.com/ghostable-dev/ghostable/v3/internal/security" ) type LocalIdentityCleanupEntry struct { diff --git a/internal/store/repository.go b/internal/store/repository.go index bb227692..8f6c7274 100644 --- a/internal/store/repository.go +++ b/internal/store/repository.go @@ -17,9 +17,9 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/manifest" - "github.com/ghostable-dev/ghostable/internal/security" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/manifest" + "github.com/ghostable-dev/ghostable/v3/internal/security" ) var ( diff --git a/internal/store/repository_test.go b/internal/store/repository_test.go index ccf65dac..33ad6c42 100644 --- a/internal/store/repository_test.go +++ b/internal/store/repository_test.go @@ -9,9 +9,9 @@ import ( "testing" "time" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/dotenv" - "github.com/ghostable-dev/ghostable/internal/security" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/security" ) func TestRepositoryEncryptsAndPullsVariables(t *testing.T) { diff --git a/internal/store/setup.go b/internal/store/setup.go index 675a9ddc..d62f9ed7 100644 --- a/internal/store/setup.go +++ b/internal/store/setup.go @@ -5,9 +5,9 @@ import ( "os" "path/filepath" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/manifest" - "github.com/ghostable-dev/ghostable/internal/security" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/manifest" + "github.com/ghostable-dev/ghostable/v3/internal/security" ) func Setup(root string, options SetupOptions) (Repository, bool, error) { diff --git a/internal/store/variables.go b/internal/store/variables.go index 7734573b..3af02395 100644 --- a/internal/store/variables.go +++ b/internal/store/variables.go @@ -8,8 +8,8 @@ import ( "strings" "time" - "github.com/ghostable-dev/ghostable/internal/domain" - "github.com/ghostable-dev/ghostable/internal/dotenv" + "github.com/ghostable-dev/ghostable/v3/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/dotenv" ) func (r Repository) PutVariables(env string, values map[string]string, options PutOptions) (PushResult, error) { diff --git a/internal/validation/schema.go b/internal/validation/schema.go index e4f593ca..c3b2a9d8 100644 --- a/internal/validation/schema.go +++ b/internal/validation/schema.go @@ -12,7 +12,7 @@ import ( "strconv" "strings" - "github.com/ghostable-dev/ghostable/internal/domain" + "github.com/ghostable-dev/ghostable/v3/internal/domain" ) type Rule struct {