Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( BuildVersion = "dev" BuildCommit = "" BuildTime = "" )
Build info (set via -ldflags at build time; defaults for dev)
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
ListenAddr string
ClientNamespace string
BootstrapPeers []string
NodePeerID string // The node's actual peer ID from its identity file
// Optional DSN for rqlite database/sql driver, e.g. "http://localhost:4001"
// If empty, defaults to "http://localhost:4001".
RQLiteDSN string
// HTTPS configuration
EnableHTTPS bool // Enable HTTPS with ACME (Let's Encrypt)
DomainName string // Domain name for HTTPS certificate
TLSCacheDir string // Directory to cache TLS certificates (default: ~/.orama/tls-cache)
// Olric cache configuration
OlricServers []string // List of Olric server addresses (e.g., ["localhost:3320"]). If empty, defaults to ["localhost:3320"]
OlricTimeout time.Duration // Timeout for Olric operations (default: 10s)
// IPFS Cluster configuration
IPFSClusterAPIURL string // IPFS Cluster HTTP API URL (e.g., "http://localhost:9094"). If empty, gateway will discover from node configs
IPFSAPIURL string // IPFS HTTP API URL for content retrieval (e.g., "http://localhost:5001"). If empty, gateway will discover from node configs
IPFSTimeout time.Duration // Timeout for IPFS operations (default: 60s)
IPFSReplicationFactor int // Replication factor for pins (default: 3)
IPFSEnableEncryption bool // Enable client-side encryption before upload (default: true, discovered from node configs)
}
Config holds configuration for the gateway server
func (*Config) ValidateConfig ¶ added in v0.51.5
ValidateConfig performs comprehensive validation of gateway configuration. It returns aggregated errors, allowing the caller to print all issues at once.
type ExpoPushMessage ¶ added in v0.72.0
type ExpoPushMessage struct {
To string `json:"to"`
Title string `json:"title"`
Body string `json:"body"`
Data map[string]interface{} `json:"data,omitempty"`
Sound string `json:"sound,omitempty"`
Badge int `json:"badge,omitempty"`
Priority string `json:"priority,omitempty"`
// iOS specific
MutableContent bool `json:"mutableContent,omitempty"`
IosIcon string `json:"iosIcon,omitempty"`
// Android specific
AndroidBigLargeIcon string `json:"androidBigLargeIcon,omitempty"`
ChannelID string `json:"channelId,omitempty"`
}
ExpoPushMessage represents a message to send via Expo
type ExpoTicket ¶ added in v0.72.0
ExpoTicket represents the response from Expo API
type Gateway ¶
type Gateway struct {
// contains filtered or unexported fields
}
type HTTPGateway ¶ added in v0.72.0
type HTTPGateway struct {
// contains filtered or unexported fields
}
HTTPGateway is the main reverse proxy router
func NewHTTPGateway ¶ added in v0.72.0
func NewHTTPGateway(logger *logging.ColoredLogger, cfg *config.HTTPGatewayConfig) (*HTTPGateway, error)
NewHTTPGateway creates a new HTTP reverse proxy gateway
func (*HTTPGateway) Router ¶ added in v0.72.0
func (hg *HTTPGateway) Router() chi.Router
Router returns the chi router for testing or extension
func (*HTTPGateway) Start ¶ added in v0.72.0
func (hg *HTTPGateway) Start(ctx context.Context) error
Start starts the HTTP gateway server
func (*HTTPGateway) Stop ¶ added in v0.72.0
func (hg *HTTPGateway) Stop() error
Stop gracefully stops the HTTP gateway server
type HTTPSGateway ¶ added in v0.72.0
type HTTPSGateway struct {
*HTTPGateway
// contains filtered or unexported fields
}
HTTPSGateway extends HTTPGateway with HTTPS/TLS support
func NewHTTPSGateway ¶ added in v0.72.0
func NewHTTPSGateway(logger *logging.ColoredLogger, cfg *config.HTTPGatewayConfig) (*HTTPSGateway, error)
NewHTTPSGateway creates a new HTTPS gateway with Let's Encrypt autocert
func (*HTTPSGateway) Start ¶ added in v0.72.0
func (g *HTTPSGateway) Start(ctx context.Context) error
Start starts both HTTP (for ACME) and HTTPS servers
func (*HTTPSGateway) Stop ¶ added in v0.72.0
func (g *HTTPSGateway) Stop() error
Stop gracefully stops both HTTP and HTTPS servers
type PushNotificationService ¶ added in v0.72.0
type PushNotificationService struct {
// contains filtered or unexported fields
}
PushNotificationService handles sending push notifications via Expo
func NewPushNotificationService ¶ added in v0.72.0
func NewPushNotificationService(logger *zap.Logger) *PushNotificationService
NewPushNotificationService creates a new push notification service
func (*PushNotificationService) SendBulkNotifications ¶ added in v0.72.0
func (pns *PushNotificationService) SendBulkNotifications( ctx context.Context, expoPushTokens []string, title string, body string, data map[string]interface{}, avatarURL string, ) []error
SendBulkNotifications sends notifications to multiple users
type StoragePinRequest ¶ added in v0.69.13
StoragePinRequest represents a request to pin a CID
type StoragePinResponse ¶ added in v0.69.13
StoragePinResponse represents the response from pinning a CID
type StorageStatusResponse ¶ added in v0.69.13
type StorageStatusResponse struct {
Cid string `json:"cid"`
Name string `json:"name"`
Status string `json:"status"`
ReplicationMin int `json:"replication_min"`
ReplicationMax int `json:"replication_max"`
ReplicationFactor int `json:"replication_factor"`
Peers []string `json:"peers"`
Error string `json:"error,omitempty"`
}
StorageStatusResponse represents the status of a pinned CID
type StorageUploadRequest ¶ added in v0.69.13
type StorageUploadRequest struct {
Name string `json:"name,omitempty"`
Data string `json:"data,omitempty"` // Base64 encoded data (alternative to multipart)
}
StorageUploadRequest represents a request to upload content to IPFS
type StorageUploadResponse ¶ added in v0.69.13
type StorageUploadResponse struct {
Cid string `json:"cid"`
Name string `json:"name"`
Size int64 `json:"size"`
}
StorageUploadResponse represents the response from uploading content
type TCPSNIGateway ¶ added in v0.72.0
type TCPSNIGateway struct {
// contains filtered or unexported fields
}
TCPSNIGateway handles SNI-based TCP routing for services like RQLite Raft, IPFS, etc.
func NewTCPSNIGateway ¶ added in v0.72.0
func NewTCPSNIGateway(logger *logging.ColoredLogger, cfg *config.SNIConfig) (*TCPSNIGateway, error)
NewTCPSNIGateway creates a new TCP SNI-based gateway
func (*TCPSNIGateway) Start ¶ added in v0.72.0
func (g *TCPSNIGateway) Start(ctx context.Context) error
Start starts the TCP SNI gateway server
func (*TCPSNIGateway) Stop ¶ added in v0.72.0
func (g *TCPSNIGateway) Stop() error
Stop gracefully stops the TCP SNI gateway