Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
40812fc
fix(firewall): flush conntrack table after enabling firewall at conta…
qdm12 Feb 21, 2026
ee8d62e
purevpn: switch updater to linux deb local-data and protocol ports
Feb 26, 2026
2a49d27
purevpn: improve resolver fallback and update OpenVPN port defaults
Feb 26, 2026
388e628
purevpn updater: fetch live inventory from app-derived URL
Feb 27, 2026
dbe31bc
purevpn: add hostname-trait server type selection
Feb 27, 2026
32ff15d
purevpn: add deterministic hostname-code location filters
Feb 27, 2026
f81d061
purevpn: add template ingestion and p2p server type support
Feb 27, 2026
6838917
purevpn: merge app local data and add multi-trait filter tests
Feb 27, 2026
2e88ef2
purevpn: switch to city-only filters and match-all tags
Feb 27, 2026
f7b0e54
chore: remove local purevpn test harness scripts from repo
Feb 27, 2026
5a6b7c9
purevpn: add OpenVPN fallback remote lines for port 1194
Feb 27, 2026
57662fc
Merge origin/master into codex/purevpn-deb-updater
Feb 27, 2026
f9ec7ba
chore: remove CSV/TSV PureVPN export tests from repo
Feb 27, 2026
a4afbe4
purevpn: expand city code mappings and tighten inventory-port tests
Feb 27, 2026
eac0f01
purevpn: remove atom secret env override and related tests
Feb 27, 2026
bfe558d
purevpn: remove fallback ports and reseller uid parsing test
Feb 27, 2026
9c63460
chore(deps): tidy purevpn module dependencies
Feb 27, 2026
b89cbbf
purevpn: apply review feedback and split selector features out
Mar 3, 2026
7253ec1
Merge upstream/master into codex/purevpn-deb-updater
Mar 3, 2026
f0247ff
Merge branch 'master' into codex/purevpn-deb-updater
reedog117 Mar 20, 2026
164d724
Merge branch 'master' into codex/purevpn-deb-updater
reedog117 Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
purevpn: remove atom secret env override and related tests
  • Loading branch information
Pat committed Feb 27, 2026
commit eac0f01d080ff9222e37185399ca098b66feb09b
7 changes: 0 additions & 7 deletions internal/provider/purevpn/updater/templates.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"encoding/json"
"fmt"
"net/http"
"os"
"regexp"
"slices"
"sort"
Expand All @@ -28,7 +27,6 @@ var (
cryptoKeyRegex = regexp.MustCompile(`\bp\s*=\s*"([^"]+)"`)
controlCharRegex = regexp.MustCompile(`[[:cntrl:]]`)
configFieldNeedle = []byte(`"configuration":"`)
defaultAtomSecretEnv = "PUREVPN_ATOM_SECRET"
defaultAtomSecret = "MkvGuMCi6nabLqnjATh3HxN1Hh3iZI"
)

Expand Down Expand Up @@ -144,11 +142,6 @@ func fetchOpenVPNTemplates(ctx context.Context, httpClient *http.Client,
}

func resolveAtomSecret(asarContent []byte) (atomSecret string) {
atomSecret = strings.TrimSpace(os.Getenv(defaultAtomSecretEnv))
if atomSecret != "" {
return atomSecret
}

if extracted := parseAtomSecretFromContent(asarContent); extracted != "" {
return extracted
}
Expand Down
38 changes: 0 additions & 38 deletions internal/provider/purevpn/updater/templates_test.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package updater

import (
"encoding/base64"
"os"
"testing"

"github.com/stretchr/testify/assert"
Expand All @@ -18,24 +16,6 @@ func Test_parseAtomAPIBaseURL(t *testing.T) {
assert.Equal(t, "https://atomapi.com/", baseURL)
}

func Test_parseCryptoKeyBase64(t *testing.T) {
t.Parallel()

content := []byte(`var p = "I0tSbk5sdk1KdmwhMjAyNQ=="`)
keyBase64, err := parseCryptoKeyBase64(content)
require.NoError(t, err)
assert.Equal(t, "I0tSbk5sdk1KdmwhMjAyNQ==", keyBase64)
}

func Test_encryptForAtom(t *testing.T) {
t.Parallel()

encrypted, err := encryptForAtom("password", "I0tSbk5sdk1KdmwhMjAyNQ==")
require.NoError(t, err)
_, err = base64.StdEncoding.DecodeString(encrypted)
assert.NoError(t, err)
}

func Test_parsePureVPNCountrySlug(t *testing.T) {
t.Parallel()

Expand All @@ -44,29 +24,11 @@ func Test_parsePureVPNCountrySlug(t *testing.T) {
assert.Equal(t, "", parsePureVPNCountrySlug("broken-hostname"))
}

func Test_parseAtomSecretFromContent(t *testing.T) {
t.Parallel()

content := []byte(`window.appConfigs={ATOM_SECRET:"abcDEF1234567890"};`)
secret := parseAtomSecretFromContent(content)
assert.Equal(t, "abcDEF1234567890", secret)
}

func Test_resolveAtomSecret(t *testing.T) {
t.Parallel()

original := os.Getenv(defaultAtomSecretEnv)
t.Cleanup(func() { _ = os.Setenv(defaultAtomSecretEnv, original) })

_ = os.Unsetenv(defaultAtomSecretEnv)
extracted := resolveAtomSecret([]byte(`ATOM_SECRET:"fromasar123456"`))
assert.Equal(t, "fromasar123456", extracted)

_ = os.Setenv(defaultAtomSecretEnv, "fromenv123")
fromEnv := resolveAtomSecret(nil)
assert.Equal(t, "fromenv123", fromEnv)

_ = os.Unsetenv(defaultAtomSecretEnv)
fallback := resolveAtomSecret(nil)
assert.Equal(t, defaultAtomSecret, fallback)
}