middleware

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 20, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package middleware provides E2B-compatible authentication middleware. It supports both X-API-Key (E2B standard) and AGENTBOX-API-KEY (backward-compatible).

Index

Constants

View Source
const (
	// E2BAPIKeyHeader is the E2B standard API key header.
	E2BAPIKeyHeader = "X-API-Key"

	// LegacyAPIKeyHeader is the legacy AgentBox API key header.
	LegacyAPIKeyHeader = "AGENTBOX-API-KEY"

	// AuthContextKey is the gin context key used to store AuthInfo.
	AuthContextKey = "auth"

	// DefaultNamespace is the default namespace when none is specified.
	DefaultNamespace = "default"
)

Variables

This section is empty.

Functions

func AuthFromContext

func AuthFromContext(c *gin.Context) domain.AuthInfo

AuthFromContext retrieves AuthInfo from the gin context. Falls back to a default with Namespace="default" if not set.

func NewE2BAuthMiddleware

func NewE2BAuthMiddleware(adminKeyMgr *apikey.AdminKeyManager, keyStore apikey.KeyStore, iamSvc service.IAMService) gin.HandlerFunc

NewE2BAuthMiddleware returns a gin.HandlerFunc that validates the API key using E2B-compatible header names and injects AuthInfo into the request context.

It accepts both X-API-Key (E2B standard) and AGENTBOX-API-KEY (backward-compatible). When adminKeyMgr is nil, the middleware runs in dev mode and grants anonymous-admin access.

iamSvc is used to resolve the namespace for global API keys (those with an empty namespace in the Secret). When non-nil and the key's namespace is empty, the middleware derives the effective namespace from the key's team+user metadata via IAM. This mirrors the behaviour of the native AgentBox auth middleware.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL