Commit graph

10 commits

Author SHA1 Message Date
Snider
e54dd2e370 fix(pr#2): address CodeRabbit major/critical review findings
Go:
- codegen: pass trimmed specPath to buildArgs instead of raw g.SpecPath
- cmd/sdk: use local resolvedSpecFile to avoid mutating flag variable per-invocation
- export: write to temp file + atomic rename to prevent destination truncation on failure
- openapi: gate effectiveGraphQLPath/SwaggerPath/WSPath/SSEPath on enable flags; use effectiveSwaggerPath in effectiveAuthentikPublicPaths
- cache: reject oversized replacement before mutating LRU state for existing keys
- ratelimit: move setRateLimitHeaders before c.Next() so headers are sent; hash credential headers with SHA-256 to avoid storing raw secrets; prefer validated principal from context
- response_meta: track size separately from body buffer so Size() is accurate after body rewrites and in passthrough mode
- bridge: limit request body reads with http.MaxBytesReader (10 MiB); allow missing data key in ValidateResponse for nil/zero success responses; update recorder status in writeErrorResponse
- pkg/provider/proxy: validate target scheme and host after url.Parse to catch hostless inputs
- cmd_test: snapshot/restore global spec registry in TestAPISpecCmd_Good_RegisteredSpecGroups

PHP:
- HasApiResponses.php, config.php: add declare(strict_types=1)
- RateLimitExceededException: validate Origin against cors.allowed_origins before reflecting in CORS header
- ApiUsageService: import and use Core\Api\Models\ApiKey instead of fully-qualified Mod\ path
- SeoReportService: add SSRF protection (scheme check, private-IP rejection); add .throw() for HTTP error handling; disable automatic redirects

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-07 08:38:41 +01:00
Virgil
6b075a207b feat(provider): add registry subset iterators
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:52:21 +00:00
Virgil
f0d25392a8 feat(provider): add iterator for provider info summaries
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:19:56 +00:00
Virgil
2fd17a432c fix(provider): handle invalid proxy upstreams safely
Avoid panicking when a ProxyProvider is constructed with a malformed upstream URL. The provider now records the configuration error and returns a standard 500 envelope when mounted.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:42:04 +00:00
Virgil
c9627729b5 fix(provider): harden proxy path stripping
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:08:55 +00:00
Virgil
b58de8f8f0 feat(provider): expose registry spec files
Add stable registry helpers for enumerating provider OpenAPI spec files, plus iterator coverage. This gives discovery consumers a direct way to aggregate provider docs without changing routing behaviour.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:38:45 +00:00
Virgil
71eebc53aa feat(provider): expose proxy metadata in registry info
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:08:19 +00:00
Claude
ca9b495884
chore: migrate to dappco.re vanity import path
Change module path from forge.lthn.ai/core/api to dappco.re/go/core/api.
Update all Go imports accordingly:
- forge.lthn.ai/core/api -> dappco.re/go/core/api
- forge.lthn.ai/core/go-io -> dappco.re/go/core/io
- forge.lthn.ai/core/go-log -> dappco.re/go/core/log

forge.lthn.ai/core/cli left as-is (not yet migrated).
Local replace directives added for dappco.re paths until vanity
URL server is configured.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:50:37 +00:00
Snider
675079caf5 feat(provider): implement ProxyProvider reverse proxy
Replace the Phase 3 stub with a working ProxyProvider that reverse-proxies
requests to upstream provider binaries via httputil.ReverseProxy. Implements
Provider + Renderable interfaces. Includes 9 tests covering proxy routing,
health passthrough, element spec, and invalid upstream handling.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 12:22:27 +00:00
Snider
753812ad57 feat(api): merge go-api + php-api into polyglot repo
Go source at root level (Option B), PHP under src/php/.
Module path: forge.lthn.ai/core/api
Package name: lthn/api

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:03:29 +00:00