fnapi

package
v0.0.271 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2023 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const AdminScope = "admin"

Variables

View Source
var (
	EndpointAddress             = "https://api.namespacelabs.net"
	AdminMode                   = false
	ExchangeGithubToTenantToken = false
)
View Source
var NamingForceStored = false

Functions

func AddNamespaceHeaders added in v0.0.82

func AddNamespaceHeaders(ctx context.Context, headers *http.Header)

func AnonymousCall

func AnonymousCall(ctx context.Context, endpoint string, method string, req interface{}, handle func(io.Reader) error) error

A nil handle indicates that the caller wants to discard the response.

func AuthenticatedCall added in v0.0.110

func AuthenticatedCall(ctx context.Context, endpoint string, method string, req interface{}, handle func(io.Reader) error) error

func BearerToken added in v0.0.176

func BearerToken(t Token) string

func CompleteLogin

func CompleteLogin(ctx context.Context, id string) (*auth.UserAuth, error)

func DecodeJSONResponse

func DecodeJSONResponse(resp any) func(io.Reader) error

func Map

func Map(ctx context.Context, fqdn, target string) error

func ResolveSpec added in v0.0.216

func ResolveSpec() (string, error)

func ResolveStaticEndpoint added in v0.0.253

func ResolveStaticEndpoint(endpoint string) func(context.Context, Token) (string, error)

func SetupFlags

func SetupFlags(flags *pflag.FlagSet)

func TrustAWSCognitoJWT added in v0.0.261

func TrustAWSCognitoJWT(ctx context.Context, tenantID, identityPool, identityProvider string) error

Types

type AllocateOpts

type AllocateOpts struct {
	Scope     schema.PackageName `json:"-"`
	FQDN      string             `json:"fqdn,omitempty"`
	Subdomain string             `json:"subdomain,omitempty"`
	NoTLS     bool               `json:"-"`
	Org       string             `json:"org,omitempty"`

	Stored *NameResource `json:"-"`
}

JSON annotations below are used for the Arg() serialization below.

type Artifact

type Artifact struct {
	URL    string `json:"url"`
	OS     string `json:"os"`
	Arch   string `json:"arch"`
	SHA256 string `json:"sha256"`
}

type Call

type Call[RequestT any] struct {
	Method     string
	FetchToken func(context.Context) (Token, error)
}

func (Call[RequestT]) Do

func (c Call[RequestT]) Do(ctx context.Context, request RequestT, resolveEndpoint func(context.Context, Token) (string, error), handle func(io.Reader) error) error

type CompleteClerkLoginResponse added in v0.0.96

type CompleteClerkLoginResponse struct {
	Ticket string `json:"ticket,omitempty"`
}

func CompleteClerkLogin added in v0.0.180

func CompleteClerkLogin(ctx context.Context, id string) (*CompleteClerkLoginResponse, error)

type CompleteLoginRequest

type CompleteLoginRequest struct {
	LoginId string `json:"login_id"`
}

type CompleteTenantLoginResponse added in v0.0.180

type CompleteTenantLoginResponse struct {
	TenantToken string `json:"tenant_token,omitempty"`
	TenantName  string `json:"tenant_name,omitempty"`
}

func CompleteTenantLogin added in v0.0.180

func CompleteTenantLogin(ctx context.Context, id string) (*CompleteTenantLoginResponse, error)

type ExchangeAWSCognitoJWTRequest added in v0.0.261

type ExchangeAWSCognitoJWTRequest struct {
	TenantId        string `json:"tenant_id,omitempty"`
	AwsCognitoToken string `json:"aws_cognito_token,omitempty"`
}

type ExchangeCircleciTokenRequest added in v0.0.244

type ExchangeCircleciTokenRequest struct {
	CircleciToken string `json:"circleci_token,omitempty"`
}

type ExchangeCircleciTokenResponse added in v0.0.244

