Skip to content
Pro

Echo Pro

Authentication, tenant quotas, audit and webhooks for Echo v5.

Add authentication, tenant checks, quotas, audit records, webhooks and an admin console to your Echo application. Install LabStack's commercial Go module with the standard Go toolchain.

  • Go 1.26 or later
  • Echo v5.4.2 or later
  • PostgreSQL 16 through 18
  • Redis or Valkey (optional) for quota/redisstore
authCfg := auth.Config{
Schemes: map[string]auth.Scheme{"key": auth.APIKey{
Namespace: "app",
Prefix: "demo",
Peppers: ring,
Store: keys,
Header: "X-API-Key",
}},
Fallback: auth.Require(map[string][]string{"key": {"invoice:read"}}),
}
tenantPath, err := tenant.FromPathParam("tenant")
if err != nil {
return err
}
guard, err := authbind.Middleware(authCfg, tenant.Config{
Selectors: []tenant.Selector{tenant.FromCredential(), tenantPath}, Required: true,
})
if err != nil {
return err
}
lim, err := quota.New(quota.Config{
Store: quota.NewMemoryStore(quota.MemoryConfig{MaxKeys: 100}),
Plans: []quota.Plan{{ID: "free", Limits: []quota.Limit{
quota.PerDay("requests", 3),
}}},
})
if err != nil {
return err
}
defer func() {
closeCtx, cancel := context.WithTimeout(context.WithoutCancel(ctx), 5*time.Second)
defer cancel()
result = errors.Join(result, lim.Close(closeCtx))
}()
identity, err := authbind.Quota()
if err != nil {
return err
}
quotaMW, err := (quota.MiddlewareConfig{
Limiter: lim,
Identity: identity,
}).ToMiddleware()
if err != nil {
return err
}
prepared, err := webhook.PrepareOutgoing(webhook.Outgoing{
Tenant: string(
id,
), Destination: "invoices", Version: "v1", Key: invoice + "/created",
Type: "invoice.created", Format: "json", Payload: []byte(fmt.Sprintf(
`{"invoice":%q}`,
invoice,
)),
})
if err != nil {
return err
}
receipt, err := outbox.Enqueue(c.Request().Context(), prepared)
if err != nil {
return err
}
return c.JSON(http.StatusAccepted, map[string]string{
"invoice": invoice,
"webhook_ref": receipt.Ref,
})
  • No telemetry Telemetry exporters run only when you configure them.
  • No license checks at run time Your token only downloads modules.
  • Keep what you bought Versions you received stay licensed after you stop paying.
  • Plain go get Install through a private Go module proxy, checked against your go.sum.

Where it sits in a request

Mount middleware on your routes in the order shown. Your application supplies handlers, PostgreSQL pools and Redis clients.

Echo Pro request pathAuthentication runs first, followed by tenant selection and quota checks. Your handler runs after those checks pass. The handler writes audit events, execution records and webhook outbox messages to stores. The admin console reads from those stores.RequestHTTP or MCP tool callauthauth/authbindtenantresolve and authorizequotaplans, credits, 429Your handlerbusiness logicauditbusiness eventsexecutionexternal effectswebhook outboxsigned deliveryAdmin consolebehind your own sign-inreadsEcho Pro request pathAuthentication runs first, followed by tenant selection and quota checks. Your handler runs after those checks pass. The handler writes audit events, execution records and webhook outbox messages to stores. The admin console reads from those stores.RequestHTTP or MCP tool callauthauth/authbindtenantresolve and authorizequotaplans, credits, 429Your handlerbusiness logicauditbusiness eventsexecutionexternal effectswebhook outboxsigned deliveryreadsAdmin consolebehind your own sign-in

Packages

One module, echo.labstack.com/pro. Runnable examples, tests and package READMEs ship with it.

Auth and tenant isolation

auth · tenant · auth/authbind

Verify an API key or JWT access token before selecting a tenant. Conflicting tenant selectors return 403. Check resource access with Static, Casbin, Cerbos or OpenFGA.

Quotas, AI and MCP metering, Stripe

quota · quota/quotamcp · quota/quotastripe

Return 429 when a tenant exhausts its plan. Reserve estimated AI usage and settle actual cost. Meter MCP tools and send final usage to Stripe.

Embedded admin console

admin

Inspect usage and stored operations behind your application login. Enable specific write actions with preview and confirmation. Record audit intent before running them.

Echo Pro admin console pipeline panel: the first stages, requests, executions and outbox, with event counts for the selected window.Echo Pro admin console pipeline panel: the first stages, requests, executions and outbox, with event counts for the selected window.
The admin console overview, from the demo catalog.
Echo Pro packages
PackageWhat it does
authAPI keys and asymmetric JWT access tokens, one credential per request.
tenantTenant resolution with membership checks and deny-by-default authorizers.
auth/authbindMaps verified principals and selected tenants into quota, audit, execution, admin and MCP callbacks.
quotaPer-tenant plans, weighted costs, credits, concurrency limits and Echo middleware.
quota/redisstoreAtomic Redis and Valkey store: standalone, Sentinel and Cluster.
quota/quotamcpPlan quotas and metering for MCP tools on the official MCP Go SDK.
quota/quotastripeStripe meter export of final usage, with receipts and reconciliation.
quota/quotaclientClient helpers that parse RateLimit headers and problem responses, and wait before retrying.
quota/quotaprom, quota/quotaotelOpt-in Prometheus and OpenTelemetry hooks into your own systems.
audit, audit/auditpgDurable business audit events with redaction, recorded in PostgreSQL 16 through 18.
execution, execution/pgstoreRecords each external call under a stable key, so retries replay the saved result. Operators resolve uncertain calls.
webhook, webhook/webhookpgSigned inbox and outbox, retry workers and replay, durable on PostgreSQL.
openapiChecks that every OpenAPI operation has an auth and quota policy, and runs auth, quota and validation in order.
problemRFC 9457 problem catalog and Echo error rendering.
redactClassifies fields and removes or hashes sensitive values before storage.
adminThe embedded console, with panels for quota, Stripe, audit, execution, webhooks and OpenAPI.
cmd/quotaCommand line for plan checks, usage, resets, credits, keys and the outbox.

