Документация
Source maps
Исходный stack trace вместо минифицированного bundle — при совпадении release и имени файла.
Что хранится где
| Данные | Хранилище | Как попадает |
|---|---|---|
| Ошибки, события, issues | PostgreSQL | SDK → POST /api/ingest |
| Source maps | S3 (platform или project bucket) | POST /api/v1/.../sourcemaps |
Пока map не загружен через API, в S3 для проекта ничего не появится — это нормально, ingest ошибок работает независимо.
Требования
- S3 — platform S3 сервера (
S3_*в .env) или свой bucket в настройках проекта. - release в SDK — semver версии приложения (не git SHA). Совпадает с полем
releaseпри загрузке map. SHA деплоя — отдельно: Git-коммит. - filename — имя bundle из stack trace (
app.js), не путь к исходнику .ts.
Ключ объекта: {prefix}/{projectId}/sourcemaps/{release}/{filename}
Platform vs свой bucket
| Режим | Описание |
|---|---|
| platform | S3 из .env сервера DevLogs — используется по умолчанию |
| project | Свои endpoint, bucket и ключи в настройках проекта — maps не попадают в platform bucket |
Переключение S3 в кабинете копирует существующие maps между backends. Удаление проекта или map удаляет объект из соответствующего S3.
Загрузка через REST API
Авторизация — API-ключ из профиля. См. также REST API.
curl — загрузка map
curl -s -X POST "https://dev-logs.ru/api/v1/projects/PROJECT_ID/sourcemaps" \ -H "Authorization: Bearer dl_live_YOUR_KEY" \ -F "release=1.2.0" \ -F "filename=app.js" \ -F "file=@dist/app.js.map"
Повторная загрузка с тем же release + filename перезаписывает map. Максимальный размер файла — 50 МБ.
CI после сборки
GitLab / GitHub Actions
for map in dist/assets/*.map; do
base=$(basename "$map" .map)
curl -sf -X POST "https://dev-logs.ru/api/v1/projects/${DEVLOGS_PROJECT_ID}/sourcemaps" \
-H "Authorization: Bearer ${DEVLOGS_API_KEY}" \
-F "release=${CI_COMMIT_TAG:-$CI_COMMIT_SHA}" \
-F "filename=${base}" \
-F "file=@${map}" || exit 1
done| Переменная | Пример |
|---|---|
| DEVLOGS_URL | https://dev-logs.ru |
| DEVLOGS_PROJECT_ID | id из кабинета |
| DEVLOGS_API_KEY | dl_live_… из профиля |
Release в SDK
javascript
init({
dsn: "…",
release: "1.2.0",
environment: "production",
});Кабинет
Настройки проекта → Source maps — список загруженных maps. Загрузка только через API; удаление — кнопкой в UI или DELETE API. На странице детали ошибки при наличии map показывается исходный стек с пометкой «source map».