api

package
v1.0.0-beta.29 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 31, 2023 License: MIT Imports: 57 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InvitationStatusPending  = "PENDING"
	InvitationStatusAccepted = "ACCEPTED"
)
View Source
const (
	ValidateEvent = "validate"
	SignupEvent   = "signup"
	LoginEvent    = "login"
)

Variables

This section is empty.

Functions

func GenerateRandomString

func GenerateRandomString(prefix string, length int) string

func GetUserIdFromSubject

func GetUserIdFromSubject(subject string) string

func SafeHTTPClient

func SafeHTTPClient(client *http.Client, log zerolog.Logger) *http.Client

func SafeRoundtripper

func SafeRoundtripper(trans http.RoundTripper, log zerolog.Logger) http.RoundTripper

func WithInstanceConfig

func WithInstanceConfig(ctx context.Context, config *conf.Configuration, instanceID uuid.UUID) (context.Context, error)

WithInstanceConfig ...

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API is the main REST API

func NewAPI

func NewAPI(globalConfig *conf.GlobalConfiguration, config *conf.Configuration, db *tigris.Database) *API

NewAPI instantiates a new REST API

func NewAPIFromConfigFile

func NewAPIFromConfigFile(filename string, version string) (*API, *conf.Configuration, error)

NewAPIFromConfigFile creates a new REST API using the provided configuration file.

func NewAPIWithVersion

func NewAPIWithVersion(ctx context.Context, globalConfig *conf.GlobalConfiguration, config *conf.Configuration, db *tigris.Database, version string) *API

NewAPIWithVersion creates a new REST API using the specified version

func (*API) CreateInstance

func (a *API) CreateInstance(w http.ResponseWriter, r *http.Request) error

func (*API) CreateInvitation

func (a *API) CreateInvitation(w http.ResponseWriter, r *http.Request) error

func (*API) DeleteInstance

func (a *API) DeleteInstance(w http.ResponseWriter, r *http.Request) error

func (*API) DeleteInvitation

func (a *API) DeleteInvitation(w http.ResponseWriter, r *http.Request) error

func (*API) ExternalProviderCallback

func (a *API) ExternalProviderCallback(w http.ResponseWriter, r *http.Request) error

func (*API) ExternalProviderRedirect

func (a *API) ExternalProviderRedirect(w http.ResponseWriter, r *http.Request) error

func (*API) GetAppManifest

func (a *API) GetAppManifest(w http.ResponseWriter, r *http.Request) error

func (*API) GetInstance

func (a *API) GetInstance(w http.ResponseWriter, r *http.Request) error

func (*API) HealthCheck

func (a *API) HealthCheck(w http.ResponseWriter, r *http.Request) error

HealthCheck ...

func (*API) Invite

func (a *API) Invite(w http.ResponseWriter, r *http.Request) error

Invite is the endpoint for inviting a new user Tigris uses different Invitation flow that is handled at Invitation.go handler

func (*API) ListInvitations

func (a *API) ListInvitations(w http.ResponseWriter, r *http.Request) error

func (*API) ListenAndServe

func (a *API) ListenAndServe(hostAndPort string)

ListenAndServe starts the REST API

func (*API) Logout

func (a *API) Logout(w http.ResponseWriter, r *http.Request) error

Logout is the endpoint for logging out a user and thereby revoking any refresh tokens

func (*API) Mailer

func (a *API) Mailer(ctx context.Context) mailer.Mailer

Mailer ...

func (*API) OAuthProvider

func (a *API) OAuthProvider(ctx context.Context, name string) (provider.OAuthProvider, error)

func (*API) Provider

func (a *API) Provider(ctx context.Context, name string) (provider.Provider, error)

Provider returns a Provider interface for the given name.

func (*API) Recover

func (a *API) Recover(w http.ResponseWriter, r *http.Request) error

Recover sends a recovery email

func (*API) RefreshTokenGrant

func (a *API) RefreshTokenGrant(ctx context.Context, w http.ResponseWriter, r *http.Request) error

RefreshTokenGrant implements the refresh_token grant type flow

func (*API) ResourceOwnerPasswordGrant

func (a *API) ResourceOwnerPasswordGrant(ctx context.Context, w http.ResponseWriter, r *http.Request) error

ResourceOwnerPasswordGrant implements the password grant type flow

func (*API) SAMLMetadata

