This plugin allow proxify requests to other host. It can be useful if you want to use separate server as frontend but use one address for both frontend and backend.
go get github.com/iamelevich/pocketbase-plugin-proxy
You can check examples in examples folder
package main
import (
"log"
proxyPlugin "github.com/iamelevich/pocketbase-plugin-proxy"
"github.com/pocketbase/pocketbase"
)
func main() {
app := pocketbase.New()
// Setup proxy plugin
proxyPlugin.MustRegister(app, &proxyPlugin.Options{
Enabled: true,
Url: "http://localhost:3000",
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
import "github.com/iamelevich/pocketbase-plugin-proxy"
func DefaultSkipper(c *core.RequestEvent) bool
DefaultSkipper skip proxy middleware for requests, where path starts with /_/ or /api/.
Options defines optional struct to customize the default plugin behavior.
type Options struct {
// Enabled defines if proxy should be enabled.
Enabled bool
//Url to the target.
//
//Only http and https links are supported.
Url string
// Are proxy logs enabled?
ProxyLogsEnabled bool
}
type Plugin struct {
// contains filtered or unexported fields
}
func MustRegister(app core.App, options *Options) *Plugin
MustRegister is a helper function that registers plugin and panics if error occurred.
func Register(app core.App, options *Options) (*Plugin, error)
Register registers plugin.
func (p *Plugin) SetSkipper(skipper Skipper)
SetSkipper set skipper function that should return true if that route shouldn't be proxied.
If not set, the DefaultSkipper is used:
If set - you should also control the middleware behavior for /_/ and /api/ routes.
Example:
plugin := proxyPlugin.MustRegister(app, &proxyPlugin.Options{
Enabled: true,
Url: "http://localhost:3000",
})
plugin.SetSkipper(func(c *core.RequestEvent) bool {
return c.Request.URL.Path == "/my-super-secret-route"
})
func (p *Plugin) Validate() error
Validate plugin options. Return error if some option is invalid.
type Skipper func(c *core.RequestEvent) bool
Generated by gomarkdoc
This pocketbase plugin is free and open source project licensed under the MIT License. You are free to do whatever you want with it, even offering it as a paid service.
mise install.prek hooks with prek install -t commit-msg -t pre-commitmise run test to run testsmise run test-report to run tests and get coverage report in ./coverage.htmlmise run lint to run lintersmise run docs to update docs in README (it will also install gomarkdoc)Go
100.0%
This plugin allow proxify requests to other host. It can be useful if you want to use separate server as frontend but use one address for both frontend and backend.
go get github.com/iamelevich/pocketbase-plugin-proxy
You can check examples in examples folder
package main
import (
"log"
proxyPlugin "github.com/iamelevich/pocketbase-plugin-proxy"
"github.com/pocketbase/pocketbase"
)
func main() {
app := pocketbase.New()
// Setup proxy plugin
proxyPlugin.MustRegister(app, &proxyPlugin.Options{
Enabled: true,
Url: "http://localhost:3000",
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
import "github.com/iamelevich/pocketbase-plugin-proxy"
func DefaultSkipper(c *core.RequestEvent) bool
DefaultSkipper skip proxy middleware for requests, where path starts with /_/ or /api/.
Options defines optional struct to customize the default plugin behavior.
type Options struct {
// Enabled defines if proxy should be enabled.
Enabled bool
//Url to the target.
//
//Only http and https links are supported.
Url string
// Are proxy logs enabled?
ProxyLogsEnabled bool
}
type Plugin struct {
// contains filtered or unexported fields
}
func MustRegister(app core.App, options *Options) *Plugin
MustRegister is a helper function that registers plugin and panics if error occurred.
func Register(app core.App, options *Options) (*Plugin, error)
Register registers plugin.
func (p *Plugin) SetSkipper(skipper Skipper)
SetSkipper set skipper function that should return true if that route shouldn't be proxied.
If not set, the DefaultSkipper is used:
If set - you should also control the middleware behavior for /_/ and /api/ routes.
Example:
plugin := proxyPlugin.MustRegister(app, &proxyPlugin.Options{
Enabled: true,
Url: "http://localhost:3000",
})
plugin.SetSkipper(func(c *core.RequestEvent) bool {
return c.Request.URL.Path == "/my-super-secret-route"
})
func (p *Plugin) Validate() error
Validate plugin options. Return error if some option is invalid.
type Skipper func(c *core.RequestEvent) bool
Generated by gomarkdoc
This pocketbase plugin is free and open source project licensed under the MIT License. You are free to do whatever you want with it, even offering it as a paid service.
mise install.prek hooks with prek install -t commit-msg -t pre-commitmise run test to run testsmise run test-report to run tests and get coverage report in ./coverage.htmlmise run lint to run lintersmise run docs to update docs in README (it will also install gomarkdoc)Go
100.0%