Dokumentacija
Sve što vam je potrebno za integraciju Dampera u vaš proizvod. Dodajte widget za povratne informacije, ugradite javne stranice, koristite API ili povežite AI agente.
Sadržaj
Dodajte jednu script oznaku prije zatvarajuće body oznake. Zamijenite YOUR_PROJECT_ID s ID-om vašeg projekta s nadzorne ploče.
Identifikacija korisnikaIdentificirajte korisnike za omogućavanje ponderiranog glasanja i praćenje tko je poslao povratne informacije. Pozovite metodu identify nakon učitavanja skripte widgeta.
Javni roadmapUgradite svoj roadmap proizvoda na bilo koju stranicu. Posjetitelji mogu vidjeti planirane, tekuće i završene stavke te glasovati za ono što im je važno.
Javna status stranicaObjavite status stranicu po projektu s javnim provjerama, incidentima, održavanjem, pretplatama i opcionalnim custom domenama.
CLIDamper CLI stvara git radna stabla za svaki zadatak, ubacuje puni kontekst zadatka i pokreće Claude Code — tako da AI agenti započinju sa svime što trebaju.
Dodajte jednu script oznaku prije zatvarajuće body oznake. Zamijenite YOUR_PROJECT_ID s ID-om vašeg projekta s nadzorne ploče.
Identifikacija korisnikaIdentificirajte korisnike za omogućavanje ponderiranog glasanja i praćenje tko je poslao povratne informacije. Pozovite metodu identify nakon učitavanja skripte widgeta.
Javni roadmapUgradite svoj roadmap proizvoda na bilo koju stranicu. Posjetitelji mogu vidjeti planirane, tekuće i završene stavke te glasovati za ono što im je važno.
Javna status stranicaObjavite status stranicu po projektu s javnim provjerama, incidentima, održavanjem, pretplatama i opcionalnim custom domenama.
AI izvršavanje (MCP)Povežite Claude Code, Cursor ili bilo koji MCP-kompatibilni AI asistent s vašim Damper projektom. AI agenti mogu preuzimati zadatke, pratiti napredak i autonomno označavati rad završenim.
Widget za povratne informacije
Widget za povratne informacije omogućuje vašim korisnicima slanje zahtjeva za značajke, prijava grešaka i poboljšanja izravno iz vaše aplikacije.
Instalacija
Dodajte jednu script oznaku prije zatvarajuće body oznake. Zamijenite YOUR_PROJECT_ID s ID-om vašeg projekta s nadzorne ploče.
<script src="https://api.usedamper.com/widget.js" data-project-id="YOUR_PROJECT_ID" ></script>
Konfiguracija
Prilagodite izgled i ponašanje widgeta s data atributima.
| Atribut | Zadano | Opis |
|---|---|---|
data-theme | auto | Tema boja: auto, light ili dark |
data-position | right | Pozicija widgeta: right ili left |
data-trigger-label | Feedback | Tekst na gumbu za pokretanje |
data-enable-sentiment | true | Prikaži korak ocjenjivanja raspoloženja prije obrasca za povratne informacije |
JavaScript API
Koristite globalni objekt Damper za identifikaciju korisnika, ručno otvaranje widgeta ili izravno slanje povratnih informacija iz frontenda bez čekanja na klik.
| Parametar | {{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 korisnika
Identificirajte korisnike za omogućavanje ponderiranog glasanja i praćenje tko je poslao povratne informacije. Pozovite metodu identify nakon učitavanja skripte widgeta.
await Damper.identify({
userId: 'user_123',
email: 'jane@acme.com',
name: 'Jane Smith',
plan: 'enterprise',
tier: 10,
userHash: 'hmac_sha256...'
})Za sprječavanje krivotvorenja identiteta generirajte HMAC hash na serveru koristeći tajni ključ vašeg projekta i proslijedite ga kao userHash. Tajni ključ pronađite na nadzornoj ploči pod Postavke.
Javni roadmap
Ugradite svoj roadmap proizvoda na bilo koju stranicu. Posjetitelji mogu vidjeti planirane, tekuće i završene stavke te glasovati za ono što im je važno.
<iframe src="https://api.usedamper.com/embed/roadmap?project=YOUR_SLUG" width="100%" height="600" frameborder="0" ></iframe>
Javni dnevnik promjena
Ugradite svoj dnevnik promjena proizvoda kako biste korisnike informirali o novim značajkama i poboljšanjima.
<iframe src="https://api.usedamper.com/embed/changelog?project=YOUR_SLUG" width="100%" height="600" frameborder="0" ></iframe>
Javna status stranica
Objavite status stranicu po projektu s javnim provjerama, incidentima, održavanjem, pretplatama i opcionalnim custom domenama.
Otvorite projekt u nadzornoj ploči, idite na Status, kreirajte grupe i provjere, a zatim uključite javnu status stranicu u publishing postavkama. Izvana se prikazuju samo javne grupe, provjere, incidenti i periodi održavanja.
Hostana status stranica
Damper poslužuje gotovu javnu status stranicu s imenom projekta, sažecima uptimea, dnevnim uptime trakama, incidentima, održavanjem i prijavom pretplatnika.
https://api.usedamper.com/api/public/render/status/YOUR_PROJECT_SLUG?account=YOUR_ACCOUNT_ID
Podržane vrste provjera
- HTTP provjere nadziru URL putem GET ili HEAD zahtjeva, timeouta, očekivanog statusnog raspona i opcionalnih zaglavlja.
- SSL provjere nadziru valjanost certifikata i upozoravaju prije isteka.
- Heartbeat provjere nadziru pozadinske poslove ili cron zadatke koji moraju pingati Damper unutar konfiguriranog intervala i grace perioda.
Heartbeat endpoint
Svaka heartbeat provjera dobiva jedinstveni tokenizirani endpoint. Pozovite ga iz workera ili cron zadatka svaki put kada posao uspješno završi.
curl -X POST "https://api.usedamper.com/api/status/heartbeats/YOUR_HEARTBEAT_TOKEN"
Obavijesti pretplatnicima
Posjetitelji se mogu pretplatiti izravno na javnoj status stranici. Damper prvo šalje email za potvrdu, a zatim isporučuje javne obavijesti o incidentima, oporavcima, ažuriranjima i održavanju.
Custom domene
Možete dodijeliti custom domenu kao što je status.example.com u publishing postavkama projekta i usmjeriti je na Damper-hostanu status stranicu.
status.example.com
Javna ploča povratnih informacija
Ugradite javnu ploču povratnih informacija gdje posjetitelji mogu pregledavati, slati i glasovati za povratne informacije.
Hosted ploče
Hosted ploče su samostalne, potpuno interaktivne stranice koje poslužuje Damper. Nije potreban iframe ili embed kod — samo povežite na URL. Uključuju glasanje, filtriranje, sortiranje, stranice s detaljima i provjeru identiteta putem 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"
Prilagođene HTML i Markdown stranice
Osim iframe ugradnji, možete dohvatiti svoje javne stranice kao sirovi HTML ili Markdown. Koristite ih za potpunu kontrolu dizajna ili za integraciju s generatorima statičnih stranica.
Dostupne vrste stranica
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
Programski pristupite podacima svog projekta. Javni endpointi ne zahtijevaju autentikaciju. Autenticirani endpointi koriste Bearer token s vaše nadzorne ploče.
Authorization: Bearer dmp_your_api_key
Status endpointi
Koristite javni status API za dohvat trenutnih stanja provjera, grupiranih komponenti, incidenata, održavanja i povijesti uptimea za projekt.
curl "https://api.usedamper.com/api/public/status/YOUR_PROJECT_SLUG?account=YOUR_ACCOUNT_ID"
Heartbeat provjere koriste tokenizirani javni endpoint. Pošaljite POST iz crona ili workera kada posao uspješno završi.
Serverski unos grešaka
Koristite Damper API ključ kada backend ili worker želi slati grupirane logove grešaka u Inbox. API ključevi koriste prefiks dmp_ i stvaraju se u Settings > API Keys.
Ključevi scoped na projekt mogu zvati endpoint izravno. Account-scoped ključevi moraju dodati ?project_id=YOUR_PROJECT_ID u URL zahtjeva.
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"
}
}'Serverski unos logova
Koristite ingest endpoint za slanje redigiranih grupa serverskih grešaka u Damper. Unesene greške pojavljuju se u internom Logs workspaceu, gdje tim može pregledati strukturirani kontekst i otvoriti internu grešku iz log grupe.
Endpoint je ograničen po API ključu i projektu, cijelo tijelo zahtjeva ograničeno je na 64 KB, a strukturirani kontekst se prije spremanja ograničava i redigira. Obradite 429 odgovore s retry backoffom.
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"
}
}
]
}'- API ključevi na razini projekta mogu pozivati /api/ingest/errors izravno. Ključevi na razini računa moraju poslati i query parametar project_id.
- Tijelo zahtjeva podržava rawLog, occurredAt, hints, opcionalni fingerprint override za prilagođeno grupiranje i opcionalni context objekt za strukturirane metapodatke.
- Damper redigira uobičajene tajne, skraćuje prevelike vrijednosti i sprema samo ograničeni redigirani context objekt.
- Ekvivalentne greške agregiraju se u istu log grupu pomoću dedupe potpisa umjesto stvaranja duplikata.
- Pod većim prometom koristite batching ili sampling na svojoj strani, šaljite stabilne hints za service i environment te ponavljajte 429 odgovore s eksponencijalnim backoffom.
- Prilagođeni fingerprinti omogućuju spajanje bučnih varijanti u jedan operativni problem kada bi ih zadano parser-grupiranje razdvojilo.
- Nakon ingestije log grupe se mogu dodijeliti, utišati, odgoditi ili pretvoriti u internu grešku izravno iz Logs workspacea.
- Koristite /api/ingest/errors/batch kada workeri trebaju poslati više grupiranih grešaka u jednom zahtjevu. Batch se unaprijed validira i ostaje pod istim ograničenjem od 64 KB po zahtjevu.
CLI
Damper CLI stvara git radna stabla za svaki zadatak, ubacuje puni kontekst zadatka i pokreće Claude Code — tako da AI agenti započinju sa svime što trebaju.
npx @damper/cli setup npx @damper/cli
AI izvršavanje (MCP)
Povežite Claude Code, Cursor ili bilo koji MCP-kompatibilni AI asistent s vašim Damper projektom. AI agenti mogu preuzimati zadatke, pratiti napredak i autonomno označavati rad završenim.
{
"mcpServers": {
"damper": {
"type": "http",
"url": "https://api.usedamper.com/mcp",
"headers": {
"Authorization": "Bearer dmp_..."
}
}
}
}