Dokumentacija
Vse, kar potrebujete za integracijo Damperja v svoj izdelek. Dodajte widget za povratne informacije, vgradite javne strani, uporabite API ali povežite AI agente.
Vsebina
Dodajte eno značko script pred zaključno značko body. Zamenjajte YOUR_PROJECT_ID z ID-jem vašega projekta z nadzorne plošče.
Identifikacija uporabnikovIdentificirajte uporabnike za omogočanje ponderiranega glasovanja in sledenje, kdo je poslal povratne informacije. Pokličite metodo identify po naložitvi skripte widgeta.
Javni načrt razvojaVgradite svoj načrt razvoja izdelka na katero koli stran. Obiskovalci lahko vidijo načrtovane, tekoče in končane postavke ter glasujejo za tisto, kar jim je pomembno.
Javna statusna stranObjavite statusno stran za projekt z javnimi preverjanji, incidenti, vzdrževanjem, naročninami in po želji lastnimi domenami.
CLIDamper CLI ustvari git delovna drevesa za vsako nalogo, vnese celoten kontekst naloge in zažene Claude Code — da AI agenti začnejo z vsem, kar potrebujejo.
Dodajte eno značko script pred zaključno značko body. Zamenjajte YOUR_PROJECT_ID z ID-jem vašega projekta z nadzorne plošče.
Identifikacija uporabnikovIdentificirajte uporabnike za omogočanje ponderiranega glasovanja in sledenje, kdo je poslal povratne informacije. Pokličite metodo identify po naložitvi skripte widgeta.
Javni načrt razvojaVgradite svoj načrt razvoja izdelka na katero koli stran. Obiskovalci lahko vidijo načrtovane, tekoče in končane postavke ter glasujejo za tisto, kar jim je pomembno.
Javna statusna stranObjavite statusno stran za projekt z javnimi preverjanji, incidenti, vzdrževanjem, naročninami in po želji lastnimi domenami.
AI izvajanje (MCP)Povežite Claude Code, Cursor ali kateri koli MCP-združljiv AI asistent s svojim Damper projektom. AI agenti lahko prevzemajo naloge, sledijo napredku in samostojno označijo delo kot končano.
Widget za povratne informacije
Widget za povratne informacije omogoča vašim uporabnikom pošiljanje zahtev za funkcije, poročil o napakah in izboljšav neposredno iz vaše aplikacije.
Namestitev
Dodajte eno značko script pred zaključno značko body. Zamenjajte YOUR_PROJECT_ID z ID-jem vašega projekta z nadzorne plošče.
<script src="https://api.usedamper.com/widget.js" data-project-id="YOUR_PROJECT_ID" ></script>
Konfiguracija
Prilagodite videz in obnašanje widgeta z atributi data.
| Atribut | Privzeto | Opis |
|---|---|---|
data-theme | auto | Barvna tema: auto, light ali dark |
data-position | right | Položaj widgeta: right ali left |
data-trigger-label | Feedback | Besedilo na sprožilnem gumbu |
data-enable-sentiment | true | Prikaži korak ocenjevanja razpoloženja pred obrazcem za povratne informacije |
JavaScript API
Uporabite globalni objekt Damper za identifikacijo uporabnikov, ročno odpiranje widgeta ali neposredno pošiljanje povratnih informacij iz frontenda brez čakanja na klik.
| Parameter | {{t.docs.paramDefault}} | Opis |
|---|---|---|
title | Required | Short summary shown in the inbox and public board. |
description | Required | Detailed context for the request, bug, or question. |
type | feature | Feedback type: bug, feature, improvement, or question. |
metadata | {} | Optional structured context attached to the submission. |
isPublic | true | Set to false to keep script-submitted feedback off the public board. |
// Identify the current user after login
await Damper.identify({
userId: 'user_123',
email: 'jane@acme.com',
name: 'Jane Smith',
plan: 'enterprise',
tier: 10
})
// Submit feedback directly without opening the widget UI
await Damper.submitFeedback({
title: 'Export fails on large CSV',
description: 'The export returns 500 when the report contains more than 10k rows.',
type: 'bug',
metadata: { area: 'reports', reportId: 'rpt_123' },
isPublic: false // Optional: create as private feedback
})
// Open the widget manually when needed
Damper.open()Identifikacija uporabnikov
Identificirajte uporabnike za omogočanje ponderiranega glasovanja in sledenje, kdo je poslal povratne informacije. Pokličite metodo identify po naložitvi skripte widgeta.
await Damper.identify({
userId: 'user_123',
email: 'jane@acme.com',
name: 'Jane Smith',
plan: 'enterprise',
tier: 10,
userHash: 'hmac_sha256...'
})Za preprečevanje ponarejanja identitete generirajte HMAC hash na strežniku z uporabo skrivnega ključa vašega projekta in ga posredujte kot userHash. Skrivni ključ najdete na nadzorni plošči pod Nastavitve.
Javni načrt razvoja
Vgradite svoj načrt razvoja izdelka na katero koli stran. Obiskovalci lahko vidijo načrtovane, tekoče in končane postavke ter glasujejo za tisto, kar jim je pomembno.
<iframe src="https://api.usedamper.com/embed/roadmap?project=YOUR_SLUG" width="100%" height="600" frameborder="0" ></iframe>
Javni dnevnik sprememb
Vgradite svoj dnevnik sprememb izdelka, da uporabnike obveščate o novih funkcijah in izboljšavah.
<iframe src="https://api.usedamper.com/embed/changelog?project=YOUR_SLUG" width="100%" height="600" frameborder="0" ></iframe>
Javna statusna stran
Objavite statusno stran za projekt z javnimi preverjanji, incidenti, vzdrževanjem, naročninami in po želji lastnimi domenami.
Odprite projekt v nadzorni plošči, pojdite na Status, ustvarite skupine in preverjanja, nato pa v nastavitvah objave vključite javno statusno stran. Navzven so prikazane le javne skupine, preverjanja, incidenti in vzdrževalna okna.
Gostovana statusna stran
Damper ponuja pripravljeno javno statusno stran z imenom projekta, povzetki uptimea, dnevnimi trakovi uptimea, incidenti, vzdrževanjem in prijavo naročnikov.
https://api.usedamper.com/api/public/render/status/YOUR_PROJECT_SLUG?account=YOUR_ACCOUNT_ID
Podprte vrste preverjanj
- HTTP preverjanja spremljajo URL z GET ali HEAD, timeoutom, pričakovanim razponom statusnih kod in neobveznimi glavami.
- SSL preverjanja spremljajo veljavnost certifikata in opozorijo pred potekom.
- Heartbeat preverjanja spremljajo background opravila ali cron procese, ki morajo v določenem intervalu in grace obdobju pingati Damper.
Heartbeat endpoint
Vsako heartbeat preverjanje dobi svoj tokeniziran endpoint. Pokličite ga iz workerja ali cron opravila vsakič, ko se opravilo uspešno zaključi.
curl -X POST "https://api.usedamper.com/api/status/heartbeats/YOUR_HEARTBEAT_TOKEN"
Obvestila naročnikom
Obiskovalci se lahko naročijo neposredno na javni statusni strani. Damper najprej pošlje potrditveni email, nato pa dostavlja javna obvestila o incidentih, okrevanjih, posodobitvah in vzdrževanju.
Lastne domene
V nastavitvah objave projekta lahko nastavite lastno domeno, kot je status.example.com, in jo usmerite na svojo Damper-hostano statusno stran.
status.example.com
Javna tabla povratnih informacij
Vgradite javno tablo povratnih informacij, kjer lahko obiskovalci brskajo, oddajajo in glasujejo za povratne informacije.
Hosted table
Hosted table so samostojne, popolnoma interaktivne strani, ki jih streže Damper. Ni potreben iframe ali vgrajena koda — samo povežite na URL. Vključujejo glasovanje, filtriranje, razvrščanje, strani s podrobnostmi in preverjanje identitete prek e-pošte.
Slack Integration
Connect your Slack workspace to push messages directly into Damper as feedback. Use the "Push to Damper" message shortcut to save any Slack message as a feedback item.
OAuth 2.0 Provider
Create OAuth applications to let external services submit and read feedback from your Damper project. Supports the authorization code flow with optional PKCE.
Creating an OAuth App
Go to your project's Settings > OAuth Apps in the dashboard. Create a new app with a name and redirect URI. You'll receive a client ID and client secret.
Authorization Flow
- Redirect the user to the authorization endpoint with your client ID, redirect URI, and requested scopes.
- The user approves access on the Damper consent page.
- Damper redirects back to your redirect URI with an authorization code.
- Exchange the code for an access token via the token endpoint.
OAuth access tokens are only valid for /api/integrations/* or /api/external/* routes. Do not send OAuth tokens to /api/projects/* or /api/agent/*.
Scopes
| Scope | Description |
|---|---|
feedback:write | Submit feedback to the project |
feedback:read | Read feedback items and linked roadmap tasks |
project:read | Read project metadata, widget settings, and resource counts |
roadmap:read | Read roadmap items and linked feedback relationships |
context:read | Read project specs and context documentation |
changelog:read | Read changelog entries and shipped work |
Endpoints
| Method | Path | Description |
|---|---|---|
GET | https://api.usedamper.com/oauth/authorize | Authorization page (redirect users here) |
POST | https://api.usedamper.com/api/oauth/token | Exchange authorization code for access token |
GET | https://api.usedamper.com/api/integrations/project | Get project metadata for the connected project |
GET | https://api.usedamper.com/api/integrations/roadmap | List roadmap items for the connected project |
GET | https://api.usedamper.com/api/integrations/context | List context sections or fetch a specific section |
GET | https://api.usedamper.com/api/integrations/changelog | List changelog entries for the connected project |
POST | https://api.usedamper.com/api/integrations/feedback | Submit feedback using OAuth access token |
GET | https://api.usedamper.com/api/integrations/feedback/:id | Get a feedback item with linked roadmap tasks |
Canonical token response
Damper returns a stable snake_case token payload. Treat the following fields as the canonical response contract.
{
"access_token": "dat_...",
"token_type": "Bearer",
"expires_in": 2592000,
"scope": "feedback:read project:read roadmap:read context:read changelog:read",
"project_id": "proj_123"
}Damper OAuth currently returns only an access token. Refresh tokens are not supported at this time.
Auth error responses
OAuth auth failures return structured error codes so integrations can distinguish invalid tokens, insufficient scope, and incorrect route usage.
{
"error": "Invalid or expired token",
"code": "oauth_token_invalid"
}
{
"error": "Insufficient scope. Required: roadmap:read",
"code": "oauth_insufficient_scope",
"requiredScope": "roadmap:read"
}
{
"error": "OAuth access tokens can only be used with /api/integrations/* or /api/external/* endpoints.",
"code": "oauth_wrong_endpoint",
"allowedPrefixes": ["/api/integrations/", "/api/external/"]
}Integration examples
Use these example calls as your starting point for third-party integrations.
GET /api/integrations/project
curl -H "Authorization: Bearer dat_..." \ "https://api.usedamper.com/api/integrations/project"
GET /api/integrations/roadmap
curl -H "Authorization: Bearer dat_..." \ "https://api.usedamper.com/api/integrations/roadmap?status=planned&limit=20"
GET /api/integrations/context
curl -H "Authorization: Bearer dat_..." \ "https://api.usedamper.com/api/integrations/context" curl -H "Authorization: Bearer dat_..." \ "https://api.usedamper.com/api/integrations/context/specs%2Foauth-dashboard"
GET /api/integrations/changelog
curl -H "Authorization: Bearer dat_..." \ "https://api.usedamper.com/api/integrations/changelog?status=published&limit=10"
Prilagojene HTML in Markdown strani
Poleg iframe vgradenj lahko pridobite svoje javne strani kot surovi HTML ali Markdown. Uporabite jih za poln nadzor nad obliko ali za integracijo z generatorji statičnih strani.
Razpoložljivi tipi strani
roadmapchangelogfeedbackstatus
https://api.usedamper.com/api/public/render/status/YOUR_PROJECT_SLUG https://api.usedamper.com/api/public/render/status/YOUR_PROJECT_SLUG?format=md
Javni API
Programsko dostopajte do podatkov svojega projekta. Javne končne točke ne zahtevajo avtentikacije. Avtenticirane končne točke uporabljajo Bearer žeton iz vaše nadzorne plošče.
Authorization: Bearer dmp_your_api_key
Statusne končne točke
Uporabite javni status API za pridobivanje trenutnih stanj preverjanj, grupiranih komponent, incidentov, vzdrževanja in zgodovine uptimea za projekt.
curl "https://api.usedamper.com/api/public/status/YOUR_PROJECT_SLUG?account=YOUR_ACCOUNT_ID"
Heartbeat preverjanja uporabljajo tokeniziran javni endpoint. Iz crona ali workerja pošljite POST, ko se opravilo uspešno zaključi.
Strežniška ingestija napak
Uporabite API ključ Damper, ko želite iz zaledja ali workerja pošiljati grupirane dnevnike napak v Inbox. API ključi uporabljajo predpono dmp_ in jih ustvarite v Settings > API Keys.
Ključi, vezani na projekt, lahko endpoint kličejo neposredno. Ključi na ravni računa morajo URL-ju dodati ?project_id=YOUR_PROJECT_ID.
curl -X POST \
-H "Authorization: Bearer dmp_..." \
-H "Content-Type: application/json" \
"https://api.usedamper.com/api/ingest/errors?project_id=proj_123" \
-d '{
"rawLog": "Error: connect ECONNREFUSED 127.0.0.1:5432\\n at connect (db.js:42:11)",
"occurredAt": "2026-03-11T10:12:34.000Z",
"hints": {
"service": "api",
"environment": "production",
"severity": "error"
}
}'Strežniška ingestija dnevnikov
Uporabite ingest endpoint za pošiljanje redigiranih skupin strežniških napak v Damper. Ingestirane napake se prikažejo v internem delovnem prostoru Logs, kjer lahko ekipa pregleda strukturiran kontekst in iz dnevniške skupine odpre interno napako.
Endpoint je omejen po API ključu in projektu, celotno telo zahtevka je omejeno na 64 KB, strukturiran kontekst pa se pred shranjevanjem omeji in redigira. Odgovore 429 obravnavajte z backoff ponovitvami.
curl -X POST \
-H "Authorization: Bearer dmp_..." \
-H "Content-Type: application/json" \
"https://api.usedamper.com/api/ingest/errors?project_id=proj_123" \
-d '{
"rawLog": "TypeError: Cannot read properties of undefined\\n at handler (server.js:10:4)",
"occurredAt": "2026-03-11T10:05:00.000Z",
"hints": {
"service": "worker",
"environment": "production",
"severity": "error"
},
"fingerprint": "jobs:critical-timeout",
"context": {
"request": {
"method": "POST",
"path": "/api/jobs/run"
},
"job": {
"id": "job_123",
"queue": "critical"
}
}
}'{
"feedbackId": "fb_123",
"action": "created",
"source": "backend",
"feedbackStatus": "new",
"title": "worker: TypeError: Cannot read properties of undefined",
"dedupeKey": "sha256...",
"occurrenceCount": 1,
"firstOccurredAt": "2026-03-11T10:05:00.000Z",
"lastOccurredAt": "2026-03-11T10:05:00.000Z",
"aiTriageScheduled": true
}curl -X POST \
-H "Authorization: Bearer dmp_..." \
-H "Content-Type: application/json" \
"https://api.usedamper.com/api/ingest/errors/batch?project_id=proj_123" \
-d '{
"events": [
{
"rawLog": "Error: queue timeout\\n at run (worker.js:14:3)",
"fingerprint": "queue:timeout",
"hints": {
"service": "worker",
"environment": "production",
"severity": "error"
}
},
{
"rawLog": "Error: queue timeout\\n at run (worker.js:14:3)",
"fingerprint": "queue:timeout",
"hints": {
"service": "worker",
"environment": "production",
"severity": "error"
}
}
]
}'- Projektni API ključi lahko kličejo /api/ingest/errors neposredno. Ključi na ravni računa morajo poslati tudi query parameter project_id.
- Telo zahtevka podpira rawLog, occurredAt, hints, neobvezen fingerprint za prilagojeno grupiranje in neobvezen context objekt za strukturirane metapodatke.
- Damper redigira pogoste skrivnosti, skrajša prevelike vrednosti in shrani samo omejen redigiran kontekstni objekt.
- Ekvivalentne napake se agregirajo v isto dnevniško skupino z dedupe podpisom namesto ustvarjanja podvojenih elementov.
- Pri večjem prometu na vaši strani uporabite vzorčenje ali batching, pošiljajte stabilne hints za service in environment ter na 429 odgovore ponavljajte z eksponentnim backoffom.
- Prilagojeni fingerprinti omogočajo združevanje hrupnih variant v eno operativno težavo, kadar bi jih privzeto parserjsko grupiranje razdelilo.
- Po ingestiji lahko skupine dnevnikov neposredno v delovnem prostoru Logs dodelite, utišate, odložite ali jih pretvorite v interno napako.
- Uporabite /api/ingest/errors/batch, kadar morajo workerji poslati več grupiranih napak v eni zahtevi. Batch se v celoti validira vnaprej in ostane pod isto omejitvijo 64 KB za zahtevek.
CLI
Damper CLI ustvari git delovna drevesa za vsako nalogo, vnese celoten kontekst naloge in zažene Claude Code — da AI agenti začnejo z vsem, kar potrebujejo.
npx @damper/cli setup npx @damper/cli
AI izvajanje (MCP)
Povežite Claude Code, Cursor ali kateri koli MCP-združljiv AI asistent s svojim Damper projektom. AI agenti lahko prevzemajo naloge, sledijo napredku in samostojno označijo delo kot končano.
{
"mcpServers": {
"damper": {
"type": "http",
"url": "https://api.usedamper.com/mcp",
"headers": {
"Authorization": "Bearer dmp_..."
}
}
}
}