type ExchangeCircleciTokenResponse struct {
	TenantToken string  `json:"tenant_token,omitempty"`
	Tenant      *Tenant `json:"tenant,omitempty"`
}

func ExchangeCircleciToken added in v0.0.244

func ExchangeCircleciToken(ctx context.Context, token string) (ExchangeCircleciTokenResponse, error)

type ExchangeGithubTokenRequest added in v0.0.142

type ExchangeGithubTokenRequest struct {
	GithubToken string `json:"github_token,omitempty"`
}

type ExchangeGithubTokenResponse added in v0.0.142

type ExchangeGithubTokenResponse struct {
	TenantToken string  `json:"tenant_token,omitempty"`
	Tenant      *Tenant `json:"tenant,omitempty"`
}

func ExchangeGithubToken added in v0.0.142

func ExchangeGithubToken(ctx context.Context, jwt string) (ExchangeGithubTokenResponse, error)

type ExchangeTokenResponse added in v0.0.261

type ExchangeTokenResponse struct {
	TenantToken string  `json:"tenant_token,omitempty"`
	Tenant      *Tenant `json:"tenant,omitempty"`
}

func ExchangeAWSCognitoJWT added in v0.0.261

func ExchangeAWSCognitoJWT(ctx context.Context, tenantID, token string) (ExchangeTokenResponse, error)

type ExchangeUserTokenRequest added in v0.0.161

type ExchangeUserTokenRequest struct {
	Scopes []string `json:"scopes,omitempty"`
}

type ExchangeUserTokenResponse added in v0.0.161

type ExchangeUserTokenResponse struct {
	TenantToken string `json:"tenant_token,omitempty"`
}

func ExchangeUserToken added in v0.0.161

func ExchangeUserToken(ctx context.Context, token string, scopes ...string) (ExchangeUserTokenResponse, error)

type GetLatestDeployPlansRequest added in v0.0.109

type GetLatestDeployPlansRequest struct {
	PackageName []string `json:"package_name,omitempty"`
}

type GetLatestDeployPlansResponse added in v0.0.109

type GetLatestDeployPlansResponse struct {
	Plan []*GetLatestDeployPlansResponse_Plan `json:"plan,omitempty"`
}

func GetLatestDeployPlans added in v0.0.109

func GetLatestDeployPlans(ctx context.Context, pkgs ...schema.PackageName) (*GetLatestDeployPlansResponse, error)

type GetLatestDeployPlansResponse_Plan added in v0.0.109

type GetLatestDeployPlansResponse_Plan struct {
	PackageName string `json:"package_name,omitempty"`
	Version     int32  `json:"version,omitempty"`
	Repository  string `json:"repository,omitempty"`
	Digest      string `json:"digest,omitempty"`
}

type GetLatestPrebuiltsRequest

type GetLatestPrebuiltsRequest struct {
	PackageName []string `json:"package_name,omitempty"`
}

type GetLatestPrebuiltsResponse

type GetLatestPrebuiltsResponse struct {
	Prebuilt []*GetLatestPrebuiltsResponse_Prebuilt `json:"prebuilt,omitempty"`
}

func GetLatestPrebuilts

func GetLatestPrebuilts(ctx context.Context, pkgs ...schema.PackageName) (*GetLatestPrebuiltsResponse, error)

type GetLatestPrebuiltsResponse_Prebuilt

type GetLatestPrebuiltsResponse_Prebuilt struct {
	PackageName string `json:"package_name,omitempty"`
	Repository  string `json:"repository,omitempty"`
	Digest      string `json:"digest,omitempty"`
}

type GetLatestResponse

type GetLatestResponse struct {
	Version   string      `json:"version"`
	BuildTime time.Time   `json:"build_time"`
	Tarballs  []*Artifact `json:"tarballs"`
}

func GetLatestVersion

func GetLatestVersion(ctx context.Context, req map[string]any) (*GetLatestResponse, error)

type GetTenantResponse added in v0.0.258

