v0.3.0 Release Notes¶
Release Date: 2026-03-14
CoreForge v0.3.0 introduces vendor-agnostic observability through OmniObserve integration, a SaaS marketplace with Stripe billing, and Redis-backed rate limiting. This release also adds OAuth client management and CoreAuth provider abstraction.
Highlights¶
- Vendor-agnostic observability with OmniObserve supporting Datadog, New Relic, Dynatrace, and OTLP backends
- SaaS marketplace infrastructure with Stripe subscription management and seat-based licensing
- Redis-backed rate limiting with sliding window and token bucket algorithms
- OAuth client management and provider abstraction for CoreAuth
What's New¶
Observability Integration¶
A complete observability package wrapping OmniObserve for vendor-agnostic telemetry:
- Provider-agnostic API supporting OTLP, Datadog, New Relic, and Dynatrace
- HTTP middleware for automatic request tracing and metrics
- slog integration with trace context injection
- Pre-defined metrics for CoreAuth and rate limiting
- Zero-config defaults with environment variable configuration
Marketplace¶
A SaaS marketplace implementation with Stripe integration:
- Listing entity for marketplace products with tiers and pricing
- Subscription management with Stripe webhook handling
- License model supporting per-seat and usage-based billing
- SeatAssignment for managing user access to subscriptions
- Stripe SDK v82 integration for payment processing
Rate Limiting¶
Production-ready rate limiting infrastructure:
- CoreAPI package with policy-based rate limit controls
- Redis backend for distributed rate limiting
- Sliding window algorithm for accurate request counting
- Token bucket algorithm for burst handling
- Middleware integration with session context
OAuth Client Management¶
Enhanced OAuth client capabilities:
- OAuth client service in
identity/oauthclientpackage - Provider abstraction for pluggable CoreAuth backends
- Federation handlers with improved context handling
- JWT enhancements with audience and issuer validation
Session Improvements¶
Session and middleware enhancements:
- Context utilities for session data access
- Improved middleware composition patterns
- Enhanced JWT claims with standard claim validation
Installation¶
Quick Start: Observability¶
package main
import (
"github.com/grokify/coreforge/observability"
_ "github.com/plexusone/omniobserve/observops/otlp"
)
func main() {
obs, err := observability.New(observability.Config{
Provider: "otlp",
ServiceName: "my-service",
Version: "1.0.0",
Endpoint: "localhost:4317",
})
if err != nil {
panic(err)
}
defer obs.Shutdown(context.Background())
// HTTP middleware for automatic tracing
handler := obs.Middleware()(mux)
// slog with trace context
slog.SetDefault(slog.New(obs.NewSlogHandler()))
}
Quick Start: Marketplace¶
package main
import (
"github.com/grokify/coreforge/marketplace"
)
func main() {
svc := marketplace.NewService(entClient, marketplace.Config{
StripeKey: os.Getenv("STRIPE_SECRET_KEY"),
WebhookSecret: os.Getenv("STRIPE_WEBHOOK_SECRET"),
})
// Create a listing
listing, err := svc.CreateListing(ctx, marketplace.CreateListingInput{
Name: "Pro Plan",
Description: "Full access to all features",
PriceMonthly: 4999, // $49.99
SeatLimit: 10,
})
}
Quick Start: Rate Limiting¶
package main
import (
"github.com/grokify/coreforge/session/ratelimit"
"github.com/redis/go-redis/v9"
)
func main() {
redisClient := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
})
limiter := ratelimit.NewRedisLimiter(redisClient, ratelimit.Config{
Limit: 100,
Window: time.Minute,
})
// Use as middleware
handler := ratelimit.Middleware(limiter)(nextHandler)
}
New Packages¶
| Package | Description |
|---|---|
observability |
OmniObserve wrapper with HTTP middleware and slog integration |
marketplace |
SaaS marketplace with Stripe billing and seat licensing |
coreapi |
CoreAPI rate limiting with policy-based controls |
session/ratelimit |
Redis-backed rate limiter with multiple algorithms |
identity/oauthclient |
OAuth client management service |
New Ent Entities¶
| Entity | Description |
|---|---|
License |
Software license with expiry and seat limits |
Listing |
Marketplace product listing with tiers |
Subscription |
User subscription with Stripe integration |
SeatAssignment |
Seat allocation for subscriptions |
Dependencies¶
- OmniObserve v0.8.0 - Unified observability with HTTP middleware
- Stripe Go SDK v82 - Payment processing
- Redis Go Client v9 - Rate limiting backend
Environment Variables¶
# Observability
OBSERVABILITY_PROVIDER=otlp # otlp, datadog, newrelic, dynatrace
OBSERVABILITY_ENDPOINT=localhost:4317
OBSERVABILITY_API_KEY= # Required for datadog/newrelic
# Marketplace
STRIPE_SECRET_KEY=sk_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Rate Limiting
REDIS_ADDR=localhost:6379
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60s
Documentation¶
What's Next¶
Future releases will include:
- Prometheus metrics-only provider
- llmops + observops correlation for LLM applications
- Cedar authorization provider
- WebAuthn hardware security key binding
- Audit logging for observability