Pricing

Billed annually per organisation.

Echo

Free MIT license

Free and open source

  • The Echo framework and built-in middleware
  • echo-jwt, echo-otel, echo-prometheus, echo-contrib
  • Community support on GitHub
Get started

Secure checkout by Stripe; enter code FOUNDING for the founding price. Invoices, payment method and cancellation: billing portal.

Echo Support

$4,900 / year, invoiced annually. Maintainer help for Echo v4 or v5, with or without Echo Pro: a named contact, four incidents a year, a two-business-day response target and an annual maintenance-status letter. Best effort; no SLA. Terms.

Contact us

Enterprise

From $12,000 / year · More than 100 developers, or group companies.

Contact us
Compare plans
FeatureEchoTeamBusiness
Packages
Echo framework and built-in middlewareIncludedIncludedIncluded
Official packages (echo-jwt, echo-otel, echo-prometheus, echo-contrib)IncludedIncludedIncluded
Echo Pro packagesNot includedIncludedIncluded
Developers
Developers per organisationAnyUp to 20Up to 100
Updates
New releasesIncludedWhile subscribedWhile subscribed
Keep received versions after the subscription endsIncludedIncludedIncluded
Security fixes for your release lines after the subscription endsNot includedIncludedIncluded
Support
Community support on GitHubIncludedIncludedIncluded
Email support, two-business-day targetNot includedIncludedIncluded
Echo Support ($4,900 / year)Sold separatelySold separatelySold separately
Billing
PriceFree$1,500 / year$4,500 / year
Founding price with FOUNDINGNot included$990 / year$2,970 / year
BillingNot includedAnnualAnnual

Team and Business terms

  • Annual billing only; no monthly plan.
  • Email support is best effort: a two-business-day target, not an SLA.
  • Full refund within 30 days of purchase.
  • Prices exclude tax. Sold to businesses: checkout asks for your company name, and a tax ID where supported.
  • After your subscription ends, you keep received versions. You also receive security fixes on the release lines you owned.

Install

After purchase you create your organisation's access token once. Then, on each machine:

  1. Mark the module private. If you already set GOPRIVATE, append ,echo.labstack.com to your existing value instead.
    go env -w GOPRIVATE=echo.labstack.com
  2. Add this line to ~/.netrc (Windows: %USERPROFILE%\_netrc), mode 600.
    machine go.labstack.io login <org> password <token>
  3. Add Echo Pro to your module.
    go get echo.labstack.com/[email protected]

In CI

Store the token as a CI secret and write a job-scoped credential file before go runs. Installation has a complete GitHub Actions workflow, plus corporate mirrors, GOPROXY chains, Docker and offline builds.

Questions

What stays free?

Echo, its built-in middleware and the official packages (echo-jwt, echo-otel, echo-prometheus and echo-contrib) are open source under the MIT license. Echo Pro is a separate module that builds on them.

Is Echo going closed source?

No. Echo stays open source under the MIT license. Echo Pro is a separate module that builds on Echo and does not change its license.

Why paid?

Echo Pro includes authentication, tenant checks, quotas and durable stores. Backend tests run against PostgreSQL 16 through 18, Redis and Valkey. Subscriptions pay for that work and fund Echo's maintenance.

What license is Echo Pro under?

Echo Pro uses a commercial license. While subscribed, your organisation may use, copy and modify Echo Pro. You may include it in applications you distribute and services you operate. You may not pass its source to third parties. You may not offer it as a standalone library or competing product.

Does Echo Pro send telemetry or check a license at run time?

No. The library does not send telemetry or perform runtime license checks. Configure metrics and tracing through hooks into your own systems.

What happens when the subscription ends?

You keep the versions you already have. You also keep access to security fixes for the release lines you owned. New versions need an active subscription.

Can we evaluate before buying, or get a refund?

There is no free trial. Review the package documentation and code samples before buying. If Echo Pro is not right for you, you get a full refund within 30 days of purchase.

What does Echo Support include?

A yearly contract with the maintainer for teams running Echo v4 or v5, with or without Echo Pro: a named contact, four incidents a year, a two-business-day response target on US business days and an annual letter listing your Echo versions, the advisories that apply and their support dates. It has no fixed repair time and no 24/7 cover. Security fixes stay public for everyone; Echo Support does not buy earlier or private fixes.

Invoices and purchase orders?

Team and Business are billed annually per organisation. Echo Support and Enterprise are invoiced annually. Email [email protected] for billing details your company needs.

For other questions, email [email protected].

Run the getting-started tutorial.

⌂ Proxy