Skip to content

Commit

Permalink
remove secret CLI param requirement from all commands but "server"
Browse files Browse the repository at this point in the history
It was planned to be used in the import, restore, and backup commands,
but later, Umputun ditched that idea.
One less CLI option to set for all the commands other than `server`
after that.
  • Loading branch information
paskal committed May 1, 2023
1 parent 26f82ad commit acf1a13
Show file tree
Hide file tree
Showing 14 changed files with 60 additions and 60 deletions.
4 changes: 2 additions & 2 deletions backend/app/cmd/avatar_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func TestAvatar_Execute(t *testing.T) {

// from fs to bolt
cmd := AvatarCommand{migrator: &avatarMigratorMock{retCount: 100}}
cmd.SetCommon(CommonOpts{RemarkURL: "", SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ""})
p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--src.type=fs", "--src.fs.path=/tmp/ava-test", "--dst.type=bolt",
"--dst.bolt.file=/tmp/ava-test.db"})
Expand All @@ -27,7 +27,7 @@ func TestAvatar_Execute(t *testing.T) {

// failed
cmd = AvatarCommand{migrator: &avatarMigratorMock{retCount: 0, retError: fmt.Errorf("failed blah")}}
cmd.SetCommon(CommonOpts{RemarkURL: "", SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ""})
p = flags.NewParser(&cmd, flags.Default)
_, err = p.ParseArgs([]string{"--src.type=fs", "--src.fs.path=/tmp/ava-test", "--dst.type=bolt",
"--dst.bolt.file=/tmp/ava-test2.db"})
Expand Down
2 changes: 1 addition & 1 deletion backend/app/cmd/backup.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type BackupCommand struct {
// Execute runs export with ExportCommand parameters, entry point for "export" command
func (ec *BackupCommand) Execute(_ []string) error {
log.Printf("[INFO] export to %s, site %s", ec.ExportPath, ec.Site)
resetEnv("SECRET", "ADMIN_PASSWD")
resetEnv("ADMIN_PASSWD")

fp := fileParser{site: ec.Site, path: ec.ExportPath, file: ec.ExportFile}
fname, err := fp.parse(time.Now())
Expand Down
6 changes: 3 additions & 3 deletions backend/app/cmd/backup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ func TestBackup_Execute(t *testing.T) {
defer ts.Close()

cmd := BackupCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})
p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--path=/tmp", "--file={{.SITE}}-test.export", "--admin-passwd=secret"})
require.NoError(t, err)
Expand All @@ -44,7 +44,7 @@ func TestBackup_ExecuteFailedStatus(t *testing.T) {
defer ts.Close()

cmd := BackupCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})

p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--path=/tmp", "--file={{.SITE}}-test.export", "--admin-passwd=secret"})
Expand All @@ -62,7 +62,7 @@ func TestBackup_ExecuteFailedWrite(t *testing.T) {
defer ts.Close()

cmd := BackupCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})

