feat: Add auth flow (#146)

This adds a simple way to incorporate a centralized authentication flow.

The idea is to have the user, API and SSH (for machine authentication)
all in one place using `openauthjs` + `SST`

We also have a database now :)

> We are using InstantDB as it allows us to authenticate a use with just
the email. Plus it is super simple simple to use _of course after the
initial fumbles trying to design the db and relationships_
This commit is contained in:
Wanjohi
2025-01-04 00:02:28 +03:00
committed by GitHub
parent 33895974a7
commit fc5a755408
136 changed files with 3512 additions and 1914 deletions

26
packages/cli/cmd/run.go Normal file
View File

@@ -0,0 +1,26 @@
package cmd
import (
"nestrilabs/cli/internal/auth"
"github.com/charmbracelet/log"
"github.com/spf13/cobra"
)
var runCmd = &cobra.Command{
Use: "run",
Short: "Run a new Nestri node",
Long: "Create and run a new Nestri node from this machine",
Args: cobra.NoArgs,
RunE: func(_ *cobra.Command, _ []string) error {
credentials, err := auth.FetchUserCredentials()
if err != nil {
return err
}
log.Info("Credentials", "access_token", credentials.AccessToken)
log.Info("Credentials", "refresh_token", credentials.RefreshToken)
return nil
},
}