func (a *API) SAMLMetadata(w http.ResponseWriter, r *http.Request) error

func (*API) Settings

func (a *API) Settings(w http.ResponseWriter, r *http.Request) error

func (*API) Signup

func (a *API) Signup(w http.ResponseWriter, r *http.Request) error

Signup is the endpoint for registering a new user

func (*API) Token

func (a *API) Token(w http.ResponseWriter, r *http.Request) error

Token is the endpoint for OAuth access token requests

func (*API) UpdateInstance

func (a *API) UpdateInstance(w http.ResponseWriter, r *http.Request) error

func (*API) UserGet

func (a *API) UserGet(w http.ResponseWriter, r *http.Request) error

UserGet returns a user

func (*API) UserUpdate

func (a *API) UserUpdate(w http.ResponseWriter, r *http.Request) error

UserUpdate updates fields on a user

func (*API) Verify

func (a *API) Verify(w http.ResponseWriter, r *http.Request) error

Verify exchanges a confirmation or recovery token to a refresh token

func (*API) VerifyInvitation

func (a *API) VerifyInvitation(w http.ResponseWriter, r *http.Request) error

type AccessTokenResponse

type AccessTokenResponse struct {
	Token        string `json:"access_token"`
	TokenType    string `json:"token_type"` // Bearer
	ExpiresIn    int    `json:"expires_in"`
	RefreshToken string `json:"refresh_token"`
}

AccessTokenResponse represents an OAuth2 success response

type DeleteInvitationsParam

type DeleteInvitationsParam struct {
	Email           string `json:"email"`
	CreatedBy       string `json:"created_by"`
	TigrisNamespace string `json:"tigris_namespace"`
	Status          string `json:"status"`
}

type ErrorCause

type ErrorCause interface {
	Cause() error
}

type ExternalProviderClaims

type ExternalProviderClaims struct {
	NetlifyMicroserviceClaims
	Provider    string `json:"provider"`
	InviteToken string `json:"invite_token,omitempty"`
	Referrer    string `json:"referrer,omitempty"`
}

type ExternalSignupParams

type ExternalSignupParams struct {
	Provider string `json:"provider"`
	Code     string `json:"code"`
}

SignupParams are the parameters the Signup endpoint accepts

type FunctionHooks

type FunctionHooks map[string][]string

func (*FunctionHooks) UnmarshalJSON

func (f *FunctionHooks) UnmarshalJSON(b []byte) error

type GoTrueClaims

type GoTrueClaims struct {
	jwt.StandardClaims
	TigrisMetadata map[string]interface{} `json:"https://tigris"`
}

GoTrueClaims is a struct that used for JWT claims

type HTTPError

type HTTPError struct {
	Code            int    `json:"code"`
	Message         string `json:"msg"`
	InternalError   error  `json:"-"`
	InternalMessage string `json:"-"`
	ErrorID         string `json:"error_id,omitempty"`
}

HTTPError is an error with a message and an HTTP status code.

func (*HTTPError) Cause

func (e *HTTPError) Cause() error

Cause returns the root cause error

func (*HTTPError) Error

func (e *HTTPError) Error() string

func (*HTTPError) WithInternalError

func (e *HTTPError) WithInternalError(err error) *HTTPError

WithInternalError adds internal error information to the error

func (*HTTPError) WithInternalMessage

func (e *HTTPError) WithInternalMessage(fmtString string, args ...interface{}) *HTTPError

WithInternalMessage adds internal message information to the error

type HookEvent

type HookEvent string

type InstanceRequestParams

type InstanceRequestParams struct {
	UUID       uuid.UUID           `json:"uuid"`
	BaseConfig *conf.Configuration `json:"config"`
}

type InstanceResponse

type InstanceResponse struct {
	models.Instance
	Endpoint string `json:"endpoint"`
	State    string `json:"state"`
}

type InviteParams

type InviteParams struct {
	Email string                 `json:"email"`
	Data  map[string]interface{} `json:"data"`
}

InviteParams are the parameters the Signup endpoint accepts

type JWKS

type JWKS struct {
	// contains filtered or unexported fields
}

JWKS - public REST endpoints

func NewJKWS

func NewJKWS(globalConfig *conf.GlobalConfiguration, config *conf.Configuration, version string) (*JWKS, error)

NewJKWS - constructs newer JWKS endpoint

type NetlifyMicroserviceClaims

