90 lines
3.3 KiB
Go
90 lines
3.3 KiB
Go
package cmd
|
|
|
|
import (
|
|
"github.com/spf13/afero"
|
|
"github.com/spf13/cobra"
|
|
"github.com/supabase/cli/internal/hostnames/activate"
|
|
"github.com/supabase/cli/internal/hostnames/create"
|
|
"github.com/supabase/cli/internal/hostnames/delete"
|
|
"github.com/supabase/cli/internal/hostnames/get"
|
|
"github.com/supabase/cli/internal/hostnames/reverify"
|
|
"github.com/supabase/cli/internal/utils/flags"
|
|
)
|
|
|
|
var (
|
|
customHostnamesCmd = &cobra.Command{
|
|
GroupID: groupManagementAPI,
|
|
Use: "domains",
|
|
Short: "Manage custom domain names for Supabase projects",
|
|
Long: `Manage custom domain names for Supabase projects.
|
|
|
|
Use of custom domains and vanity subdomains is mutually exclusive.
|
|
`,
|
|
}
|
|
|
|
rawOutput bool
|
|
customHostname string
|
|
|
|
customHostnamesCreateCmd = &cobra.Command{
|
|
Use: "create",
|
|
Short: "Create a custom hostname",
|
|
Long: `Create a custom hostname for your Supabase project.
|
|
|
|
Expects your custom hostname to have a CNAME record to your Supabase project's subdomain.`,
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
return create.Run(cmd.Context(), flags.ProjectRef, customHostname, rawOutput, afero.NewOsFs())
|
|
},
|
|
}
|
|
|
|
customHostnamesGetCmd = &cobra.Command{
|
|
Use: "get",
|
|
Short: "Get the current custom hostname config",
|
|
Long: "Retrieve the custom hostname config for your project, as stored in the Supabase platform.",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
return get.Run(cmd.Context(), flags.ProjectRef, rawOutput, afero.NewOsFs())
|
|
},
|
|
}
|
|
|
|
customHostnamesReverifyCmd = &cobra.Command{
|
|
Use: "reverify",
|
|
Short: "Re-verify the custom hostname config for your project",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
return reverify.Run(cmd.Context(), flags.ProjectRef, rawOutput, afero.NewOsFs())
|
|
},
|
|
}
|
|
|
|
customHostnamesActivateCmd = &cobra.Command{
|
|
Use: "activate",
|
|
Short: "Activate the custom hostname for a project",
|
|
Long: `Activates the custom hostname configuration for a project.
|
|
|
|
This reconfigures your Supabase project to respond to requests on your custom hostname.
|
|
After the custom hostname is activated, your project's auth services will no longer function on the Supabase-provisioned subdomain.`,
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
return activate.Run(cmd.Context(), flags.ProjectRef, rawOutput, afero.NewOsFs())
|
|
},
|
|
}
|
|
|
|
customHostnamesDeleteCmd = &cobra.Command{
|
|
Use: "delete",
|
|
Short: "Deletes the custom hostname config for your project",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
return delete.Run(cmd.Context(), flags.ProjectRef, afero.NewOsFs())
|
|
},
|
|
}
|
|
)
|
|
|
|
func init() {
|
|
persistentFlags := customHostnamesCmd.PersistentFlags()
|
|
persistentFlags.StringVar(&flags.ProjectRef, "project-ref", "", "Project ref of the Supabase project.")
|
|
persistentFlags.BoolVar(&rawOutput, "include-raw-output", false, "Include raw output (useful for debugging).")
|
|
customHostnamesCreateCmd.Flags().StringVar(&customHostname, "custom-hostname", "", "The custom hostname to use for your Supabase project.")
|
|
customHostnamesCmd.AddCommand(customHostnamesGetCmd)
|
|
customHostnamesCmd.AddCommand(customHostnamesCreateCmd)
|
|
customHostnamesCmd.AddCommand(customHostnamesReverifyCmd)
|
|
customHostnamesCmd.AddCommand(customHostnamesActivateCmd)
|
|
customHostnamesCmd.AddCommand(customHostnamesDeleteCmd)
|
|
|
|
rootCmd.AddCommand(customHostnamesCmd)
|
|
}
|