lokalise-observability
Enables comprehensive observability for Lokalise integrations with metrics, traces, and alerts for effective monitoring.
Install this skill
Security score
The lokalise-observability skill was audited on May 12, 2026 and we found 49 security issues across 4 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 156 | ```bash |
Template literal with variable interpolation in command context
| 230 | ```bash |
Curl to non-GitHub URL
| 159 | HEADERS=$(curl -sI "https://api.lokalise.com/api2/projects?limit=1" \ |
Curl to non-GitHub URL
| 233 | curl -s -X POST "https://api.lokalise.com/api2/projects/${LOKALISE_PROJECT_ID}/webhooks" \ |
Webhook reference - potential data exfiltration
| 30 | Monitor Lokalise translation pipeline health: API response times, rate limit consumption, translation completion rates, webhook delivery reliability, file upload/download status, and per-word cost tra |
Webhook reference - potential data exfiltration
| 36 | - Optional: webhook endpoint for real-time event monitoring |
Webhook reference - potential data exfiltration
| 173 | ### Step 4: Monitor Webhook Delivery |
Webhook reference - potential data exfiltration
| 175 | Track webhook processing success and latency in your webhook handler. |
Webhook reference - potential data exfiltration
| 180 | const webhookMetrics = { |
Webhook reference - potential data exfiltration
| 187 | app.post("/webhooks/lokalise", async (req: express.Request, res: express.Response) => { |
Webhook reference - potential data exfiltration
| 188 | webhookMetrics.received++; |
Webhook reference - potential data exfiltration
| 195 | await processWebhookEvent(req.body); |
Webhook reference - potential data exfiltration
| 196 | webhookMetrics.processed++; |
Webhook reference - potential data exfiltration
| 198 | webhookMetrics.failed++; |
Webhook reference - potential data exfiltration
| 199 | console.error("Webhook processing failed:", error); |
Webhook reference - potential data exfiltration
| 203 | webhookMetrics.totalLatencyMs += latencyMs; |
Webhook reference - potential data exfiltration
| 205 | emitCounter("lokalise_webhook_received_total", 1, { |
Webhook reference - potential data exfiltration
| 207 | status: webhookMetrics.failed > 0 ? "error" : "ok", |
Webhook reference - potential data exfiltration
| 209 | emitHistogram("lokalise_webhook_processing_ms", latencyMs, { |
Webhook reference - potential data exfiltration
| 215 | // Health endpoint exposing webhook metrics |
Webhook reference - potential data exfiltration
| 216 | app.get("/metrics/webhooks", (_req, res) => { |
Webhook reference - potential data exfiltration
| 218 | received: webhookMetrics.received, |
Webhook reference - potential data exfiltration
| 219 | processed: webhookMetrics.processed, |
Webhook reference - potential data exfiltration
| 220 | failed: webhookMetrics.failed, |
Webhook reference - potential data exfiltration
| 221 | avgLatencyMs: webhookMetrics.received > 0 |
Webhook reference - potential data exfiltration
| 222 | ? Math.round(webhookMetrics.totalLatencyMs / webhookMetrics.received) |
Webhook reference - potential data exfiltration
| 228 | ### Step 5: Register Webhooks for Key Events |
Webhook reference - potential data exfiltration
| 233 | curl -s -X POST "https://api.lokalise.com/api2/projects/${LOKALISE_PROJECT_ID}/webhooks" \ |
Webhook reference - potential data exfiltration
| 248 | }' | jq '{webhook_id: .webhook.webhook_id, events: .webhook.events}' |
Webhook reference - potential data exfiltration
| 277 | - alert: WebhookDeliveryFailing |
Webhook reference - potential data exfiltration
| 278 | expr: rate(lokalise_webhook_received_total{status="error"}[1h]) > 3 |
Webhook reference - potential data exfiltration
| 280 | summary: "Lokalise webhook deliveries failing ({{ $value }} errors/hour)" |
Webhook reference - potential data exfiltration
| 300 | | Webhook Success Rate | `rate(lokalise_webhook_received_total{status="ok"}[5m])` | Time series | |
Webhook reference - potential data exfiltration
| 307 | - Webhook delivery tracking with latency and error counters |
Webhook reference - potential data exfiltration
| 308 | - Prometheus alerting rules for rate limiting, API errors, stalled progress, and webhook failures |
Webhook reference - potential data exfiltration
| 315 | | Webhook not firing | Wrong event type registered | Verify event names match API reference | |
Webhook reference - potential data exfiltration
| 321 | - [Lokalise Webhooks API](https://developers.lokalise.com/reference/create-a-webhook) |
Webhook reference - potential data exfiltration
| 322 | - [Lokalise Webhook Events](https://developers.lokalise.com/docs/webhook-events) |
Webhook reference - potential data exfiltration
| 329 | For setting up real-time automation based on webhook events, see `lokalise-webhooks-events`. For incident response procedures when alerts fire, see `lokalise-incident-runbook`. |
Access to .env file
| 57 | const lok = new LokaliseApi({ apiKey: process.env.LOKALISE_API_TOKEN! }); |
External URL reference
| 159 | HEADERS=$(curl -sI "https://api.lokalise.com/api2/projects?limit=1" \ |
External URL reference
| 233 | curl -s -X POST "https://api.lokalise.com/api2/projects/${LOKALISE_PROJECT_ID}/webhooks" \ |
External URL reference
| 237 | "url": "https://hooks.company.com/lokalise", |
External URL reference
| 269 | runbook: "Check https://status.lokalise.com. Enable fallback translations." |
External URL reference
| 321 | - [Lokalise Webhooks API](https://developers.lokalise.com/reference/create-a-webhook) |
External URL reference
| 322 | - [Lokalise Webhook Events](https://developers.lokalise.com/docs/webhook-events) |
External URL reference
| 323 | - [Lokalise API Rate Limits](https://developers.lokalise.com/reference/api-rate-limits) |
External URL reference
| 324 | - [Lokalise Project Statistics](https://developers.lokalise.com/reference/retrieve-a-project) |
External URL reference
| 325 | - [Prometheus Alerting Rules](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) |