type NetlifyMicroserviceClaims struct {
	jwt.StandardClaims
	SiteURL       string        `json:"site_url"`
	InstanceID    string        `json:"id"`
	NetlifyID     string        `json:"netlify_id"`
	FunctionHooks FunctionHooks `json:"function_hooks"`
}

type OAuthError

type OAuthError struct {
	Err             string `json:"error"`
	Description     string `json:"error_description,omitempty"`
	InternalError   error  `json:"-"`
	InternalMessage string `json:"-"`
}

OAuthError is the JSON handler for OAuth2 error responses

func (*OAuthError) Cause

func (e *OAuthError) Cause() error

Cause returns the root cause error

func (*OAuthError) Error

func (e *OAuthError) Error() string

func (*OAuthError) WithInternalError

func (e *OAuthError) WithInternalError(err error) *OAuthError

WithInternalError adds internal error information to the error

func (*OAuthError) WithInternalMessage

func (e *OAuthError) WithInternalMessage(fmtString string, args ...interface{}) *OAuthError

WithInternalMessage adds internal message information to the error

type OpenIdConfiguration

type OpenIdConfiguration struct {
	// contains filtered or unexported fields
}

OpenIdConfiguration public rest endpoint

func NewOpenIdConfiguration

func NewOpenIdConfiguration(globalConfig *conf.GlobalConfiguration, conf *conf.Configuration, version string) OpenIdConfiguration

type ProviderLabels

type ProviderLabels struct {
	SAML string `json:"saml,omitempty"`
}

type ProviderSettings

type ProviderSettings struct {
	Bitbucket bool `json:"bitbucket"`
	GitHub    bool `json:"github"`
	GitLab    bool `json:"gitlab"`
	Google    bool `json:"google"`
	Facebook  bool `json:"facebook"`
	Email     bool `json:"email"`
	SAML      bool `json:"saml"`
}

type RecoverParams

type RecoverParams struct {
	Email string `json:"email"`
}

RecoverParams holds the parameters for a password recovery request

type Settings

type Settings struct {
	ExternalProviders ProviderSettings `json:"external"`
	ExternalLabels    ProviderLabels   `json:"external_labels"`
	DisableSignup     bool             `json:"disable_signup"`
	Autoconfirm       bool             `json:"autoconfirm"`
}

type SignupParams

type SignupParams struct {
	Email    string                 `json:"email"`
	Password string                 `json:"password"`
	Role     string                 `json:"role"`
	Data     map[string]interface{} `json:"data"`
	AppData  models.UserAppMetadata `json:"app_data"`
	Provider string                 `json:"-"`
	Aud      string                 `json:"-"`
}

SignupParams are the parameters the Signup endpoint accepts

type TokenSigner

type TokenSigner struct {
	// contains filtered or unexported fields
}

TokenSigner is responsible to sign token, it supports HS256, RS256 algo

func NewTokenSigner

func NewTokenSigner(config *conf.Configuration) *TokenSigner

NewTokenSigner - Returns new instance of TokenSinger

type UserUpdateParams

type UserUpdateParams struct {
	Email            string                  `json:"email"`
	Password         string                  `json:"password"`
	EmailChangeToken string                  `json:"email_change_token"`
	Data             map[string]interface{}  `json:"data"`
	AppData          *models.UserAppMetadata `json:"app_metadata,omitempty"`
}

UserUpdateParams parameters for updating a user

type VerifyInvitationParams

type VerifyInvitationParams struct {
	Email string `json:"email"`
	Code  string `json:"code"`
	// When this flag is used, invitation doesn't get marked as accepted.
	Dry bool `json:"dry"`
}

type VerifyInvitationResponse

type VerifyInvitationResponse struct {
	TigrisNamespace     string `json:"tigris_namespace"`
	TigrisNamespaceName string `json:"tigris_namespace_name"`
	Role                string `json:"role"`
}

type VerifyParams

type VerifyParams struct {
	Type     string `json:"type"`
	Token    string `json:"token"`
	Password string `json:"password"`
}

VerifyParams are the parameters the Verify endpoint accepts

type Webhook

type Webhook struct {
	*conf.WebhookConfig
	// contains filtered or unexported fields
}

type WebhookResponse

type WebhookResponse struct {
	AppMetaData  *models.UserAppMetadata `json:"app_metadata,omitempty"`
	UserMetaData map[string]interface{}  `json:"user_metadata,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL