Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
32 changes: 0 additions & 32 deletions cmd/docker-mcp/backup/dump.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (

"github.com/docker/mcp-gateway/cmd/docker-mcp/catalog"
"github.com/docker/mcp-gateway/pkg/config"
"github.com/docker/mcp-gateway/pkg/desktop"
"github.com/docker/mcp-gateway/pkg/docker"
)

Expand Down Expand Up @@ -45,43 +44,12 @@ func Dump(ctx context.Context, docker docker.Client) ([]byte, error) {
catalogFiles[name] = string(catalogFileContent)
}

secretsClient := desktop.NewSecretsClient()
storedSecrets, err := secretsClient.ListJfsSecrets(ctx)
if err != nil {
return nil, err
}

var secretNames []string
for _, secret := range storedSecrets {
secretNames = append(secretNames, secret.Name)
}
secretValues, err := docker.ReadSecrets(ctx, secretNames, false)
if err != nil {
return nil, err
}

var secrets []desktop.Secret
for _, secret := range storedSecrets {
secrets = append(secrets, desktop.Secret{
Name: secret.Name,
Provider: secret.Provider,
Value: secretValues[secret.Name],
})
}

policy, err := secretsClient.GetJfsPolicy(ctx)
if err != nil {
return nil, err
}

backup := Backup{
Config: string(configContent),
Registry: string(registryContent),
Catalog: string(catalogContent),
CatalogFiles: catalogFiles,
Tools: string(toolsConfig),
Secrets: secrets,
Policy: policy,
}

return json.Marshal(backup)
Expand Down
32 changes: 0 additions & 32 deletions cmd/docker-mcp/backup/restore.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (

"github.com/docker/mcp-gateway/cmd/docker-mcp/catalog"
"github.com/docker/mcp-gateway/pkg/config"
"github.com/docker/mcp-gateway/pkg/desktop"
)

func Restore(ctx context.Context, backupData []byte) error {
Expand Down Expand Up @@ -50,36 +49,5 @@ func Restore(ctx context.Context, backupData []byte) error {
}
}

secretsClient := desktop.NewSecretsClient()

secretsBefore, err := secretsClient.ListJfsSecrets(ctx)
if err != nil {
return err
}

secretsKeep := map[string]bool{}
for _, secret := range backup.Secrets {
if err := secretsClient.SetJfsSecret(ctx, desktop.Secret{
Name: secret.Name,
Value: secret.Value,
Provider: secret.Provider,
}); err != nil {
return err
}
secretsKeep[secret.Name] = true
}

for _, secret := range secretsBefore {
if !secretsKeep[secret.Name] {
if err := secretsClient.DeleteJfsSecret(ctx, secret.Name); err != nil {
return err
}
}
}

if err := secretsClient.SetJfsPolicy(ctx, backup.Policy); err != nil {
return err
}

return nil
}
4 changes: 0 additions & 4 deletions cmd/docker-mcp/backup/types.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
package backup

import "github.com/docker/mcp-gateway/pkg/desktop"

type Backup struct {
Config string `json:"config"`
Registry string `json:"registry"`
Catalog string `json:"catalog"`
CatalogFiles map[string]string `json:"catalogFiles"`
Tools string `json:"tools"`
Secrets []desktop.Secret `json:"secrets"`
Policy string `json:"policy"`
}
58 changes: 0 additions & 58 deletions cmd/docker-mcp/commands/policy.go

This file was deleted.

3 changes: 1 addition & 2 deletions cmd/docker-mcp/commands/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ func Root(ctx context.Context, cwd string, dockerCli command.Cli) *cobra.Command
HiddenDefaultCmd: true,
},
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
cmd.SetContext(ctx)
if err := plugin.PersistentPreRunE(cmd, args); err != nil {
return err
}
Expand All @@ -60,6 +59,7 @@ func Root(ctx context.Context, cwd string, dockerCli command.Cli) *cobra.Command
},
Version: version.Version,
}
cmd.SetContext(ctx)
cmd.SetVersionTemplate("{{.Version}}\n")
cmd.Flags().BoolP("version", "v", false, "Print version information and quit")
cmd.SetHelpTemplate(helpTemplate)
Expand All @@ -79,7 +79,6 @@ func Root(ctx context.Context, cwd string, dockerCli command.Cli) *cobra.Command
cmd.AddCommand(featureCommand(dockerCli))
cmd.AddCommand(gatewayCommand(dockerClient, dockerCli))
cmd.AddCommand(oauthCommand())
cmd.AddCommand(policyCommand())
cmd.AddCommand(registryCommand())
cmd.AddCommand(secretCommand(dockerClient))
cmd.AddCommand(serverCommand(dockerClient, dockerCli))
Expand Down
37 changes: 10 additions & 27 deletions cmd/docker-mcp/commands/secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package commands

import (
"errors"
"fmt"
"strings"

"github.com/spf13/cobra"

"github.com/docker/mcp-gateway/cmd/docker-mcp/secret-management/secret"
"github.com/docker/mcp-gateway/pkg/desktop"
"github.com/docker/mcp-gateway/pkg/docker"
)

Expand All @@ -28,11 +28,17 @@ func secretCommand(docker docker.Client) *cobra.Command {
Use: "secret",
Short: "Manage secrets",
Example: strings.Trim(setSecretExample, "\n"),
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
err := desktop.CheckHasDockerPass(cmd.Context())
if err != nil {
return err
}
return nil
},
}
cmd.AddCommand(rmSecretCommand())
cmd.AddCommand(listSecretCommand())
cmd.AddCommand(setSecretCommand())
cmd.AddCommand(exportSecretCommand(docker))
return cmd
}

Expand Down Expand Up @@ -83,9 +89,6 @@ func setSecretCommand() *cobra.Command {
Example: strings.Trim(setSecretExample, "\n"),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
if !secret.IsValidProvider(opts.Provider) {
return fmt.Errorf("invalid provider: %s", opts.Provider)
}
var s secret.Secret
if isNotImplicitReadFromStdinSyntax(args, *opts) {
va, err := secret.ParseArg(args[0], *opts)
Expand All @@ -105,30 +108,10 @@ func setSecretCommand() *cobra.Command {
}
flags := cmd.Flags()
flags.StringVar(&opts.Provider, "provider", "", "Supported: credstore, oauth/<provider>")
flags.MarkDeprecated("provider", "option will be ignored")
return cmd
}

func isNotImplicitReadFromStdinSyntax(args []string, opts secret.SetOpts) bool {
return strings.Contains(args[0], "=") || len(args) > 1 || opts.Provider != ""
}

func exportSecretCommand(docker docker.Client) *cobra.Command {
return &cobra.Command{
Use: "export [server1] [server2] ...",
Short: "Export secrets for the specified servers",
Hidden: true,
Args: cobra.MinimumNArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
secrets, err := secret.Export(cmd.Context(), docker, args)
if err != nil {
return err
}

for name, secret := range secrets {
_, _ = fmt.Fprintf(cmd.OutOrStdout(), "%s=%s\n", name, secret)
}

return nil
},
}
return strings.Contains(args[0], "=") || len(args) > 1
}
18 changes: 0 additions & 18 deletions cmd/docker-mcp/secret-management/policy/dump.go

This file was deleted.

11 changes: 0 additions & 11 deletions cmd/docker-mcp/secret-management/policy/set.go

This file was deleted.

Loading
Loading