DMCDMC Bilgi Teknolojileri

SentinelDB360 API

Public-facing endpoints — auth-stripped, read-only snapshot. Evaluate the product yourself before PoC. In a production deployment the full API (24 routers, 200+ endpoints) is served interactively at `/docs` and `/redoc`.

v0.3.1 Snapshot · 2026-05-08 ↓ Download openapi.json

SentinelDB360 — Public API

Curated public-facing endpoints for developer evaluation

Read-only snapshot of selected production endpoints. Internal admin, write, and destructive operations are intentionally omitted. Full API (24 routers, ~200+ endpoints) is available to licensed deployments via interactive Swagger at /docs on the running backend.

Versioning: v2 endpoints are stable. Auth uses cookie sd360_session (HttpOnly) or Authorization: Bearer <jwt> header. License endpoints are public (offline verify).

Source repo: github.com/dmcteknoloji/sentineldb360 (private, license required)

Servers

https://your-deployment.example.com — Self-hosted (on-prem / VM)
https://saas.sentineldb360.com — SaaS (multi-tenant, ARCH-003 ownership scoped)
Snapshot: generated 2026-05-08 · 12 curated of 200+
This is a developer-evaluation snapshot. Live deployments expose the full API at /docs (Swagger UI) and /redoc.

Health

Liveness and readiness checks

GET/api/health🌐 public

Liveness probe

Returns service status, version, and uptime. Useful for load balancer health checks.

Responses

200Service healthy
application/json
{
  "status": "ok",
  "version": "0.3.1",
  "uptime_seconds": 184293,
  "mongodb": "connected"
}

Auth

JWT (HS256, 24h default) — cookie `sd360_session` or Bearer header

POST/api/auth/login🌐 public

Login with email + password

Returns JWT in HttpOnly cookie sd360_session (TTL: ACCESS_TOKEN_TTL_SEC, default 900s). Bcrypt password verification. Default role on bootstrap: viewer. Roles: ADMIN, EDITOR, VIEWER.

Request body (required)

application/json
{
  "email": "[email protected]",
  "password": "***"
}

Responses

200Login successful — cookie set
application/json
{}
401Invalid credentials
423Account locked (failed login threshold)
GET/api/auth/me🔒 auth

Current user info

Responses

200User profile
application/json
{}
401Not authenticated

Sources

Database instance CRUD (MSSQL, PostgreSQL, MySQL, MongoDB)

GET/api/v2/sources🔒 auth

List configured database instances

Returns all sources visible to the authenticated user. Multi-tenant: ARCH-003 ownership filter applied automatically (org_id enforced via $jsonSchema).

Parameters

NameInTypeRequiredDescription
typequery"MSSQL" | "PostgreSQL" | "MySQL" | "MongoDB"noFilter by RDBMS type
limitqueryintegerno

Responses

200Source list
application/json
[
  {}
]
GET/api/v2/sources/{source_id}🔒 auth

Get a single source

Parameters

NameInTypeRequiredDescription
source_idpathstring (uuid)yes

Responses

200Source details
application/json
{}
403Not owner of this source (ARCH-003)
404Source not found

Metrics

Time-series metrics from `metrics_ts` collection

GET/api/v2/metrics/{source_id}/timeseries🔒 auth

Time-series metrics

Returns metric points from the metrics_ts collection. Aggregation buckets: 5m / 15m / 1h / 1d. Default window: last 24h (env: METRIC_HISTORY_HOURS).

Parameters

NameInTypeRequiredDescription
source_idpathstring (uuid)yes
metricquerystringyes
fromquerystring (date-time)noISO 8601 timestamp
toquerystring (date-time)no
bucketquery"5m" | "15m" | "1h" | "1d"no

Responses

200Time series points
application/json
{}

Health Check

Per-engine A-F health scorecard (6 categories)

GET/api/v2/health-check/{source_id}/summary🔒 auth

A-F scorecard summary

Returns engine-specific health scorecard with 6 categories: Performance, Storage, Security, Availability, Backup, Configuration. Letter grades: 90+=A · 75+=B · 60+=C · 40+=D · <40=F.

Parameters

NameInTypeRequiredDescription
source_idpathstring (uuid)yes

Responses

200Scorecard
application/json
{}

Capacity

Linear regression + 95% PI projections (storage, CPU, memory, connections)

GET/api/v2/capacity/{source_id}/storage🔒 auth

Storage growth projection

Linear regression with 95% prediction interval over the last N days. Returns days-to-full estimate and recommended action. Min sample: 14 days of metric history.

Parameters

NameInTypeRequiredDescription
source_idpathstring (uuid)yes
horizon_daysqueryintegerno

Responses

200Projection
application/json
{}

Blocking

Blocking chain analysis with Sankey-ready output

GET/api/v2/blocking/{source_id}/chains🔒 auth

Active blocking chains

Returns currently active blocking chains with head SPID, blocked sessions, wait time, and Sankey-ready edges. Threshold env: BLOCKING_WARNING_THRESHOLD_MS.

Parameters

NameInTypeRequiredDescription
source_idpathstring (uuid)yes
min_wait_msqueryintegerno

Responses

200Blocking chains
application/json
{}

Insights

AI-powered (LiteLLM / Ollama) findings and recommendations

GET/api/v2/insights/{source_id}🔒 auth

AI insights and findings

Returns LiteLLM-generated insights (default Azure OpenAI gpt-4o-mini, falls back to rule-based advisor). Language follows AI_LANG env (default: tr).

Parameters

NameInTypeRequiredDescription
source_idpathstring (uuid)yes
severityquery"low" | "medium" | "high" | "critical"no

Responses

200Findings
application/json
[
  {}
]

License

Offline-first Ed25519 JWT license verification (JetBrains pattern)

POST/api/license/verify🌐 public

Verify license token (offline)

Public endpoint. Verifies Ed25519 JWT against embedded public key. No network round-trip to DMC infrastructure required at runtime — JetBrains pattern. Returns validity, days remaining, and feature flags.

Request body (required)

application/json
{
  "token": "eyJhbGciOiJFZERTQSI..."
}

Responses

200Verification result
application/json
{}
GET/api/license/public-key🌐 public

License public key (Ed25519, PEM)

Public endpoint. Returns the Ed25519 public key in PEM format for offline JWT verification by client-side tools (e.g. tools/issue_license.py verify).

Responses

200PEM-encoded public key
application/x-pem-file
"-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA...\n-----END PUBLIC KEY-----\n"

Trial

14-day trial provisioning (Cloudflare Turnstile gated)

POST/api/trial🌐 public

Request 14-day trial license

Public endpoint. Cloudflare Turnstile gated + honeypot + duplicate-email check (TRIAL_MAX_PER_EMAIL, default 2). Persists request to Cosmos trial_requests with pending status — admin must approve via tools/approve_trial.py. Successful approval delivers Ed25519 JWT (TRIAL tier: 14 days, max 50 instances, all 17 features enabled).

Request body (required)

application/json
{}

Responses

202Request accepted, awaiting admin approval
application/json
{}
400Validation error (Turnstile / honeypot / duplicate)
429Rate limited

Get the full API — 14 days free

This page shows 12 curated endpoints. A live deployment exposes 200+ endpoints across 24 routers with interactive Swagger UI and OpenAPI 3.1 export.