Documentation ¶
Index ¶
- Constants
- Variables
- func ParseCookie(s string) *http.Cookie
- type CertificateManager
- type Context
- func (ctx *Context) ActiveTransaction() *dbx.Trx
- func (ctx *Context) AddCookie(name, value string, expires time.Time) *http.Cookie
- func (ctx *Context) AddParam(name, value string)
- func (ctx *Context) Attachment(fileName, contentType string, file []byte) error
- func (ctx *Context) BadRequest(dict Map) error
- func (ctx *Context) BaseURL() string
- func (ctx *Context) Bind(i interface{}) error
- func (ctx *Context) BindTo(i actions.Actionable) *validate.Result
- func (ctx *Context) Blob(code int, contentType string, b []byte) error
- func (ctx *Context) Claims() *jwt.FiderClaims
- func (ctx *Context) Commit() error
- func (ctx *Context) ContextID() string
- func (ctx *Context) Engine() *Engine
- func (ctx *Context) Enqueue(task worker.Task)
- func (ctx *Context) Failure(err error) error
- func (ctx *Context) FaviconURL() string
- func (ctx *Context) Get(key string) interface{}
- func (ctx *Context) GlobalAssetsURL(path string, a ...interface{}) string
- func (ctx *Context) Gone() error
- func (ctx *Context) HandleValidation(result *validate.Result) error
- func (ctx *Context) Image(contentType string, b []byte) error
- func (ctx *Context) IsAjax() bool
- func (ctx *Context) IsAuthenticated() bool
- func (ctx *Context) JSON(code int, i interface{}) error
- func (ctx *Context) Logger() log.Logger
- func (ctx *Context) LogoURL() string
- func (ctx *Context) NoContent(code int) error
- func (ctx *Context) NotFound() error
- func (ctx *Context) Ok(data interface{}) error
- func (ctx *Context) Page(props Props) error
- func (ctx *Context) Param(name string) string
- func (ctx *Context) ParamAsInt(name string) (int, error)
- func (ctx *Context) PermanentRedirect(url string) error
- func (ctx *Context) QueryParam(key string) string
- func (ctx *Context) QueryParamAsArray(key string) []string
- func (ctx *Context) QueryParamAsInt(key string) (int, error)
- func (ctx *Context) Redirect(url string) error
- func (ctx *Context) RemoveCookie(name string)
- func (ctx *Context) Render(code int, template string, props Props) error
- func (ctx *Context) Rollback() error
- func (ctx *Context) Services() *app.Services
- func (ctx *Context) SessionID() string
- func (ctx *Context) Set(key string, val interface{})
- func (ctx *Context) SetActiveTransaction(trx *dbx.Trx)
- func (ctx *Context) SetCanonicalURL(rawurl string)
- func (ctx *Context) SetClaims(claims *jwt.FiderClaims)
- func (ctx *Context) SetServices(services *app.Services)
- func (ctx *Context) SetSessionID(id string)
- func (ctx *Context) SetTenant(tenant *models.Tenant)
- func (ctx *Context) SetUser(user *models.User)
- func (ctx *Context) String(code int, text string) error
- func (ctx *Context) Tenant() *models.Tenant
- func (ctx *Context) TenantAssetsURL(path string, a ...interface{}) string
- func (ctx *Context) TenantBaseURL(tenant *models.Tenant) string
- func (ctx *Context) TryAgainLater(d time.Duration) error
- func (ctx *Context) Unauthorized() error
- func (ctx *Context) User() *models.User
- func (ctx *Context) XML(code int, text string) error
- type DefaultBinder
- type Engine
- func (e *Engine) Cache() *cache.Cache
- func (e *Engine) Database() *dbx.Database
- func (e *Engine) Delete(path string, handler HandlerFunc)
- func (e *Engine) Get(path string, handler HandlerFunc)
- func (e *Engine) Group() *Group
- func (e *Engine) Logger() log.Logger
- func (e *Engine) NewContext(res http.ResponseWriter, req *http.Request, params StringMap) Context
- func (e *Engine) NotFound(handler HandlerFunc)
- func (e *Engine) Post(path string, handler HandlerFunc)
- func (e *Engine) Put(path string, handler HandlerFunc)
- func (e *Engine) Start(address string)
- func (e *Engine) Stop() error
- func (e *Engine) Use(middleware MiddlewareFunc)
- func (e *Engine) Worker() worker.Worker
- type Group
- func (g *Group) Delete(path string, handler HandlerFunc)
- func (g *Group) Get(path string, handler HandlerFunc)
- func (g *Group) Group() *Group
- func (g *Group) Post(path string, handler HandlerFunc)
- func (g *Group) Put(path string, handler HandlerFunc)
- func (g *Group) Static(prefix, root string)
- func (g *Group) Use(middleware MiddlewareFunc)
- type HandlerFunc
- type Map
- type MiddlewareFunc
- type OAuthService
- func (s *OAuthService) GetAuthURL(provider, redirect, identifier string) (string, error)
- func (s *OAuthService) GetProfile(provider string, code string) (*oauth.UserProfile, error)
- func (s *OAuthService) GetRawProfile(provider string, code string) (string, error)
- func (s *OAuthService) ListActiveProviders() ([]*oauth.ProviderOption, error)
- func (s *OAuthService) ListAllProviders() ([]*oauth.ProviderOption, error)
- func (s *OAuthService) ParseRawProfile(provider, body string) (*oauth.UserProfile, error)
- type Props
- type Renderer
- type Request
- type StringMap
Constants ¶
const CookieAuthName = "auth"
CookieAuthName is the name of the cookie that holds the Authentication Token
const CookieSessionName = "user_session_id"
CookieSessionName is the name of the cookie that holds the session ID
const CookieSignUpAuthName = "__signup_auth"
CookieSignUpAuthName is the name of the cookie that holds the temporary Authentication Token
Variables ¶
var ( PlainContentType = "text/plain" HTMLContentType = "text/html" JSONContentType = "application/json" XMLContentType = "application/xml" UTF8PlainContentType = PlainContentType + "; charset=utf-8" UTF8HTMLContentType = HTMLContentType + "; charset=utf-8" UTF8XMLContentType = XMLContentType + "; charset=utf-8" UTF8JSONContentType = JSONContentType + "; charset=utf-8" )
HTMLMimeType is the mimetype for HTML responses
var ( //CspPolicyTemplate is the template used to generate the policy CspPolicyTemplate = fmt.Sprintf("%s; %s; %s; %s; %s; %s; %s; %s; %s; %s", cspBase, cspDefault, cspStyle, cspScript, cspImage, cspFont, cspObject, cspMedia, cspConnect, cspFrame) )
var ( //ErrContentTypeNotAllowed is used when POSTing a body that is not json ErrContentTypeNotAllowed = stdErrors.New("Only Content-Type application/json is allowed") )
Functions ¶
func ParseCookie ¶ added in v0.15.0
ParseCookie return a list of cookie parsed from raw Set-Cookie
Types ¶
type CertificateManager ¶ added in v0.7.0
type CertificateManager struct {
// contains filtered or unexported fields
}
CertificateManager is used to manage SSL certificates
func NewCertificateManager ¶ added in v0.7.0
func NewCertificateManager(certFile, keyFile string, db *dbx.Database) (*CertificateManager, error)
NewCertificateManager creates a new CertificateManager
func (*CertificateManager) GetCertificate ¶ added in v0.7.0
func (m *CertificateManager) GetCertificate(hello *tls.ClientHelloInfo) (*tls.Certificate, error)
GetCertificate decides which certificate to use It first tries to use loaded certificate for incoming request if it's compatible Otherwise fallsback to a automatically generated certificate by Let's Encrypt
func (*CertificateManager) StartHTTPServer ¶ added in v0.9.0
func (m *CertificateManager) StartHTTPServer()
StartHTTPServer creates a new HTTP server on port 80 that is used for the ACME HTTP Challenge
type Context ¶
type Context struct { Response http.ResponseWriter Request Request // contains filtered or unexported fields }
Context shared between http pipeline
func (*Context) ActiveTransaction ¶
ActiveTransaction returns current active Database transaction
func (*Context) Attachment ¶ added in v0.12.0
Attachment returns an attached file
func (*Context) BadRequest ¶
BadRequest returns 400 BadRequest with JSON result
func (*Context) BindTo ¶ added in v0.4.0
func (ctx *Context) BindTo(i actions.Actionable) *validate.Result
BindTo context values into given model
func (*Context) Blob ¶ added in v0.7.0
Blob sends a blob response with status code and content type.
func (*Context) Claims ¶ added in v0.15.0
func (ctx *Context) Claims() *jwt.FiderClaims
Claims returns current user claims
func (*Context) FaviconURL ¶ added in v0.15.0
FaviconURL return the full URL to the tenant-specific favicon URL
func (*Context) GlobalAssetsURL ¶ added in v0.14.0
GlobalAssetsURL return the full URL to a globally shared static asset
func (*Context) HandleValidation ¶ added in v0.4.0
HandleValidation handles given validation result property to return 400 or 500
func (*Context) Image ¶ added in v0.18.0
Image sends an image blob response with status code and content type.
func (*Context) IsAuthenticated ¶
IsAuthenticated returns true if user is authenticated
func (*Context) LogoURL ¶ added in v0.15.0
LogoURL return the full URL to the tenant-specific logo URL
func (*Context) NoContent ¶ added in v0.7.0
NoContent sends a response with no body and a status code.
func (*Context) ParamAsInt ¶
ParamAsInt returns parameter as int
func (*Context) PermanentRedirect ¶ added in v0.17.0
PermanentRedirect the request to a provided URL
func (*Context) QueryParam ¶ added in v0.7.0
QueryParam returns querystring parameter for given key
func (*Context) QueryParamAsArray ¶ added in v0.10.0
QueryParamAsArray returns querystring parameter for given key as an array
func (*Context) QueryParamAsInt ¶ added in v0.18.0
QueryParamAsInt returns querystring parameter for given key
func (*Context) RemoveCookie ¶ added in v0.6.0
RemoveCookie removes a cookie
func (*Context) Render ¶ added in v0.7.0
Render renders a template with data and sends a text/html response with status
func (*Context) SetActiveTransaction ¶
SetActiveTransaction adds transaction to context
func (*Context) SetCanonicalURL ¶ added in v0.18.0
SetCanonicalURL sets the canonical link on the HTTP Response Headers
func (*Context) SetClaims ¶ added in v0.15.0
func (ctx *Context) SetClaims(claims *jwt.FiderClaims)
SetClaims update HTTP context with current user claims
func (*Context) SetServices ¶
SetServices update current context with app.Services
func (*Context) SetSessionID ¶ added in v0.17.0
SetSessionID sets the session ID on current context
func (*Context) TenantAssetsURL ¶ added in v0.14.0
TenantAssetsURL return the full URL to a tenant-specific static asset
func (*Context) TenantBaseURL ¶ added in v0.6.0
TenantBaseURL returns base URL for a given tenant
func (*Context) TryAgainLater ¶ added in v0.18.0
TryAgainLater returns a service unavailable response with Retry-After header
func (*Context) Unauthorized ¶ added in v0.4.0
Unauthorized returns a 403 response
type DefaultBinder ¶ added in v0.7.0
type DefaultBinder struct { }
DefaultBinder is the default HTTP binder
func NewDefaultBinder ¶ added in v0.7.0
func NewDefaultBinder() *DefaultBinder
NewDefaultBinder creates a new default binder
func (*DefaultBinder) Bind ¶ added in v0.7.0
func (b *DefaultBinder) Bind(target interface{}, c *Context) error
Bind request data to object i
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine is our web engine wrapper
func (*Engine) Delete ¶ added in v0.15.0
func (e *Engine) Delete(path string, handler HandlerFunc)
Delete handles HTTP DELETE requests
func (*Engine) Get ¶ added in v0.15.0
func (e *Engine) Get(path string, handler HandlerFunc)
Get handles HTTP GET requests
func (*Engine) NewContext ¶
NewContext creates and return a new context
func (*Engine) NotFound ¶ added in v0.16.0
func (e *Engine) NotFound(handler HandlerFunc)
NotFound register how to handle routes that are not found
func (*Engine) Post ¶ added in v0.15.0
func (e *Engine) Post(path string, handler HandlerFunc)
Post handles HTTP POST requests
func (*Engine) Put ¶ added in v0.15.0
func (e *Engine) Put(path string, handler HandlerFunc)
Put handles HTTP PUT requests
func (*Engine) Use ¶
func (e *Engine) Use(middleware MiddlewareFunc)
Use adds a middleware to the root engine
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
Group is our router group wrapper
func (*Group) Delete ¶ added in v0.8.0
func (g *Group) Delete(path string, handler HandlerFunc)
Delete handles HTTP DELETE requests
func (*Group) Get ¶
func (g *Group) Get(path string, handler HandlerFunc)
Get handles HTTP GET requests
func (*Group) Post ¶
func (g *Group) Post(path string, handler HandlerFunc)
Post handles HTTP POST requests
func (*Group) Put ¶ added in v0.15.0
func (g *Group) Put(path string, handler HandlerFunc)
Put handles HTTP PUT requests
func (*Group) Use ¶
func (g *Group) Use(middleware MiddlewareFunc)
Use adds a middleware to current route stack
type Map ¶ added in v0.4.0
type Map map[string]interface{}
Map defines a generic map of type `map[string]interface{}`
type MiddlewareFunc ¶
type MiddlewareFunc func(HandlerFunc) HandlerFunc
MiddlewareFunc represents an HTTP middleware
type OAuthService ¶ added in v0.15.0
type OAuthService struct {
// contains filtered or unexported fields
}
OAuthService implements real OAuth operations using Golang's oauth2 package
func NewOAuthService ¶ added in v0.15.0
func NewOAuthService(oauthBaseURL string, tenantStorage storage.Tenant) *OAuthService
NewOAuthService creates a new OAuthService
func (*OAuthService) GetAuthURL ¶ added in v0.15.0
func (s *OAuthService) GetAuthURL(provider, redirect, identifier string) (string, error)
GetAuthURL returns authentication url for given provider
func (*OAuthService) GetProfile ¶ added in v0.15.0
func (s *OAuthService) GetProfile(provider string, code string) (*oauth.UserProfile, error)
GetProfile returns user profile based on provider (only if enabled) and code
func (*OAuthService) GetRawProfile ¶ added in v0.15.0
func (s *OAuthService) GetRawProfile(provider string, code string) (string, error)
GetRawProfile returns raw JSON response from Profile API
func (*OAuthService) ListActiveProviders ¶ added in v0.15.0
func (s *OAuthService) ListActiveProviders() ([]*oauth.ProviderOption, error)
ListActiveProviders returns a list of all enabled providers for current tenant
func (*OAuthService) ListAllProviders ¶ added in v0.15.0
func (s *OAuthService) ListAllProviders() ([]*oauth.ProviderOption, error)
ListAllProviders returns a list of all providers for current tenant
func (*OAuthService) ParseRawProfile ¶ added in v0.15.0
func (s *OAuthService) ParseRawProfile(provider, body string) (*oauth.UserProfile, error)
ParseRawProfile parses raw profile response into UserProfile model
type Renderer ¶ added in v0.7.0
type Renderer struct {
// contains filtered or unexported fields
}
Renderer is the default HTML Render
func NewRenderer ¶ added in v0.7.0
func NewRenderer(settings *models.SystemSettings, logger log.Logger) *Renderer
NewRenderer creates a new Renderer
type Request ¶ added in v0.14.0
type Request struct { Method string ClientIP string ContentLength int64 Body string IsSecure bool URL *url.URL // contains filtered or unexported fields }
Request wraps the http request object
func WrapRequest ¶ added in v0.14.0
WrapRequest returns Fider wrapper of HTTP Request
func (*Request) GetHeader ¶ added in v0.14.0
GetHeader returns the value of HTTP header from given key