CORS problem solution #2

Merged
NBizyaev merged 1 commits from cors into dev 2026-07-03 07:58:03 +00:00
5 changed files with 15 additions and 22 deletions
Showing only changes of commit 56e90a54d8 - Show all commits

View File

@@ -1,10 +1,9 @@
PORT=3101
branch=
DATABASE_URL=postgres://greact:pG3526l4@194.36.208.86:5433/cloud
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173
# Optional. When set, POST /ingest requires x-api-key: <value>.
# Optional. When set, POST /api/ingest requires x-api-key: <value>.
INGEST_API_KEY=
# Poll interval for GET /current/events SSE snapshots.
# Poll interval for GET /api/current/events SSE snapshots.
CURRENT_EVENTS_POLL_MS=1000

View File

@@ -1,5 +1,4 @@
PORT=3101
DATABASE_URL=postgres://greact:pG3526l4@194.36.208.86:5433/cloud
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173
INGEST_API_KEY=
CURRENT_EVENTS_POLL_MS=1000

View File

@@ -28,15 +28,17 @@ Historical chart ranges use continuous aggregates:
## API
- `GET /health`
- `GET /edge`
- `GET /tag?edge=edge5&search=pressure`
- `GET /current?edge=edge5&tags=tag1,tag2`
- `GET /history?edge=edge5&tags=tag1,tag2&from=2026-06-01T00:00:00Z&to=2026-06-02T00:00:00Z`
- `POST /ingest`
- `POST /ingest/:edge`
All routes are served under the `/api` prefix.
`POST /ingest` accepts one point:
- `GET /api/health`
- `GET /api/edge`
- `GET /api/tag?edge=edge5&search=pressure`
- `GET /api/current?edge=edge5&tags=tag1,tag2`
- `GET /api/history?edge=edge5&tags=tag1,tag2&from=2026-06-01T00:00:00Z&to=2026-06-02T00:00:00Z`
- `POST /api/ingest`
- `POST /api/ingest/:edge`
`POST /api/ingest` accepts one point:
```json
{
@@ -47,7 +49,7 @@ Historical chart ranges use continuous aggregates:
}
```
`POST /ingest/:edge` accepts a compact edge payload:
`POST /api/ingest/:edge` accepts a compact edge payload:
```json
{

View File

@@ -7,7 +7,6 @@ services:
NODE_ENV: production
PORT: ${PORT}
DATABASE_URL: ${DATABASE_URL}
CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS}
INGEST_API_KEY: ${INGEST_API_KEY}
CURRENT_EVENTS_POLL_MS: ${CURRENT_EVENTS_POLL_MS}
expose:

View File

@@ -3,17 +3,11 @@ import { NestFactory } from '@nestjs/core';
import compression from 'compression';
import { AppModule } from './app.module';
/** Запускает HTTP API со сжатием, CORS и глобальной валидацией DTO. */
/** Запускает HTTP API со сжатием и глобальной валидацией DTO. */
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(compression());
app.enableCors({
origin: process.env.CORS_ALLOWED_ORIGINS,
credentials: true,
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization', 'x-api-key'],
});
app.setGlobalPrefix('api');
app.useGlobalPipes(
new ValidationPipe({