Documentation ¶
Index ¶
Constants ¶
const ContentLengthLimit = 4 * memory.KB
ContentLengthLimit describes 4KB limit.
Variables ¶
var ( // Error is satellite console error type. Error = errs.Class("consoleweb") )
Functions ¶
func NewUserIDRateLimiter ¶ added in v1.39.4
func NewUserIDRateLimiter(config web.RateLimiterConfig, log *zap.Logger) *web.RateLimiter
NewUserIDRateLimiter constructs a RateLimiter that limits based on user ID.
Types ¶
type Config ¶
type Config struct { Address string `help:"server address of the graphql api gateway and frontend app" devDefault:"127.0.0.1:0" releaseDefault:":10100"` StaticDir string `help:"path to static resources" default:""` Watch bool `help:"whether to load templates on each request" default:"false" devDefault:"true"` ExternalAddress string `help:"external endpoint of the satellite if hosted" default:""` AuthToken string `help:"auth token needed for access to registration token creation endpoint" default:"" testDefault:"very-secret-token"` AuthTokenSecret string `help:"secret used to sign auth tokens" releaseDefault:"" devDefault:"my-suppa-secret-key"` ContactInfoURL string `help:"url link to contacts page" default:"https://forum.storj.io"` FrameAncestors string `help:"allow domains to embed the satellite in a frame, space separated" default:"tardigrade.io storj.io"` LetUsKnowURL string `help:"url link to let us know page" default:"https://storjlabs.atlassian.net/servicedesk/customer/portals"` SEO string `help:"used to communicate with web crawlers and other web robots" default:"User-agent: *\nDisallow: \nDisallow: /cgi-bin/"` SatelliteName string `help:"used to display at web satellite console" default:"Storj"` SatelliteOperator string `help:"name of organization which set up satellite" default:"Storj Labs" ` TermsAndConditionsURL string `help:"url link to terms and conditions page" default:"https://www.storj.io/terms-of-service/"` AccountActivationRedirectURL string `help:"url link for account activation redirect" default:""` PartneredSatellites Satellites `` /* 250-byte string literal not displayed */ GeneralRequestURL string `` /* 127-byte string literal not displayed */ ProjectLimitsIncreaseRequestURL string `` /* 142-byte string literal not displayed */ GatewayCredentialsRequestURL string `` /* 129-byte string literal not displayed */ IsBetaSatellite bool `help:"indicates if satellite is in beta" default:"false"` BetaSatelliteFeedbackURL string `help:"url link for for beta satellite feedback" default:""` BetaSatelliteSupportURL string `help:"url link for for beta satellite support" default:""` DocumentationURL string `help:"url link to documentation" default:"https://docs.storj.io/"` CouponCodeBillingUIEnabled bool `help:"indicates if user is allowed to add coupon codes to account from billing" default:"false"` CouponCodeSignupUIEnabled bool `help:"indicates if user is allowed to add coupon codes to account from signup" default:"false"` FileBrowserFlowDisabled bool `help:"indicates if file browser flow is disabled" default:"false"` CSPEnabled bool `help:"indicates if Content Security Policy is enabled" devDefault:"false" releaseDefault:"true"` LinksharingURL string `` /* 144-byte string literal not displayed */ PublicLinksharingURL string `` /* 133-byte string literal not displayed */ PathwayOverviewEnabled bool `help:"indicates if the overview onboarding step should render with pathways" default:"true"` AllProjectsDashboard bool `help:"indicates if all projects dashboard should be used" default:"true"` LimitsAreaEnabled bool `help:"indicates whether limit card section of the UI is enabled" default:"false"` GeneratedAPIEnabled bool `help:"indicates if generated console api should be used" default:"false"` OptionalSignupSuccessURL string `help:"optional url to external registration success page" default:""` HomepageURL string `help:"url link to storj.io homepage" default:"https://www.storj.io"` NativeTokenPaymentsEnabled bool `help:"indicates if storj native token payments system is enabled" default:"false"` PricingPackagesEnabled bool `help:"whether to allow purchasing pricing packages" default:"false" devDefault:"true"` NewUploadModalEnabled bool `help:"whether to show new upload modal" default:"false"` GalleryViewEnabled bool `help:"whether to show new gallery view" default:"false"` UseVuetifyProject bool `help:"whether to use vuetify POC project" default:"false"` OauthCodeExpiry time.Duration `help:"how long oauth authorization codes are issued for" default:"10m"` OauthAccessTokenExpiry time.Duration `help:"how long oauth access tokens are issued for" default:"24h"` OauthRefreshTokenExpiry time.Duration `help:"how long oauth refresh tokens are issued for" default:"720h"` BodySizeLimit memory.Size `help:"The maximum body size allowed to be received by the API" default:"100.00 KB"` // RateLimit defines the configuration for the IP and userID rate limiters. RateLimit web.RateLimiterConfig ABTesting abtesting.Config console.Config }
Config contains configuration for console web server.
type FrontendConfig ¶ added in v1.74.1
type FrontendConfig struct { ExternalAddress string `json:"externalAddress"` SatelliteName string `json:"satelliteName"` SatelliteNodeURL string `json:"satelliteNodeURL"` StripePublicKey string `json:"stripePublicKey"` PartneredSatellites []PartneredSatellite `json:"partneredSatellites"` DefaultProjectLimit int `json:"defaultProjectLimit"` GeneralRequestURL string `json:"generalRequestURL"` ProjectLimitsIncreaseRequestURL string `json:"projectLimitsIncreaseRequestURL"` GatewayCredentialsRequestURL string `json:"gatewayCredentialsRequestURL"` IsBetaSatellite bool `json:"isBetaSatellite"` BetaSatelliteFeedbackURL string `json:"betaSatelliteFeedbackURL"` BetaSatelliteSupportURL string `json:"betaSatelliteSupportURL"` DocumentationURL string `json:"documentationURL"` CouponCodeBillingUIEnabled bool `json:"couponCodeBillingUIEnabled"` CouponCodeSignupUIEnabled bool `json:"couponCodeSignupUIEnabled"` FileBrowserFlowDisabled bool `json:"fileBrowserFlowDisabled"` LinksharingURL string `json:"linksharingURL"` PublicLinksharingURL string `json:"publicLinksharingURL"` PathwayOverviewEnabled bool `json:"pathwayOverviewEnabled"` Captcha console.CaptchaConfig `json:"captcha"` AllProjectsDashboard bool `json:"allProjectsDashboard"` LimitsAreaEnabled bool `json:"limitsAreaEnabled"` DefaultPaidStorageLimit memory.Size `json:"defaultPaidStorageLimit"` DefaultPaidBandwidthLimit memory.Size `json:"defaultPaidBandwidthLimit"` InactivityTimerEnabled bool `json:"inactivityTimerEnabled"` InactivityTimerDuration int `json:"inactivityTimerDuration"` InactivityTimerViewerEnabled bool `json:"inactivityTimerViewerEnabled"` OptionalSignupSuccessURL string `json:"optionalSignupSuccessURL"` HomepageURL string `json:"homepageURL"` NativeTokenPaymentsEnabled bool `json:"nativeTokenPaymentsEnabled"` PasswordMinimumLength int `json:"passwordMinimumLength"` PasswordMaximumLength int `json:"passwordMaximumLength"` ABTestingEnabled bool `json:"abTestingEnabled"` PricingPackagesEnabled bool `json:"pricingPackagesEnabled"` NewUploadModalEnabled bool `json:"newUploadModalEnabled"` GalleryViewEnabled bool `json:"galleryViewEnabled"` }
FrontendConfig holds the configuration for the satellite frontend.
type PartneredSatellite ¶ added in v1.74.1
PartneredSatellite contains the name and web address of a satellite.
type Satellites ¶ added in v1.74.1
type Satellites []PartneredSatellite
Satellites is a configuration value that contains a list of satellite names and addresses. Format should be [{"name": "","address": ""],{"name": "","address": ""},...] in valid JSON format.
Can be used as a flag.
func (*Satellites) Set ¶ added in v1.74.1
func (sl *Satellites) Set(s string) (err error)
Set does validation on the configured JSON.
func (*Satellites) String ¶ added in v1.74.1
func (sl *Satellites) String() string
String is required for pflag.Value.
func (Satellites) Type ¶ added in v1.74.1
func (Satellites) Type() string
Type implements pflag.Value.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents console web server.
architecture: Endpoint
func NewServer ¶
func NewServer(logger *zap.Logger, config Config, service *console.Service, oidcService *oidc.Service, mailService *mailservice.Service, analytics *analytics.Service, abTesting *abtesting.Service, accountFreezeService *console.AccountFreezeService, listener net.Listener, stripePublicKey string, nodeURL storj.NodeURL, packagePlans paymentsconfig.PackagePlans) *Server
NewServer creates new instance of console server.