type GetTenantResponse struct {
	Tenant *Tenant `json:"tenant,omitempty"`
}

func GetTenant added in v0.0.258

func GetTenant(ctx context.Context) (GetTenantResponse, error)

type IssueIdTokenRequest added in v0.0.262

type IssueIdTokenRequest struct {
	Audience string `json:"audience,omitempty"`
	Version  int    `json:"version,omitempty"`
}

type IssueIdTokenResponse added in v0.0.262

type IssueIdTokenResponse struct {
	IdToken string `json:"id_token,omitempty"`
}

func IssueIdToken added in v0.0.262

func IssueIdToken(ctx context.Context, aud string, version int) (IssueIdTokenResponse, error)

type IssueRequest

type IssueRequest struct {
	NameRequest NameRequest  `json:"name_request"`
	Resource    NameResource `json:"previous"`
}

type IssueResponse

type IssueResponse struct {
	Resource NameResource `json:"resource"`
}

type MapRequest

type MapRequest struct {
	UserAuth *auth.UserAuth `json:"userAuth"`
	FQDN     string         `json:"fqdn"`
	Target   string         `json:"target"`
}

type MapResponse

type MapResponse struct {
	FQDN string `json:"fqdn"`
}

type NSRequirements

type NSRequirements struct {
	MinimumApi int32 `json:"minimum_api"`
}

type NameCertificate

type NameCertificate struct {
	PrivateKey        []byte `json:"private_key"`
	CertificateBundle []byte `json:"certificate_bundle"`
	CertificateURL    string `json:"certificate_url"`
}

type NameRequest

type NameRequest struct {
	FQDN  string `json:"fqdn,omitempty"`
	NoTLS bool   `json:"noTls"`
	Org   string `json:"org,omitempty"`
}

type NameResource

type NameResource struct {
	ID          ResourceID      `json:"id"`
	Certificate NameCertificate `json:"certificate"`
}

func AllocateName

func AllocateName(ctx context.Context, opts AllocateOpts) (*NameResource, error)

type ResourceID

type ResourceID struct {
	Opaque []byte `json:"opaque"`
}

type StartLoginRequest

type StartLoginRequest struct {
	Kind           string   `json:"kind"`
	SupportedKinds []string `json:"supported_kinds"`
	TenantId       string   `json:"tenant_id,omitempty"`
}

type StartLoginResponse

type StartLoginResponse struct {
	LoginId  string `json:"login_id"`
	LoginUrl string `json:"login_url"`
	Kind     string `json:"kind"`
}

func StartLogin

func StartLogin(ctx context.Context, kind, tenantId string) (*StartLoginResponse, error)

Returns the URL which the user should open.

type Tenant added in v0.0.191

type Tenant struct {
	TenantId      string `json:"tenant_id,omitempty"`
	Name          string `json:"name,omitempty"`
	AppUrl        string `json:"app_url,omitempty"`
	PrimaryRegion string `json:"primary_region,omitempty"`
}

type Token added in v0.0.176

type Token interface {
	Raw() string
}

func FetchToken added in v0.0.216

func FetchToken(ctx context.Context) (Token, error)

type TokenClaims added in v0.0.261

type TokenClaims struct {
	TenantID      string `json:"tenant_id"`
	InstanceID    string `json:"instance_id"`
	OwnerID       string `json:"owner_id"`
	PrimaryRegion string `json:"primary_region"`
}

func Claims added in v0.0.261

func Claims(tok Token) (*TokenClaims, error)

type TrustAWSCognitoIdentityPoolRequest added in v0.0.261

type TrustAWSCognitoIdentityPoolRequest struct {
	AwsCognitoIdentityPool string `json:"aws_cognito_identity_pool,omitempty"` // E.g. eu-central-1:56388dff-961f-42d4-a2ac-6ad118eb7799
	IdentityProvider       string `json:"identity_provider,omitempty"`         // E.g. namespace.so
}

Jump to

Keyboard shortcuts

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