Files
anvil-hosting/functions/README.md

89 lines
1.5 KiB
Markdown

# Cloudflare Pages Functions
API proxy endpoints for cloud-instances-api Worker.
## Endpoints
| Method | Path | Description |
|--------|------|-------------|
| GET | `/api/health` | Health check |
| GET | `/api/instances` | Query VM instances with filters |
| POST | `/api/recommend` | Tech stack recommendations |
## Configuration
### Environment Variables
Set in Cloudflare Pages dashboard or via CLI:
```bash
wrangler pages secret put WORKER_API_KEY
```
**Required Secrets:**
- `WORKER_API_KEY` - API key for Worker authentication
**Configured Variables (wrangler.toml):**
- `WORKER_API_URL` - Worker API base URL
## Local Development
1. Install dependencies:
```bash
npm install
```
2. Create `.env` file:
```bash
WORKER_API_KEY=your-api-key-here
```
3. Run local dev server:
```bash
npx wrangler pages dev . --port 8788
```
## Deployment
```bash
wrangler pages deploy . --project-name anvil-hosting
```
## CORS Configuration
All endpoints allow requests from:
- Origin: `https://hosting.inouter.com`
- Methods: `GET, POST, OPTIONS`
- Headers: `Content-Type`
## Architecture
```
Client Request
/api/{endpoint} (Pages Function)
functions/_shared/proxy.ts (CORS + Auth)
cloud-instances-api.kappa-d8e.workers.dev (Worker)
Response with CORS headers
```
## Error Handling
All errors return JSON with CORS headers:
```json
{
"success": false,
"error": "Error message",
"details": "Optional error details"
}
```
Status codes:
- `400` - Invalid request
- `500` - Internal error
- `503` - Worker API unavailable