p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--path=/tmp",
Expand Down
8 changes: 4 additions & 4 deletions backend/app/cmd/cleanup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func TestCleanup_postsInRange(t *testing.T) {
defer ts.Close()

cmd := CleanupCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})
p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--bword=bad1", "--bword=bad2", "--buser=bu_", "--admin-passwd=secret"})
require.NoError(t, err)
Expand All @@ -88,7 +88,7 @@ func TestCleanup_listComments(t *testing.T) {
defer ts.Close()

cmd := CleanupCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})
p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--bword=bad1", "--bword=bad2", "--buser=bu_", "--admin-passwd=secret"})
require.NoError(t, err)
Expand All @@ -114,7 +114,7 @@ func TestCleanup_ExecuteSpam(t *testing.T) {
defer ts.Close()

cmd := CleanupCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})
p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--bword=bad1", "--bword=bad2", "--buser=bu_",
"--from=20181217", "--to=20181218", "--admin-passwd=secret"})
Expand All @@ -133,7 +133,7 @@ func TestCleanup_ExecuteTitle(t *testing.T) {
defer ts.Close()

cmd := CleanupCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})
p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--title", "--from=20181217", "--to=20181218", "--admin-passwd=secret"})
require.NoError(t, err)
Expand Down
6 changes: 2 additions & 4 deletions backend/app/cmd/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,8 @@ type CommonOptionsCommander interface {

// CommonOpts sets externally from main, shared across all commands
type CommonOpts struct {
RemarkURL string
SharedSecret string
Revision string
RemarkURL string
Revision string
}

// SupportCmdOpts is set of commands shared among similar commands like backup/restore and such.
Expand All @@ -51,7 +50,6 @@ type DeprecatedFlag struct {
// The method called by main for each command
func (c *CommonOpts) SetCommon(commonOpts CommonOpts) {
c.RemarkURL = strings.TrimSuffix(commonOpts.RemarkURL, "/") // allow RemarkURL with trailing /
c.SharedSecret = commonOpts.SharedSecret
c.Revision = commonOpts.Revision
}

Expand Down
2 changes: 1 addition & 1 deletion backend/app/cmd/import.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type ImportCommand struct {
// Execute runs import with ImportCommand parameters, entry point for "import" command
func (ic *ImportCommand) Execute(_ []string) error {
log.Printf("[INFO] import %s (%s), site %s", ic.InputFile, ic.Provider, ic.Site)
resetEnv("SECRET", "ADMIN_PASSWD")
resetEnv("ADMIN_PASSWD")

reader, err := ic.reader(ic.InputFile)
if err != nil {
Expand Down
12 changes: 6 additions & 6 deletions backend/app/cmd/import_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func TestImport_Execute(t *testing.T) {
defer ts.Close()

cmd := ImportCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})

p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--file=testdata/import.txt", "--admin-passwd=secret"})
Expand All @@ -37,7 +37,7 @@ func TestImport_Execute(t *testing.T) {
assert.NoError(t, err)

cmd = ImportCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})

p = flags.NewParser(&cmd, flags.Default)
_, err = p.ParseArgs([]string{"--site=remark", "--file=testdata/import.txt.gz", "--admin-passwd=secret"})
Expand All @@ -55,7 +55,7 @@ func TestImport_ExecuteFailed(t *testing.T) {
defer ts.Close()

cmd := ImportCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})
p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--file=testdata/import-no.txt", "--admin-passwd=secret"})
require.NoError(t, err)
Expand All @@ -65,7 +65,7 @@ func TestImport_ExecuteFailed(t *testing.T) {
assert.Contains(t, err.Error(), "no such file or directory")

cmd = ImportCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: "http://127.0.0.1:12345", SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: "http://127.0.0.1:12345"})
p = flags.NewParser(&cmd, flags.Default)
_, err = p.ParseArgs([]string{"--site=remark", "--file=testdata/import.txt", "--admin-passwd=secret"})
require.NoError(t, err)
Expand All @@ -81,7 +81,7 @@ func TestImport_ExecuteFailed(t *testing.T) {
}))
defer ts2.Close()
cmd = ImportCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts2.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts2.URL})
p = flags.NewParser(&cmd, flags.Default)
_, err = p.ParseArgs([]string{"--site=remark", "--file=testdata/import.txt", "--admin-passwd=secret"})
require.NoError(t, err)
Expand All @@ -104,7 +104,7 @@ func TestImport_ExecuteTimeout(t *testing.T) {
defer ts.Close()

cmd := ImportCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})

p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--file=testdata/import.txt", "--timeout=300ms", "--admin-passwd=secret"})
Expand Down
2 changes: 1 addition & 1 deletion backend/app/cmd/remap.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ type RemapCommand struct {
// Execute runs (re)mapper with RemapCommand parameters, entry point for "remap" command
func (rc *RemapCommand) Execute(_ []string) error {
log.Printf("[INFO] start remap, site %s, file with rules %s", rc.Site, rc.InputFile)
resetEnv("SECRET", "ADMIN_PASSWD")
resetEnv("ADMIN_PASSWD")

rulesReader, err := os.Open(rc.InputFile)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion backend/app/cmd/remap_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func TestRemap_Execute(t *testing.T) {
defer ts.Close()

cmd := RemapCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})

p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--file=testdata/remap_urls.txt", "--admin-passwd=secret"})
Expand Down
2 changes: 1 addition & 1 deletion backend/app/cmd/restore.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ type RestoreCommand struct {
// uses ImportCommand with constructed full file name
func (rc *RestoreCommand) Execute(args []string) error {
log.Printf("[INFO] restore %s, site %s", rc.ImportFile, rc.Site)
resetEnv("SECRET", "ADMIN_PASSWD")
resetEnv("ADMIN_PASSWD")

fp := fileParser{site: rc.Site, path: rc.ImportPath, file: rc.ImportFile}
fname, err := fp.parse(time.Now())
Expand Down
2 changes: 1 addition & 1 deletion backend/app/cmd/restore_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func TestRestore_Execute(t *testing.T) {
defer ts.Close()

cmd := RestoreCommand{}
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL, SharedSecret: "123456"})
cmd.SetCommon(CommonOpts{RemarkURL: ts.URL})

p := flags.NewParser(&cmd, flags.Default)
_, err := p.ParseArgs([]string{"--site=remark", "--path=testdata", "--file=import.txt", "--admin-passwd=secret"})
Expand Down
1 change: 1 addition & 0 deletions backend/app/cmd/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ type ServerCommand struct {
SSL SSLGroup `group:"ssl" namespace:"ssl" env-namespace:"SSL"`
ImageProxy ImageProxyGroup `group:"image-proxy" namespace:"image-proxy" env-namespace:"IMAGE_PROXY"`

SharedSecret string `long:"secret" env:"SECRET" required:"true" description:"the shared secret key used to sign JWT, should be a random, long, hard-to-guess string"`
Sites []string `long:"site" env:"SITE" default:"remark" description:"site names" env-delim:","`
AnonymousVote bool `long:"anon-vote" env:"ANON_VOTE" description:"enable anonymous votes (works only with VOTES_IP enabled)"`
AdminPasswd string `long:"admin-passwd" env:"ADMIN_PASSWD" default:"" description:"admin basic auth password"`
Expand Down
Loading

0 comments on commit acf1a13

Please sign in to comment.