MCPcopy Index your code
hub / github.com/coder/coder / dbcryptDeleteCmd

Method dbcryptDeleteCmd

enterprise/cli/server_dbcrypt.go:185–239  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

183}
184
185func (*RootCmd) dbcryptDeleteCmd() *serpent.Command {
186 var flags deleteFlags
187 cmd := &serpent.Command{
188 Use: "delete",
189 Short: "Delete all encrypted data from the database. THIS IS A DESTRUCTIVE OPERATION.",
190 Handler: func(inv *serpent.Invocation) error {
191 ctx, cancel := context.WithCancel(inv.Context())
192 defer cancel()
193 logger := slog.Make(sloghuman.Sink(inv.Stdout))
194 if ok, _ := inv.ParsedFlags().GetBool("verbose"); ok {
195 logger = logger.Leveled(slog.LevelDebug)
196 }
197
198 if err := flags.valid(); err != nil {
199 return err
200 }
201 msg := `All encrypted data will be deleted from the database:
202- Encrypted user OAuth access and refresh tokens
203- Encrypted user Git authentication access and refresh tokens
204
205Are you sure you want to continue?`
206 if _, err := cliui.Prompt(inv, cliui.PromptOptions{
207 Text: msg,
208 IsConfirm: true,
209 }); err != nil {
210 return err
211 }
212
213 var err error
214 sqlDriver := "postgres"
215 if codersdk.PostgresAuth(flags.PostgresAuth) == codersdk.PostgresAuthAWSIAMRDS {
216 sqlDriver, err = awsiamrds.Register(inv.Context(), sqlDriver)
217 if err != nil {
218 return xerrors.Errorf("register aws rds iam auth: %w", err)
219 }
220 }
221
222 sqlDB, err := cli.ConnectToPostgres(inv.Context(), logger, sqlDriver, flags.PostgresURL, nil)
223 if err != nil {
224 return xerrors.Errorf("connect to postgres: %w", err)
225 }
226 defer func() {
227 _ = sqlDB.Close()
228 }()
229 logger.Info(ctx, "connected to postgres")
230 if err := dbcrypt.Delete(ctx, logger, sqlDB); err != nil {
231 return xerrors.Errorf("delete encrypted data: %w", err)
232 }
233 logger.Info(ctx, "operation completed successfully")
234 return nil
235 },
236 }
237 flags.attach(&cmd.Options)
238 return cmd
239}
240
241type rotateFlags struct {
242 PostgresURL string

Callers 1

dbcryptCmdMethod · 0.95

Calls 11

validMethod · 0.95
attachMethod · 0.95
PromptFunction · 0.92
PostgresAuthTypeAlias · 0.92
RegisterFunction · 0.92
ConnectToPostgresFunction · 0.92
DeleteFunction · 0.92
ContextMethod · 0.65
CloseMethod · 0.65
ErrorfMethod · 0.45
InfoMethod · 0.45

Tested by

no test coverage detected